| <?xml version="1.0"?>
|
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
|
|
| <project name="manifestclasspath" default="tearDown">
|
| <!-- hebrew -->
|
| <property name="jom" value="םוי"/>
|
| <!-- german -->
|
| <property name="aent" value="ãnt"/>
|
| <target name="setUp">
|
| <property name="tmp" location="${basedir}/${ant.project.name}.tmp" />
|
| <mkdir dir="${tmp}" />
|
| </target>
|
|
|
| <target name="fullSetUp" depends="setUp">
|
| <mkdir dir="${tmp}/lib" />
|
| <touch file="${tmp}/lib/acme-core.jar" />
|
| <touch file="${tmp}/lib/acme-pres.jar" />
|
|
|
| <mkdir dir="${tmp}/classes/dsp-core/com/lgc/infra/core" />
|
| <mkdir dir="${tmp}/classes/dsp-pres/com/lgc/infra/pres" />
|
| <mkdir dir="${tmp}/classes/dsp-void" />
|
| <mkdir dir="${tmp}/generated/dsp-core/com/lgc/infra/core/generated" />
|
| <mkdir dir="${tmp}/generated/dsp-pres" />
|
| <mkdir dir="${tmp}/generated/dsp-void" />
|
| <mkdir dir="${tmp}/resources/dsp-core/com/lgc/infra/core" />
|
| <mkdir dir="${tmp}/resources/dsp-pres/com/lgc/infra/pres" />
|
| <mkdir dir="${tmp}/resources/dsp-void" />
|
| </target>
|
|
|
| <target name="tearDown">
|
| <delete dir="${tmp}" />
|
| </target>
|
|
|
| <target name="test-bad-directory">
|
| <manifestclasspath property="jar.classpath"
|
| jarfile="${tmp}/classpath.jar">
|
| <classpath />
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="test-bad-no-property" depends="setUp">
|
| <manifestclasspath jarfile="${tmp}/classpath.jar">
|
| <classpath />
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="test-bad-property-exists" depends="setUp">
|
| <property name="jar.classpath" value="exists" />
|
| <manifestclasspath property="jar.classpath"
|
| jarfile="${tmp}/classpath.jar">
|
| <classpath />
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="test-bad-no-jarfile" depends="setUp">
|
| <manifestclasspath property="jar.classpath">
|
| <classpath />
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="test-bad-no-classpath" depends="setUp">
|
| <manifestclasspath property="jar.classpath"
|
| jarfile="${tmp}/classpath.jar" />
|
| </target>
|
|
|
| <target name="test-pseudo-tahoe-refid" depends="fullSetUp">
|
| <path id="classpath">
|
| <!-- All the classes/ directories -->
|
| <dirset dir="${tmp}/classes" includes="dsp-*" />
|
|
|
| <!-- All the JAXB generated/ directories -->
|
| <dirset dir="${tmp}/generated" includes="dsp-*">
|
| <!-- Add only non-empty directories to the classpath -->
|
| <present targetdir="${tmp}/generated" present="both">
|
| <mapper type="regexp" from="(.*)" to="\1/com" />
|
| </present>
|
| </dirset>
|
|
|
| <!-- All the resources/ directories -->
|
| <dirset dir="${tmp}/resources" includes="dsp-*">
|
| <!-- Add only non-empty directories to the classpath -->
|
| <present targetdir="${tmp}/resources" present="both">
|
| <mapper type="regexp" from="(.*)" to="\1/com" />
|
| </present>
|
| </dirset>
|
| </path>
|
|
|
| <manifestclasspath property="jar.classpath"
|
| jarfile="${tmp}/classpath.jar">
|
| <classpath refid="classpath" />
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="test-pseudo-tahoe-nested" depends="fullSetUp">
|
| <manifestclasspath property="jar.classpath"
|
| jarfile="${tmp}/classpath.jar">
|
| <classpath>
|
| <!-- All the classes/ directories -->
|
| <dirset dir="${tmp}/classes" includes="dsp-*" />
|
|
|
| <!-- All the JAXB generated/ directories -->
|
| <dirset dir="${tmp}/generated" includes="dsp-*">
|
| <!-- Add only non-empty directories to the classpath -->
|
| <present targetdir="${tmp}/generated" present="both">
|
| <mapper type="regexp" from="(.*)" to="\1/com" />
|
| </present>
|
| </dirset>
|
|
|
| <!-- All the resources/ directories -->
|
| <dirset dir="${tmp}/resources" includes="dsp-*">
|
| <!-- Add only non-empty directories to the classpath -->
|
| <present targetdir="${tmp}/resources" present="both">
|
| <mapper type="regexp" from="(.*)" to="\1/com" />
|
| </present>
|
| </dirset>
|
| </classpath>
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="test-parent-level1" depends="fullSetUp">
|
| <manifestclasspath property="jar.classpath"
|
| jarfile="${tmp}/classes/classpath.jar">
|
| <classpath>
|
| <dirset dir="${tmp}/classes" includes="dsp-*" />
|
| <dirset dir="${tmp}/generated" includes="dsp-*" />
|
| <dirset dir="${tmp}/resources" includes="dsp-*" />
|
| </classpath>
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="test-parent-level2" depends="fullSetUp">
|
| <mkdir dir="${tmp}/classes/level2" />
|
| <manifestclasspath property="jar.classpath"
|
| jarfile="${tmp}/classes/level2/classpath.jar">
|
| <classpath>
|
| <dirset dir="${tmp}/classes" includes="dsp-*" />
|
| <dirset dir="${tmp}/generated" includes="dsp-*" />
|
| <dirset dir="${tmp}/resources" includes="dsp-*" />
|
| </classpath>
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="test-parent-level2-too-deep" depends="fullSetUp">
|
| <mkdir dir="${tmp}/classes/level2" />
|
| <manifestclasspath property="jar.classpath" maxParentLevels="1"
|
| jarfile="${tmp}/classes/level2/classpath.jar">
|
| <classpath>
|
| <dirset dir="${tmp}/classes" includes="dsp-*" />
|
| <dirset dir="${tmp}/generated" includes="dsp-*" />
|
| <dirset dir="${tmp}/resources" includes="dsp-*" />
|
| </classpath>
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="test-parent-level2-with-jars" depends="fullSetUp">
|
| <mkdir dir="${tmp}/classes/level2" />
|
| <manifestclasspath property="jar.classpath"
|
| jarfile="${tmp}/classes/level2/classpath.jar">
|
| <classpath>
|
| <fileset dir="${tmp}/lib" includes="*.jar" />
|
| <dirset dir="${tmp}/classes" includes="dsp-*" />
|
| <dirset dir="${tmp}/generated" includes="dsp-*" />
|
| <dirset dir="${tmp}/resources" includes="dsp-*" />
|
| </classpath>
|
| </manifestclasspath>
|
| </target>
|
|
|
| <target name="international-german" depends="setUp">
|
| <antcall target="run-two-jars">
|
| <param name="ext.dir" value="${aent}"/>
|
| </antcall>
|
| </target>
|
| <target name="international-hebrew" depends="setUp">
|
| <antcall target="run-two-jars">
|
| <param name="ext.dir" value="${jom}"/>
|
| </antcall>
|
| </target>
|
| <target name="run-two-jars">
|
| <mkdir dir="${tmp}/${ext.dir}"/>
|
| <javac srcdir="manifestclasspath" destdir="${tmp}" />
|
| <jar destfile="${tmp}/${ext.dir}/alpha.jar">
|
| <fileset dir="${tmp}">
|
| <include name="Alpha.class"/>
|
| </fileset>
|
| </jar>
|
| <manifestclasspath property="jar.classpath"
|
| jarfile="${tmp}/beta.jar">
|
| <classpath>
|
| <pathelement location="${tmp}/beta.jar"/>
|
| <pathelement location="${tmp}/${ext.dir}/alpha.jar"/>
|
| </classpath>
|
| </manifestclasspath>
|
| <jar destfile="${tmp}/beta.jar" >
|
| <fileset dir="${tmp}">
|
| <include name="Beta.class"/>
|
| </fileset>
|
| <manifest>
|
| <attribute name="Main-Class" value="Beta"/>
|
| <attribute name="Class-Path" value="${jar.classpath}"/>
|
| </manifest>
|
| </jar>
|
| <java fork="true" jar="${tmp}/beta.jar"/>
|
| </target>
|
| </project>
|