private String toMavenCoords(AddonId addonId) { String coords = addonId.getName() + ":jar:" + this.classifier + ":" + addonId.getVersion(); return coords; }
/** * The name and version, comma separated. */ public String toCoordinates() { StringBuilder coord = new StringBuilder(getName()).append(",").append(getVersion()); return coord.toString(); }
static File getInstallationPathFor(AddonId addonId) { String name = addonId.getName(); // TODO: Read from settings.xml? StringBuilder sb = new StringBuilder(OperatingSystemUtils.getUserHomePath()).append("/.m2/repository/"); sb.append(name.replace('.', '/').replace(':', '/')); sb.append("/").append(addonId.getVersion()); sb.append("/").append(name.substring(name.lastIndexOf(":") + 1)).append("-").append(addonId.getVersion()) .append(".jar"); return new File(sb.toString()); }
private boolean containsAddon(String name) { boolean result = false; for (AddonRepository repo : furnace.getRepositories()) { result |= repo.listAll().stream().anyMatch(id -> name.equals(id.getName())); } return result; }
private boolean containsAddon(String name) { boolean result = false; for (AddonRepository repo : furnace.getRepositories()) { result |= repo.listAll().stream().anyMatch(id -> name.equals(id.getName())); } return result; }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof AddonId)) return false; AddonId other = (AddonId) obj; if (name == null) { if (other.getName() != null) return false; } else if (!name.equals(other.getName())) return false; if (version == null) { if (other.getVersion() != null) return false; } else if (!version.equals(other.getVersion())) return false; return true; }
@Override public Set<AddonDependencyEntry> getDependencyEntries() { Set<AddonDependencyEntry> entries = new HashSet<AddonDependencyEntry>(); for (Entry<AddonId, Boolean> entry : requiredAddons.entrySet()) { AddonId key = entry.getKey(); Boolean exported = entry.getValue(); entries.add(AddonDependencyEntry.create(key.getName(), key.getVersion().toString(), exported, false)); } for (Entry<AddonId, Boolean> entry : optionalAddons.entrySet()) { AddonId key = entry.getKey(); Boolean exported = entry.getValue(); entries.add(AddonDependencyEntry.create(key.getName(), key.getVersion().toString(), exported, true)); } return entries; }
public AddonInfoBuilder setAPIVersion(Version apiVersion) { AddonId newId = AddonId.from(addon.getName(), addon.getVersion(), apiVersion); this.addon = newId; return this; }
@Override public int compareTo(AddonId other) { if (other == null) throw new IllegalArgumentException("Cannot compare against null."); int result = getName().compareTo(other.getName()); if (result == 0) result = getVersion().compareTo(other.getVersion()); if (result == 0) result = getApiVersion().compareTo(other.getApiVersion()); return result; }
private Addon getAddon() { Set<Addon> addons = SimpleContainer.getFurnace(RexsterInitializer.class.getClassLoader()).getAddonRegistry().getAddons(); for (Addon addon : addons) { boolean isRexster = addon.getId().getName().contains("rexster"); if (isRexster) { return addon; } } return null; }
@Override public boolean accept(Addon addon) { Set<AddonDependency> dependencies = addon.getDependencies(); for (AddonDependency dependency : dependencies) { // TODO this should only accept addons that depend on windup-config-groovy or whatever we call that if (dependency.getDependency().getId().getName().contains("groovy")) { return true; } } return false; } };
@Override public boolean accept(Addon addon) { Set<AddonDependency> dependencies = addon.getDependencies(); for (AddonDependency dependency : dependencies) { // TODO this should only accept addons that depend on windup-config-groovy or whatever we call that if (dependency.getDependency().getId().getName().contains("groovy")) { return true; } } return false; } };
private void addAddonDependency(Project project, StringBuilder dependenciesAnnotationBody, AddonId addonId) { DependencyInstaller dependencyInstaller = SimpleContainer .getServices(getClass().getClassLoader(), DependencyInstaller.class).get(); Dependency dependency = DependencyBuilder.create(addonId.getName()).setVersion( addonId.getVersion().toString()).setClassifier(MavenAddonDependencyResolver.FORGE_ADDON_CLASSIFIER) .setScopeType("test"); String name = addonId.getName(); if (!dependencyInstaller.isInstalled(project, dependency)) { dependencyInstaller.install(project, dependency); } dependenciesAnnotationBody.append("@AddonDependency(name = \"").append(name).append("\")"); }
@Override public Iterable<String> getCompletionProposals(UIContext context, InputComponent<?, String> input, String value) { Set<String> items = new TreeSet<String>(); Set<Addon> addons = furnace.getAddonRegistry().getAddons(); for (Addon addon : addons) { if (addon.getId().toCoordinates().startsWith(value)) items.add(addon.getId().getName()); } return items; } });
@Override public Dependency toDependency(AddonId addon) { String[] mavenCoords = addon.getName().split(":"); Dependency dependency = DependencyBuilder.create().setGroupId(mavenCoords[0]) .setArtifactId(mavenCoords[1]) .setVersion(addon.getVersion().toString()).setClassifier(FORGE_ADDON_CLASSIFIER); return dependency; }
@Override public void initializeUI(UIBuilder builder) throws Exception { InputComponentFactory factory = builder.getInputComponentFactory(); addonDependencies = factory.createSelectMany("addonDependencies", AddonId.class).setLabel("Dependency addons") .setDescription("Addons this test depends upon"); Set<AddonId> choices = new TreeSet<>(); Furnace furnace = SimpleContainer.getFurnace(getClass().getClassLoader()); for (AddonRepository repository : furnace.getRepositories()) { for (AddonId id : repository.listEnabled()) { if (id.getName().contains(":")) choices.add(id); } } addonDependencies.setValueChoices(choices); addonDependencies.setDefaultValue(new ArrayList<AddonId>()); builder.add(addonDependencies); }
@Override public Result execute(UIExecutionContext context) throws Exception { Furnace furnace = SimpleContainer.getFurnace(getClass().getClassLoader()); FacetFactory facetFactory = SimpleContainer.getServices(getClass().getClassLoader(), FacetFactory.class).get(); DependencyInstaller dependencyInstaller = SimpleContainer .getServices(getClass().getClassLoader(), DependencyInstaller.class).get(); UIContext uiContext = context.getUIContext(); Project project = getSelectedProject(uiContext); facetFactory.install(project, FurnaceVersionFacet.class); project.getFacet(FurnaceVersionFacet.class).setVersion(furnace.getVersion().toString()); facetFactory.install(project, AddonTestFacet.class); for (AddonId addonId : addonDependencies.getValue()) { DependencyBuilder dependency = DependencyBuilder.create(addonId.getName()) .setVersion(addonId.getVersion().toString()).setScopeType("test"); if (!dependencyInstaller.isInstalled(project, dependency)) { dependencyInstaller.install(project, dependency); } } return Results .success("Project " + project.getFacet(MetadataFacet.class).getProjectName() + " is now configured for testing"); }
@Override public void validate(UIValidationContext context) { String coordinate = (String) context.getCurrentInputComponent().getValue(); try { Set<Addon> addons = furnace.getAddonRegistry().getAddons(); boolean match = false; for (Addon addon : addons) { if (addon.getId().getName().equals(coordinate)) { match = true; break; } } if (!match) { context.addValidationError(context.getCurrentInputComponent(), "\"" + coordinate + "\" does not refer to any installed Addon coordinate."); } } catch (IllegalArgumentException e) { context.addValidationError(context.getCurrentInputComponent(), "\"" + coordinate + "\" is not a valid Addon coordinate"); } } });
if (isFurnaceAPI(artifact) || (this.classifier.equals(artifact.getClassifier()) && !addonId.getName().equals(artifact.getGroupId() + ":" + artifact.getArtifactId())))