root/tags/release-0.13.32/pfixcore/build.xml

Revision 5928, 13.8 KB (checked in by mtld, 10 months ago)

increase version

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "ant.dtd">
3<!-- ant.dtd is generated by target dtd. This is not done automatically.
4If any problems arise either regenerate ant.dtd by invoking ant dtd
5or 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.13.32" description="the version to use for pfixcore-*.*"/>
15  <property name="dist.type"           value="release" 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="${dir.build}/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, org/pustefixframework/config/build/CreatePropertyFileTask.java, de/schlund/pfixcore/util/GenerateSCodes.java de/schlund/pfixcore/util/GenerateSCodesTask.java, org/pustefixframework/config/build/CreateWebXmlTask.java, org/pustefixframework/config/build/CreateServerConfigurationTask.java, org/pustefixframework/config/build/InitResourceUtilTask.java, org/pustefixframework/tools/ClassVersionCheckerTask.java"
80     debug="${debug}"
81     classpathref="cp.classpath"
82     sourcepath="${dir.src}"
83     source="${javac.source}"
84     target="${javac.target}"
85     encoding="${javac.encoding}"
86     >
87    </javac>
88  </target>
89 
90  <target name="ant-tasks-compile-stage2" depends="scgenerate, ant-tasks-compile-stage1" description="compiles java files needed by ant-tasks">
91    <javac
92     srcdir="${dir.src}"
93     destdir="${dir.build}"
94     includes="de/schlund/pfixcore/util/Xslt*.java, de/schlund/pfixcore/util/*Task.java, de/schlund/pfixxml/util/StringUtil.java, de/schlund/pfixcore/generator/iwrpgen/AptTask.java"
95     debug="${debug}"
96     classpathref="cp.classpath"
97     sourcepath="${dir.src}"
98     source="${javac.source}"
99     target="${javac.target}"
100     encoding="${javac.encoding}"
101     >
102    </javac>
103  </target>
104
105  <target name="scgenerate" depends="scgenerate-dist, buildtime-props">
106    <antcall target="skel.scgenerate"/>
107  </target>
108
109  <target name="scgenerate-dist" depends="ant-tasks-stage1" if="dist.build">
110    <pfx-sclibgen
111      gendir="${dir.gensrc}"
112      docroot="${dir.projects}"
113      includes="core/dyntxt/statuscodeinfo.xml"
114      module="pfixcore"
115    />
116  </target>
117
118  <target name="pre-compile" depends="init" description="compiles AnnotationProcessors used by apt">
119    <javac
120      srcdir="${dir.src}"
121      destdir="${dir.build}"
122      includes="de/schlund/pfixcore/util/CommonAnnotationProcessorFactory.java, de/schlund/pfixcore/generator/iwrpgen/IWrapperAnnotationProcessor.java, de/schlund/pfixcore/generator/iwrpgen/IWrapperAnnotationProcessorFactory.java"
123      classpathref="cp.classpath"
124      sourcepath="${dir.src}"
125      source="${javac.source}"
126      target="${javac.target}"
127      encoding="${javac.encoding}"/>
128  </target>
129
130  <target name="clean-project" depends="skel.clean-project">
131    <delete dir="${dir.dist}"/>
132    <!-- Delete empty htdocs and img dirs in the dist examples -->
133    <delete includeemptydirs="true">
134      <fileset dir="${dir.examplepage}" includes="htdocs/**"/>
135      <fileset dir="${dir.examplepage}" includes="img/**"/>
136      <fileset dir="${dir.examplelink}" includes="htdocs/**"/>
137      <fileset dir="${dir.examplelink}" includes="img/**"/>
138      <fileset dir="${dir.exampleform}" includes="htdocs/**"/>
139      <fileset dir="${dir.exampleform}" includes="img/**"/>
140    </delete>
141  </target>
142       
143  <target name="realclean-core"><!-- override target - we don't delete the core directory here -->
144    <delete dir="${dir.tomcat}"/>
145    <delete dir="${dir.testskel}"/>
146  </target>
147   
148  <target name="init-data">
149    <!-- override skel.init-data: do nothing -->
150  </target>
151   
152  <target name="dist" depends="clean, init, dist-examples" description="Builds release files in dist directory.">
153    <property name="dist.build" value="true"/>
154    <delete file="${dir.metainf}/${name.svnrevision}"/>
155    <exec executable="svn" outputproperty="dist.autotagmessage">
156      <arg line="info"/>
157    </exec>
158    <!-- looks funny, but if someone called something like
159         "ant jar dist" the jar file would have a wrong SVN_REVISION file -->
160    <antcall target="skeleton" inheritall="true">
161      <param name="autotagmessage" value="${dist.autotagmessage}"/>
162    </antcall>
163  </target>
164
165  <target name="classversioncheck" depends="ant-tasks-stage1">
166    <pfx-classversioncheck baseDir="." includes="build/**/*.class lib/**/*.jar" targetVersion="${javac.target}"/>
167  </target>
168
169  <!-- Building the basic examples for dist -->
170  <target name="dist-examples" depends="clean, init, dist-properties" description="Builds three basic examples as a pustefix turorial">
171    <echo message="Building ${name.pfixcore_examples_tgz} in dist directory"/>
172
173    <!-- creating the empty htdocs and img directories -->
174    <mkdir dir="${dir.examplepage}/htdocs"/>
175    <mkdir dir="${dir.examplepage}/img"/>
176    <mkdir dir="${dir.examplelink}/htdocs"/>
177    <mkdir dir="${dir.examplelink}/img"/>
178    <mkdir dir="${dir.exampleform}/htdocs"/>
179    <mkdir dir="${dir.exampleform}/img"/>
180
181    <!-- Deleting the old tar and also the configuration files -->
182    <delete file="${file.pfixcore_examples_tgz}"/>
183
184    <!-- Building the example tar with the main java and iwrp files -->
185    <tar destfile="${file.pfixcore_examples_tgz}" compression="gzip">
186      <tarfileset dir="${dir.examplepage}" includes="**" prefix="${name.examplepage}"/>
187      <tarfileset dir="${dir.projects}" includes="README_EXAMPLES.txt"/>
188      <tarfileset dir="${dir.examplelink}" includes="**" prefix="${name.examplelink}"/>
189      <tarfileset dir="${dir.exampleform}" includes="**" prefix="${name.exampleform}"/>
190      <tarfileset dir="${dir.src}" includes="de/skelexamples/DemoText.iwrp" prefix="src"/>
191      <tarfileset dir="${dir.src}" includes="de/skelexamples/ContextDemoText.java" prefix="src"/>
192      <tarfileset dir="${dir.src}" includes="de/skelexamples/ContextDemoTextImpl.java" prefix="src"/>
193      <tarfileset dir="${dir.src}" includes="de/skelexamples/DemoTextHandler.java" prefix="src"/>
194    </tar>
195  </target>
196
197
198  <!-- a target to create a new project -->
199  <target name="new-basicapp" depends="compile" description="Builds a naked application and creates the basic stuff">
200    <java classname="de.schlund.pfixcore.util.basicapp.InitNewPfixProject">
201      <classpath refid="cp.classpath"/>
202    </java>
203  </target>
204
205  <target name="fixtabs">
206    <fixcrlf srcdir="${basedir}" includes="build.xml, skel/build.xml" tab="remove" tablength="4"/>
207  </target>
208
209  <target name="skeleton" depends="tomcat.dir, ant-tasks, fixtabs, compile, jar, srcjar, data">
210    <echo message="Building ${name.pfixcore_skel_tgz} in dist directory"/>
211    <tar destfile="${file.pfixcore_skel_tgz}" compression="gzip">
212      <tarfileset dir="${dir.skel}" prefix="skel"/>
213      <tarfileset dir="${dir.metainf}" includes="${name.svnrevision}" prefix="skel"/>
214      <tarfileset dir="${dir.lib}" includes="*.jar, tomcat/README" excludes="saxon8*.jar" prefix="skel/lib"/>
215      <tarfileset dir="${dir.dist}" includes="${name.pfixcore_jar}" prefix="skel/lib"/>
216      <tarfileset dir="${dir.dist}" includes="${name.pfixcore_data_tgz}" prefix="skel/lib"/>
217      <tarfileset dir="${basedir}" includes="ant.dtd" prefix="skel"/>
218      <tarfileset dir="${basedir}" includes="INSTALL" prefix="skel"/>
219      <tarfileset dir="${dir.toconf}" includes="newproject.prop.in newprjlog.xml.in" prefix="skel/projects/common/conf"/>
220    </tar>
221  </target>
222
223  <target name="data" depends="init, dist-properties, autotag">
224    <echo message="Building ${name.pfixcore_data_tgz} in dist directory" />
225    <copy file="${dir.metainf}/${name.svnrevision}" tofile="${dir.projects}/core/${name.svnrevision}"/>
226    <tar destfile="${file.pfixcore_data_tgz}" compression="gzip">
227      <tarfileset dir="${dir.projects}/core" prefix="core">
228        <exclude name="dyntxt/statuscodeinfo.xml"/>
229      </tarfileset>
230      <tarfileset file="${basedir}/skel/build-skel.xml" prefix="core/build"/>
231    </tar>
232    <delete file="${dir.projects}/core/${name.svnrevision}"/>
233  </target>
234
235  <target name="jar" depends="dist-properties, classversioncheck, autotag">
236    <mkdir dir="${dir.dist}" description="creates ${name.pfixcore_jar}"/>
237    <jar destfile="${file.pfixcore_jar}">
238      <fileset dir="${dir.build}">
239        <exclude name="de/schlund/util/statuscodes/StatusCodeLib.class"/>
240        <exclude name="de/schlund/pfixcore/example/**"/>
241    <exclude name="de/skelexamples/**"/>
242        <exclude name="de/schlund/pfixcore/testsuite/**/*.class"/>
243      </fileset>
244    </jar>
245  </target>
246
247  <target name="srcjar" depends="dist-properties">
248    <mkdir dir="${dir.dist}"/>
249    <jar destfile="${file.pfixcore_srcjar}">
250      <fileset dir="${dir.src}">
251        <exclude name="de/schlund/pfixcore/example/**"/>
252        <exclude name="de/skelexamples/**"/>
253      </fileset>
254      <fileset dir="${dir.gensrc}">
255        <exclude name="de/schlund/util/statuscodes/StatusCodeLib.java"/>
256        <exclude name="de/schlund/pfixcore/example/**"/>
257        <exclude name="de/skelexamples/**"/>
258      </fileset>
259    </jar>
260  </target>
261
262  <target name="autotag" depends="init">
263    <!-- make echo insert a newline into the file with &#010; -->
264    <echo file="${dir.metainf}/${name.svnrevision}" message="${autotagmessage}&#010;"/>
265  </target>
266
267  <target name="test-skeleton" depends="dist-properties" description="extracts skel.jar, copies sample files, runs ant">
268    <delete dir="${dir.testskel}"/>
269    <mkdir dir="${dir.testskel}"/>
270    <untar src="${file.pfixcore_skel_tgz}" dest="${dir.testskel}" compression="gzip"/>
271    <copy todir="${dir.testskel}/skel/src">
272      <fileset dir="${dir.src}" includes="de/schlund/pfixcore/example/**"/>
273    </copy>
274    <!-- Copying over sample application for testing purposes -->
275    <copy todir="${dir.testskel}/skel/projects">
276      <fileset dir="${dir.projects}" includes="sample1/**"/>
277    </copy>
278    <!-- DocumentRoot for sample application, apache fails to start without -->
279    <mkdir dir="${dir.testskel}/skel/projects/htdocs"/>
280    <!-- jakarta-tomcat-x.x.xx.tar.gz is not included in skeleton anymore -->
281    <copy todir="${dir.testskel}/skel/lib/tomcat">
282        <fileset dir="${dir.lib}/tomcat">
283          <include name="*.tar.gz"/>
284        </fileset>
285    </copy>
286    <exec dir="${dir.testskel}/skel" executable="ant" failonerror="true">
287    </exec>
288  </target>
289
290</project>
291
Note: See TracBrowser for help on using the browser.