You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2009/10/14 13:44:56 UTC
svn commit: r825092 - in /felix/trunk/karaf:
deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/
deployer/features/src/main/resources/OSGI-INF/blueprint/
features/core/src/main/java/org/apache/felix/karaf/features/
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;