Author: ppoddar
Date: Tue Jul 27 23:44:55 2010
New Revision: 979914

URL: http://svn.apache.org/viewvc?rev=979914&view=rev
Log:
OPENJPA-1747: Use OpenJPA core libraries for command-line processing

Removed:
    
openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/util/CommandProcessor.java
    
openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/util/Option.java
Modified:
    
openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java

Modified: 
openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java
URL: 
http://svn.apache.org/viewvc/openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java?rev=979914&r1=979913&r2=979914&view=diff
==============================================================================
--- 
openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java
 (original)
+++ 
openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java
 Tue Jul 27 23:44:55 2010
@@ -20,6 +20,7 @@ package org.apache.openjpa.tools;
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintStream;
@@ -29,6 +30,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 import java.util.logging.ConsoleHandler;
 import java.util.logging.FileHandler;
@@ -44,10 +46,9 @@ import javax.xml.transform.TransformerFa
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
+import org.apache.openjpa.lib.util.Options;
 import org.apache.openjpa.tools.action.Actions;
-import org.apache.openjpa.tools.util.CommandProcessor;
 import org.apache.openjpa.tools.util.LogRecordFormatter;
-import org.apache.openjpa.tools.util.Option;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Comment;
 import org.w3c.dom.Document;
@@ -126,58 +127,22 @@ public class MigrationTool  {
     private LogRecordFormatter _formatter;
 
     public static void main(String[] args) throws Exception {
+       new MigrationTool().run(args);
     }
     
     public void run(String[] args) throws Exception {
-        // sets up command processing
-        CommandProcessor cp = new CommandProcessor();
-        Option<String> inputOption    = cp.register(String.class, true,  true, 
"-input","-i");
-        Option<String> outputOption   = cp.register(String.class, false, true, 
"-output","-o");
-        Option<String> errorOption    = cp.register(String.class, false, true, 
"-error","-err");
-        Option<String> rulebase = cp.register(String.class, false, true, 
"-rules");
-        rulebase.setDefault(DEFAULT_ACTIONS);
-        Option<Boolean> verbose = cp.register(Boolean.class, false, false, 
"-verbose","-v");
-        
-        inputOption.setDescription("Hibernate XML file.");
-        outputOption.setDescription("Output file name. Defaults to standard 
console.");
-        errorOption.setDescription("Error output file name. Add a + sign at 
the end " +
-            "to append to an existing file. Defaults to standard error 
console.");
-        rulebase.setDescription("Rules specification XML file. Defaults to " + 
DEFAULT_ACTIONS);
-        verbose.setDescription("Prints detailed trace. Defaults to false.");
-        
-        cp.setAllowsUnregisteredOption(false);
-        if (!cp.validate(args)) {
-            System.err.println(cp.usage(MigrationTool.class));
-            System.exit(1);
-        } else {
-            cp.setFrom(args);
-        }
-        _input = getInputStream(cp.getValue(inputOption));
-        _ouput = getOutputStream(cp.getValue(outputOption));
-        _rulebase  = getInputStream(cp.getValue(rulebase));
-        
         _logger = Logger.getLogger(getClass().getPackage().getName());
-        Handler handler = null;
         _formatter = new LogRecordFormatter();
-        _formatter.setSource(cp.getValue(inputOption));
-        
-        if (!cp.isSet(errorOption)) {
-            handler = new ConsoleHandler();
-        } else {
-            String errorOutput = cp.getValue(errorOption);
-            if (errorOutput.endsWith("+")) {
-                handler = new 
FileHandler(errorOutput.substring(errorOutput.length()-1), true);
-            } else {
-                handler = new FileHandler(errorOutput, false);
-            }
-        }
-        _logger.setUseParentHandlers(false);
-        handler.setFormatter(_formatter);
-        _logger.addHandler(handler);
-       _logger.setLevel(cp.isSet(verbose) ? Level.INFO : Level.WARNING);
         
-       
-       buildRepository(_rulebase);
+       Properties defaults = new Properties();
+       defaults.setProperty("output", "System.out");
+       defaults.setProperty("error",  "System.err");
+       defaults.setProperty("actions", DEFAULT_ACTIONS);
+       defaults.setProperty("verbose", "false");
+       
+        Options options = new Options(defaults);
+       options.setFromCmdLine(args);
+       options = options.setInto(this);
         
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         factory.setValidating(false);
@@ -203,6 +168,42 @@ public class MigrationTool  {
         _ouput.close();
     }
     
+    public void setInput(String input) {
+       _input = getInputStream(input);
+        _formatter.setSource(input);
+    }
+    
+    public void setOutput(String output) {
+       if ("System.out".equals(output)) {
+               _ouput = System.out;
+       } else {
+               _ouput = getOutputStream(output);
+       }
+    }
+    
+    public void setError(String errorOutput) throws IOException {
+        Handler handler = null;
+        if ("System.err".equals(errorOutput)) {
+               handler = new ConsoleHandler();
+        } else if (errorOutput.endsWith("+")) {
+            handler = new 
FileHandler(errorOutput.substring(errorOutput.length()-1), true);
+        } else {
+            handler = new FileHandler(errorOutput, false);
+        }
+        _logger.setUseParentHandlers(false);
+        handler.setFormatter(_formatter);
+        _logger.addHandler(handler);
+    }
+    
+    public void setActions(String actions) throws Exception {
+       _rulebase = getInputStream(actions);
+       buildRepository(_rulebase);
+    }
+    
+    public void setVerbose(boolean verbose) {
+        _logger.setLevel(verbose ? Level.INFO : Level.WARNING);
+    }
+    
     /**
      * Builds a repository of actions by parsing the rule base - a XML 
specification of rules.
      * 


Reply via email to