debian/copyright: add information about mrDlib_jayatana.patch.
[debian/jabref.git] / build.xml
1 <?xml version="1.0"?>
2 <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3    Filename: build.xml
4    Purpose:  Ant build file for Jabref.
5
6              Ant-Download: http://jakarta.apache.org/ant
7              Ant-Manual:   http://jakarta.apache.org/ant/manual/index.html
8
9              Jabref homepage:       http://jabref.sourceforge.net
10              Jabref@SourceForge:    http://sourceforge.net/projects/jabref
11              Jabref@FreeCode:       http://apps.freecode.com/projects/jabref
12              Jabref@Ohloh:          https://www.ohloh.net/p/jabref
13              Jabref git repository: git://jabref.git.sourceforge.net/gitroot/jabref/jabref
14
15              Further questions:
16                help mailing list:   https://lists.sourceforge.net/lists/listinfo/jabref-users
17
18    Precondition: 1. Ant should be installed.
19                  2. JAVA_HOME environment variable contains the path to JDK1.6 or higher
20                  3. ANT_HOME environment variable contains the path to ant's home directory
21
22    Language: XML
23    Compiler: Ant
24    Authors:  Joerg K. Wegner, wegnerj@informatik.uni-tuebingen.de
25              Morten O. Alver
26
27    modified: see at git checkout and "gitk build.xml"
28
29 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
30
31 <project name="JabRef" default="jars" basedir=".">
32
33         <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
34         PROPERTY SETUP
35      +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
36
37         <!-- some version information -->
38         <property name="jabref.version" value="2.9" />
39         <property name="jabref.year" value="2012" />
40         <property name="jabref.placeholder.version" value="@version@" />
41         <property name="jabref.placeholder.year" value="@year@" />
42         <!-- used by replace task -->
43
44         <!-- Set the properties for intermediate directory -->
45         <property name="build.jar" value="JabRef-${jabref.version}.jar" />
46         <property name="build.dir" value="build" />
47         <property name="build.classes" value="${build.dir}/classes" />
48         <property name="build.tmp" value="${build.dir}/tmp" />
49         <property name="build.osx" value="${build.dir}/classes/osxadapter" />
50         <property name="build.lib" value="${build.dir}/lib" />
51         <property name="build.win" value="${build.dir}/windows" />
52         <property name="build.images" value="${build.dir}/images" />
53         <property name="build.fonts" value="${build.dir}/images/font" />
54         <property name="build.resource" value="${build.dir}/resource" />
55         <property name="build.help" value="${build.dir}/help" />
56         <property name="build.javadocs" value="${build.dir}/docs/API" />
57         <property name="build.extensions" value="${build.dir}/extensions" />
58         <property name="build.extension-javadocs" value="${build.extensions}/API" />
59         <property name="build.extension-layout" value="${build.extensions}/layout" />
60         <property name="build.openoffice.meta" value="${build.resource}/openoffice" />
61         <property name="build.tests" value="${build.dir}/tests" />
62
63         <!-- Set the properties for source directories -->
64         <property name="src.dir" value="src" />
65         <property name="src.tests" value="src/java/tests" />
66         <property name="plugin.dir" value="src/plugins/" />
67         <property name="txt.dir" value="src/txt" />
68         <property name="java.dir" value="${src.dir}/java" />
69         <property name="osx.dir" value="${src.dir}/osx" />
70         <property name="win.installer.dir" value="${src.dir}/windows/nsis" />
71         <property name="resource.dir" value="${src.dir}/resource" />
72         <property name="bin.dir" value="${src.dir}/scripts" />
73         <property name="images.dir" value="${src.dir}/images" />
74         <property name="fonts.dir" value="${src.dir}/images/font" />
75         <property name="help.dir" value="${src.dir}/help" />
76         <property name="extensions.dir" value="${src.dir}/extensions" />
77         <property name="layout.dir" value="${src.dir}/resource/layout" />
78         <property name="lib.dir" value="lib" />
79         <property name="buildlib.dir" value="buildlib" />
80         <property name="tests.dir" value="${src.dir}/tests" />
81
82         <property name="osxbin.dir" value="osx" />
83
84         <property name="nsis.executable" value="C:\Program files\NSIS\makensis.exe"/>
85         <property name="nsis.executable.linux" value="makensis"/>
86
87         <!-- Load user dependent properties -->
88         <!-- For instance to redefine the NSIS-compiler write 
89                 nsis.executable="d:\prog\dev\NSIS\makensis.exe"
90           -->
91         <property file="user.properties" />
92
93         <!-- win.installer can only be build under Windows if the nsis.executable is found -->
94         <condition property="is.windows">
95           <and>
96             <isset property="nsis.executable" />
97             <os family="windows" />
98           </and>
99         </condition>
100
101         <fileset id="jarsFileset" dir="${lib.dir}">
102                 <include name="antlr.jar" />
103                 <include name="antlr-3.4-complete.jar" />
104         <include name="jgoodies-common-1.4.0.jar" />
105                 <include name="jgoodies-looks-2.5.2.jar" />
106                 <include name="jgoodies-forms-1.6.0.jar" />
107                 <include name="jayatana-1.2.4.jar" />
108                 <include name="spin.jar" />
109                 <include name="glazedlists-1.8.0_java15.jar" />
110                 <include name="microba.jar" />
111                 <include name="pdfbox-1.7.1.jar" />
112                 <include name="jempbox-1.7.1.jar" />
113                 <include name="fontbox-1.7.1.jar" />
114                 <include name="zoom-java.jar" />
115         <include name="mysql-connector-java-5.0.7-bin.jar" />
116                 <include name="postgresql-9.2-1002.jdbc4.jar" />
117         <!-- Plugin runtime dependencies -->
118                 <include name="plugin/JPFCodeGenerator-rt.jar" />
119                 <include name="plugin/jpf.jar" />
120                 <include name="plugin/jpf-boot.jar" />
121                 <include name="plugin/commons-logging.jar" />
122         </fileset>
123
124     <!-- Openoffice connection dependencies. Compile-time only -->
125     <fileset id="ooFileset" dir="${lib.dir}">
126         <include name="oo/unoil.jar" />
127         <include name="oo/ridl.jar" />
128         <include name="oo/juh.jar" />
129         <include name="oo/jurt.jar" />
130     </fileset>
131
132     <!-- Done by MrDlib -->
133     <fileset id="splJars" dir="${lib.dir}">
134         <include name="spl/**/*.jar" />
135         <include name="spl/*.jar" />
136     </fileset>
137         <fileset id="deletableMeta-InfFiles" dir="${build.tmp}/META-INF">
138                 <exclude name="services/**/*" />                
139         </fileset>
140     <!-- Done by MrDlib -->
141
142         <!-- Build classpath -->
143         <path id="classpath">
144                 <pathelement path="${build.classes}" />
145                 <pathelement path="${build.dir}" />
146         <!-- Done by MrDlib -->
147         <pathelement path="${lib.dir}/spl" />
148         <fileset refid="splJars" />
149         <!-- Done by MrDlib -->
150                 <fileset refid="jarsFileset" />
151         <fileset refid="ooFileset" />
152         </path>
153
154         <!-- Classpath for running the code generator -->
155         <path id="codegenerator">
156                 <pathelement location="${lib.dir}/plugin/JPFCodeGenerator.jar" />
157                 <pathelement location="${lib.dir}/plugin/jpf.jar" />
158                 <pathelement location="${lib.dir}/plugin/jpf-boot.jar" />
159                 <pathelement location="${lib.dir}/plugin/velocity-dep-1.5.jar" />
160         </path>
161
162         <!-- Classpath for tests -->
163         <path id="classpathTest">
164                 <path refid="classpath" />
165                 <pathelement location="${buildlib.dir}/junit.jar" />
166         </path>
167
168         <target name="run" depends="build">
169                 <java classname="net.sf.jabref.JabRefMain" fork="true">
170                         <classpath refid="classpath" />
171                 </java>
172         </target>
173
174         <!-- Runs project -->
175         <target name="runFromJar">
176                 <java dir="${build.lib}" classname="net.sf.jabref.JabRefMain" fork="true">
177                         <classpath>
178                                 <pathelement location="${build.lib}/${build.jar}" />
179                         </classpath>
180                 </java>
181         </target>
182
183         <!-- Only rerun the code generator if plug-in xml or jars are newer than generated java file. -->
184         <uptodate property="needsNoRegenerate" targetfile="${java.dir}/net/sf/jabref/plugin/core/generated/_JabRefPlugin.java">
185                 <srcfiles dir=".">
186                         <include name="${plugin.dir}/**/plugin.xml" />
187                         <include name="${lib.dir}/plugin/*.jar" />
188                 </srcfiles>
189         </uptodate>
190
191         <!-- Run the JPF Code Generator -->
192         <target name="generate" unless="needsNoRegenerate">
193                 <java classname="net.sf.jabref.plugin.util.CodeGenerator" fork="true">
194                         <arg value="${plugin.dir}" />
195                         <classpath refid="codegenerator" />
196                 </java>
197         </target>
198
199         <!-- Compiles project excluding tests -->
200         <target name="compile" depends="generate">
201                 <mkdir dir="${build.classes}" />
202                 <javac debug="on" deprecation="on" destdir="${build.classes}" encoding="UTF8"
203                    source="1.6" target="1.6">
204                         <src path="${java.dir}" />
205                         <exclude name="tests/**" />
206                         <exclude name="**/JabRefMain.java" />
207                         <classpath refid="classpath" />
208                 </javac>
209                 <javac debug="off" deprecation="on" destdir="${build.classes}" source="1.6" target="1.6">
210                         <src path="${java.dir}" />
211                         <include name="**/JabRefMain.java" />
212                 </javac>
213         </target>
214
215         <!-- Compiles project including tests -->
216         <target name="compiletest">
217                 <mkdir dir="${build.classes}" />
218                 <javac debug="on" destdir="${build.classes}" source="1.6" target="1.6">
219                         <src path="${java.dir}" />
220                         <include name="tests/**" />
221                         <classpath refid="classpathTest" />
222                 </javac>
223         </target>
224
225         <!-- Builds the OSXAdapter -->
226         <target name="osx">
227                 <mkdir dir="${build.classes}" />
228
229                 <javac srcdir="${osx.dir}" debug="off" destdir="${build.classes}" target="1.6">
230                 </javac>
231         </target>
232
233         <!-- Copies in the OSXAdapter class, which is compilable only on Mac  -->
234         <target name="non_osx">
235                 <mkdir dir="${build.osx}" />
236                 <copy file="${osxbin.dir}/OSXAdapter.class" todir="${build.osx}" />
237         </target>
238
239         <!-- Jars up project -->
240         <target name="jars" depends="build, unjarlib">
241                 <mkdir dir="${build.lib}" />
242         
243                 <mkdir dir="${build.tmp}" />
244                 <jar destfile="${build.lib}/${build.jar}" > 
245         <!--<jar destfile="${build.lib}/JabRef-${revision}.jar" manifest="${src.dir}/MANIFEST.MF">-->
246
247                         <fileset dir="${build.classes}" />
248                         <fileset dir="${build.tmp}" />
249                         <fileset dir="${build.dir}">
250                                 <include name="images/**" />
251                                 <include name="help/**" />
252                                 <include name="resource/**" />
253                         </fileset>
254
255                         <!-- Add Plugins -->
256                         <fileset dir="${src.dir}">
257                                 <include name="plugins/**" />
258                         </fileset>
259              <!-- Done by MrDlib -->
260             <fileset dir ="${java.dir}">
261                 <include name="spl/localization/spljabref.properties"/>
262                 <include name="spl/gui/ajax-loader.gif"/>
263                 <include name="spl/gui/mrdlib header.png"/>
264             </fileset>
265             <!-- Done by MrDlib -->
266                         <fileset dir="${lib.dir}">
267                                 <include name="EndNote.zip" />
268                         </fileset>
269                         <fileset dir="${txt.dir}">
270                                 <include name="gpl2.txt" />
271                                 <include name="gpl3.txt" />
272                                 <include name="lesser.txt" />
273                                 <include name="jgoodies.txt" />
274                                 <include name="README" />
275                         </fileset>
276                         <manifest>
277                                 <attribute name="Main-Class" value="net.sf.jabref.JabRefMain" />
278                 <attribute name="Class-Path" value="." />
279                         </manifest>
280                 </jar>
281
282         </target>
283
284         <!-- copy all necessary files and insert version informations -->
285         <target name="build" depends="compile, buildinfos" description="Build project">
286
287                 <mkdir dir="${build.resource}" />
288
289                 <copy todir="${build.resource}">
290                         <fileset dir="${resource.dir}">
291                                 <include name="**" />
292                         </fileset>
293                 </copy>
294                 <mkdir dir="${build.images}" />
295                 <copy todir="${build.images}">
296                         <fileset dir="${images.dir}">
297                                 <include name="**" />
298                         </fileset>
299                 </copy>
300
301                 <mkdir dir="${build.help}" />
302                 <copy todir="${build.help}">
303                         <fileset dir="${help.dir}" />
304                 </copy>
305
306                 <!-- Insert version informations -->
307                 <replace dir="${build.help}">
308                     <replacefilter
309                             token="${jabref.placeholder.version}" 
310                                 value="${jabref.version}" />
311                     <replacefilter
312                             token="${jabref.placeholder.year}" 
313                                 value="${jabref.year}" />
314                         <include name="**/About.html" />
315                 </replace>
316                 <replace dir="${build.openoffice.meta}" token="${jabref.placeholder.version}" value="${jabref.version}">
317                         <include name="meta.xml" />
318                 </replace>
319
320         </target>
321
322         <!-- Prepare for testing -->
323         <target name="buildtest" depends="build, compiletest" description="Build project for testing">
324
325                 <mkdir dir="${build.tests}" />
326                 <copy todir="${build.tests}">
327                         <fileset dir="${tests.dir}">
328                                 <include name="**" />
329                         </fileset>
330                 </copy>
331         </target>
332
333         <!-- generate and save some build infos !!! necessary for dynamic build infos !!! -->
334         <!-- todo : replace it by the replace task :-),
335           src/resource/build.properties = template
336           build/resource/build.properties = real info file
337         -->
338         <target name="buildinfos">
339                 <tstamp />
340                 <!-- get date -->
341                 <buildnumber />
342                 <!-- generate new build number -> build.number -->
343                 <echo message="build number = ${build.number}" />
344                 <!-- write the file, please do not edit this lines -->
345                 <echo file="${resource.dir}/build.properties">builddate=${TODAY}
346 build=${build.number}
347 version=${jabref.version}</echo>
348         </target>
349
350
351         <!-- Creates all docs -->
352         <target name="docs" depends="javadocs" description="Generates all the documentation" />
353
354         <!-- Creates javadocs -->
355         <target name="javadocs" depends="compile" description="Generates the javadocs">
356                 <mkdir dir="${build.javadocs}" />
357                 <javadoc sourcepath="${java.dir}" destdir="${build.javadocs}" author="true" version="true" windowtitle="JabRef API" link="http://docs.oracle.com/javase/6/docs/api/">
358
359                         <fileset dir="${java.dir}" defaultexcludes="yes">
360                                 <include name="**/*.java" />
361                         </fileset>
362
363                         <classpath refid="classpath" />
364                 </javadoc>
365         </target>
366
367         <!-- Creates javadocs for the extensions -->
368         <target name="extension-javadocs" depends="build" description="Generates the javadocs for the extensions archive">
369                 <mkdir dir="${build.extension-javadocs}" />
370                 <copy todir="${build.extension-javadocs}">
371                         <fileset dir="${help.dir}" defaultexcludes="yes">
372                                 <include name="CustomExports.html" />
373                                 <include name="CustomImports.html" />
374                         </fileset>
375                 </copy>
376
377                 <javadoc sourcepath="${java.dir}" destdir="${build.extension-javadocs}" author="true" version="true" windowtitle="JabRef-Extensions API" link="http://docs.oracle.com/javase/6/docs/api/" Overview="${extensions.dir}/API/overview.html" access="protected">
378                         <!-- 
379                  create javadoc only selectively for classes that 
380                  users extending JabRef are likely to use
381               -->
382                         <fileset dir="${java.dir}" defaultexcludes="yes">
383                                 <include name="net/sf/jabref/imports/ImportFormat.java" />
384                                 <include name="net/sf/jabref/imports/ImportFormatReader.java" />
385                                 <include name="net/sf/jabref/BibtexEntry.java" />
386                                 <include name="net/sf/jabref/BibtexEntryType.java" />
387                                 <include name="net/sf/jabref/AuthorList.java" />
388                                 <include name="net/sf/jabref/AuthorList.java" />
389                                 <include name="net/sf/jabref/export/layout/LayoutFormatter.java" />
390                         </fileset>
391
392                         <classpath refid="classpath" />
393                 </javadoc>
394         </target>
395
396         <!-- Creates javadocs for the extensions -->
397         <target name="extensions" depends="extension-javadocs" description="Generates the extensions archive">
398                 <!-- copy examples -->
399                 <copy todir="${build.extensions}">
400                         <fileset dir="${java.dir}">
401                                 <include name="net/sf/jabref/export/layout/format/CurrentDate.java" />
402                                 <include name="net/sf/jabref/export/layout/format/ToLowerCase.java" />
403                                 <include name="net/sf/jabref/export/layout/format/HTMLChars.java" />
404                                 <include name="net/sf/jabref/imports/*Importer.java" />
405                         </fileset>
406                 </copy>
407                 <mkdir dir="${build.extension-layout}" />
408                 <copy todir="${build.extension-layout}">
409                         <fileset dir="${layout.dir}" />
410                 </copy>
411                 <copy todir="${build.extensions}">
412                         <fileset dir="${extensions.dir}" />
413                         <filterset>
414                                 <filter token="version" value="${jabref.version}" />
415                         </filterset>
416                 </copy>
417                 <!-- create extensions-zip file -->
418                 <zip destfile="${build.dir}/jabref-extensions.zip">
419                         <zipfileset dir="${build.extensions}" prefix="jabref-extensions" />
420                 </zip>
421         </target>
422
423         <target name="clean" depends="win.installer.clean" description="Clean project">
424                 <delete dir="${build.dir}" />
425         </target>
426
427         <!-- Unpacks jar needed jar files from lib directory into temp directory. -->
428         <target name="unjarlib" description="Unpacks jars from library">
429                 <mkdir dir="${build.tmp}" />
430                 <unjar dest="${build.tmp}">
431                         <fileset refid="jarsFileset" />
432                         <fileset refid="splJars" />
433                 </unjar>
434                 <!-- done by MrDlib -->
435                 <delete includeEmptyDirs="true">
436                         <fileset refid="deletableMeta-InfFiles" />
437                 </delete>
438                 <!-- done by MrDlib -->
439                 <!-- rename the microba license file -->
440                 <move file="${build.tmp}/license.txt" tofile="${build.tmp}/microba-license.txt" />
441         </target>
442
443
444         <target name="osxjar">
445                 <jarbundler dir="${build.lib}"
446                     name="JabRef"
447                     mainclass="net.sf.jabref.JabRef"
448                     jars="${build.lib}/${build.jar}"
449                     icon="${images.dir}/JabRef-Logo.icns"
450                     version="${jabref.version}"
451                     jvmversion="1.5+"
452                     stubfile="${osxbin.dir}/JavaApplicationStub"
453                     signature="JABr">
454             <documenttype name="BibTeX file" extensions="bib" role="Editor"
455                           iconFile="${images.dir}/JabRef-Logo.icns"/>
456         </jarbundler>
457         <!-- After running jarbundler we need to hack the Info.plist file: -->
458         <replace file="${build.lib}/JabRef.app/Contents/Info.plist" token="&lt;key&gt;CFBundleDocumentTypes&lt;/key&gt;"
459             value="&lt;key&gt;NSPrincipalClass&lt;/key&gt;${line.separator}
460    &lt;string&gt;NSApplication&lt;/string&gt;${line.separator}
461    &lt;key&gt;CFBundleDocumentTypes&lt;/key&gt;"/>
462         </target>
463
464
465         <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
466         <!-- Build Windows Installer                                                    -->
467         <!--                                                                            -->
468         <!-- Don't forget to set nsis.executable property                               -->
469         <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
470
471         <target name="win.installer.clean" description="Delete Installer and Exe-Wrapper + Temp-files">
472                 <delete failonerror="false" dir="${win.installer.dir}/dist" />
473                 <delete file="${win.installer.dir}/JabRefSetup.exe" />
474         </target>
475
476         <target name="win.installer" description="Copy files in place to be used by the installer" depends="jars">
477
478                 <fail unless="is.windows" message="Not running on windows or NSIS not found. Please make sure that user.properties exists" />
479
480                 <!-- Gather everything that will go into the installer in dist -->
481                 <mkdir dir="${win.installer.dir}/dist" />
482
483                 <copy file="${build.lib}/${build.jar}" todir="${win.installer.dir}/dist" />
484
485                 <available property="win.installer.jar.available" file="${win.installer.dir}/dist/${build.jar}" />
486
487                 <fail unless="win.installer.jar.available" message="Did not find jar: ${build.jar}" />
488
489                 <copy todir="${win.installer.dir}/dist">
490                         <fileset dir="${txt.dir}">
491                                 <include name="gpl2.txt" />
492                                 <include name="gpl3.txt" />
493                                 <include name="lesser.txt" />
494                                 <include name="README" />
495                         </fileset>
496                 </copy>
497
498                 <!-- "Create Exe-Wrapper" -->
499                 <exec dir="." executable="${nsis.executable}" failonerror="true">
500                   <arg line="'/DJARFILE=${build.jar}' '/DVERSION=${jabref.version}' '/DAPPICON=../../../${images.dir}/JabRef.ico' ${win.installer.dir}/launcher.nsi" />
501                 </exec>
502
503                 <!-- Finally create Windows-Installer -->
504                 <exec dir="." executable="${nsis.executable}" failonerror="true">
505                         <arg line="'/DVERSION=${jabref.version}' ${win.installer.dir}/setup.nsi" />
506                 </exec>
507
508                 <delete dir="${win.installer.dir}/dist" />
509
510         </target>
511
512         <target name="win.installer.linux" description="Copy files in place to be used by the installer" depends="jars">
513
514                 <!-- Gather everything that will go into the installer in dist -->
515                 <mkdir dir="${win.installer.dir}/dist" />
516
517                 <copy file="${build.lib}/${build.jar}" todir="${win.installer.dir}/dist" />
518
519                 <available property="win.installer.jar.available" file="${win.installer.dir}/dist/${build.jar}" />
520
521                 <fail unless="win.installer.jar.available" message="Did not find jar: ${build.jar}" />
522
523                 <copy todir="${win.installer.dir}/dist">
524                         <fileset dir="${txt.dir}">
525                                 <include name="gpl2.txt" />
526                                 <include name="gpl3.txt" />
527                                 <include name="lesser.txt" />
528                                 <include name="README" />
529                         </fileset>
530                 </copy>
531
532                 <!-- "Create Exe-Wrapper" -->
533                 <exec dir="." executable="${nsis.executable.linux}" failonerror="true">
534                   <arg line="'-DJARFILE=${build.jar}' '-DVERSION=${jabref.version}' '-DAPPICON=../../../${images.dir}/JabRef.ico' ${win.installer.dir}/launcher.nsi" />
535                 </exec>
536
537                 <!-- Finally create Windows-Installer -->
538                 <exec dir="." executable="${nsis.executable.linux}" failonerror="true">
539                         <arg line="'-DVERSION=${jabref.version}' ${win.installer.dir}/setup.nsi" />
540                 </exec>
541
542                 <delete dir="${win.installer.dir}/dist" />
543
544         </target>
545
546         <target name="test" depends="buildtest" description="Runs all unit tests">
547                 <java fork="yes" classname="junit.textui.TestRunner" failonerror="true">
548                         <arg value="tests.net.sf.jabref.AllTests" />
549                         <classpath refid="classpathTest" />
550                 </java>
551         </target>
552
553
554
555         <!--+++++++++++++++++++++++++++++++++++++++++++++++++
556            Auxiliary targets
557           +++++++++++++++++++++++++++++++++++++++++++++++++-->
558
559         <target name="profile" depends="jars" description="Profile JabRef">
560                 <fail unless="netbeans.home">This target can only run inside the NetBeans IDE.</fail>
561
562                 <nbprofiledirect>
563                         <classpath refid="classpath" />
564                 </nbprofiledirect>
565
566                 <property environment="env" />
567                 <java fork="true" classname="net.sf.jabref.JabRef" dir="${build.dir}" jvm="${profiler.info.jvm}">
568                         <jvmarg value="${profiler.info.jvmargs.agent}" />
569                         <jvmarg line="${profiler.info.jvmargs}" />
570                         <env key="LD_LIBRARY_PATH" path="${profiler.info.agentpath}:${env.LD_LIBRARY_PATH}" />
571                         <classpath refid="classpath" />
572                 </java>
573         </target>
574
575         <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
576         What's about the software design ?!;-)
577     ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
578
579         <target name="jalopy" description="SOFTWAREDESIGN: source code formatter using the JOELib convention.">
580                 <taskdef name="jalopy" classname="de.hunsicker.jalopy.plugin.ant.AntPlugin">
581                         <classpath>
582                                 <pathelement path="${classpath}" />
583                                 <fileset dir="${lib.dir}">
584                                         <include name="*.jar" />
585                                 </fileset>
586                                 <fileset dir="${buildlib.dir}">
587                                         <include name="*.jar" />
588                                 </fileset>
589                         </classpath>
590                 </taskdef>
591                 <jalopy fileformat="unix" convention="${src.dir}/java/jalopy.format.convention.xml" history="file" historymethod="adler32" loglevel="error" threads="2" classpathref="classpath" backup="bak">
592                         <fileset dir="${src.dir}">
593                                 <include name="java/net/sf/jabref/**/*.java" />
594                         </fileset>
595                 </jalopy>
596         </target>
597
598         <taskdef name="jarbundler" classpath="${buildlib.dir}/jarbundler-2.2.0.jar" classname="net.sourceforge.jarbundler.JarBundler" />
599
600 </project>