/** * Compare the {@link Coordinate} of each given {@link Dependency} for equivalence. */ public static boolean areEquivalent(Dependency l, Dependency r) { if (l == r) { return true; } if ((l == null) && (r == null)) { return true; } else if ((l == null) || (r == null)) { return false; } return areEquivalent(l.getCoordinate(), r.getCoordinate()); }
private Coordinate promptVersion(final DependencyFacet deps, final Coordinate dependency, Predicate<Dependency> filter) { Coordinate result = dependency; final List<Coordinate> versions = deps.resolveAvailableVersions(DependencyQueryBuilder.create(dependency) .setFilter(filter == null ? new NonSnapshotDependencyFilter() : filter)); if (versions.size() > 0) { Coordinate deflt = versions.get(versions.size() - 1); result = deflt; // result = prompt.promptChoiceTyped("Use which version of '" + dependency.getArtifactId() // + "' ?", versions, deflt); } return result; }
/** * Returns the latest available distribution */ private Coordinate getLatestAvailableDistribution(DependencyResolver resolver) { final Version runtimeVersion = Versions.getImplementationVersionFor(getClass()); CoordinateBuilder distCoordinate = CoordinateBuilder.create().setGroupId("org.jboss.forge") .setArtifactId("forge-distribution") .setClassifier("offline").setPackaging("zip"); DependencyQuery query = DependencyQueryBuilder .create(distCoordinate) .setFilter(new CompositeDependencyFilter( new NonSnapshotDependencyFilter(), new Predicate<Dependency>() { @Override public boolean accept(Dependency dependency) { Version version = SingleVersion.valueOf(dependency.getCoordinate().getVersion()); return version.compareTo(runtimeVersion) > 0 && version.getMajorVersion() == runtimeVersion.getMajorVersion() && "Final".equals(version.getQualifier()); } })); List<Coordinate> versions = resolver.resolveVersions(query); return versions.isEmpty() ? null : versions.get(versions.size() - 1); }
@Override public Dependency getEffectiveDependency(final Dependency manDep) { for (Dependency dependency : getEffectiveDependencies()) { if (Dependencies.areEquivalent(dependency, resolveProperties(manDep))) { return resolveProperties(dependency); } } return null; }
private Coordinate getLatestVersion(Coordinate dependency) { DependencyFacet dependencyFacet = getFaceted().getFacet(DependencyFacet.class); Coordinate result = dependency; List<Coordinate> versions = dependencyFacet.resolveAvailableVersions(DependencyQueryBuilder.create(dependency) .setFilter(new NonSnapshotDependencyFilter())); if (versions.size() > 0) { result = versions.get(versions.size() - 1); } return result; } }
private MavenPlugin getPlugin(final Coordinate dependency, boolean managedPlugin, boolean effectivePlugin, org.jboss.forge.addon.maven.profiles.Profile profileParam) { String groupId = dependency.getGroupId(); groupId = (groupId == null) || groupId.equals("") ? DEFAULT_GROUPID : groupId; for (MavenPlugin mavenPlugin : listConfiguredPlugins(managedPlugin, effectivePlugin, profileParam)) { Coordinate temp = mavenPlugin.getCoordinate(); if (Dependencies.areEquivalent(temp, CoordinateBuilder.create(dependency).setGroupId(groupId))) { return mavenPlugin; } } throw new PluginNotFoundException(groupId, dependency.getArtifactId()); }
@Override public List<Coordinate> resolveAvailableVersions(final Dependency dep) { DependencyQueryBuilder query = DependencyQueryBuilder.create(dep.getCoordinate()).setRepositories( getRepositories()); if (!Strings.isNullOrEmpty(dep.getCoordinate().getVersion()) && !dep.getCoordinate().getVersion().contains("SNAPSHOT")) { query.setFilter(new NonSnapshotDependencyFilter()); } List<Coordinate> versions = getResolver().resolveVersions(query); return versions; }
@Override public void removeDependency(final Dependency dep) { MavenFacet maven = getFaceted().getFacet(MavenFacet.class); Model pom = maven.getModel(); List<Dependency> dependencies = MavenDependencyAdapter.fromMavenList(pom.getDependencies()); List<Dependency> toBeRemoved = new ArrayList<>(); for (Dependency dependency : dependencies) { if (Dependencies.areEquivalent(dependency, resolveProperties(dep))) { toBeRemoved.add(dependency); } } dependencies.removeAll(toBeRemoved); pom.setDependencies(MavenDependencyAdapter.toMavenList(dependencies)); maven.setModel(pom); }
dependency.getCoordinate()).setFilter(new NonSnapshotDependencyFilter()));
@Override public boolean hasDirectDependency(final Dependency dependency) { MavenFacet maven = getFaceted().getFacet(MavenFacet.class); Model pom = maven.getModel(); List<Dependency> dependencies = MavenDependencyAdapter.fromMavenList(pom.getDependencies()); for (Dependency dep : dependencies) { if (Dependencies.areEquivalent(resolveProperties(dependency), dep)) { return true; } } return false; }
@Override public boolean hasDirectManagedDependency(final Dependency managedDependency) { MavenFacet maven = getFaceted().getFacet(MavenFacet.class); Model pom = maven.getModel(); DependencyManagement depMan = pom.getDependencyManagement(); List<Dependency> managedDependencies = depMan != null ? MavenDependencyAdapter.fromMavenList(depMan .getDependencies()) : new ArrayList<>(); for (Dependency manDep : managedDependencies) { if (Dependencies.areEquivalent(resolveProperties(managedDependency), manDep)) { return true; } } return false; }
@Override public void addDirectManagedDependency(final Dependency dep) { MavenFacet maven = getFaceted().getFacet(MavenFacet.class); Model pom = maven.getModel(); DependencyManagement depMan = pom.getDependencyManagement(); depMan = depMan != null ? depMan : new DependencyManagement(); List<Dependency> managedDependencies = MavenDependencyAdapter.fromMavenList(depMan.getDependencies()); ListIterator<Dependency> managedDepsIterator = managedDependencies.listIterator(); boolean found = false; while (managedDepsIterator.hasNext()) { Dependency managedDependency = managedDepsIterator.next(); if (Dependencies.areEquivalent(managedDependency, dep)) { managedDepsIterator.set(dep); found = true; } } if (!found) { managedDependencies.add(dep); } depMan.setDependencies(MavenDependencyAdapter.toMavenList(managedDependencies)); pom.setDependencyManagement(depMan); maven.setModel(pom); }
@Override public Dependency getDirectDependency(final Dependency dependency) { MavenFacet maven = getFaceted().getFacet(MavenFacet.class); Model pom = maven.getModel(); List<Dependency> dependencies = MavenDependencyAdapter.fromMavenList(pom.getDependencies()); for (Dependency dep : dependencies) { if (Dependencies.areEquivalent(resolveProperties(dependency), dep)) { return resolveProperties(dep); } } return null; }
@Override public Dependency getDirectManagedDependency(final Dependency manDep) { MavenFacet maven = getFaceted().getFacet(MavenFacet.class); Model pom = maven.getModel(); DependencyManagement depMan = pom.getDependencyManagement(); List<Dependency> managedDependencies = depMan != null ? MavenDependencyAdapter.fromMavenList(depMan .getDependencies()) : new ArrayList<>(); for (Dependency managedDependency : managedDependencies) { if (Dependencies.areEquivalent(managedDependency, resolveProperties(manDep))) { return resolveProperties(managedDependency); } } return null; }
@Override public void removeManagedDependency(final Dependency manDep) { MavenFacet maven = getFaceted().getFacet(MavenFacet.class); Model pom = maven.getModel(); DependencyManagement depMan = pom.getDependencyManagement(); depMan = depMan != null ? depMan : new DependencyManagement(); List<Dependency> managedDependencies = MavenDependencyAdapter.fromMavenList(depMan.getDependencies()); List<Dependency> toBeRemoved = new ArrayList<>(); for (Dependency managedDependency : managedDependencies) { if (Dependencies.areEquivalent(managedDependency, manDep)) { toBeRemoved.add(managedDependency); } } managedDependencies.removeAll(toBeRemoved); depMan.setDependencies(MavenDependencyAdapter.toMavenList(managedDependencies)); pom.setDependencyManagement(depMan); maven.setModel(pom); }
@Override public void addDirectDependency(final Dependency dep) { MavenFacet maven = getFaceted().getFacet(MavenFacet.class); Model pom = maven.getModel(); List<org.apache.maven.model.Dependency> dependencies = pom.getDependencies(); Coordinate depCoordinate = dep.getCoordinate(); boolean exists = false; for (org.apache.maven.model.Dependency dependency : dependencies) { Coordinate dependencyCoordinate = new MavenDependencyAdapter(dependency).getCoordinate(); if (Dependencies.areEquivalent(depCoordinate, dependencyCoordinate)) { dependency.setVersion(depCoordinate.getVersion()); exists = true; } } if (!exists) { org.apache.maven.model.Dependency dependency = MavenDependencyAdapter.toMavenList(Arrays.asList(dep)).get(0); dependencies.add(dependency); } maven.setModel(pom); }
@Override public Dependency getEffectiveManagedDependency(final Dependency manDep) { MavenFacet maven = getFaceted().getFacet(MavenFacet.class); try { DependencyManagement depMan = maven.getEffectiveModel().getDependencyManagement(); List<Dependency> managedDependencies = (depMan != null ? MavenDependencyAdapter.fromMavenList(depMan .getDependencies()) : new ArrayList<>()); for (Dependency managedDependency : managedDependencies) { if (Dependencies.areEquivalent(managedDependency, resolveProperties(manDep))) { return resolveProperties(managedDependency); } } } catch (Exception e) { log.log(Level.SEVERE, "Could not resolve managed dependencies in project [" + maven.getModelResource().getFullyQualifiedName() + "]. ", e); } return null; }
if (Dependencies.areEquivalent(dominant.getCoordinate(), recessive.getCoordinate()))
if (Dependencies.areEquivalent(dominant.getCoordinate(), recessive.getCoordinate()))