Repository: karaf Updated Branches: refs/heads/master 89481c296 -> bbe54b867
[KARAF-3085] Refactoring of the FeatureFinder to leverage Pax URL and use regular mvn URLs Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/bbe54b86 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/bbe54b86 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/bbe54b86 Branch: refs/heads/master Commit: bbe54b867d93171d2e350bee3dfaea00af8fd4d2 Parents: 89481c2 Author: Jean-Baptiste Onofré <[email protected]> Authored: Tue Jul 22 11:30:10 2014 +0200 Committer: Jean-Baptiste Onofré <[email protected]> Committed: Tue Jul 22 11:30:10 2014 +0200 ---------------------------------------------------------------------- .../etc/org.apache.karaf.features.repos.cfg | 26 ++++++++++---------- .../karaf/features/command/RepoAddCommand.java | 3 +-- .../internal/service/FeatureFinder.java | 25 +++++++++++++++---- 3 files changed, 34 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/bbe54b86/assemblies/features/framework/src/main/resources/resources/etc/org.apache.karaf.features.repos.cfg ---------------------------------------------------------------------- diff --git a/assemblies/features/framework/src/main/resources/resources/etc/org.apache.karaf.features.repos.cfg b/assemblies/features/framework/src/main/resources/resources/etc/org.apache.karaf.features.repos.cfg index 97ef776..8b94ce2 100644 --- a/assemblies/features/framework/src/main/resources/resources/etc/org.apache.karaf.features.repos.cfg +++ b/assemblies/features/framework/src/main/resources/resources/etc/org.apache.karaf.features.repos.cfg @@ -21,16 +21,16 @@ # This file describes the features repository URL # It could be directly installed using feature:repo-add command # - -enterprise = mvn:org.apache.karaf.features/enterprise/$\\\{version}/xml/features -cellar = mvn:org.apache.karaf.cellar/apache-karaf-cellar/$\\\{version}/xml/features -camel = mvn:org.apache.camel.karaf/apache-camel/$\\\{version}/xml/features -camel-extras = mvn:org.apache-extras.camel-extra.karaf/camel-extra/$\\\{version}/xml/features -cxf = mvn:org.apache.cxf.karaf/apache-cxf/$\\\{version}/xml/features -cxf-dosgi = mvn:org.apache.cxf.dosgi/cxf-dosgi/$\\\{version}/xml/features -activemq = mvn:org.apache.activemq/activemq-karaf/$\\\{version}/xml/features -jclouds = mvn:org.jclouds.karaf/jclouds-karaf/$\\\{version}/xml/features -openejb = mvn:org.apache.openejb/openejb-feature/$\\\{version}/xml/features -wicket = mvn:org.ops4j.pax.wicket/features/$\\\{version}/xml/features -hawtio = mvn:io.hawt/hawtio-karaf/$\\\{version}/xml/features -ecf = http://download.eclipse.org/rt/ecf/latest/site.p2/karaf-features.xml +enterprise=mvn:org.apache.karaf.features/enterprise/LATEST/xml/features +cellar=mvn:org.apache.karaf.cellar/apache-karaf-cellar/LATEST/xml/features +cave=mvn:org.apache.karaf.cave/apache-karaf-cave/LATEST/xml/features +camel=mvn:org.apache.camel.karaf/apache-camel/LATEST/xml/features +camel-extras=mvn:org.apache-extras.camel-extra.karaf/camel-extra/LATEST/xml/features +cxf=mvn:org.apache.cxf.karaf/apache-cxf/LATEST/xml/features +cxf-dosgi=mvn:org.apache.cxf.dosgi/cxf-dosgi/LATEST/xml/features +activemq=mvn:org.apache.activemq/activemq-karaf/LATEST/xml/features +jclouds=mvn:org.jclouds.karaf/jclouds-karaf/LATEST/xml/features +openejb=mvn:org.apache.openejb/openejb-feature/LATEST/xml/features +wicket=mvn:org.ops4j.pax.wicket/features/LATEST/xml/features +hawtio=mvn:io.hawt/hawtio-karaf/LATEST/xml/features +ecf=http://download.eclipse.org/rt/ecf/latest/site.p2/karaf-features.xml http://git-wip-us.apache.org/repos/asf/karaf/blob/bbe54b86/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java ---------------------------------------------------------------------- diff --git a/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java index 16faf42..4771053 100644 --- a/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java +++ b/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java @@ -42,8 +42,7 @@ public class RepoAddCommand extends FeaturesCommandSupport { @Override protected void doExecute(FeaturesService featuresService) throws Exception { - String effectiveVersion = (version == null) ? "LATEST" : version; - URI uri = featuresService.getRepositoryUriFor(nameOrUrl, effectiveVersion); + URI uri = featuresService.getRepositoryUriFor(nameOrUrl, version); if (uri == null) { uri = new URI(nameOrUrl); } http://git-wip-us.apache.org/repos/asf/karaf/blob/bbe54b86/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureFinder.java ---------------------------------------------------------------------- diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureFinder.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureFinder.java index 8348ac0..2ee08e7 100644 --- a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureFinder.java +++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureFinder.java @@ -46,11 +46,11 @@ public class FeatureFinder implements ManagedService { if (url == null) { return null; } - Map<String, String> map = new HashMap<>(); - map.put("url", url); - map.put("version", version); - InterpolationHelper.performSubstitution(map); - return URI.create(map.get("url")); + if (version != null) { + // replace the version in the URL with the provided one + url = FeatureFinder.replaceVersion(url, version); + } + return URI.create(url); } @SuppressWarnings("rawtypes") @@ -69,4 +69,19 @@ public class FeatureFinder implements ManagedService { } } + private static String replaceVersion(String url, String version) { + if (url.startsWith("mvn:")) { + // mvn:groupId/artifactId/version... + int index = url.indexOf('/'); + index = url.indexOf('/', index + 1); + + String first = url.substring(0, index); + index = url.indexOf('/', index + 1); + String second = url.substring(index + 1); + + return first + "/" + version + "/" + second; + } + return url; + } + }
