| <project name="embed-test" default="main" basedir="."> |
| <property name="ant.src" location="../.."/> |
| <description>Test for embed proposal</description> |
| <import file="build.xml"/> |
| |
| <!-- This is a tricky problem: import will append tasks at the |
| end of the task list. That's a bug, it should replace the |
| <import> task with the content. When fixed, this should show |
| the real value. --> |
| <echo message="Base.path from build.xml ( in top level ): ${base.path}"/> |
| |
| <target name="init"> |
| <property name="junit.jar" location="${base.path}/junit3.7/junit.jar"/> |
| <echo>Base.path from build.xml ( in init ) : ${base.path}</echo> |
| |
| <path id="myJars" > |
| <pathelement path="${junit.jar}" /> |
| <pathelement path="${jxpath.jar}" /> |
| <pathelement path="${velocity-dep.jar}" /> |
| <pathelement path="${velocity.jar}" /> |
| <pathelement path="${jexl.jar}" /> |
| <pathelement path="${commons-discovery.jar}" /> |
| <pathelement path="${commons-logging.jar}" /> |
| <pathelement path="${ant.home}/lib/ant-sax2.jar" /> |
| <pathelement location="/usr/share/java/xalan-j_2_3_1/bin/xercesImpl.jar"/> |
| <pathelement location="${ant.home}/lib/xercesImpl.jar"/> |
| <pathelement location="${ant.home}/lib/xml-apis.jar"/> |
| <pathelement location="${ant.home}/lib/ant.jar"/> |
| <fileset dir="${ant.home}/lib" includes="optional-*.jar" /> |
| </path> |
| |
| <echo>Path: ${toString:myJars}</echo> |
| |
| <classloader classpathRef="myJars"/> |
| |
| </target> |
| |
| <target name="xmldom" depends="init"> |
| <taskdef classname="org.apache.tools.ant.taskdefs.optional.JXPath" |
| name="jxpath" /> |
| <typedef classname="org.apache.tools.ant.taskdefs.XMLDOM" |
| name="xmlDom" /> |
| |
| <xmlDom id="module.xml" file="/ws/jakarta-gump/project/jakarta-ant.xml"/> |
| <!-- Enable Jxpath support --> |
| <jxpath/> |
| <echo>Name: ${jxpath:/references/module.xml/root/module/project[1]/@name}</echo> |
| |
| </target> |
| |
| |
| <target name="discovery" depends="init"> |
| <echo message="${commons-discovery.jar}"/> |
| |
| <systemPath pathRef="myJars"/> |
| |
| <taskdef classname="org.apache.tools.ant.taskdefs.ServiceDiscoveryTask" |
| name="discovery" /> |
| <taskdef classname="org.apache.tools.ant.taskdefs.optional.JXPath" |
| name="jxpath" /> |
| |
| <jxpath/> |
| <discovery debug="1" id="myDiscovery" |
| serviceName="META-INF/services/javax.xml.parsers.SAXParserFactory" /> |
| <echo message="Found ${jxpath:/references[@name='myDiscovery']}" /> |
| |
| </target> |
| |
| <target name="systemPathTest" depends="init"> |
| <junit id="replacedJunit" /> |
| <echo message="Found JUNIT: ${toString:replacedJunit}" /> |
| </target> |
| |
| <target name="dynamicProperties" depends="init"> |
| <!-- This is Taksdef2.java - it'll use the systemPath as parent loader |
| --> |
| <taskdef classname="org.apache.tools.ant.taskdefs.optional.JXPath" |
| name="jxpath" /> |
| <taskdef classname="org.apache.tools.ant.taskdefs.optional.JXPathSet" |
| name="jxpathSet" /> |
| <taskdef classname="org.apache.tools.ant.taskdefs.optional.VelocityProperties" |
| name="velocityProperties" /> |
| <taskdef classname="org.apache.tools.ant.taskdefs.optional.JexlProperties" |
| name="jexlProperties" /> |
| |
| <!-- Init JxPath. '/' is the project --> |
| <jxpath/> |
| <velocityProperties/> |
| <jexlProperties/> |
| |
| <echo id="foo" message="Starting dynamic props tests" /> |
| |
| <echo message="Value: ${vm:$ant.references.jxpathTask.foo}" /> |
| <jxpathSet path="/references[@name='jxpathTask']/foo" value="Test"/> |
| <echo message="Value: ${vm:$ant.references.jxpathTask.foo}" /> |
| |
| <echo message="${jexl:ant.references.jxpathTask.foo=bar}" /> |
| <echo message="Value: ${vm:$ant.references.jxpathTask.foo}" /> |
| |
| <echo message="jexl /references/myJars: ${jexl:ant.references.myJars}" /> |
| |
| <echo message="jxPath /targets[1]: ${jxpath:/targets[1]}" /> |
| <echo message="jxPath /references: ${jxpath:/references}" /> |
| <echo message="jxPath /references[@name='myJars']: ${jxpath:/references[@name='myJars']}" /> |
| <echo message="jxPath /references/myJars: ${jxpath:/references/myJars}" /> |
| |
| <!-- This is XMLDOM.java - a datatype that holds an xml DOM --> |
| <typedef name="xmldom" classname="org.apache.tools.ant.taskdefs.XMLDOM"/> |
| |
| <!-- Init XMLDOM. The DOM of file test.xml will be referenced via the id--> |
| <xmldom id="test.xml" file="test.xml"/> |
| |
| <echo message="XMLDOM: ${jxpath:/references/test.xml/root/project/@name}" /> |
| |
| </target> |
| |
| <target name="main" depends="init,dynamicProperties,systemPathTest,test-import"> |
| </target> |
| |
| |
| <target name="test-import" > |
| <antcall target="embed.main" /> |
| </target> |
| |
| |
| </project> |