Author: gnodet
Date: Wed Oct 14 11:44:55 2009
New Revision: 825092
URL: http://svn.apache.org/viewvc?rev=825092&view=rev
Log:
FELIX-1689: improve the features deployer to leverage batch installation too
Modified:
felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java
felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java
Modified:
felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java
URL:
http://svn.apache.org/viewvc/felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java?rev=825092&r1=825091&r2=825092&view=diff
==============================================================================
---
felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java
(original)
+++
felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java
Wed Oct 14 11:44:55 2009
@@ -25,7 +25,12 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.EnumSet;
import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Set;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
@@ -168,12 +173,11 @@
featuresService.addRepository(url.toURI());
for (Repository repo : featuresService.listRepositories())
{
if (repo.getURI().equals(url.toURI())) {
- for (Feature f : repo.getFeatures()) {
- try {
-
featuresService.installFeature(f.getName(), f.getVersion());
- } catch (Exception e) {
- LOGGER.error("Unable to install feature: "
+ f.getName(), e);
- }
+ Set<Feature> features = new
HashSet<Feature>(Arrays.asList(repo.getFeatures()));
+ try {
+ featuresService.installFeatures(features,
EnumSet.noneOf(FeaturesService.Option.class));
+ } catch (Exception e) {
+ LOGGER.error("Unable to install features", e);
}
}
}
Modified:
felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml
URL:
http://svn.apache.org/viewvc/felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml?rev=825092&r1=825091&r2=825092&view=diff
==============================================================================
---
felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml
(original)
+++
felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml
Wed Oct 14 11:44:55 2009
@@ -18,7 +18,6 @@
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-
xmlns:cm="http://geronimo.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
default-activation="lazy">
<service ref="featureDeploymentListener" auto-export="interfaces"/>
Modified:
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java
URL:
http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java?rev=825092&r1=825091&r2=825092&view=diff
==============================================================================
---
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java
(original)
+++
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java
Wed Oct 14 11:44:55 2009
@@ -18,6 +18,7 @@
import java.net.URI;
import java.util.EnumSet;
+import java.util.Set;
/**
* The service managing features repositories.
@@ -42,6 +43,10 @@
void installFeature(String name, String version, EnumSet<Option> options)
throws Exception;
+ void installFeature(Feature f, EnumSet<Option> options) throws Exception;
+
+ void installFeatures(Set<Feature> features, EnumSet<Option> options)
throws Exception;
+
void uninstallFeature(String name) throws Exception;
void uninstallFeature(String name, String version) throws Exception;