|
|
@@ -0,0 +1,87 @@ |
|
|
|
<?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 xmlns:au="antlib:org.apache.ant.antunit" default="antunit"> |
|
|
|
<import file="../../antunit-base.xml" /> |
|
|
|
|
|
|
|
<target name="testCommandLauncherTask"> |
|
|
|
<echo message="${input}"/> |
|
|
|
<mkdir dir="${input}"/> |
|
|
|
<mkdir dir="${output}"/> |
|
|
|
<echo file="${input}/MyCommandLauncher.java"> |
|
|
|
import java.io.File; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.OutputStream; |
|
|
|
|
|
|
|
import org.apache.tools.ant.Project; |
|
|
|
import org.apache.tools.ant.taskdefs.Execute; |
|
|
|
import org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher; |
|
|
|
|
|
|
|
public class MyCommandLauncher extends Java13CommandLauncher { |
|
|
|
public MyCommandLauncher() throws NoSuchMethodException { |
|
|
|
super(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public Process exec(Project project, String[] cmd, String[] env, File workingDir) throws IOException { |
|
|
|
Process p = super.exec(project, cmd, env, workingDir); |
|
|
|
System.out.println("Hello World From CommandLauncher"); |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
</echo> |
|
|
|
<echo file="${input}/MyJavaExecutable.java"> |
|
|
|
public class MyJavaExecutable { |
|
|
|
public static void main(String[] args) { |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
</echo> |
|
|
|
<javac destdir="${output}" |
|
|
|
srcdir="${input}"/> |
|
|
|
<typedef |
|
|
|
name="my-command-launcher" |
|
|
|
classname="MyCommandLauncher" classpath="${output}"/> |
|
|
|
|
|
|
|
<commandlauncher vmlauncher="true"> |
|
|
|
<my-command-launcher/> |
|
|
|
</commandlauncher> |
|
|
|
|
|
|
|
<condition property="java" |
|
|
|
value="${java.home}/bin/java.exe" |
|
|
|
else="${java.home}/bin/java"> |
|
|
|
<os family="dos"/> |
|
|
|
</condition> |
|
|
|
|
|
|
|
<exec executable="${java}" failonerror="true"> |
|
|
|
<arg value="-cp"/> |
|
|
|
<arg value="${output}"/> |
|
|
|
<arg value="MyJavaExecutable"/> |
|
|
|
</exec> |
|
|
|
|
|
|
|
|
|
|
|
<au:assertLogContains text="Hello World From CommandLauncher"/> |
|
|
|
</target> |
|
|
|
|
|
|
|
|
|
|
|
</project> |