/[pdpsoft]/tags/nl.nikhef.jgridstart-release-1.0beta2/nl.nikhef.jgridstart/build.xml
ViewVC logotype

Annotation of /tags/nl.nikhef.jgridstart-release-1.0beta2/nl.nikhef.jgridstart/build.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 838 - (hide annotations) (download)
Tue Sep 22 13:14:26 2009 UTC (12 years, 7 months ago) by wvengen
File MIME type: text/plain
File size: 15848 byte(s)
new minor beta release
1 wvengen 178 <?xml version="1.0" encoding="utf-8"?>
2     <project name="jgridstart" default="compile">
3 wvengen 821 <description>jGridstart build file</description>
4 wvengen 178
5     <!--
6     - Property definitions
7     -->
8 wvengen 183 <!-- display name -->
9 wvengen 821 <property name="target.title" value="jGridstart"/>
10 wvengen 183 <!-- internal name -->
11 wvengen 178 <property name="target.name" value="${ant.project.name}"/>
12 wvengen 183 <!-- the program's version -->
13 wvengen 821 <property name="target.version" value="1.0beta1"/>
14 wvengen 183 <!-- main class to execute -->
15 wvengen 178 <property name="target.main" value="nl.nikhef.jgridstart.gui.Main"/>
16 wvengen 183 <!-- java virtual machine version to compile for -->
17 wvengen 178 <property name="target.jvmversion" value="1.5"/>
18    
19 wvengen 183 <!-- Java Web Start base url (for use in JNLP files) -->
20 wvengen 561 <property name="wwwbase" value="http://www.nikhef.nl/~wvengen/jgridstart-devel/"/>
21 wvengen 178
22 wvengen 183 <!-- location of source files -->
23     <property name="dir.src" location="src"/>
24     <!-- location of compiled classes -->
25     <property name="dir.build" location="bin"/>
26     <!-- location of output files for deployment -->
27     <property name="dir.dist" location="deployment"/>
28     <!-- location of thirdparty libraries -->
29     <property name="dir.thirdparty" location="thirdparty"/>
30 wvengen 487 <!-- location of javadoc output -->
31     <property name="dir.javadoc" location="doc"/>
32 wvengen 514 <!-- location of junit test output -->
33     <property name="dir.testreports" location="testreports"/>
34 wvengen 183
35 wvengen 464 <!-- extra tool definitions -->
36     <property name="browsertool.target.name" value="browsertool"/>
37     <property name="browsertool.target.main" value="nl.nikhef.jgridstart.install.BrowserTool"/>
38 wvengen 707
39     <property name="tests.target.name" value="tests"/>
40     <property name="tests.target.main" value="nl.nikhef.jgridstart.AllTests"/>
41 wvengen 464
42 wvengen 183 <!-- reference to property file defining the properties
43     - keystore.file java keystore file
44     - keystore.passwd password for accessing the java keystore
45     - keystore.alias alias pointing to certificate to sign with
46     - if the property file cannot be found or does not define a keystore.file
47     - that points to a file, a self-signed certificate is generated so you can
48     - get started easily. For production, of course, you'll need your own
49     - secure certificate that users can trust.
50     - An example keystore.properties could be as follows:
51     - keystore.file = ${dir.keystore}/keystore.ks
52     - keystore.alias = default
53     - keystore.passwd = mysecret
54     -->
55 wvengen 178 <property name="dir.keystore" location=".."/>
56     <property file="${dir.keystore}/keystore.properties"/>
57 wvengen 621
58 wvengen 250 <!--
59     - dependencies
60     -->
61    
62 wvengen 400 <property name="dep.bouncycastle" location="${dir.thirdparty}/bouncycastle/bcprov-jdk14-143.jar"/>
63 wvengen 707 <basename property="dep.bouncycastle.basename" file="${dep.bouncycastle}"/>
64 wvengen 400 <property name="dep.bouncycastle.smime" location="${dir.thirdparty}/bouncycastle/bcmail-jdk14-143.jar"/>
65 wvengen 665 <property name="dep.bouncycastle.tsp" location="${dir.thirdparty}/bouncycastle/bctsp-jdk14-143.jar"/>
66 wvengen 553 <property name="dep.javamail" location="${dir.thirdparty}/bouncycastle/mail-1.4.1.jar"/>
67 wvengen 595 <property name="dep.commons-cli" location="${dir.thirdparty}/commons/commons-cli-1.2.jar"/>
68     <property name="dep.commons-lang" location="${dir.thirdparty}/commons/commons-lang-2.4.jar"/>
69 wvengen 180 <property name="dep.junit" location="${dir.thirdparty}/junit/junit-4.5.jar"/>
70 wvengen 364 <property name="dep.abbot" location="${dir.thirdparty}/junit/abbot.jar"/>
71 wvengen 250 <property name="dep.swingworker" location="${dir.thirdparty}/swingworker/swing-worker-1.2.jar"/>
72 wvengen 196 <property name="dep.xhtmlrenderer" location="${dir.thirdparty}/flyingsaucer/core-renderer-minimal.jar"/>
73 wvengen 253 <property name="dep.itext" location="${dir.thirdparty}/flyingsaucer/iText-2.0.8.jar"/>
74 wvengen 444 <property name="dep.winregistry" location="${dir.thirdparty}/winregistry/WinRegistry-3.4.jar"/>
75 wvengen 487 <property name="dep.apiviz" location="${dir.thirdparty}/javadoc/apiviz-1.3.0.GA.jar"/>
76 wvengen 555 <!-- activation framework is present in Java 1.6 and we don't use
77     it apart for resolving; so we can omit it when compiling there
78 wvengen 557 to avoid ProGuard Warnings (which are fatal); so we need it for
79     lower versions. This is a little trick with ProGuard's jarfilter -->
80     <property name="dep.activation" location="${dir.thirdparty}/bouncycastle/activation.jar"/>
81 wvengen 178 <path id="path.dependencies">
82     <!-- TODO use jdk13 library versions and test -->
83     <pathelement location="${dep.bouncycastle}"/>
84 wvengen 553 <pathelement location="${dep.bouncycastle.smime}"/>
85     <pathelement location="${dep.javamail}"/>
86 wvengen 595 <pathelement location="${dep.commons-lang}"/>
87     <pathelement location="${dep.commons-cli}"/>
88 wvengen 180 <pathelement location="${dep.junit}"/>
89 wvengen 364 <pathelement location="${dep.abbot}"/>
90 wvengen 250 <pathelement location="${dep.swingworker}"/> <!-- for java1.5 and below -->
91 wvengen 196 <pathelement location="${dep.xhtmlrenderer}"/>
92 wvengen 553 <pathelement location="${dep.itext}"/>
93 wvengen 444 <pathelement location="${dep.winregistry}"/>
94 wvengen 178 </path>
95 wvengen 595
96 wvengen 597 <patternset id="distfiles">
97 wvengen 595 <!-- exclude non-production files -->
98     <exclude name="**/test*"/>
99     <exclude name="**/*test/**"/>
100     <exclude name="**/*tests/**"/>
101     <exclude name="**/package.html"/>
102     <exclude name="**/*Test.class"/>
103     <exclude name="**/*Test$*.class"/>
104     <exclude name="**/AllTests.class"/>
105     <exclude name="**/AllTests$*.class"/>
106     <exclude name="**/CVS"/>
107     <exclude name="**/.svn"/>
108 wvengen 597 </patternset>
109 wvengen 707
110     <!-- files to include as dependencies in jars -->
111     <resources id="depfiles">
112     <zipfileset src="${dep.commons-lang}" includes="**/*.class"/>
113     <zipfileset src="${dep.commons-cli}" includes="**/*.class"/>
114     <zipfileset src="${dep.swingworker}" includes="**/*.class"/>
115     <zipfileset src="${dep.xhtmlrenderer}">
116     <include name="**/*.class"/>
117     <exclude name="**/tool/**"/>
118     <exclude name="**/swt/**"/>
119     <exclude name="**/SWT**"/>
120     </zipfileset>
121     <zipfileset src="${dep.itext}">
122     <include name="**/*.class"/>
123     <include name="**/fonts/*"/>
124     <exclude name="**/tools/**"/>
125     </zipfileset>
126     <zipfileset src="${dep.winregistry}" includes="**/*.class"/>
127     <!-- iText needs some org.bouncycastle.cms classes but some other classes in this
128     package reference javax.mail which we don't want to include as well (so that
129     ProGuard can resolve them). Solution: only include part of the smime package.
130 wvengen 772 In addition to this, certificate renewal also requires S/MIME mail stuff. -->
131 wvengen 707 <zipfileset src="${dep.bouncycastle.smime}">
132     <include name="org/bouncycastle/cms/**"/>
133     <include name="org/bouncycastle/mail/smime/*.class/"/>
134     <include name="org/bouncycastle/mail/smime/util/*.class/"/>
135     </zipfileset>
136     <zipfileset src="${dep.bouncycastle.tsp}" includes="**/*.class"/>
137     <zipfileset src="${dep.javamail}" includes="**/*.class"/>
138 wvengen 772 <zipfileset src="${dep.activation}" includes="**/*.class"/>
139 wvengen 707 </resources>
140    
141 wvengen 178
142     <!--
143     - Initialisation and other setup
144     -->
145 wvengen 183
146     <!-- keystore; create one if not supplied -->
147     <available file="${keystore.file}" type="file" property="keystore.available"/>
148     <target name="keystore" unless="keystore.available">
149     <tempfile property="keystore.file" prefix="keystore" suffix=".ks"/>
150     <property name="keystore.tempfile" value="${keystore.file}"/>
151     <property name="keystore.alias" value="default"/>
152     <property name="keystore.passwd" value="xyz12345"/>
153     <genkey alias="${keystore.alias}" storepass="${keystore.passwd}" keystore="${keystore.file}"
154     validity="1" dname="CN=Test, OU=Test, O=Test, C=Test"/>
155     </target>
156    
157     <!-- proguard -->
158 wvengen 178 <taskdef resource="proguard/ant/task.properties"
159     classpath="${dir.thirdparty}/proguard/proguard.jar"/>
160 wvengen 621 <!-- subversion -->
161 wvengen 728 <typedef resource="org/tigris/subversion/svnant/svnantlib.xml">
162 wvengen 621 <classpath><fileset dir="${dir.thirdparty}/svnant">
163 wvengen 728 <include name="*.jar"/>
164 wvengen 621 </fileset></classpath>
165     </typedef>
166 wvengen 728 <svn failonerror="false"><wcVersion path="." prefix="svn."/></svn>
167     <property name="target.revision" value="${svn.revision.range}"/>
168 wvengen 183 <!-- timestamp -->
169 wvengen 178 <target name="init">
170     <tstamp/>
171     </target>
172    
173     <!--
174     - Compilation target
175     -->
176     <target name="compile" depends="init">
177     <mkdir dir="${dir.build}"/>
178     <!-- compile java sources -->
179     <javac srcdir="${dir.src}" destdir="${dir.build}" target="${target.jvmversion}">
180     <classpath refid="path.dependencies" />
181     </javac>
182 wvengen 621 <!-- copy resources; skip VCS dirs (and other hidden .*) -->
183 wvengen 178 <copy todir="${dir.build}">
184     <fileset dir="${dir.src}">
185     <exclude name="**/*.java"/>
186     <exclude name="**/CVS"/>
187     <exclude name="**/.*"/>
188 wvengen 621 <exclude name="resources/conf/global.properties"/>
189 wvengen 178 </fileset>
190     </copy>
191 wvengen 621 <!-- set global variables from build -->
192     <copy file="${dir.src}/resources/conf/global.properties"
193     tofile="${dir.build}/resources/conf/global.properties">
194     <filterchain>
195     <replacetokens>
196     <token key="jgridstart.version" value="${target.version}"/>
197     <token key="jgridstart.revision" value="${target.revision}"/>
198     </replacetokens>
199     </filterchain>
200     </copy>
201 wvengen 178 </target>
202 wvengen 557
203 wvengen 178 <!--
204 wvengen 557 - Full JAR creation target
205 wvengen 178 -->
206 wvengen 557 <target name="jar.large" depends="compile">
207 wvengen 178 <jar jarfile="${dir.dist}/${target.name}.large.jar">
208     <manifest>
209     <attribute name="Built-By" value="${user.name}"/>
210     <attribute name="Main-Class" value="${target.main}"/>
211 wvengen 390 <attribute name="Class-Path" value="${dep.bouncycastle.basename}"/>
212 wvengen 178 </manifest>
213 wvengen 597 <fileset dir="${dir.build}">
214     <patternset refid="distfiles"/>
215     </fileset>
216 wvengen 707 <resources refid="depfiles"/>
217 wvengen 178 </jar>
218 wvengen 557 </target>
219 wvengen 562
220 wvengen 557 <!--
221 wvengen 562 - ProGuard-minimised JAR creation
222 wvengen 557 -->
223 wvengen 562 <target name="jar.small" depends="jar.large">
224 wvengen 178 <!-- minimize jar file; skipnonpubliclibraryclasses needed for java1.6 -->
225     <proguard obfuscate="false" skipnonpubliclibraryclasses="false">
226     <injar file="${dir.dist}/${target.name}.large.jar"/>
227 wvengen 612 <outjar file="${dir.dist}/${target.name}.small.jar"/>
228 wvengen 178 <libraryjar file="${java.home}/lib/rt.jar"/>
229 wvengen 399 <libraryjar file="${java.home}/lib/jce.jar"/>
230 wvengen 196 <libraryjar file="${java.home}/lib/jsse.jar"/>
231 wvengen 178 <libraryjar file="${dep.bouncycastle}"/>
232 wvengen 250 <libraryjar file="${dep.junit}"/>
233 wvengen 364 <libraryjar file="${dep.abbot}"/>
234 wvengen 250 <keepclasseswithmembers access="public">
235 wvengen 178 <method access="public static" type="void"
236     name="main" parameters="java.lang.String[]"/>
237     </keepclasseswithmembers>
238 wvengen 612 <!-- Somehow xhtmlrenderer classes are stripped too much, this is a workaround. Error e.g.
239     "Invalid index 2 in LocalVariableTable in class file org/xhtmlrenderer/render/Box" -->
240     <keepclasseswithmembers name="org.xhtmlrenderer.render.Box">
241     <method name="*"/>
242     </keepclasseswithmembers>
243     <keepclasseswithmembers name="org.xhtmlrenderer.swing.NaiveUserAgent">
244     <method name="*"/>
245     </keepclasseswithmembers>
246     <keepclasseswithmembers name="org.xhtmlrenderer.css.**">
247     <method name="*"/>
248     </keepclasseswithmembers>
249     <keepclasseswithmembers name="org.xhtmlrenderer.newtable.**">
250     <method name="*"/>
251     </keepclasseswithmembers>
252 wvengen 665 <keepclasseswithmembers name="org.xhtmlrenderer.resource.XMLResource**">
253     <method name="*"/>
254     </keepclasseswithmembers>
255 wvengen 298 <!-- logging is dynamically configured -->
256     <keepclasseswithmembers access="public" name="org.xhtmlrenderer.util.XRSimpleLogFormatter">
257     <method name="*"/>
258     </keepclasseswithmembers>
259     <keepclasseswithmembers access="public" name="org.xhtmlrenderer.util.Configuration">
260     <method name="*"/>
261     </keepclasseswithmembers>
262 wvengen 735 <!-- CA class used is set in configfile -->
263     <keepclasseswithmembers name="nl.nikhef.jgridstart.ca.**">
264     <method name="*"/>
265     </keepclasseswithmembers>
266 wvengen 562 </proguard>
267     </target>
268    
269     <!--
270     - Distribution creation target
271     -->
272 wvengen 838 <target name="dist" depends="keystore,jar.large">
273 wvengen 562 <!-- copy large/small jar to distribution -->
274 wvengen 838 <copy file="${dir.dist}/${target.name}.large.jar" tofile="${dir.dist}/${target.name}.jar"/>
275 wvengen 178 <!-- sign it, required for java web start -->
276     <signjar keystore="${keystore.file}" jar="${dir.dist}/${target.name}.jar"
277 wvengen 183 alias="${keystore.alias}" storepass="${keystore.passwd}"/>
278     <delete file="${keystore.tempfile}" quiet="true"/>
279 wvengen 178 <!-- substitute variables in java web start files -->
280     <copy file="${dir.dist}/${target.name}.jnlp.in" tofile="${dir.dist}/${target.name}.jnlp" />
281     <copy file="${dir.dist}/bcprov.jnlp.in" tofile="${dir.dist}/bcprov.jnlp" />
282     <replace dir="${dir.dist}">
283     <include name="${target.name}.jnlp"/>
284     <include name="bcprov.jnlp"/>
285     <replacefilter token="@wwwbase@" value="${wwwbase}"/>
286     <replacefilter token="@main@" value="${target.main}"/>
287     </replace>
288 wvengen 182 <!-- copy bouncycastle jar to deployment area -->
289     <copy file="${dep.bouncycastle}" todir="${dir.dist}"/>
290 wvengen 178 </target>
291    
292     <!--
293     - Cleaning target
294     -->
295     <target name="clean">
296     <delete dir="${dir.build}"/>
297     <delete file="${dir.dist}/${target.name}.jar"/>
298     <delete file="${dir.dist}/${target.name}.jnlp"/>
299     <delete file="${dir.dist}/bcprov.jnlp"/>
300 wvengen 182 <delete file="${dir.dist}/${dep.bouncycastle.basename}"/>
301 wvengen 707 <delete file="${dir.dist}/${browsertool.target.name}.jar"/>
302     <delete file="${dir.dist}/${tests.target.name}.jar"/>
303 wvengen 178 </target>
304    
305 wvengen 464 <!--
306     - extra targets
307     -->
308 wvengen 707 <!-- browsertool -->
309 wvengen 464 <target name="browsertool" depends="compile">
310     <jar jarfile="${dir.dist}/${browsertool.target.name}.jar">
311     <manifest>
312     <attribute name="Built-By" value="${user.name}"/>
313     <attribute name="Main-Class" value="${browsertool.target.main}"/>
314     </manifest>
315 wvengen 597 <fileset dir="${dir.build}">
316     <patternset refid="distfiles"/>
317 wvengen 464 <include name="nl/nikhef/jgridstart/install/**"/>
318     <include name="nl/nikhef/jgridstart/util/**"/>
319     </fileset>
320 wvengen 599 <zipfileset src="${dep.commons-cli}" includes="**/*.class"/>
321 wvengen 464 <zipfileset src="${dep.winregistry}" includes="**/*.class"/>
322     </jar>
323     <!-- sign it, required for java web start -->
324     <signjar keystore="${keystore.file}" jar="${dir.dist}/${browsertool.name}.jar"
325     alias="${keystore.alias}" storepass="${keystore.passwd}"/>
326     </target>
327 wvengen 707
328     <!-- archive with unit tests -->
329     <target name="jar.tests" depends="compile">
330     <jar jarfile="${dir.dist}/${tests.target.name}.jar">
331     <manifest>
332     <attribute name="Built-By" value="${user.name}"/>
333     <attribute name="Main-Class" value="${tests.target.main}"/>
334     <attribute name="Class-Path" value="${dep.bouncycastle.basename}"/>
335     </manifest>
336     <fileset dir="${dir.build}"/>
337     <resources refid="depfiles"/>
338     <zipfileset src="${dep.junit}" includes="**/*.class"/>
339     <zipfileset src="${dep.abbot}" includes="**/*.class"/>
340     </jar>
341     </target>
342 wvengen 464
343 wvengen 487 <!-- javadoc with APIviz, needs graphviz >= 2.20 -->
344     <target name="javadoc" depends="compile">
345     <javadoc
346     destdir="${dir.javadoc}"
347     classpathref="path.dependencies"
348     access="protected" source="${target.jvmversion}"
349     doclet="org.jboss.apiviz.APIviz" docletpath="${dep.apiviz}" additionalparam="-sourceclasspath ${dir.build}">
350     <sourcefiles>
351     <fileset dir="${dir.src}">
352     <include name="**/*.java"/>
353 wvengen 492 <exclude name="**/*Test.*"/>
354     <exclude name="**/AllTests.*"/>
355 wvengen 487 </fileset>
356     </sourcefiles>
357     <link href="http://java.sun.com/j2se/1.5.0/docs/api/"/>
358     <link href="http://bouncycastle.org/docs/docs1.4/"/>
359     <link href="http://bouncycastle.org/docs/mdocs1.4/"/>
360 wvengen 595 <link href="http://commons.apache.org/lang/api-release/"/>
361 wvengen 487 <link href="http://commons.apache.org/cli/api-1.2/"/>
362     <link href="http://junit.org/junit/javadoc/4.5/"/>
363     <link href="http://abbot.sourceforge.net/doc/api/"/>
364     <link href="https://swingworker.dev.java.net/nonav/javadoc/"/>
365     <link href="http://pigeonholdings.com/projects/flyingsaucer/R8/javadoc/user/"/>
366     <link href="http://www.1t3xt.info/api/"/>
367 wvengen 553 <link href="http://java.sun.com/products/javamail/javadocs/"/>
368 wvengen 514 <!-- no online javadoc found for WinRegistry -->
369 wvengen 487 </javadoc>
370     </target>
371 wvengen 514
372     <!-- test report -->
373     <target name="testreport" depends="compile">
374     <junit fork="yes" haltonfailure="no">
375     <test fork="yes" todir="${dir.testreports}" name="nl.nikhef.jgridstart.AllTests"/>
376     <formatter type="xml"/>
377     <classpath refid="path.dependencies"/>
378     <classpath path="${dir.build}"/>
379     </junit>
380     </target>
381 wvengen 253 </project>

Properties

Name Value
svn:mime-type text/plain

grid.support@nikhef.nl
ViewVC Help
Powered by ViewVC 1.1.28