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; }
@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(); } }
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));
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));
for (String groupId : groupIds) { MavenCoordinates resolvedSpec = new MavenCoordinates(groupId, coordinates.getArtifactId(), coordinates.getVersion(), MavenCoordinates snapshotSpec = new MavenCoordinates(groupId, coordinates.getArtifactId(), timestampMatcher.group(1) + "-SNAPSHOT",
@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 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); }
@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); }