Fixes parsing of versions with multiple underscores
diff --git a/org.eclipse.virgo.build.p2tools/src/main/java/org/eclipse/virgo/build/p2tools/convertor/P2toIvyAction.java b/org.eclipse.virgo.build.p2tools/src/main/java/org/eclipse/virgo/build/p2tools/convertor/P2toIvyAction.java
index 436653d..33486c6 100644
--- a/org.eclipse.virgo.build.p2tools/src/main/java/org/eclipse/virgo/build/p2tools/convertor/P2toIvyAction.java
+++ b/org.eclipse.virgo.build.p2tools/src/main/java/org/eclipse/virgo/build/p2tools/convertor/P2toIvyAction.java
@@ -33,9 +33,9 @@
continue;
}
String nameVersion = bundle.getName().substring(0, bundle.getName().lastIndexOf("."));
- String[] pair = nameVersion.split("_");
- String bundleName = pair[0];
- String bundleVersion = pair[1];
+ String[] parts = nameVersion.split("_");
+ String bundleName = parts[0];
+ String bundleVersion = createBundleVersion(parts);
if (!processed.contains(nameVersion)) {
File bundleDir = createDirectory(targetIvyRepo, nameVersion);
File targetDir = createDirectory(bundleDir, "target");
@@ -62,11 +62,19 @@
generateBuildVersionsFile(buildVersionsFile, processed);
System.out.println("Successfully generated build.versions for mirrored artifacts.");
}
+
+ String createBundleVersion(String[] parts) {
+ String bundleVersion = parts[1];
+ for (int i = 2; i < parts.length; i++) {
+ bundleVersion += "_" + parts[i];
+ }
+ return bundleVersion;
+ }
public void generateBuildVersionsFile(File buildVersions, Set<String> processed) throws IOException {
StringBuilder builder = new StringBuilder();
for (String nameVersionPair : processed) {
- builder.append(nameVersionPair.replaceAll("_", "=") + EOL);
+ builder.append(nameVersionPair.replaceFirst("_", "=") + EOL);
}
writeToFile(buildVersions, builder.toString());
}
diff --git a/org.eclipse.virgo.build.p2tools/src/test/java/org/eclipse/virgo/build/p2tools/convertor/P2toIvyActionTests.java b/org.eclipse.virgo.build.p2tools/src/test/java/org/eclipse/virgo/build/p2tools/convertor/P2toIvyActionTests.java
new file mode 100644
index 0000000..7936034
--- /dev/null
+++ b/org.eclipse.virgo.build.p2tools/src/test/java/org/eclipse/virgo/build/p2tools/convertor/P2toIvyActionTests.java
@@ -0,0 +1,16 @@
+package org.eclipse.virgo.build.p2tools.convertor;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+public class P2toIvyActionTests {
+ P2toIvyAction action = new P2toIvyAction();
+
+ @Test
+ public void testVersionCreate() {
+ String[] parts = {"bsn", "major.minor.micro", "qualifier", "1.2.3"};
+ String version = this.action.createBundleVersion(parts);
+ assertEquals("major.minor.micro_qualifier_1.2.3", version);
+ }
+}