You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@batchee.apache.org by rm...@apache.org on 2017/06/23 14:16:57 UTC
incubator-batchee git commit: BATCHEE-121 ensure cli can use default
values for options
Repository: incubator-batchee
Updated Branches:
refs/heads/master a07bf2c7c -> fa48787aa
BATCHEE-121 ensure cli can use default values for options
Project: http://git-wip-us.apache.org/repos/asf/incubator-batchee/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-batchee/commit/fa48787a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-batchee/tree/fa48787a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-batchee/diff/fa48787a
Branch: refs/heads/master
Commit: fa48787aac9c8656f35ad9033f053707004dfb3b
Parents: a07bf2c
Author: rmannibucau <rm...@apache.org>
Authored: Fri Jun 23 16:16:47 2017 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Jun 23 16:16:47 2017 +0200
----------------------------------------------------------------------
tools/cli/src/main/assembly/bin-openejb.xml | 9 ++++
tools/cli/src/main/assembly/bin.xml | 8 ++++
.../java/org/apache/batchee/cli/BatchEECLI.java | 48 ++++++++++++++++++++
.../batchee/cli/command/JobOperatorCommand.java | 4 --
.../resources/default/batchee-cli.properties | 24 ++++++++++
.../resources/openejb/batchee-cli.properties | 26 +++++++++++
6 files changed, 115 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/fa48787a/tools/cli/src/main/assembly/bin-openejb.xml
----------------------------------------------------------------------
diff --git a/tools/cli/src/main/assembly/bin-openejb.xml b/tools/cli/src/main/assembly/bin-openejb.xml
index f90b11b..ac62885 100644
--- a/tools/cli/src/main/assembly/bin-openejb.xml
+++ b/tools/cli/src/main/assembly/bin-openejb.xml
@@ -45,6 +45,15 @@
<outputDirectory>conf/</outputDirectory>
<includes>
<include>logging.properties</include>
+ <include>batchee-cli_openejb.properties</include>
+ </includes>
+ <lineEnding>unix</lineEnding>
+ </fileSet>
+ <fileSet>
+ <directory>${project.build.outputDirectory}/openejb</directory>
+ <outputDirectory>conf/</outputDirectory>
+ <includes>
+ <include>batchee-cli.properties</include>
</includes>
<lineEnding>unix</lineEnding>
</fileSet>
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/fa48787a/tools/cli/src/main/assembly/bin.xml
----------------------------------------------------------------------
diff --git a/tools/cli/src/main/assembly/bin.xml b/tools/cli/src/main/assembly/bin.xml
index 8420401..35c58c3 100644
--- a/tools/cli/src/main/assembly/bin.xml
+++ b/tools/cli/src/main/assembly/bin.xml
@@ -49,6 +49,14 @@
<lineEnding>unix</lineEnding>
</fileSet>
<fileSet>
+ <directory>${project.build.outputDirectory}/default</directory>
+ <outputDirectory>conf/</outputDirectory>
+ <includes>
+ <include>batchee-cli.properties</include>
+ </includes>
+ <lineEnding>unix</lineEnding>
+ </fileSet>
+ <fileSet>
<directory>${project.build.directory}/</directory>
<outputDirectory>bin/</outputDirectory>
<includes>
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/fa48787a/tools/cli/src/main/java/org/apache/batchee/cli/BatchEECLI.java
----------------------------------------------------------------------
diff --git a/tools/cli/src/main/java/org/apache/batchee/cli/BatchEECLI.java b/tools/cli/src/main/java/org/apache/batchee/cli/BatchEECLI.java
index 4ebb4eb..41ad0b6 100644
--- a/tools/cli/src/main/java/org/apache/batchee/cli/BatchEECLI.java
+++ b/tools/cli/src/main/java/org/apache/batchee/cli/BatchEECLI.java
@@ -40,6 +40,10 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.Reader;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
@@ -50,6 +54,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.ServiceLoader;
import java.util.TreeMap;
@@ -112,6 +117,49 @@ public class BatchEECLI {
final Collection<String> newArgs = new ArrayList<String>(asList(args));
newArgs.remove(newArgs.iterator().next());
+ final File cliConf;
+ String home = System.getProperty("batchee.home");
+ if (home == null) {
+ final String conf = System.getProperty("batchee.cli.configuration");
+ if (conf == null) {
+ cliConf = null;
+ } else {
+ cliConf = new File(conf);
+ }
+ } else {
+ cliConf = new File(home, "conf/batchee-cli.properties");
+ }
+ if (cliConf != null && cliConf.exists()) {
+ final Properties properties = new Properties() {{
+ Reader reader = null;
+ try {
+ reader = new FileReader(cliConf);
+ load(reader);
+ } catch (IOException e) {
+ throw new IllegalArgumentException(e);
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (final IOException e) {
+ // no-op
+ }
+ }
+ }
+ }};
+ for (final String key : properties.stringPropertyNames()) {
+ if (key.startsWith("_arguments.")) { // /!\ added whatever passed values are
+ newArgs.add(properties.getProperty(key));
+ } else {
+ final String opt = "-" + key;
+ if (!newArgs.contains(opt)) {
+ newArgs.add(opt);
+ newArgs.add(properties.getProperty(key));
+ }
+ }
+ }
+ }
+
final CommandLineParser parser = new DefaultParser();
try {
final CommandLine line = parser.parse(options, newArgs.toArray(new String[newArgs.size()]));
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/fa48787a/tools/cli/src/main/java/org/apache/batchee/cli/command/JobOperatorCommand.java
----------------------------------------------------------------------
diff --git a/tools/cli/src/main/java/org/apache/batchee/cli/command/JobOperatorCommand.java b/tools/cli/src/main/java/org/apache/batchee/cli/command/JobOperatorCommand.java
index 3421bcf..bec981d 100644
--- a/tools/cli/src/main/java/org/apache/batchee/cli/command/JobOperatorCommand.java
+++ b/tools/cli/src/main/java/org/apache/batchee/cli/command/JobOperatorCommand.java
@@ -175,10 +175,6 @@ public abstract class JobOperatorCommand implements Runnable {
final Lifecycle<Object> lifecycleInstance;
final Object state;
- if (lifecycle == null) {
- lifecycle = System.getProperty("org.apache.batchee.cli.lifecycle");
- }
-
if (lifecycle != null) {
lifecycleInstance = createLifecycle(loader);
state = lifecycleInstance.start();
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/fa48787a/tools/cli/src/main/resources/default/batchee-cli.properties
----------------------------------------------------------------------
diff --git a/tools/cli/src/main/resources/default/batchee-cli.properties b/tools/cli/src/main/resources/default/batchee-cli.properties
new file mode 100644
index 0000000..40226a0
--- /dev/null
+++ b/tools/cli/src/main/resources/default/batchee-cli.properties
@@ -0,0 +1,24 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+
+#
+# You can put here default options you want inherited by all commands (without trailing iphen).
+#
+
+# ex:
+# lifecycle = openejb
+# sharedLibs = /opt/batch/libs
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/fa48787a/tools/cli/src/main/resources/openejb/batchee-cli.properties
----------------------------------------------------------------------
diff --git a/tools/cli/src/main/resources/openejb/batchee-cli.properties b/tools/cli/src/main/resources/openejb/batchee-cli.properties
new file mode 100644
index 0000000..50f452c
--- /dev/null
+++ b/tools/cli/src/main/resources/openejb/batchee-cli.properties
@@ -0,0 +1,26 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+
+#
+# You can put here default options you want inherited by all commands (without trailing iphen).
+#
+
+# ex:
+# sharedLibs = /opt/batch/libs
+
+lifecycle = openejb
+