You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2012/05/15 18:47:29 UTC

svn commit: r1338790 - /karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java

Author: jbonofre
Date: Tue May 15 16:47:28 2012
New Revision: 1338790

URL: http://svn.apache.org/viewvc?rev=1338790&view=rev
Log:
Avoid to override definition when adding a feature repository

Modified:
    karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java

Modified: karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java?rev=1338790&r1=1338789&r2=1338790&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java Tue May 15 16:47:28 2012
@@ -120,14 +120,24 @@ public class LocalFeaturesListener exten
                         Map<FeatureInfo, Boolean> distributedFeatures = clusterManager.getMap(Constants.FEATURES + Configurations.SEPARATOR + group.getName());
                         try {
                             for (Feature feature : event.getRepository().getFeatures()) {
-                                FeatureInfo info = new FeatureInfo(feature.getName(), feature.getVersion());
-                                distributedFeatures.put(info, false);
+                                // check the feature in the distributed map
+                                FeatureInfo featureInfo = null;
+                                for (FeatureInfo distributedFeature : distributedFeatures.keySet()) {
+                                    if (distributedFeature.getName().equals(feature.getName()) && distributedFeature.getVersion().equals(feature.getVersion())) {
+                                        featureInfo = distributedFeature;
+                                        break;
+                                    }
+                                }
+                                if (featureInfo == null) {
+                                    featureInfo = new FeatureInfo(feature.getName(), feature.getVersion());
+                                    distributedFeatures.put(featureInfo, false);
+                                }
                             }
                         } catch (Exception e) {
                             LOGGER.warn("CELLAR FEATURES: can't update the distributed features map", e);
                         }
                     } else {
-                        removeRepository(event.getRepository(),group);
+                        removeRepository(event.getRepository(), group);
                         // update the feature map
                         Map<FeatureInfo, Boolean> distributedFeatures = clusterManager.getMap(Constants.FEATURES + Configurations.SEPARATOR + group.getName());
                         try {