Repository: karaf
Updated Branches:
  refs/heads/karaf-3.0.x 72ec64b19 -> b1724b4a8


[KARAF-2104] Add regex support to feature:repo-refresh command


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/b1724b4a
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/b1724b4a
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/b1724b4a

Branch: refs/heads/karaf-3.0.x
Commit: b1724b4a872e98ac8851932af5063c089bc34e6e
Parents: 72ec64b
Author: Jean-Baptiste Onofré <[email protected]>
Authored: Tue Dec 9 20:34:29 2014 +0100
Committer: Jean-Baptiste Onofré <[email protected]>
Committed: Tue Dec 9 20:34:29 2014 +0100

----------------------------------------------------------------------
 .../karaf/features/command/RepoRefreshCommand.java    | 14 +++++++++++++-
 .../java/org/apache/karaf/itests/FeatureTest.java     |  6 ++++++
 2 files changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/b1724b4a/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java
----------------------------------------------------------------------
diff --git 
a/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java
 
b/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java
index 0dfac1d..2f908f8 100644
--- 
a/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java
+++ 
b/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java
@@ -17,6 +17,8 @@
 package org.apache.karaf.features.command;
 
 import java.net.URI;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.features.Repository;
@@ -26,6 +28,7 @@ import org.apache.karaf.shell.console.AbstractAction;
 
 @Command(scope = "feature", name = "repo-refresh", description = "Refresh a 
features repository")
 public class RepoRefreshCommand extends AbstractAction {
+
     @Argument(index = 0, name = "Feature name or uri", description = "Shortcut 
name of the feature repository or the full URI", required = false, multiValued 
= false)
     private String nameOrUrl;
     
@@ -48,7 +51,16 @@ public class RepoRefreshCommand extends AbstractAction {
                String effectiveVersion = (version == null) ? "LATEST" : 
version;
                URI uri = featureFinder.getUriFor(nameOrUrl, effectiveVersion);
                if (uri == null) {
-                       uri = new URI(nameOrUrl);
+                               // regex on the URL
+                               Pattern pattern = Pattern.compile(nameOrUrl);
+                               for (Repository r : 
featuresService.listRepositories()) {
+                                       URI u = r.getURI();
+                                       Matcher matcher = 
pattern.matcher(u.toString());
+                                       if (matcher.matches()) {
+                                               uri = u;
+                                               break;
+                                       }
+                               }
                }
                System.out.println("Refreshing feature url " + uri);
                featuresService.refreshRepository(uri);

http://git-wip-us.apache.org/repos/asf/karaf/blob/b1724b4a/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java 
b/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java
index 4e03220..879cc51 100644
--- a/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java
+++ b/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java
@@ -105,4 +105,10 @@ public class FeatureTest extends KarafTestSupport {
         }
     }
 
+    @Test
+    public void repoRefreshCommand() throws Exception {
+        String refreshedRepo = executeCommand("feature:repo-refresh 
.*pax-web.*");
+        assertContains("pax-web", refreshedRepo);
+    }
+
 }

Reply via email to