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