source: apps/susidns/src/build.xml @ b4f3d961

Last change on this file since b4f3d961 was b4f3d961, checked in by zzz <zzz@…>, 2 years ago

SusDNS: Translate svg image text (ticket #1749)

  • Property mode set to 100644
File size: 8.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<project name="susidns" default="all" basedir=".">
3        <property name="jetty" value="../../jetty/" />
4        <property name="project" value="susidns" />
5        <property name="src" value="java/src" />
6        <property name="bin" value="./WEB-INF/classes" />
7        <property name="lib" value="${jetty}/jettylib" />
8        <property name="tmp" value="./tmp" />
9        <property name="jsp" value="./jsp" />
10        <path id="cp">
11                <pathelement path="${classpath}" />
12                <pathelement location="${bin}" />
13                <!-- commons-el MUST be first to ensure we get the right (2.2) version
14                  -  otherwise:
15                  -  Exception in thread "main" java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
16                  -->
17                <pathelement location="${lib}/commons-el.jar" />
18                <pathelement location="${lib}/javax.servlet.jar"/>
19
20                <!-- following jars only present for debian builds -->
21                <pathelement location="${lib}/jsp-api.jar" />
22                <pathelement location="${lib}/tomcat-api.jar" />
23                <pathelement location="${lib}/tomcat-util.jar" />
24                <pathelement location="${lib}/tomcat-util-scan.jar" />
25                <pathelement location="${lib}/jasper-el.jar" />
26                <pathelement location="lib/jstlel.jar" />
27
28                <pathelement location="lib/jstl.jar" />
29                <pathelement location="lib/standard.jar" />
30                <pathelement location="${lib}/jasper-runtime.jar" />
31                <pathelement location="${lib}/commons-logging.jar" />
32                <pathelement location="${lib}/jetty-util.jar" />
33                <pathelement location="${ant.home}/lib/ant.jar" />
34                <pathelement location="../../../core/java/build/i2p.jar" />
35                <pathelement location="../../addressbook/dist/addressbook.jar" />
36        </path>
37
38        <property name="javac.compilerargs" value="" />
39        <property name="javac.version" value="1.7" />
40        <property name="require.gettext" value="true" />
41
42    <condition property="no.bundle">
43        <isfalse value="${require.gettext}" />
44    </condition>
45
46        <target name="compile">
47                <mkdir dir="${bin}" />
48                <javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
49                        includeAntRuntime="false"
50                        classpathref="cp" destdir="${bin}" srcdir="${src}" includes="**/*.java" >
51                        <compilerarg line="${javac.compilerargs}" />
52                </javac>
53        </target>
54
55    <target name="precompilejsp" unless="precompilejsp.uptodate">
56        <delete file="WEB-INF/web-fragment.xml" />
57        <delete file="WEB-INF/web-out.xml" />
58        <mkdir dir="${tmp}" />
59        <echo message="Ignore any warning about /WEB-INF/web.xml not found" />
60        <java classname="org.apache.jasper.JspC" fork="true" classpathref="cp" failonerror="true">
61            <arg value="-d" />
62            <arg value="${tmp}" />
63            <arg value="-v" />
64            <arg value="-p" />
65            <arg value="i2p.susi.dns.jsp" />
66            <arg value="-webinc" />
67            <arg value="WEB-INF/web-fragment.xml" />
68            <arg value="-webapp" />
69            <arg value="./jsp" />
70        </java>
71        <javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
72               includeAntRuntime="false"
73               destdir="${bin}" srcdir="${tmp}" includes="**/*.java" classpathref="cp">
74                <compilerarg line="${javac.compilerargs}" />
75         </javac>
76        <copy file="WEB-INF/web-template.xml" tofile="WEB-INF/web-out.xml" />
77        <loadfile property="jspc.web.fragment" srcfile="WEB-INF/web-fragment.xml" />
78        <replace file="WEB-INF/web-out.xml">
79            <replacefilter token="&lt;!-- precompiled servlets --&gt;" value="${jspc.web.fragment}" />
80        </replace>
81    </target>
82
83    <uptodate property="precompilejsp.uptodate" targetfile="WEB-INF/web-out.xml">
84        <srcfiles dir= "." includes="jsp/*.jsp, WEB-INF/web-template.xml"/>
85    </uptodate>
86
87    <target name="all" depends="war"/> 
88
89    <target name="listChangedFiles" depends="warUpToDate" if="shouldListChanges" >
90        <exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
91            <arg value="list" />
92            <arg value="changed" />
93            <arg value="." />
94        </exec>
95        <!-- \n in an attribute value generates an invalid manifest -->
96        <exec executable="tr" inputstring="${workspace.changes}" outputproperty="workspace.changes.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
97            <arg value="-s" />
98            <arg value="[:space:]" />
99            <arg value="," />
100        </exec>
101    </target>
102
103    <target name="war" depends="compile, precompilejsp, bundle, warUpToDate" unless="war.uptodate" > 
104        <!-- set if unset -->
105        <property name="workspace.changes.tr" value="" />
106        <war destfile="${project}.war" webxml="WEB-INF/web-out.xml">
107                <fileset dir=".">
108                        <include name="WEB-INF/**/*.class"/>
109                        <include name="index.html"/>
110                        <include name="svg/*"/>
111                </fileset>
112            <manifest>
113                <attribute name="Implementation-Version" value="${full.version}" />
114                <attribute name="Built-By" value="${build.built-by}" />
115                <attribute name="Build-Date" value="${build.timestamp}" />
116                <attribute name="Base-Revision" value="${workspace.version}" />
117                <attribute name="Workspace-Changes" value="${workspace.changes.tr}" />
118                <attribute name="X-Compile-Source-JDK" value="${javac.version}" />
119                <attribute name="X-Compile-Target-JDK" value="${javac.version}" />
120            </manifest>
121        </war>
122    </target>
123
124    <target name="warUpToDate">
125        <uptodate property="war.uptodate" targetfile="${project}.war">
126            <srcfiles dir= "." includes="WEB-INF/web-out.xml WEB-INF/**/*.class svg/* index.html" />
127        </uptodate>
128        <condition property="shouldListChanges" >
129            <and>
130                <not>
131                    <isset property="war.uptodate" />
132                </not>
133                <isset property="mtn.available" />
134            </and>
135        </condition>
136    </target>
137
138    <target name="bundle" depends="compile, precompilejsp" unless="no.bundle">
139        <mkdir dir="build/messages-src" />
140        <!-- Update the messages_*.po files.
141             We need to supply the bat file for windows, and then change the fail property to true -->
142        <exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
143            <env key="JAVA_HOME" value="${java.home}" />
144            <arg value="./bundle-messages.sh" />
145        </exec>
146        <exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
147            <arg value="./bundle-messages.sh" />
148        </exec>
149                <!-- multi-lang is optional -->
150        <exec executable="sh" osfamily="windows" failifexecutionfails="false" >
151            <arg value="./bundle-messages.sh" />
152        </exec>
153        <javac source="${javac.version}" target="${javac.version}" 
154               includeAntRuntime="false"
155               srcdir="build/messages-src" destdir="${bin}">
156            <compilerarg line="${javac.compilerargs}" />
157        </javac>
158    </target>
159
160    <target name="extractSVGTags">
161        <mkdir dir="build/" />
162        <java classname="net.i2p.util.TranslateReader" fork="true" failonerror="true">
163            <classpath>
164                <pathelement location="../../../build/i2p.jar" />
165            </classpath>
166            <arg value="tag" />
167            <arg value="svg/" />
168            <arg value="build/HowSVG.java" />
169        </java>
170    </target>
171
172    <target name="poupdate" depends="compile, precompilejsp, extractSVGTags">
173        <!-- Update the messages_*.po files.  -->
174        <!-- set if unset -->
175        <property name="lg2" value="" />
176        <exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="true" >
177            <env key="LG2" value="${lg2}" />
178            <arg value="./bundle-messages.sh" />
179            <arg value="-p" />
180        </exec>
181        <exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="true" >
182            <env key="LG2" value="${lg2}" />
183            <arg value="./bundle-messages.sh" />
184            <arg value="-p" />
185        </exec>
186        <exec executable="sh" osfamily="windows" failifexecutionfails="true" failonerror="true" >
187            <env key="LG2" value="${lg2}" />
188            <arg value="./bundle-messages.sh" />
189            <arg value="-p" />
190        </exec>
191    </target>
192
193    <target name="clean">
194      <delete file="susidns.war" />
195      <delete>
196        <fileset dir="." includes="**/*.class" />
197        <fileset dir="." includes="tmp, build" />
198        <fileset dir="WEB-INF" includes="web-fragment.xml, web-out.xml" />
199      </delete>
200      <delete dir="${bin}" />
201      <delete dir="${tmp}" />
202      <delete dir="build" />
203    </target>
204    <target name="distclean" depends="clean" />
205</project>
Note: See TracBrowser for help on using the repository browser.