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 {