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);
}
}
}