@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; }
@Override public String toString() { return toGAV(null, true); }
@Override public boolean configEqualsIgnoreVersion(String config1, String config2) { MavenCoordinates coordinates1 = MavenCoordinates.fromConfigGAV(config1); MavenCoordinates coordinates2 = MavenCoordinates.fromConfigGAV(config2); return coordinates1 != null && coordinates2 != null && coordinates1.equalsIgnoreVersion(coordinates2); }
@Override public boolean binaryEqualsIgnoreVersion(String binary1, String binary2) { MavenCoordinates coordinates1 = MavenCoordinates.fromBinaryGAV(binary1); MavenCoordinates coordinates2 = MavenCoordinates.fromBinaryGAV(binary2); return coordinates1 != null && coordinates2 != null && coordinates1.equalsIgnoreVersion(coordinates2); }
@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; }
@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); }
public MavenCoordinates resolve(MavenCoordinates coordinates) if (coordinates.isResolved()) { return coordinates; if (coordinates.getGroupId() != null) { groupIds = ImmutableList.of(coordinates.getGroupId()); for (String groupId : groupIds) { MavenCoordinates resolvedSpec = new MavenCoordinates(groupId, coordinates.getArtifactId(), coordinates.getVersion(), coordinates.getPackaging(), coordinates.getClassifier(), coordinates.getFileVersion()); if (coordinates.getVersion().contains("SNAPSHOT")) { MavenCoordinates timestampSpec = resolveSnapshotTimestamp(coordinates, groupId); if (timestampSpec != null) { Matcher timestampMatcher = TIMESTAMP_VERSION.matcher(coordinates.getVersion()); if (timestampMatcher.matches()) { MavenCoordinates snapshotSpec = new MavenCoordinates(groupId, coordinates.getArtifactId(), timestampMatcher.group(1) + "-SNAPSHOT", coordinates.getPackaging(), coordinates.getClassifier(), coordinates.getVersion());
@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); }
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; }
uriBuilder.appendPath(coordinates.getGroupId().replace('.', '/')); uriBuilder.appendPath(coordinates.getArtifactId()); uriBuilder.appendPath(coordinates.getVersion()); StringBuilder fileNameBuilder = new StringBuilder().append(coordinates.getArtifactId()).append('-').append(coordinates.getFileVersion()); if (coordinates.getClassifier() != null) { fileNameBuilder.append('-').append(coordinates.getClassifier()); fileNameBuilder.append('.').append(coordinates.getPackaging()); uriBuilder.appendPath(fileNameBuilder.toString());
@Override public String configShortName(String config) { if (!config.startsWith("@")) { return null; } MavenCoordinates coordinates = MavenCoordinates.fromConfigGAV(config); if (coordinates == null) { return config.substring(0).replaceAll(":", "_"); } return coordinates.getArtifactId(); }
@GET @Path("{groupId}/{artifactId}/{version}/{packaging}/{classifier}") public Response getBinary(@PathParam("groupId") String groupId, @PathParam("artifactId") String artifactId, @PathParam("version") String version, @PathParam("packaging") String packaging, @PathParam("classifier") String classifier) { MavenCoordinates coordinates = new MavenCoordinates(groupId, artifactId, version, packaging, classifier, null); URL binaryUrl = null; try { binaryUrl = repository.binaryToHttpUri(coordinates.toGAV()).toURL(); } catch (MalformedURLException e) { } if (binaryUrl == null) { return Response.status(Status.NOT_FOUND).build(); } return Response.ok(new InputSupplierStreamingOutput(Resources.newInputStreamSupplier(binaryUrl))).build(); } }
@Override public String configResolve(String config) { MavenCoordinates coordinates = MavenCoordinates.fromConfigGAV(config); if (coordinates == null) { return null; } coordinates = resolve(coordinates); if (coordinates != null) { return toConfigGAV(coordinates); } return null; }
private static MavenCoordinates fromGAV(String coordinates, String defaultPackaging) { Matcher matcher = MAVEN_COORDINATES_PATTERN.matcher(coordinates); if (!matcher.matches()) { return null; } List<String> parts = ImmutableList.copyOf(Splitter.on(':').split(coordinates)); if (parts.size() == 5) { return new MavenCoordinates(parts.get(0), parts.get(1), parts.get(4), parts.get(2), parts.get(3), null); } else if (parts.size() == 4) { return new MavenCoordinates(parts.get(0), parts.get(1), parts.get(3), parts.get(2), null, null); } else if (defaultPackaging != null) { if (parts.size() == 3) { return new MavenCoordinates(parts.get(0), parts.get(1), parts.get(2), defaultPackaging, null, null); } else if (parts.size() == 2) { return new MavenCoordinates(null, parts.get(0), parts.get(1), defaultPackaging, null, null); } } return null; }
@Override public String binaryResolve(String binary) { MavenCoordinates coordinates = MavenCoordinates.fromBinaryGAV(binary); if (coordinates == null) { return null; } coordinates = resolve(coordinates); if (coordinates != null) { return toBinaryGAV(coordinates); } return null; }
@Override public URI configToHttpUri(String config) { MavenCoordinates coordinates = MavenCoordinates.fromConfigGAV(config); if (coordinates == null) { return null; } return toHttpUri(coordinates, true); }
public static MavenCoordinates fromBinaryGAV(String configSpec) { return fromGAV(configSpec, DEFAULT_BINARY_PACKAGING); }
@Override public URI binaryToHttpUri(String binary) { MavenCoordinates coordinates = MavenCoordinates.fromBinaryGAV(binary); if (coordinates == null) { return null; } return toHttpUri(coordinates, true); }
private String toBaseName(Installation installation) { String configSpec = installation.getAssignment().getConfig(); MavenCoordinates mavenCoordinates = MavenCoordinates.fromConfigGAV(configSpec); String baseName; if (mavenCoordinates != null) { baseName = mavenCoordinates.getArtifactId(); } else if (configSpec.startsWith("@")) { baseName = configSpec.substring(1); } else { baseName = configSpec; } return baseName; }
String attachmentFormat = "Content-Disposition: attachment; filename=\"%s\""; URI partHandler = getRequiredUri(repository, new MavenCoordinates("com.proofpoint.galaxy", "galaxy-ec2", galaxyVersion, "py", "part-handler", null)); URI galaxyCli = getRequiredUri(repository, new MavenCoordinates("com.proofpoint.galaxy", "galaxy-cli", galaxyVersion, "jar", "executable", null)); URI coordinatorInstall = getRequiredUri(repository, new MavenCoordinates("com.proofpoint.galaxy", "galaxy-ec2", galaxyVersion, "sh", "install", null)); URI coordinatorInstallPrep = getRequiredUri(repository, new MavenCoordinates("com.proofpoint.galaxy", "galaxy-ec2", galaxyVersion, "sh", "install-prep", null));