You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by br...@apache.org on 2005/08/05 14:22:17 UTC
svn commit: r230452 [3/3] - in /jakarta/commons/sandbox/exec/trunk: ./ src/
src/bin/ src/main/ src/main/java/ src/main/java/org/
src/main/java/org/apache/ src/main/java/org/apache/commons/
src/main/java/org/apache/commons/exec/ src/main/java/org/apache...
Added: jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/VmsCommandLauncher.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/VmsCommandLauncher.java?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/VmsCommandLauncher.java (added)
+++ jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/VmsCommandLauncher.java Fri Aug 5 05:21:46 2005
@@ -0,0 +1,91 @@
+package org.apache.commons.exec.launcher;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import org.apache.commons.exec.CommandLine;
+import org.apache.commons.exec.CommandLineImpl;
+import org.apache.commons.exec.environment.Environment;
+
+/**
+ * A command launcher for VMS that writes the command to a temporary DCL script
+ * before launching commands. This is due to limitations of both the DCL
+ * interpreter and the Java VM implementation.
+ */
+public class VmsCommandLauncher extends Java13CommandLauncher {
+
+ public VmsCommandLauncher() throws NoSuchMethodException {
+ super();
+ }
+
+ /**
+ * Launches the given command in a new process.
+ */
+ public Process exec(final CommandLine cmd, final Environment env)
+ throws IOException {
+ CommandLine vmsCmd = new CommandLineImpl();
+ vmsCmd.setExecutable(createCommandFile(cmd, env).getPath());
+
+ return super.exec(vmsCmd, env);
+ }
+
+ /**
+ * Launches the given command in a new process, in the given working
+ * directory. Note that under Java 1.3.1, 1.4.0 and 1.4.1 on VMS this method
+ * only works if <code>workingDir</code> is null or the logical
+ * JAVA$FORK_SUPPORT_CHDIR needs to be set to TRUE.
+ */
+ public Process exec(final CommandLine cmd, final Environment env,
+ final File workingDir) throws IOException {
+ CommandLine vmsCmd = new CommandLineImpl();
+ vmsCmd.setExecutable(createCommandFile(cmd, env).getPath());
+
+ return super.exec(vmsCmd, env, workingDir);
+ }
+
+ /*
+ * Writes the command into a temporary DCL script and returns the
+ * corresponding File object. The script will be deleted on exit.
+ */
+ private File createCommandFile(final CommandLine cmd, final Environment env)
+ throws IOException {
+ File script = File.createTempFile("ANT", ".COM");
+ script.deleteOnExit();
+ PrintWriter out = null;
+ try {
+ out = new PrintWriter(new FileWriter(script));
+
+ // add the environment as logicals to the DCL script
+ if (env != null) {
+ Set entries = env.entrySet();
+
+ for (Iterator iter = entries.iterator(); iter.hasNext();) {
+ Entry entry = (Entry) iter.next();
+ out.print("$ DEFINE/NOLOG ");
+ out.print(entry.getKey());
+ out.print(" \"");
+ out.print(entry.getValue());
+ out.println('\"');
+ }
+ }
+
+ out.print("$ " + cmd.getExecutable());
+ String[] args = cmd.getArguments();
+ for (int i = 0; i < args.length; i++) {
+ out.println(" -");
+ out.print(args[i]);
+ }
+ } finally {
+ if (out != null) {
+ out.close();
+ }
+ }
+ return script;
+ }
+
+}
Propchange: jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/VmsCommandLauncher.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/VmsCommandLauncher.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/WinNTCommandLauncher.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/WinNTCommandLauncher.java?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/WinNTCommandLauncher.java (added)
+++ jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/WinNTCommandLauncher.java Fri Aug 5 05:21:46 2005
@@ -0,0 +1,51 @@
+package org.apache.commons.exec.launcher;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.commons.exec.CommandLine;
+import org.apache.commons.exec.CommandLineImpl;
+import org.apache.commons.exec.environment.Environment;
+
+/**
+ * A command launcher for Windows XP/2000/NT that uses 'cmd.exe' when launching
+ * commands in directories other than the current working directory.
+ */
+public class WinNTCommandLauncher extends CommandLauncherProxy {
+ public WinNTCommandLauncher(final CommandLauncher launcher) {
+ super(launcher);
+ }
+
+ /**
+ * Launches the given command in a new process, in the given working
+ * directory.
+ *
+ * @param cmd
+ * the command line to execute as an array of strings
+ * @param env
+ * the environment to set as an array of strings
+ * @param workingDir
+ * working directory where the command should run
+ * @throws IOException
+ * forwarded from the exec method of the command launcher
+ */
+ public Process exec(final CommandLine cmd, final Environment env,
+ final File workingDir) throws IOException {
+ if (workingDir == null) {
+ return exec(cmd, env);
+ }
+
+ // Use cmd.exe to change to the specified directory before running
+ // the command
+ CommandLine newCmd = new CommandLineImpl();
+ newCmd.setExecutable("cmd");
+ newCmd.addArgument("/c");
+ newCmd.addArgument("cd");
+ newCmd.addArgument("/d");
+ newCmd.addArgument(workingDir.getAbsolutePath());
+ newCmd.addArgument("&&");
+ newCmd.addArguments(cmd.getCommandline());
+
+ return exec(newCmd, env);
+ }
+}
Propchange: jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/WinNTCommandLauncher.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/exec/trunk/src/main/java/org/apache/commons/exec/launcher/WinNTCommandLauncher.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: jakarta/commons/sandbox/exec/trunk/src/site/apt/index.apt
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/site/apt/index.apt?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/site/apt/index.apt (added)
+++ jakarta/commons/sandbox/exec/trunk/src/site/apt/index.apt Fri Aug 5 05:21:46 2005
@@ -0,0 +1,44 @@
+ --------
+Jakarta Commons Exec
+ --------
+ --------
+5 August 2005
+ --------
+
+Jakarta Commons Exec
+
+* Rationale
+
+ Executing external processes from Java is a well-known problem area. It is inheriently platform dependent and requires
+ the developer to know and test for platform specific behaviors, for example using cmd.exe on Windows or limited buffer
+ sizes causing deadlocks. The JRE support for this is very limited, albeit better with the new Java SE 1.5
+ ProcessBuilder class.
+
+ Reliably executing external processes can also require knowledge of the environment variables before or after the
+ command is executed. In J2SE 1.1-1.4 there is not support for this, since the method, <<<System.getenv()>>>, for
+ retriving environment variables is deprecated.
+
+ The are currently several different libraries that for their own purposes has implemented frameworks around
+ <<<Runtime.exec()>>> to handle the various issue outlined above. The proposed project should aim at coordinating and
+ learning from these initatives to create and maintain a simple, reusable and well-tested package. Since some of the
+ more problematic platforms are not readily available, it is my hope that the broad Apache community can be a
+ great help.
+
+* Scope of the package
+
+ The package shall create and maintain a process execution package written in the Java language to be distributed
+ under the ASF license. The Java code might also be complemented with scripts (e.g. Perl scripts) to fully enable
+ execution on some operating systems. The package should aim for supporting a wide range of operating systems while
+ still having a consistent API for all platforms.
+
+* Identify the initial source for the package
+
+ Several implementations exists and should be researched before finalizing the design:
+
+ * Ant 1.X contains probably the most mature code within the exec task. This code has been stripped of the
+ Ant specifics and cleaned up by Niklas Gustavsson and can be donated under the ASF license.
+
+ * Ideas from {{{http://ant.apache.org/ant2/actionlist.html#exec} Ant2}}
+
+ * plexus-utils has a similar but slimmer BSD-licensed implementation than Ant that can be reused
+
Added: jakarta/commons/sandbox/exec/trunk/src/site/site.xml
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/site/site.xml?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/site/site.xml (added)
+++ jakarta/commons/sandbox/exec/trunk/src/site/site.xml Fri Aug 5 05:21:46 2005
@@ -0,0 +1,22 @@
+<site>
+ <bannerLeft>
+ <name>Jakarta Commons</name>
+ </bannerLeft>
+ <bannerRight>
+ <name>commons-exec</name>
+ </bannerRight>
+
+ <body>
+ <links>
+ <item name="Jakarta Commons Sandbox" href="http://jakarta.apache.org/commons/sandbox/" />
+ </links>
+
+ <menu name="Commons Exec">
+ <item name="Overview" href="/index.html" />
+ </menu>
+
+ ${reports}
+
+ </body>
+
+</site>
Propchange: jakarta/commons/sandbox/exec/trunk/src/site/site.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/exec/trunk/src/site/site.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/CommandLineTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/CommandLineTest.java?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/CommandLineTest.java (added)
+++ jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/CommandLineTest.java Fri Aug 5 05:21:46 2005
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.
+ *
+ */
+
+package org.apache.commons.exec;
+
+import junit.framework.TestCase;
+
+public class CommandLineTest extends TestCase {
+
+ public void testSetExecutable() {
+ CommandLine cmdl = new CommandLineImpl();
+ cmdl.setExecutable("test");
+ assertEquals("test", cmdl.toString());
+ }
+
+ public void testSetArguments() {
+ CommandLine cmdl = new CommandLineImpl();
+ cmdl.setExecutable("test");
+ cmdl.addArgument("foo");
+ cmdl.addArgument("bar");
+ assertEquals("test foo bar", cmdl.toString());
+ }
+
+ public void testSetArgumentsWithSpace() {
+ CommandLine cmdl = new CommandLineImpl();
+ cmdl.setExecutable("test");
+ cmdl.addArgument("foo");
+ cmdl.addArgument("ba r");
+ assertEquals("test foo \"ba r\"", cmdl.toString());
+ }
+
+ public void testSetArgumentsWithQuote() {
+ CommandLine cmdl = new CommandLineImpl();
+ cmdl.setExecutable("test");
+ cmdl.addArgument("foo");
+ cmdl.addArgument("ba\"r");
+ assertEquals("test foo 'ba\"r'", cmdl.toString());
+ }
+
+ public void testSetArgumentsWithSingleQuote() {
+ CommandLine cmdl = new CommandLineImpl();
+ cmdl.setExecutable("test");
+ cmdl.addArgument("foo");
+ cmdl.addArgument("ba'r");
+ assertEquals("test foo \"ba'r\"", cmdl.toString());
+ }
+
+}
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/CommandLineTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/CommandLineTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/ExecTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/ExecTest.java?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/ExecTest.java (added)
+++ jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/ExecTest.java Fri Aug 5 05:21:46 2005
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.
+ *
+ */
+
+package org.apache.commons.exec;
+
+import java.io.ByteArrayOutputStream;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.exec.environment.Environment;
+
+public class ExecTest extends TestCase {
+
+ private String testDir = "src/test/scripts";
+ private ByteArrayOutputStream baos;
+ private String testScript = TestUtil.resolveScriptForOS(testDir + "/test");
+
+ protected void setUp() throws Exception {
+ baos = new ByteArrayOutputStream();
+ }
+
+ public void testExecute() throws Exception {
+ Exec exec = new Exec();
+
+ CommandLine cl = new CommandLineImpl();
+ cl.setExecutable(testScript);
+
+ exec.execute(cl, baos, baos);
+
+ assertEquals("FOO", baos.toString().trim());
+ }
+
+ public void testExecuteWithArg() throws Exception {
+ Exec exec = new Exec();
+
+ CommandLine cl = new CommandLineImpl();
+ cl.setExecutable(testScript);
+ cl.addArgument("BAR");
+ exec.execute(cl, baos, baos);
+
+ assertEquals("FOO BAR", baos.toString().trim());
+ }
+
+ public void testExecuteWithEnv() throws Exception {
+ Environment env = Environment.createEnvironment();
+ env.addVariable("TEST_ENV_VAR", "XYZ");
+
+ CommandLine cl = new CommandLineImpl();
+ cl.setExecutable(testScript);
+
+ Exec exec = new Exec();
+
+ exec.execute(cl, env, baos, baos);
+
+ assertEquals("FOO XYZ", baos.toString().trim());
+ }
+
+ protected void tearDown() throws Exception {
+ baos.close();
+ }
+}
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/ExecTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/ExecTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/TestUtil.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/TestUtil.java?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/TestUtil.java (added)
+++ jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/TestUtil.java Fri Aug 5 05:21:46 2005
@@ -0,0 +1,20 @@
+package org.apache.commons.exec;
+
+import junit.framework.AssertionFailedError;
+
+public final class TestUtil {
+
+ private TestUtil() {
+
+ }
+
+ public static String resolveScriptForOS(String script) {
+ if (OS.isFamilyWindows()) {
+ return script + ".bat";
+ } else if (OS.isFamilyUnix()) {
+ return script + ".sh";
+ } else {
+ throw new AssertionFailedError("Test not supported for this OS");
+ }
+ }
+}
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/TestUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/TestUtil.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/environment/EnvironmentTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/environment/EnvironmentTest.java?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/environment/EnvironmentTest.java (added)
+++ jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/environment/EnvironmentTest.java Fri Aug 5 05:21:46 2005
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.
+ *
+ */
+
+package org.apache.commons.exec.environment;
+
+import java.util.Iterator;
+
+import junit.framework.TestCase;
+
+public class EnvironmentTest extends TestCase {
+
+ private Environment getPrePopulatedEnvironment() {
+ Environment env = Environment.createEnvironment();
+ env.addVariable("foo", "bar");
+ env.addVariable("xxx", "yyy");
+ env.addVariable("abc", "def");
+
+ return env;
+ }
+
+ public void testAddAndGet() {
+ Environment env = Environment.createEnvironment();
+ env.addVariable("foo", "bar");
+ assertEquals(EnvironmentVariable
+ .createEnvironmentVariable("foo", "bar"), env.get("foo"));
+ }
+
+ public void testSizeAndClear() {
+ Environment env = getPrePopulatedEnvironment();
+
+ assertEquals(3, env.size());
+ env.clear();
+ assertEquals(0, env.size());
+ }
+
+ public void testContainsKey() {
+ Environment env = getPrePopulatedEnvironment();
+
+ assertTrue(env.containsKey("foo"));
+ assertFalse(env.containsKey("dummy"));
+ }
+
+ public void testContainsValue() {
+ Environment env = getPrePopulatedEnvironment();
+
+ assertTrue(env.containsValue(EnvironmentVariable
+ .createEnvironmentVariable("foo", "bar")));
+ assertFalse(env.containsValue(EnvironmentVariable
+ .createEnvironmentVariable("dum", "my")));
+ }
+
+ public void testGetEnvironment() {
+ Environment env = Environment.getProcEnvironment();
+
+ for (Iterator iter = env.keySet().iterator(); iter.hasNext();) {
+ String key = (String) iter.next();
+ System.out.println(env.get(key));
+ }
+ }
+}
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/environment/EnvironmentTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/java/org/apache/commons/exec/environment/EnvironmentTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.bat
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.bat?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.bat (added)
+++ jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.bat Fri Aug 5 05:21:46 2005
@@ -0,0 +1,19 @@
+@echo off
+REM
+REM Copyright 2001-2002,2004 The Apache Software Foundation
+REM
+REM Licensed under the Apache License, Version 2.0 (the "License");
+REM you may not use this file except in compliance with the License.
+REM You may obtain a copy of the License at
+REM
+REM http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM Unless required by applicable law or agreed to in writing, software
+REM distributed under the License is distributed on an "AS IS" BASIS,
+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM See the License for the specific language governing permissions and
+REM limitations under the License.
+REM
+REM
+
+@echo FOO %TEST_ENV_VAR% %1
\ No newline at end of file
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.bat
------------------------------------------------------------------------------
svn:eol-style = CRLF
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.bat
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.sh
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.sh?rev=230452&view=auto
==============================================================================
--- jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.sh (added)
+++ jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.sh Fri Aug 5 05:21:46 2005
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+#
+# Copyright 2001-2002,2004 The Apache Software Foundation
+#
+# Licensed 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.
+#
+#
+
+echo FOO $TEST_ENV_VAR $1
\ No newline at end of file
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.sh
------------------------------------------------------------------------------
svn:executable = *
Propchange: jakarta/commons/sandbox/exec/trunk/src/test/scripts/test.sh
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org