(no commit message)
[utils] / support / general / src / main / java / org / wamblee / io / SimpleProcess.java
index de93e547638d1db49d6c47e57be33665e83d37af..399d0030a9a86aec0311490a70d756ca7956f5c2 100644 (file)
  * 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.wamblee.io;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.PrintStream;
 import java.io.StringWriter;
 import java.io.Writer;
+import java.util.Arrays;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * 
@@ -34,7 +32,8 @@ import java.io.Writer;
  * @version $Revision$
  */
 public class SimpleProcess {
-    private static final Log LOG = LogFactory.getLog(SimpleProcess.class);
+    private static final Logger LOG = Logger.getLogger(SimpleProcess.class
+        .getName());
 
     private File directory;
 
@@ -50,7 +49,7 @@ public class SimpleProcess {
      */
     public SimpleProcess(File aDirectory, String[] aCmd) {
         directory = aDirectory;
-        cmd = aCmd;
+        cmd = Arrays.copyOf(aCmd, aCmd.length);
     }
 
     /**
@@ -83,13 +82,13 @@ public class SimpleProcess {
 
     private int runImpl() throws IOException {
         try {
-            String fullcmd = "";
+            StringBuffer fullcmd = new StringBuffer();
 
             for (String part : cmd) {
-                fullcmd += (" " + part);
+                fullcmd.append(" " + part);
             }
 
-            LOG.debug("Executing '" + fullcmd + "' in directory '" + directory +
+            LOG.fine("Executing '" + fullcmd + "' in directory '" + directory +
                 "'");
 
             java.lang.Process proc = Runtime.getRuntime().exec(cmd, null,
@@ -120,9 +119,9 @@ public class SimpleProcess {
             stderr = myStderr.toString();
 
             if (proc.exitValue() != 0) {
-                LOG.warn("Exit value was non-zero: " + this);
+                LOG.warning("Exit value was non-zero: " + this);
             } else {
-                LOG.debug("Process finished");
+                LOG.fine("Process finished");
             }
 
             return proc.exitValue();
@@ -139,8 +138,11 @@ public class SimpleProcess {
             aReaderThread.join();
         } catch (InterruptedException e) {
             LOG
-                .warn(this +
-                    ": error waiting for output stream reader of process to finish");
+                .log(
+                    Level.WARNING,
+                    this +
+                        ": error waiting for output stream reader of process to finish",
+                    e);
         }
     }
 
@@ -157,18 +159,19 @@ public class SimpleProcess {
                     String str;
 
                     while ((str = br.readLine()) != null) {
-                        LOG.debug(aPrefix + str);
+                        LOG.fine(aPrefix + str);
                         aOutput.write(str);
                     }
                 } catch (IOException e) {
-                    LOG.warn(SimpleProcess.this +
+                    LOG.log(Level.FINE, SimpleProcess.this +
                         ": error reading input stream", e);
                 } finally {
                     if (br != null) {
                         try {
                             br.close();
                         } catch (IOException e) {
-                            LOG.warn("Error closing stream " + aPrefix);
+                            LOG.log(Level.WARNING, "Error closing stream " +
+                                aPrefix, e);
                         }
                     }
                 }
@@ -182,10 +185,10 @@ public class SimpleProcess {
 
     @Override
     public String toString() {
-        String fullcmd = "";
+        StringBuffer fullcmd = new StringBuffer();
 
         for (String part : cmd) {
-            fullcmd += (part + " ");
+            fullcmd.append(part + " ");
         }
 
         return "process(dir = '" + directory + "', cmd = '" + fullcmd + "')";