root/branches/stable-2008-03-12/pfixcore/build.xml

Revision 3434, 13.5 kB (checked in by mtld, 10 months ago)

changed version to 0.12.3-pre

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "ant.dtd">
3 <!-- ant.dtd is generated by target dtd. This is not done automatically.
4 If any problems arise either regenerate ant.dtd by invoking ant dtd
5 or delete the DOCTYPE definition -->
6
7 <project name="pfixcore" default="all" basedir=".">
8   <!-- override properties -->
9   <property name="dir.projects"           location="projects"/>
10  
11   <import file="skel/build-skel.xml"/>
12   <import file="build-maven.xml"/>
13
14   <property name="dist.version"        value="0.12.3-pre" description="the version to use for pfixcore-*.*"/>
15   <property name="dist.type"           value="build" description="distribution type: supported values release, build"/>
16
17   <!-- additional properties -->
18   <property name="name.svnrevision"       value="SVN_REVISION"/>
19   <property name="dir.metainf"            location="META-INF"/>
20   <property name="dir.dist"               location="dist"/>
21   <property name="dir.toconf"             value="${dir.projects}/common/conf/"/>
22   <property name="name.testskel"          value="testskel"/>
23   <property name="dir.testskel"           location="${name.testskel}"/>
24   <property name="dir.examplepage"        location="${dir.projects}/simplepage"/>
25   <property name="name.examplepage"       value="simplepage"/>
26   <property name="dir.examplelink"        location="${dir.projects}/simplelink"/>
27   <property name="name.examplelink"       value="simplelink"/>
28   <property name="dir.exampleform"        location="${dir.projects}/simpleform"/>
29   <property name="name.exampleform"       value="simpleform"/>
30
31   <!-- initialize distribution type dependent properties used for creation of distribution files -->
32
33   <target name="dist-properties">
34     <exec executable="sh" outputproperty="dist.revision" errorproperty="dist.revision.error">
35       <arg line="-c 'svn info | grep ^Revision: | cut -d\  -f2'"/>
36     </exec>                                                                                                   
37     <condition property="project.version" value="${dist.version}">
38       <equals arg1="${dist.type}" arg2="release"/>
39     </condition>
40     <condition property="project.version" value="${dist.version}-norev">
41       <and>
42         <equals arg1="${dist.type}" arg2="build"/>
43         <not><equals arg1="${dist.revision.error}" arg2=""/></not>
44       </and>
45     </condition>
46     <condition property="project.version" value="${dist.version}-r${dist.revision}">
47       <equals arg1="${dist.type}" arg2="build"/>
48     </condition>
49     <property name="name.pfixcore_jar"      value="${project.name}-${project.version}.jar"/>
50     <property name="file.pfixcore_jar"      location="${dir.dist}/${name.pfixcore_jar}"/>
51     <property name="name.pfixcore_srcjar"   value="${project.name}-src-${project.version}.jar"/>
52     <property name="file.pfixcore_srcjar"   location="${dir.dist}/${name.pfixcore_srcjar}"/>
53     <property name="name.pfixcore_data_tgz" value="${project.name}-data-${project.version}.tar.gz"/>
54     <property name="file.pfixcore_data_tgz" location="${dir.dist}/${name.pfixcore_data_tgz}"/>
55     <property name="name.pfixcore_skel_tgz" value="${project.name}-skel-${project.version}.tar.gz"/>
56     <property name="file.pfixcore_skel_tgz" location="${dir.dist}/${name.pfixcore_skel_tgz}"/>
57     <property name="name.pfixcore_examples_tgz" value="${project.name}-examples-${project.version}.tar.gz"/>
58     <property name="file.pfixcore_examples_tgz" location="${dir.dist}/${name.pfixcore_examples_tgz}"/>
59   </target>
60
61   <!-- override targets -->
62    
63   <!-- TODO: always compiles before invoking skel.ant-tasks? -->
64   <target name="ant-tasks" depends="ant-tasks-compile, skel.ant-tasks"/>
65   <target name="ant-tasks-stage1" depends="ant-tasks-compile-stage1, skel.ant-tasks-stage1"/>
66   <target name="ant-tasks-stage2" depends="ant-tasks-compile-stage2, skel.ant-tasks-stage2"/>
67    
68   <target name="init" depends="skel.init">
69     <mkdir dir="${dir.dist}"/>
70   </target>
71    
72   <target name="ant-tasks-compile" depends="ant-tasks-compile-stage2">
73   </target>
74  
75   <target name="ant-tasks-compile-stage1" depends="tomcat.dir.opt, init" description="compiles java files needed by ant-tasks">
76     <javac
77      srcdir="${dir.src}"
78      destdir="${dir.build}"
79      includes="de/schlund/pfixcore/util/XsltGenericTask.java, de/schlund/pfixxml/config/BuildTimePropTask.java, de/schlund/pfixcore/util/GenerateSCodes.java"
80      debug="${debug}"
81      classpathref="cp.classpath"
82      sourcepath="${dir.src}"
83      encoding="${javac.encoding}"
84      >
85     </javac>
86   </target>
87  
88   <target name="ant-tasks-compile-stage2" depends="scgenerate, ant-tasks-compile-stage1" description="compiles java files needed by ant-tasks">
89     <javac
90      srcdir="${dir.src}"
91      destdir="${dir.build}"
92      includes="de/schlund/pfixcore/util/Xslt*.java, de/schlund/pfixcore/util/*Task.java, de/schlund/pfixxml/util/StringUtil.java, de/schlund/pfixcore/webservice/config/*.java, de/schlund/pfixcore/webservice/jaxws/generate/*.java, de/schlund/pfixcore/generator/iwrpgen/AptTask.java"
93      debug="${debug}"
94      classpathref="cp.classpath"
95      sourcepath="${dir.src}"
96      encoding="${javac.encoding}"
97      >
98     </javac>
99   </target>
100
101   <target name="pre-compile" depends="init" description="compiles AnnotationProcessors used by apt">
102     <javac
103       srcdir="${dir.src}"
104       destdir="${dir.build}"
105       includes="de/schlund/pfixcore/util/CommonAnnotationProcessorFactory.java, de/schlund/pfixcore/generator/iwrpgen/IWrapperAnnotationProcessor.java, de/schlund/pfixcore/generator/iwrpgen/IWrapperAnnotationProcessorFactory.java"
106       classpathref="cp.classpath"
107       sourcepath="${dir.src}"
108       encoding="${javac.encoding}"/>
109   </target>
110
111   <target name="clean-project" depends="skel.clean-project">
112     <delete dir="${dir.dist}"/>
113     <!-- Delete empty htdocs and img dirs in the dist examples -->
114     <delete includeemptydirs="true">
115       <fileset dir="${dir.examplepage}" includes="htdocs/**"/>
116       <fileset dir="${dir.examplepage}" includes="img/**"/>
117       <fileset dir="${dir.examplelink}" includes="htdocs/**"/>
118       <fileset dir="${dir.examplelink}" includes="img/**"/>
119       <fileset dir="${dir.exampleform}" includes="htdocs/**"/>
120       <fileset dir="${dir.exampleform}" includes="img/**"/>
121     </delete>
122   </target>
123        
124   <target name="realclean-core"><!-- override target - we don't delete the core directory here -->
125     <delete dir="${dir.tomcat}"/>
126     <delete dir="${dir.testskel}"/>
127   </target>
128    
129   <target name="init-data">
130     <!-- override skel.init-data: do nothing -->
131   </target>
132    
133   <target name="dist" depends="clean, init, dist-examples" description="Builds release files in dist directory.">
134     <delete file="${dir.metainf}/${name.svnrevision}"/>
135     <exec executable="svn" outputproperty="dist.autotagmessage">
136       <arg line="info"/>
137     </exec>
138     <!-- looks funny, but if someone called something like
139          "ant jar dist" the jar file would have a wrong SVN_REVISION file -->
140     <antcall target="skeleton" inheritall="true">
141       <param name="autotagmessage" value="${dist.autotagmessage}"/>
142     </antcall>
143   </target>
144
145   <!-- Building the basic examples for dist -->
146   <target name="dist-examples" depends="clean, init, dist-properties" description="Builds three basic examples as a pustefix turorial">
147     <echo message="Building ${name.pfixcore_examples_tgz} in dist directory"/>
148
149     <!-- creating the empty htdocs and img directories -->
150     <mkdir dir="${dir.examplepage}/htdocs"/>
151     <mkdir dir="${dir.examplepage}/img"/>
152     <mkdir dir="${dir.examplelink}/htdocs"/>
153     <mkdir dir="${dir.examplelink}/img"/>
154     <mkdir dir="${dir.exampleform}/htdocs"/>
155     <mkdir dir="${dir.exampleform}/img"/>
156
157     <!-- Deleting the old tar and also the configuration files -->
158     <delete file="${file.pfixcore_examples_tgz}">
159       <fileset dir="${dir.examplepage}/conf" excludes="**.in **.conf.xml depend.xml"/>
160       <fileset dir="${dir.examplelink}/conf" excludes="**.in **.conf.xml depend.xml"/>
161       <fileset dir="${dir.exampleform}/conf" excludes="**.in **.conf.xml depend.xml"/>
162     </delete>
163
164     <!-- Building the example tar with the main java and iwrp files -->
165     <tar destfile="${file.pfixcore_examples_tgz}" compression="gzip">
166       <tarfileset dir="${dir.examplepage}" includes="**" prefix="${name.examplepage}"/>
167       <tarfileset dir="${dir.projects}" includes="README_EXAMPLES.txt"/>
168       <tarfileset dir="${dir.examplelink}" includes="**" prefix="${name.examplelink}"/>
169       <tarfileset dir="${dir.exampleform}" includes="**" prefix="${name.exampleform}"/>
170       <tarfileset dir="${dir.src}" includes="de/skelexamples/DemoText.iwrp" prefix="src"/>
171       <tarfileset dir="${dir.src}" includes="de/skelexamples/ContextDemoText.java" prefix="src"/>
172       <tarfileset dir="${dir.src}" includes="de/skelexamples/ContextDemoTextImpl.java" prefix="src"/>
173       <tarfileset dir="${dir.src}" includes="de/skelexamples/DemoTextHandler.java" prefix="src"/>
174     </tar>
175   </target>
176
177
178   <!-- a target to create a new project -->
179   <target name="new-basicapp" depends="compile" description="Builds a naked application and creates the basic stuff">
180     <java classname="de.schlund.pfixcore.util.basicapp.InitNewPfixProject">
181       <classpath refid="cp.classpath"/>
182     </java>
183   </target>
184
185   <target name="fixtabs">
186     <fixcrlf srcdir="${basedir}" includes="build.xml, skel/build.xml" tab="remove" tablength="4"/>
187   </target>
188
189   <target name="skeleton" depends="tomcat.dir, ant-tasks, fixtabs, compile, jar, srcjar, data">
190     <echo message="Building ${name.pfixcore_skel_tgz} in dist directory"/>
191     <tar destfile="${file.pfixcore_skel_tgz}" compression="gzip">
192       <tarfileset dir="${dir.skel}" prefix="skel"/>
193       <tarfileset dir="${dir.metainf}" includes="${name.svnrevision}" prefix="skel"/>
194       <tarfileset dir="${dir.lib}" includes="*.jar, tomcat/README" excludes="saxon8*.jar" prefix="skel/lib"/>
195       <tarfileset dir="${dir.dist}" includes="${name.pfixcore_jar}" prefix="skel/lib"/>
196       <tarfileset dir="${dir.dist}" includes="${name.pfixcore_data_tgz}" prefix="skel/lib"/>
197       <tarfileset dir="${basedir}" includes="ant.dtd" prefix="skel"/>
198       <tarfileset dir="${basedir}" includes="INSTALL" prefix="skel"/>
199       <tarfileset dir="${dir.toconf}" includes="newproject.prop.in newprjlog.xml.in" prefix="skel/projects/common/conf"/>
200     </tar>
201   </target>
202
203   <target name="data" depends="init, stylesheets, dist-properties, autotag">
204     <echo message="Building ${name.pfixcore_data_tgz} in dist directory" />
205     <copy file="${dir.metainf}/${name.svnrevision}" tofile="${dir.projects}/core/${name.svnrevision}"/>
206     <tar destfile="${file.pfixcore_data_tgz}" compression="gzip">
207       <tarfileset dir="${dir.projects}/core" prefix="core"/>
208       <tarfileset file="${basedir}/skel/build-skel.xml" prefix="core/build"/>
209     </tar>
210     <delete file="${dir.projects}/core/${name.svnrevision}"/>
211   </target>
212
213   <target name="jar" depends="dist-properties, autotag">
214     <mkdir dir="${dir.dist}" description="creates ${name.pfixcore_jar}"/>
215     <jar destfile="${file.pfixcore_jar}">
216       <fileset dir="${basedir}" includes="META-INF/**"/>
217       <fileset dir="${dir.build}">
218         <exclude name="de/schlund/util/statuscodes/StatusCodeLib.class"/>
219         <exclude name="de/schlund/pfixcore/example/**"/>
220     <exclude name="de/skelexamples/**"/>
221         <exclude name="de/schlund/pfixcore/testsuite/**/*.class"/>
222       </fileset>
223     </jar>
224   </target>
225
226   <target name="srcjar" depends="dist-properties">
227     <mkdir dir="${dir.dist}"/>
228     <jar destfile="${file.pfixcore_srcjar}">
229       <fileset dir="${basedir}" includes="META-INF/**"/>
230       <fileset dir="${dir.src}">
231         <exclude name="de/schlund/pfixcore/example/**"/>
232         <exclude name="de/skelexamples/**"/>
233       </fileset>
234       <fileset dir="${dir.gensrc}">
235         <exclude name="de/schlund/util/statuscodes/StatusCodeLib.java"/>
236         <exclude name="de/schlund/pfixcore/example/**"/>
237         <exclude name="de/skelexamples/**"/>
238       </fileset>
239     </jar>
240   </target>
241
242   <target name="autotag" depends="init">
243     <!-- make echo insert a newline into the file with &#010; -->
244     <echo file="${dir.metainf}/${name.svnrevision}" message="${autotagmessage}&#010;"/>
245   </target>
246
247   <target name="test-skeleton" depends="dist-properties" description="extracts skel.jar, copies sample files, runs ant">
248     <delete dir="${dir.testskel}"/>
249     <mkdir dir="${dir.testskel}"/>
250     <untar src="${file.pfixcore_skel_tgz}" dest="${dir.testskel}" compression="gzip"/>
251     <copy todir="${dir.testskel}/skel/src">
252       <fileset dir="${dir.src}" includes="de/schlund/pfixcore/example/**"/>
253     </copy>
254     <!-- Copying over sample application for testing purposes -->
255     <copy todir="${dir.testskel}/skel/projects">
256       <fileset dir="${dir.projects}" includes="sample1/**"/>
257     </copy>
258     <!-- DocumentRoot for sample application, apache fails to start without -->
259     <mkdir dir="${dir.testskel}/skel/projects/htdocs"/>
260     <!-- jakarta-tomcat-x.x.xx.tar.gz is not included in skeleton anymore -->
261     <copy todir="${dir.testskel}/skel/lib/tomcat">
262         <fileset dir="${dir.lib}/tomcat">
263           <include name="*.tar.gz"/>
264         </fileset>
265     </copy>
266     <exec dir="${dir.testskel}/skel" executable="ant" failonerror="true">
267     </exec>
268   </target>
269
270   <!-- generate jsonparser from javacc grammar, produced source files are
271   under svn control, so target only has to be called when grammar changed-->
272   <target name="javacc" if="env.JAVACC_HOME">
273     <javacc
274       target="${dir.src}/de/schlund/pfixcore/webservice/json/JSONParser.jj"
275       outputdirectory="${dir.src}/de/schlund/pfixcore/webservice/json/parser"
276       javacchome="${env.JAVACC_HOME}"
277     />
278   </target>
279
280 </project>
Note: See TracBrowser for help on using the browser.