/** * Creates a new {@link MavenCoordinate} instance from the specified arguments * * @param groupId A groupId of the new {@link MavenCoordinate} instance * @param artifactId An artifactId of the new {@link MavenCoordinate} instance * @param version A version of the new {@link MavenCoordinate} instance * @param packaging A packaging of the new {@link MavenCoordinate} instance * @param classifier A classifier of the new {@link MavenCoordinate} instance * @return A new {@link MavenCoordinate} instance * @throws IllegalArgumentException * If <code>groupId</code> or <code>artifactId</code> is not specified */ public static MavenCoordinate createCoordinate(final String groupId, final String artifactId, final String version, final PackagingType packaging, final String classifier) throws IllegalArgumentException { if (groupId == null || groupId.length() == 0) { throw new IllegalArgumentException("groupId is required"); } if (artifactId == null || artifactId.length() == 0) { throw new IllegalArgumentException("artifactId is required"); } final MavenCoordinateImpl coordinate = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); return coordinate; }
/** * @see java.lang.Object#toString() */ @Override public String toString() { return MavenCoordinate.class.getSimpleName() + " [" + toCanonicalForm() + "]"; }
@Test public void equalsByValueWithDifferentVersions() { final String groupId = "groupId"; final String artifactId = "artifactId"; final String version = "version"; final PackagingType packaging = PackagingType.POM; final String classifier = "classifier"; final MavenCoordinate coordinate1 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); final MavenCoordinate coordinate2 = new MavenCoordinateImpl(groupId, artifactId, null, packaging, classifier); Assert.assertEquals("Version should not be considered in value equality check", coordinate1, coordinate2); }
@Test public void equalsByValue() { final String groupId = "groupId"; final String artifactId = "artifactId"; final String version = "version"; final PackagingType packaging = PackagingType.POM; final String classifier = "classifier"; final MavenCoordinate coordinate1 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); final MavenCoordinate coordinate2 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); Assert.assertEquals(coordinate1, coordinate2); }
@Test public void notEqualsByPackagingValue() { final String groupId = "groupId"; final String artifactId = "artifactId"; final String version = "version"; final PackagingType packaging = PackagingType.POM; final String classifier = "classifier"; final MavenCoordinate coordinate1 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); final MavenCoordinate coordinate2 = new MavenCoordinateImpl(groupId, artifactId, version, PackagingType.EAR, classifier); Assert.assertFalse(coordinate1.equals(coordinate2)); }
@Test public void notEqualsByClassifierValue() { final String groupId = "groupId"; final String artifactId = "artifactId"; final String version = "version"; final PackagingType packaging = PackagingType.POM; final String classifier = "classifier"; final MavenCoordinate coordinate1 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); final MavenCoordinate coordinate2 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, "wrong"); Assert.assertFalse(coordinate1.equals(coordinate2)); }
@Test public void notEqualsByGroupIdValue() { final String groupId = "groupId"; final String artifactId = "artifactId"; final String version = "version"; final PackagingType packaging = PackagingType.POM; final String classifier = "classifier"; final MavenCoordinate coordinate1 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); final MavenCoordinate coordinate2 = new MavenCoordinateImpl("wrong", artifactId, version, packaging, classifier); Assert.assertFalse(coordinate1.equals(coordinate2)); }
@Test public void notEqualsByArtifactIdValue() { final String groupId = "groupId"; final String artifactId = "artifactId"; final String version = "version"; final PackagingType packaging = PackagingType.POM; final String classifier = "classifier"; final MavenCoordinate coordinate1 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); final MavenCoordinate coordinate2 = new MavenCoordinateImpl(groupId, "wrong", version, packaging, classifier); Assert.assertFalse(coordinate1.equals(coordinate2)); }
@Test public void equalHashCodes() { final String groupId = "groupId"; final String artifactId = "artifactId"; final String version = "version"; final PackagingType packaging = PackagingType.POM; final String classifier = "classifier"; final MavenCoordinate coordinate1 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); final MavenCoordinate coordinate2 = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); Assert.assertTrue(coordinate1.hashCode() == coordinate2.hashCode()); }
@Test public void defaultPackagingType() { final String groupId = "groupId"; final String artifactId = "artifactId"; final String version = "version"; final String classifier = "classifier"; final MavenCoordinate coordinate = new MavenCoordinateImpl(groupId, artifactId, version, null, classifier); Assert.assertEquals(PackagingType.JAR, coordinate.getPackaging()); }
@Test public void ejbPackaging() { final String groupId = "groupId"; final String artifactId = "artifactId"; final PackagingType packaging = PackagingType.of("ejb"); final String version = "version"; final MavenCoordinate coordinate = new MavenCoordinateImpl(groupId, artifactId, version, packaging, null); Assert.assertEquals(PackagingType.EJB, coordinate.getPackaging()); Assert.assertEquals("jar", coordinate.getPackaging().getExtension()); } }
@Test public void properties() { final String groupId = "groupId"; final String artifactId = "artifactId"; final String version = "version"; final PackagingType packaging = PackagingType.POM; final String classifier = "classifier"; final MavenCoordinate coordinate = new MavenCoordinateImpl(groupId, artifactId, version, packaging, classifier); Assert.assertEquals(groupId, coordinate.getGroupId()); Assert.assertEquals(artifactId, coordinate.getArtifactId()); Assert.assertEquals(version, coordinate.getVersion()); Assert.assertEquals(packaging, coordinate.getPackaging()); Assert.assertEquals(classifier, coordinate.getClassifier()); Assert.assertEquals(groupId + ":" + artifactId + ":" + packaging.toString() + ":" + classifier + ":" + version, coordinate.toCanonicalForm()); }