/** * Create an {@link AddonId} from the given name and version. */ public static AddonId from(String name, String version) { return from(name, version, null); }
/** * Create an {@link AddonId} from the given name and {@link Version}. */ public static AddonId from(String name, Version version) { return from(name, version, null); }
private AddonId getAddonEntry(Deployment deployment) { if (!deployedAddons.containsKey(deployment)) { String[] coordinates = deployment.getDescription().getName().split(","); AddonId entry; if (coordinates.length == 3) entry = AddonId.from(coordinates[0], coordinates[1], coordinates[2]); else if (coordinates.length == 2) entry = AddonId.from(coordinates[0], coordinates[1]); else if (coordinates.length == 1) entry = AddonId.from(coordinates[0], UUID.randomUUID().toString()); else entry = AddonId.from(UUID.randomUUID().toString(), UUID.randomUUID().toString()); deployedAddons.put(deployment, entry); } return deployedAddons.get(deployment); }
return from(tokens.get(0), tokens.get(1) + "," + tokens.get(2)); else if (tokens.size() == 4) return from(tokens.get(0), tokens.get(1) + "," + tokens.get(2), tokens.get(3)); "Coordinates must be of the form 'name,version' or 'name,version,api-version"); return from(tokens.get(0), tokens.get(1), tokens.get(2)); return from(tokens.get(0), tokens.get(1));
public AddonInfoBuilder setAPIVersion(Version apiVersion) { AddonId newId = AddonId.from(addon.getName(), addon.getVersion(), apiVersion); this.addon = newId; return this; }
private AddonId toAddonId(Artifact artifact) { if (isAddon(artifact)) { return AddonId.from(artifact.getGroupId() + ":" + artifact.getArtifactId(), artifact.getBaseVersion()); } throw new IllegalArgumentException("Not a forge-addon: " + artifact); }
private VersionRangeResult getVersions(RepositorySystem system, Settings settings, RepositorySystemSession session, List<RemoteRepository> repositories, String addonName, String version) { try { String[] split = addonName.split(","); if (split.length == 2) { version = split[1]; } if (version == null || version.isEmpty()) { version = "[,)"; } else if (!version.matches("(\\(|\\[).*?(\\)|\\])")) { version = "[" + version + "]"; } Artifact artifact = new DefaultArtifact(toMavenCoords(AddonId.from(addonName, version))); VersionRangeRequest rangeRequest = new VersionRangeRequest(artifact, repositories, null); VersionRangeResult rangeResult = system.resolveVersionRange(session, rangeRequest); return rangeResult; } catch (Exception e) { throw new RuntimeException("Failed to look up versions for [" + addonName + "]", e); } }
private Collection<DeploymentDescription> generateDependencyDeployments(Method deploymentMethod) { Dependencies dependency = deploymentMethod.getAnnotation(Dependencies.class); Collection<DeploymentDescription> deployments = new ArrayList<DeploymentDescription>(); if (dependency.value() != null) for (Addon addon : dependency.value()) { AddonId id = AddonId.from(addon.name(), addon.version()); DeploymentDescription deploymentDescription = new DeploymentDescription(id.toCoordinates(), ShrinkWrap.create(ForgeRemoteAddon.class).setAddonId(id)); deploymentDescription.shouldBeTestable(false); deployments.add(deploymentDescription); } return deployments; }
for (Version artifactVersion : versionsList) AddonId addonId = AddonId.from(addonName, artifactVersion.toString()); if (Versions.isSnapshot(addonId.getVersion()))
AddonId selectedAddonId = AddonId.from(name, facet.getProjectVersion()); if (choices.contains(selectedAddonId))
@Override public void initializeUI(UIBuilder builder) throws Exception { InputComponentFactory factory = builder.getInputComponentFactory(); coordinate = factory.createInput("coordinate", String.class).setLabel("Coordinate") .setDescription("The addon's \"groupId:artifactId,version\" coordinate") .setNote("The addon's \"groupId:artifactId,version\" coordinate").setRequired(true); ProjectFactory projectFactory = SimpleContainer.getServices(getClass().getClassLoader(), ProjectFactory.class) .get(); Project project = Projects.getSelectedProject(projectFactory, builder.getUIContext()); if (project != null) { MetadataFacet facet = project.getFacet(MetadataFacet.class); Coordinate c = facet.getOutputDependency().getCoordinate(); coordinate.setDefaultValue(AddonId.from(c.getGroupId() + ":" + c.getArtifactId(), c.getVersion()) .toCoordinates()); } List<String> defaultCoords = Arrays.asList(CoordinateUtils.FORGE_ADDON_GROUP_ID); coordinate.setCompleter((UIContext context, InputComponent<?, String> input, String value) -> { Iterable<String> items = Collections.emptySet(); if (Strings.isNullOrEmpty(value)) { items = defaultCoords; } return items; }); builder.add(coordinate); }
AddonId id = AddonId.from(coordinate.getGroupId() + ":" + coordinate.getArtifactId(), coordinate.getVersion()); RemoveRequest removeRequest = addonManager.remove(id); removeRequest.perform();