You're obviously right. I'll move it to the utils module and use an inlined package in the 3 bundles.
On Mon, Jan 21, 2013 at 5:00 PM, Andreas Pieber <[email protected]> wrote: > just my 0.02€ but maybe we don't want to duplicate the same code thrice? > :-) > > Kind regards, > Andreas > > On Mon, Jan 21, 2013 at 2:41 PM, <[email protected]> wrote: > > Author: gnodet > > Date: Mon Jan 21 13:41:10 2013 > > New Revision: 1436343 > > > > URL: http://svn.apache.org/viewvc?rev=1436343&view=rev > > Log: > > [KARAF-2134] Deployers do not support mvn urls well > > > > Modified: > > > karaf/branches/karaf-2.2.x/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintTransformer.java > > > karaf/branches/karaf-2.2.x/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java > > > karaf/branches/karaf-2.2.x/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java > > > > Modified: > karaf/branches/karaf-2.2.x/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintTransformer.java > > URL: > http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintTransformer.java?rev=1436343&r1=1436342&r2=1436343&view=diff > > > ============================================================================== > > --- > karaf/branches/karaf-2.2.x/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintTransformer.java > (original) > > +++ > karaf/branches/karaf-2.2.x/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintTransformer.java > Mon Jan 21 13:41:10 2013 > > @@ -64,7 +64,7 @@ public class BlueprintTransformer { > > // Build dom document > > Document doc = parse(url); > > // Heuristicly retrieve name and version > > - String name = url.getPath(); > > + String name = getPath(url); > > int idx = name.lastIndexOf('/'); > > if (idx >= 0) { > > name = name.substring(idx + 1); > > @@ -185,6 +185,28 @@ public class BlueprintTransformer { > > return db.parse(url.toString()); > > } > > > > + protected static String getPath(URL url) { > > + if (url.getProtocol().equals("mvn")) { > > + String[] parts = > url.toExternalForm().substring(4).split("/"); > > + String groupId; > > + String artifactId; > > + String version; > > + String type; > > + String qualifier; > > + if (parts.length < 3 || parts.length > 5) { > > + return url.getPath(); > > + } > > + groupId = parts[0]; > > + artifactId = parts[1]; > > + version = parts[2]; > > + type = (parts.length >= 4) ? "." + parts[3] : ".jar"; > > + qualifier = (parts.length >= 5) ? "-" + parts[4] : ""; > > + return groupId.replace('.', '/') + "/" + artifactId + "/" > > + + version + "/" + artifactId + "-" + version + > qualifier + type; > > + } > > + return url.getPath(); > > + } > > + > > protected static void copyInputStream(InputStream in, OutputStream > out) throws Exception { > > byte[] buffer = new byte[4096]; > > int len = in.read(buffer); > > > > Modified: > karaf/branches/karaf-2.2.x/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java > > URL: > http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java?rev=1436343&r1=1436342&r2=1436343&view=diff > > > ============================================================================== > > --- > karaf/branches/karaf-2.2.x/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java > (original) > > +++ > karaf/branches/karaf-2.2.x/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java > Mon Jan 21 13:41:10 2013 > > @@ -36,7 +36,7 @@ public class FeatureTransformer { > > > > public static void transform(URL url, OutputStream os) throws > Exception { > > // Heuristicly retrieve name and version > > - String name = url.getPath(); > > + String name = getPath(url); > > int idx = name.lastIndexOf('/'); > > if (idx >= 0) { > > name = name.substring(idx + 1); > > @@ -72,6 +72,28 @@ public class FeatureTransformer { > > os.close(); > > } > > > > + private static String getPath(URL url) { > > + if (url.getProtocol().equals("mvn")) { > > + String[] parts = > url.toExternalForm().substring(4).split("/"); > > + String groupId; > > + String artifactId; > > + String version; > > + String type; > > + String qualifier; > > + if (parts.length < 3 || parts.length > 5) { > > + return url.getPath(); > > + } > > + groupId = parts[0]; > > + artifactId = parts[1]; > > + version = parts[2]; > > + type = (parts.length >= 4) ? "." + parts[3] : ".jar"; > > + qualifier = (parts.length >= 5) ? "-" + parts[4] : ""; > > + return groupId.replace('.', '/') + "/" + artifactId + "/" > > + + version + "/" + artifactId + "-" + version + > qualifier + type; > > + } > > + return url.getPath(); > > + } > > + > > private static void copyInputStream(InputStream in, OutputStream > out) throws IOException { > > byte[] buffer = new byte[8192]; > > int len = in.read(buffer); > > > > Modified: > karaf/branches/karaf-2.2.x/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java > > URL: > http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java?rev=1436343&r1=1436342&r2=1436343&view=diff > > > ============================================================================== > > --- > karaf/branches/karaf-2.2.x/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java > (original) > > +++ > karaf/branches/karaf-2.2.x/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java > Mon Jan 21 13:41:10 2013 > > @@ -64,7 +64,7 @@ public class SpringTransformer { > > // Build dom document > > Document doc = parse(url); > > // Heuristicly retrieve name and version > > - String name = url.getPath(); > > + String name = getPath(url); > > int idx = name.lastIndexOf('/'); > > if (idx >= 0) { > > name = name.substring(idx + 1); > > @@ -182,6 +182,28 @@ public class SpringTransformer { > > return db.parse(url.toString()); > > } > > > > + protected static String getPath(URL url) { > > + if (url.getProtocol().equals("mvn")) { > > + String[] parts = > url.toExternalForm().substring(4).split("/"); > > + String groupId; > > + String artifactId; > > + String version; > > + String type; > > + String qualifier; > > + if (parts.length < 3 || parts.length > 5) { > > + return url.getPath(); > > + } > > + groupId = parts[0]; > > + artifactId = parts[1]; > > + version = parts[2]; > > + type = (parts.length >= 4) ? "." + parts[3] : ".jar"; > > + qualifier = (parts.length >= 5) ? "-" + parts[4] : ""; > > + return groupId.replace('.', '/') + "/" + artifactId + "/" > > + + version + "/" + artifactId + "-" + version + > qualifier + type; > > + } > > + return url.getPath(); > > + } > > + > > protected static void copyInputStream(InputStream in, OutputStream > out) throws Exception { > > byte[] buffer = new byte[4096]; > > int len = in.read(buffer); > > > > > -- ------------------------ Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ FuseSource, Integration everywhere http://fusesource.com
