/** * Compare the list of selected dependencies against the selected targetPOM. If one of the * dependencies is already under dependencyManagement, but has a different version than the * selected dependency, warn the user about this. returns true if the user has been warned (but * this method updates the status itself) * * @param model * @param dependencies */ protected boolean checkDependencies( org.apache.maven.model.Model model, LinkedList<Dependency> dependencies) { if (this.status != null && this.status.getCode() == IStatus.ERROR) { // Don't warn the user if there is already an error return false; } if (model == null || model.getDependencyManagement() == null || model.getDependencyManagement().getDependencies() == null || model.getDependencyManagement().getDependencies().isEmpty()) { return false; } for (Dependency selectedDep : dependencies) { for (org.apache.maven.model.Dependency targetDep : model.getDependencyManagement().getDependencies()) { if (selectedDep.getGroupId().equals(targetDep.getGroupId()) && selectedDep.getArtifactId().equals(targetDep.getArtifactId()) && !selectedDep.getVersion().equals(targetDep.getVersion())) { String modelID = model.getGroupId() + ":" + model.getArtifactId() + ":" + model.getVersion(); // $NON-NLS-1$ //$NON-NLS-2$ if (targetDep.getLocation("") != null && targetDep.getLocation("").getSource() != null) { // $NON-NLS-1$ //$NON-NLS-2$ modelID = targetDep.getLocation("").getSource().getModelId(); // $NON-NLS-1$ } Object[] arguments = { selectedDep.getArtifactId() + "-" + selectedDep.getVersion(), // $NON-NLS-1$ targetDep.getVersion(), modelID }; String message = NLS.bind(Messages.ManageDependenciesDialog_dependencyExistsWarning, arguments); updateStatus(new Status(IStatus.WARNING, MavenEditorPlugin.PLUGIN_ID, message)); return true; } } } return false; }
static InputLocation findLocationForManagedArtifact( final ManagedArtifactRegion region, MavenProject mavprj) { Model mdl = mavprj.getModel(); InputLocation openLocation = null; if (region.isDependency) { DependencyManagement dm = mdl.getDependencyManagement(); if (dm != null) { List<Dependency> list = dm.getDependencies(); String id = region.groupId + ":" + region.artifactId + ":"; // $NON-NLS-1$ //$NON-NLS-2$ if (list != null) { for (Dependency dep : list) { if (dep.getManagementKey().startsWith(id)) { InputLocation location = dep.getLocation(ARTIFACT_ID); // $NON-NLS-1$ // when would this be null? if (location != null) { openLocation = location; break; } } } } } } if (region.isPlugin) { Build build = mdl.getBuild(); if (build != null) { PluginManagement pm = build.getPluginManagement(); if (pm != null) { List<Plugin> list = pm.getPlugins(); String id = Plugin.constructKey(region.groupId, region.artifactId); if (list != null) { for (Plugin plg : list) { if (id.equals(plg.getKey())) { InputLocation location = plg.getLocation(ARTIFACT_ID); // $NON-NLS-1$ // when would this be null? if (location != null) { openLocation = location; break; } } } } } } } return openLocation; }