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;


Reply via email to