You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/05/21 15:39:28 UTC

[2/2] git commit: [KARAF-2994] Use the current distribution configuration for default boot features when creating children

[KARAF-2994] Use the current distribution configuration for default boot features when creating children

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/5bd09d42
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/5bd09d42
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/5bd09d42

Branch: refs/heads/master
Commit: 5bd09d426f326db5699a6f479f21055f2e32e361
Parents: e473b22
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed May 21 15:39:12 2014 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Wed May 21 15:39:12 2014 +0200

----------------------------------------------------------------------
 .../karaf/instance/command/CreateCommand.java   | 25 ++++++++++++++++++++
 1 file changed, 25 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/5bd09d42/instance/src/main/java/org/apache/karaf/instance/command/CreateCommand.java
----------------------------------------------------------------------
diff --git a/instance/src/main/java/org/apache/karaf/instance/command/CreateCommand.java b/instance/src/main/java/org/apache/karaf/instance/command/CreateCommand.java
index 0dcc3ac..3ad54ad 100644
--- a/instance/src/main/java/org/apache/karaf/instance/command/CreateCommand.java
+++ b/instance/src/main/java/org/apache/karaf/instance/command/CreateCommand.java
@@ -16,8 +16,12 @@
  */
 package org.apache.karaf.instance.command;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
+import org.apache.felix.utils.properties.Properties;
 import org.apache.karaf.features.command.completers.AllFeatureCompleter;
 import org.apache.karaf.features.command.completers.InstalledRepoUriCompleter;
 import org.apache.karaf.instance.core.InstanceSettings;
@@ -34,6 +38,12 @@ import org.apache.karaf.shell.api.action.lifecycle.Service;
 @Service
 public class CreateCommand extends InstanceCommandSupport
 {
+
+    public static final String FEATURES_SERVICE_CONFIG_FILE = "org.apache.karaf.features.cfg";
+
+    @Option(name = "-b", aliases = "--bare", description = "Do not use add default features")
+    boolean bare;
+
     @Option(name = "-s", aliases = {"--ssh-port"}, description = "Port number for remote secure shell connection", required = false, multiValued = false)
     int sshPort = 0;
 
@@ -66,6 +76,21 @@ public class CreateCommand extends InstanceCommandSupport
     String instance = null;
 
     protected Object doExecute() throws Exception {
+        if (!bare) {
+            Properties configuration = new Properties();
+            File configFile = new File(System.getProperty("karaf.etc"), FEATURES_SERVICE_CONFIG_FILE);
+            configuration.load(configFile);
+            String featuresRepositories = configuration.getProperty("featuresRepositories", "");
+            String featuresBoot = configuration.getProperty("featuresBoot", "");
+            if (featureURLs == null) {
+                featureURLs = new ArrayList<>();
+            }
+            featureURLs.addAll(Arrays.asList(featuresRepositories.split(",")));
+            if (features == null) {
+                features = new ArrayList<>();
+            }
+            features.addAll(Arrays.asList(featuresBoot.split(",")));
+        }
         InstanceSettings settings = new InstanceSettings(sshPort, rmiRegistryPort, rmiServerPort, location, javaOpts, featureURLs, features);
         getInstanceService().createInstance(instance, settings, verbose);
         return null;