You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by io...@apache.org on 2011/10/11 01:00:15 UTC

svn commit: r1181287 - in /karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features: FeaturesSupport.java LocalFeaturesListener.java

Author: iocanel
Date: Mon Oct 10 23:00:15 2011
New Revision: 1181287

URL: http://svn.apache.org/viewvc?rev=1181287&view=rev
Log:
[KARAF-859] Added support for feature repository removal from cellar.

Modified:
    karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java
    karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java

Modified: karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java?rev=1181287&r1=1181286&r2=1181287&view=diff
==============================================================================
--- karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java (original)
+++ karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java Mon Oct 10 23:00:15 2011
@@ -125,6 +125,20 @@ public class FeaturesSupport extends Cel
         }
     }
 
+    /**
+     * Removes a {@code Repository} to the distributed list of repositories.
+     *
+     * @param repository
+     */
+    public void removeRepository(Repository repository, Group group) {
+        String groupName = group.getName();
+        List<String> repositories = clusterManager.getList(Constants.REPOSITORIES + Configurations.SEPARATOR + groupName);
+
+        if (featuresService != null && repositories != null) {
+            URI uri = repository.getURI();
+            repositories.remove(uri.toString());
+        }
+    }
     public FeaturesService getFeaturesService() {
         return featuresService;
     }

Modified: karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java?rev=1181287&r1=1181286&r2=1181287&view=diff
==============================================================================
--- karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java (original)
+++ karaf/cellar/trunk/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java Mon Oct 10 23:00:15 2011
@@ -98,7 +98,13 @@ public class LocalFeaturesListener exten
                 for (Group group : groups) {
                     RemoteRepositoryEvent repositoryEvent = new RemoteRepositoryEvent(event.getRepository().getURI().toString(), event.getType());
                     repositoryEvent.setSourceGroup(group);
-                    pushRepository(event.getRepository(), group);
+                    RepositoryEvent.EventType type = event.getType();
+
+                    if(RepositoryEvent.EventType.RepositoryAdded.equals(type)){
+                        pushRepository(event.getRepository(), group);
+                    } else {
+                        removeRepository(event.getRepository(),group);
+                    }
                     if (producerList != null && !producerList.isEmpty()) {
                         for (EventProducer producer : producerList) {
                             producer.produce(repositoryEvent);