@Override public String configUpgrade(String config, String version) { if (!version.startsWith("@")) { return null; } MavenCoordinates coordinates = MavenCoordinates.fromConfigGAV(config); if (coordinates == null) { return null; } coordinates = new MavenCoordinates(coordinates.getGroupId(), coordinates.getArtifactId(), version.substring(1), coordinates.getPackaging(), coordinates.getClassifier(), null); coordinates = resolve(coordinates); if (coordinates != null) { return MavenCoordinates.toConfigGAV(coordinates); } return configResolve(version); }
@Test public void packagingCoordinates() { MavenCoordinates spec = MavenCoordinates.fromGAV("my.groupId:artifactId:packaging:version"); Assert.assertEquals(spec.getGroupId(), "my.groupId"); Assert.assertEquals(spec.getArtifactId(), "artifactId"); Assert.assertEquals(spec.getPackaging(), "packaging"); Assert.assertNull(spec.getClassifier()); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "version"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", null, null)); Assert.assertEquals(spec.toGAV(), "my.groupId:artifactId:packaging:version"); Assert.assertEquals(spec.toString(), "my.groupId:artifactId:packaging:version"); }
@Test public void shortSpec() { MavenCoordinates spec = MavenCoordinates.fromBinaryGAV("artifactId:version"); Assert.assertNull(spec.getGroupId()); Assert.assertEquals(spec.getArtifactId(), "artifactId"); Assert.assertEquals(spec.getPackaging(), "tar.gz"); Assert.assertNull(spec.getClassifier()); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "version"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates(null, "artifactId", "version", "tar.gz", null, null)); Assert.assertEquals(toBinaryGAV(spec), "artifactId:version"); Assert.assertEquals(spec.toString(), "artifactId:tar.gz:version"); }
@Override public String configRelativize(String config) { if (!config.startsWith("@")) { return null; } MavenCoordinates coordinates = MavenCoordinates.fromConfigGAV(config); if (coordinates == null) { return null; } for (String defaultGroupId : defaultGroupIds) { if (defaultGroupId.equals(coordinates.getGroupId())) { return MavenCoordinates.toConfigGAV(new MavenCoordinates( null, coordinates.getArtifactId(), coordinates.getVersion(), coordinates.getPackaging(), coordinates.getClassifier(), coordinates.getFileVersion())); } } return null; }
@Test public void packagingSpec() { MavenCoordinates spec = MavenCoordinates.fromBinaryGAV("my.groupId:artifactId:packaging:version"); Assert.assertEquals(spec.getGroupId(), "my.groupId"); Assert.assertEquals(spec.getArtifactId(), "artifactId"); Assert.assertEquals(spec.getPackaging(), "packaging"); Assert.assertNull(spec.getClassifier()); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "version"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", null, null)); Assert.assertEquals(toBinaryGAV(spec), "my.groupId:artifactId:packaging:version"); Assert.assertEquals(spec.toString(), "my.groupId:artifactId:packaging:version"); }
@Test public void simpleSpec() { MavenCoordinates spec = MavenCoordinates.fromBinaryGAV("my.groupId:artifactId:version"); Assert.assertEquals(spec.getGroupId(), "my.groupId"); Assert.assertEquals(spec.getArtifactId(), "artifactId"); Assert.assertEquals(spec.getPackaging(), "tar.gz"); Assert.assertNull(spec.getClassifier()); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "version"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "tar.gz", null, null)); Assert.assertEquals(toBinaryGAV(spec), "my.groupId:artifactId:version"); Assert.assertEquals(spec.toString(), "my.groupId:artifactId:tar.gz:version"); }
@Test public void simpleSpec() { MavenCoordinates spec = fromConfigGAV("@component:version"); Assert.assertNull(spec.getGroupId()); Assert.assertEquals(spec.getArtifactId(), "component"); Assert.assertEquals(spec.getPackaging(), "config"); Assert.assertNull(spec.getClassifier()); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "version"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates(null, "component", "version", "config", null, null)); Assert.assertEquals(spec.toString(), "component:config:version"); Assert.assertEquals(toConfigGAV(spec), "@component:version"); }
@Test public void fullBinarySpec() { MavenCoordinates spec = MavenCoordinates.fromBinaryGAV("my.groupId:artifactId:packaging:classifier:version"); Assert.assertEquals(spec.getGroupId(), "my.groupId"); Assert.assertEquals(spec.getArtifactId(), "artifactId"); Assert.assertEquals(spec.getPackaging(), "packaging"); Assert.assertEquals(spec.getClassifier(), "classifier"); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "version"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", null)); Assert.assertEquals(toBinaryGAV(spec), "my.groupId:artifactId:packaging:classifier:version"); Assert.assertEquals(spec.toString(), "my.groupId:artifactId:packaging:classifier:version"); }
@Test public void fullBinarySpecWithDefaultPackage() { MavenCoordinates spec = MavenCoordinates.fromBinaryGAV("my.groupId:artifactId:tar.gz:classifier:version"); Assert.assertEquals(spec.getGroupId(), "my.groupId"); Assert.assertEquals(spec.getArtifactId(), "artifactId"); Assert.assertEquals(spec.getPackaging(), "tar.gz"); Assert.assertEquals(spec.getClassifier(), "classifier"); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "version"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "tar.gz", "classifier", null)); Assert.assertEquals(toBinaryGAV(spec), "my.groupId:artifactId:tar.gz:classifier:version"); Assert.assertEquals(spec.toString(), "my.groupId:artifactId:tar.gz:classifier:version"); }
@Test public void fullCoordinates() { MavenCoordinates spec = MavenCoordinates.fromGAV("my.groupId:artifactId:packaging:classifier:version"); Assert.assertEquals(spec.getGroupId(), "my.groupId"); Assert.assertEquals(spec.getArtifactId(), "artifactId"); Assert.assertEquals(spec.getPackaging(), "packaging"); Assert.assertEquals(spec.getClassifier(), "classifier"); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "version"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", null)); Assert.assertEquals(spec.toGAV(), "my.groupId:artifactId:packaging:classifier:version"); Assert.assertEquals(spec.toString(), "my.groupId:artifactId:packaging:classifier:version"); }
@Test public void fullSpec() { MavenCoordinates spec = fromConfigGAV("@group:component:packaging:classifier:2.0-SNAPSHOT"); Assert.assertEquals(spec.getGroupId(), "group"); Assert.assertEquals(spec.getArtifactId(), "component"); Assert.assertEquals(spec.getPackaging(), "packaging"); Assert.assertEquals(spec.getClassifier(), "classifier"); Assert.assertEquals(spec.getVersion(), "2.0-SNAPSHOT"); Assert.assertEquals(spec.getFileVersion(), "2.0-SNAPSHOT"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates("group", "component", "2.0-SNAPSHOT", "packaging", "classifier", null)); Assert.assertEquals(spec.toString(), "group:component:packaging:classifier:2.0-SNAPSHOT"); Assert.assertEquals(toConfigGAV(spec), "@group:component:packaging:classifier:2.0-SNAPSHOT"); }
@Test public void fullConfigSpec() { MavenCoordinates spec = fromConfigGAV("@group:component:version"); Assert.assertEquals(spec.getGroupId(), "group"); Assert.assertEquals(spec.getArtifactId(), "component"); Assert.assertEquals(spec.getPackaging(), "config"); Assert.assertNull(spec.getClassifier()); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "version"); Assert.assertEquals(spec, spec); Assert.assertEquals(toConfigGAV(spec), "@group:component:version"); Assert.assertEquals(spec, new MavenCoordinates("group", "component", "version", "config", null, null)); Assert.assertEquals(spec.toString(), "group:component:config:version"); Assert.assertEquals(toConfigGAV(spec), "@group:component:version"); }
@Override public String binaryRelativize(String binary) { MavenCoordinates coordinates = MavenCoordinates.fromBinaryGAV(binary); if (coordinates == null) { return null; } for (String defaultGroupId : defaultGroupIds) { if (defaultGroupId.equals(coordinates.getGroupId())) { return MavenCoordinates.toBinaryGAV(new MavenCoordinates( null, coordinates.getArtifactId(), coordinates.getVersion(), coordinates.getPackaging(), coordinates.getClassifier(), coordinates.getFileVersion())); } } return null; }
private MavenCoordinates resolveSnapshotTimestamp(MavenCoordinates coordinates, String groupId) { for (URI repositoryBase : repositoryBases) { try { // load maven metadata file HttpUriBuilder uriBuilder = uriBuilderFrom(repositoryBase); uriBuilder.appendPath(groupId.replace('.', '/')); uriBuilder.appendPath(coordinates.getArtifactId()); uriBuilder.appendPath(coordinates.getVersion()); uriBuilder.appendPath("maven-metadata.xml"); URI uri = uriBuilder.build(); MavenMetadata metadata = MavenMetadata.unmarshalMavenMetadata(toString(uri)); for (SnapshotVersion snapshotVersion : metadata.versioning.snapshotVersions) { if (coordinates.getPackaging().equals(snapshotVersion.extension) && Objects.equal(coordinates.getClassifier(), snapshotVersion.classifier)) { MavenCoordinates timestampSpec = new MavenCoordinates(groupId, coordinates.getArtifactId(), coordinates.getVersion(), coordinates.getPackaging(), coordinates.getClassifier(), snapshotVersion.value); return timestampSpec; } } } catch (Exception ignored) { // no maven-metadata.xml file... hope this is laid out normally } } return null; }
@Override public String binaryUpgrade(String binary, String version) { MavenCoordinates coordinates = MavenCoordinates.fromBinaryGAV(binary); if (coordinates == null) { return null; } coordinates = new MavenCoordinates(coordinates.getGroupId(), coordinates.getArtifactId(), version, coordinates.getPackaging(), coordinates.getClassifier(), null); coordinates = resolve(coordinates); if (coordinates != null) { return MavenCoordinates.toBinaryGAV(coordinates); } return binaryResolve(version); }
@Test public void resolvedCoordinates() { MavenCoordinates spec = new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "file-version"); Assert.assertEquals(spec.getGroupId(), "my.groupId"); Assert.assertEquals(spec.getArtifactId(), "artifactId"); Assert.assertEquals(spec.getPackaging(), "packaging"); Assert.assertEquals(spec.getClassifier(), "classifier"); Assert.assertEquals(spec.getVersion(), "version"); Assert.assertEquals(spec.getFileVersion(), "file-version"); Assert.assertEquals(spec, spec); Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "file-version")); Assert.assertEquals(spec.toGAV(), "my.groupId:artifactId:packaging:classifier:file-version"); Assert.assertEquals(spec.toString(), "my.groupId:artifactId:packaging:classifier:version(file-version)"); Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "file-version"))); Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", null))); Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "foo", "packaging", "classifier", "file-version"))); Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "foo"))); Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "foo"))); Assert.assertFalse(spec.equalsIgnoreVersion(new MavenCoordinates("foo", "artifactId", "version", "packaging", "classifier", "file-version"))); Assert.assertFalse(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "foo", "version", "packaging", "classifier", "file-version"))); Assert.assertFalse(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "foo", "classifier", "file-version"))); Assert.assertFalse(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "foo", "file-version"))); }
@Override public String configUpgrade(String config, String version) { MavenCoordinates coordinates = MavenCoordinates.fromConfigGAV(config); if (coordinates == null) { return null; } coordinates = new MavenCoordinates(coordinates.getGroupId(), coordinates.getArtifactId(), version, coordinates.getPackaging(), coordinates.getClassifier(), null); return toConfigGAV(coordinates); }
@Override public String binaryUpgrade(String binary, String version) { MavenCoordinates coordinates = MavenCoordinates.fromBinaryGAV(binary); if (coordinates == null) { return null; } coordinates = new MavenCoordinates(coordinates.getGroupId(), coordinates.getArtifactId(), version, coordinates.getPackaging(), coordinates.getClassifier(), null); return toBinaryGAV(coordinates); }
@Override public String binaryUpgrade(String binary, String version) { MavenCoordinates coordinates = MavenCoordinates.fromBinaryGAV(binary); if (coordinates == null) { return null; } coordinates = new MavenCoordinates(coordinates.getGroupId(), coordinates.getArtifactId(), version, coordinates.getPackaging(), coordinates.getClassifier(), null); return toBinaryGAV(coordinates); }
@Override public String configUpgrade(String config, String version) { MavenCoordinates coordinates = MavenCoordinates.fromConfigGAV(config); if (coordinates == null) { return null; } coordinates = new MavenCoordinates(coordinates.getGroupId(), coordinates.getArtifactId(), version, coordinates.getPackaging(), coordinates.getClassifier(), null); return toConfigGAV(coordinates); }