Skip to content

Commit

Permalink
FORGE-2501: Fixed CoordinateBuilder parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Oct 19, 2015
1 parent 99b2028 commit e3c0ab1
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,38 +36,37 @@ public static CoordinateBuilder create(String coordinates)
CoordinateBuilder builder = CoordinateBuilder.create();
// groupId:artifactId:packaging:classifier:version
String[] split = coordinates.split("\\:");
if (split.length == 0)
{
throw new IllegalArgumentException(
"Malformed coordinate. Should be groupId:artifactId:[packaging]:[classifier]:[version]");
}
if (split.length > 0)
switch (split.length)
{
case 1:
builder.setGroupId(split[0]);
break;
case 2:
builder.setGroupId(split[0]);
builder.setArtifactId(split[1]);
break;
case 3:
builder.setGroupId(split[0]);
}
if (split.length > 1)
{
builder.setArtifactId(split[1]);
}
if (split.length == 3)
{
// The last one is the version, otherwise, continue parsing
builder.setVersion(split[2]);
}
else
{
if (split.length > 2)
{
builder.setPackaging(split[2]);
}
if (split.length > 3)
{
builder.setClassifier(split[3]);
}
if (split.length > 4)
{
builder.setVersion(split[4]);
}
break;
case 4:
builder.setGroupId(split[0]);
builder.setArtifactId(split[1]);
builder.setPackaging(split[2]);
builder.setVersion(split[3]);
break;
case 5:
builder.setGroupId(split[0]);
builder.setArtifactId(split[1]);
builder.setPackaging(split[2]);
builder.setClassifier(split[3]);
builder.setVersion(split[4]);
break;
default:
throw new IllegalArgumentException(
"Malformed coordinate (" + coordinates
+ "). Should be groupId:artifactId:[packaging]:[classifier]:[version]");
}
return builder;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,17 @@ public void testCreateVersionlessCoordinateFromString()
Assert.assertEquals(coordinates, coord.toString());
}

@Test
public void testCreateCoordinateWithClassifierFromString()
{
String coordinates = "org.wildfly:wildfly-dist:zip:9.0.0.Final";
CoordinateBuilder coord = CoordinateBuilder.create(coordinates);
Assert.assertEquals("org.wildfly", coord.getGroupId());
Assert.assertEquals("wildfly-dist", coord.getArtifactId());
Assert.assertEquals("zip", coord.getPackaging());
Assert.assertNull(coord.getClassifier());
Assert.assertEquals("9.0.0.Final", coord.getVersion());
Assert.assertEquals(coordinates, coord.toString());
}

}

0 comments on commit e3c0ab1

Please sign in to comment.