@Override public List<Coordinate> resolveVersions(DependencyQuery query) { VersionRangeResult r = getVersions(query); List<Coordinate> result = new ArrayList<>(); Predicate<Dependency> filter = query.getDependencyFilter(); for (Version v : r.getVersions()) { CoordinateBuilder coord = CoordinateBuilder.create(query.getCoordinate()).setVersion(v.toString()); DependencyBuilder versionedDep = DependencyBuilder.create().setCoordinate(coord); if (filter == null || filter.accept(versionedDep)) { result.add(coord); } } return result; }
@Override public Result execute(UIExecutionContext context) throws Exception { DatabaseType chosenDbType = dbType.getValue(); String chosenScope = scope.getValue(); String chosenVersion = version.getValue(); if (chosenVersion == null) { List<String> versions = getVersionsFor(chosenDbType); if (!versions.isEmpty()) { chosenVersion = versions.get(versions.size() - 1); } } if (chosenVersion == null) { return Results.fail("No version specified or found for " + chosenDbType.getDriverCoordinate()); } Project project = getSelectedProject(context); DependencyBuilder dependency = DependencyBuilder.create() .setCoordinate(chosenDbType.getDriverCoordinate()) .setVersion(chosenVersion) .setScopeType(chosenScope); DependencyFacet dependencyFacet = project.getFacet(DependencyFacet.class); dependencyFacet.addDirectDependency(dependency); return Results.success("JDBC Driver Dependency " + dependency + " installed"); }
public static DependencyBuilder create(final Dependency dep) { DependencyBuilder builder = new DependencyBuilder(); builder.setCoordinate(dep.getCoordinate()); builder.setScopeType(dep.getScopeType()); builder.setArtifact(dep.getArtifact()); builder.setExcludedCoordinates(dep.getExcludedCoordinates()); builder.setOptional(dep.isOptional()); return builder; }
.setCoordinate(versioned) .addExecution(execution) .addPluginDependency(DependencyBuilder.create().setCoordinate(aptDependency)); facet.addPlugin(processorPlugin); DependencyBuilder.create().setCoordinate(aptDependency).setScopeType("provided"));