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