Index: assemblies/apache-karaf/src/main/distribution/text/etc/org.apache.karaf.features.obr.cfg =================================================================== --- assemblies/apache-karaf/src/main/distribution/text/etc/org.apache.karaf.features.obr.cfg (revision 1376198) +++ assemblies/apache-karaf/src/main/distribution/text/etc/org.apache.karaf.features.obr.cfg (working copy) @@ -25,4 +25,12 @@ # Defines whether or not the features OBR resolver has to resolve optional imports as well. The default value is # false (do not attempt to resolve optional imports). # -resolveOptionalImports = false \ No newline at end of file +resolveOptionalImports = false +# +# Defines whether resolved bundles should be started by default. The default is true. +# +startByDefault = true +# +# Defines the start level for resolved bundles. The default is 60. +# +startLevel = 60 Index: features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java =================================================================== --- features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java (revision 1376198) +++ features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java (working copy) @@ -40,6 +40,8 @@ private RepositoryAdmin repositoryAdmin; private boolean resolveOptionalImports; + private boolean startByDefault; + private int startLevel; public RepositoryAdmin getRepositoryAdmin() { return repositoryAdmin; @@ -62,11 +64,19 @@ public void setResolveOptionalImports(boolean resolveOptionalImports) { this.resolveOptionalImports = resolveOptionalImports; } + + public void setStartByDefault(boolean startByDefault) { + this.startByDefault = startByDefault; + } + + public void setStartLevel(int startLevel) { + this.startLevel = startLevel; + } public List resolve(Feature feature) throws Exception { List reqs = new ArrayList(); List ress = new ArrayList(); - List deploy = new ArrayList(); + List featureDeploy = new ArrayList(); Map infos = new HashMap(); for (BundleInfo bundleInfo : feature.getBundles()) { URL url = null; @@ -120,11 +130,13 @@ } List bundles = new ArrayList(); - Collections.addAll(deploy, resolver.getAddedResources()); + List deploy = new ArrayList(); Collections.addAll(deploy, resolver.getRequiredResources()); if (resolveOptionalImports) { Collections.addAll(deploy, resolver.getOptionalResources()); } + Collections.addAll(deploy, resolver.getAddedResources()); + deploy.addAll(featureDeploy); for (Resource res : deploy) { BundleInfo info = infos.get(res); if (info == null) { @@ -139,7 +151,7 @@ } } if (info == null) { - info = new BundleInfoImpl(res.getURI()); + info = new BundleInfoImpl(res.getURI(),this.startLevel,this.startByDefault,false); } bundles.add(info); } Index: features/obr/src/main/resources/OSGI-INF/blueprint/features-obr.xml =================================================================== --- features/obr/src/main/resources/OSGI-INF/blueprint/features-obr.xml (revision 1376198) +++ features/obr/src/main/resources/OSGI-INF/blueprint/features-obr.xml (working copy) @@ -26,6 +26,8 @@ + + file:$(karaf.base)/etc/org.apache.karaf.features.obr.cfg @@ -33,6 +35,8 @@ + +