You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2010/07/28 01:44:55 UTC
svn commit: r979914 - in
/openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools:
MigrationTool.java util/CommandProcessor.java util/Option.java
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.
*