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/02/25 14:01:49 UTC

svn commit: r1074508 - in /karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command: AddUrlCommand.java FeaturesCommandSupport.java RefreshUrlCommand.java

Author: iocanel
Date: Fri Feb 25 13:01:48 2011
New Revision: 1074508

URL: http://svn.apache.org/viewvc?rev=1074508&view=rev
Log:
[KARAF-471] Added a refreshUrl method on FeaturesCommandSupport. AddUrlCommand now checks if URL already exsists and if so it calls refreshUrl instead.

Modified:
    karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java
    karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java
    karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java

Modified: karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java?rev=1074508&r1=1074507&r2=1074508&view=diff
==============================================================================
--- karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java (original)
+++ karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java Fri Feb 25 13:01:48 2011
@@ -18,10 +18,10 @@ package org.apache.karaf.features.comman
 
 import java.net.URI;
 import java.util.List;
-
-import org.apache.karaf.features.FeaturesService;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
+import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.features.Repository;
 
 @Command(scope = "features", name = "addUrl", description = "Adds a list of repository URLs to the features service.")
 public class AddUrlCommand extends FeaturesCommandSupport {
@@ -32,7 +32,20 @@ public class AddUrlCommand extends Featu
     protected void doExecute(FeaturesService admin) throws Exception {
         for (String url : urls) {
             try {
-                admin.addRepository(new URI(url));
+	             Boolean alreadyInstalled = Boolean.FALSE;
+	             Repository[] repositories = admin.listRepositories();
+	             for(Repository repository:repositories) {
+		             String repositoryUrl = repository.getURI().toURL().toString();
+		             //Check if the repository is already installed.
+		             if(repositoryUrl.equals(url)) {
+		                 alreadyInstalled=Boolean.TRUE;
+		             }
+	             }
+	             if(!alreadyInstalled) {
+                    admin.addRepository(new URI(url));
+	             } else {
+		              refreshUrl(admin, url);
+	             }
             } catch (Exception e) {
                 System.out.println("Could not add Feature Repository:\n" + e );  
             }

Modified: karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java?rev=1074508&r1=1074507&r2=1074508&view=diff
==============================================================================
--- karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java (original)
+++ karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java Fri Feb 25 13:01:48 2011
@@ -16,8 +16,9 @@
  */
 package org.apache.karaf.features.command;
 
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import java.net.URI;
 import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.shell.console.OsgiCommandSupport;
 import org.osgi.framework.ServiceReference;
 
 public abstract class FeaturesCommandSupport extends OsgiCommandSupport {
@@ -44,6 +45,25 @@ public abstract class FeaturesCommandSup
         return null;
     }
 
+
+	/**
+	 * Refreshes the url.
+	 * @param admin
+	 * @param url
+	 * @throws Exception
+	 */
+	protected void refreshUrl(FeaturesService admin,String url) throws Exception {
+		try {
+                URI uri = new URI(url);
+                admin.removeRepository(uri);
+                admin.addRepository(uri);
+            } catch (Exception e) {
+                System.out.println("Could not refresh Feature Repository:\n" + e.getMessage() );
+                //get chance to restore previous, fix for KARAF-4
+                admin.restoreRepository(new URI(url));
+            }
+	}
+
     protected abstract void doExecute(FeaturesService admin) throws Exception;
 
 }

Modified: karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java?rev=1074508&r1=1074507&r2=1074508&view=diff
==============================================================================
--- karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java (original)
+++ karaf/trunk/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java Fri Feb 25 13:01:48 2011
@@ -16,10 +16,8 @@
  */
 package org.apache.karaf.features.command;
 
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
-
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 import org.apache.karaf.features.FeaturesService;
@@ -39,15 +37,7 @@ public class RefreshUrlCommand extends F
             }
         }
         for (String strUri : urls) {
-            try {
-                URI uri = new URI(strUri);
-                admin.removeRepository(uri);
-                admin.addRepository(uri);
-            } catch (Exception e) {
-                System.out.println("Could not refresh Feature Repository:\n" + e.getMessage() );
-                //get chance to restore previous, fix for KARAF-4
-                admin.restoreRepository(new URI(strUri));
-            }
+            refreshUrl(admin, strUri);
         }
     }
 }