public String getProjectName(final String moduleName) { final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "A pom with module name '%s' could not be found", moduleName); return pom.getDisplayName(); }
public JavaPackage getTopLevelPackage(final String moduleName) { final Pom pom = getPomFromModuleName(moduleName); if (pom != null) { if (StringUtils.isBlank(moduleName)) { return new JavaPackage(pom.getGroupId(), moduleName); } else { // Module package return new JavaPackage(pom.getGroupId().concat(".") .concat(pom.getArtifactId().replace("-", ".")), moduleName); } } return null; }
public void updateBuildPlugin(final String moduleName, final Plugin plugin) { final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so plugins cannot be modified at this time"); Validate.notNull(plugin, "Plugin required"); for (final Plugin existingPlugin : pom.getBuildPlugins()) { if (existingPlugin.equals(plugin)) { // Already exists, so just quit return; } } // Delete any existing plugin with a different version removeBuildPlugin(moduleName, plugin); // Add the plugin addBuildPlugin(moduleName, plugin); }
@Override public List<Dependency> addDependencies(final String moduleName, final Collection<? extends Dependency> newDependencies, boolean addToDependencyManagement, boolean checkFullDependency) { Validate.isTrue(isProjectAvailable(moduleName), "Dependency modification prohibited; no such module '%s'", moduleName); final Pom parentPom = getPomFromModuleName(""); boolean isSamePom = false; Pom pom = null; if ("".equals(moduleName)) { isSamePom = true; pom = parentPom; } else { pom = getPomFromModuleName(moduleName); } Validate.notNull(pom, "The pom is not available, so dependencies cannot be added"); final Document parentDocument = XmlUtils.readXml(fileManager.getInputStream(parentPom.getPath())); Document document = null; if (isSamePom) { document = parentDocument; } else { document = XmlUtils.readXml(fileManager.getInputStream(pom.getPath())); } return writeDependencyInPom(newDependencies, parentPom, pom, parentDocument, document, parentDocument.getDocumentElement(), document.getDocumentElement(), addToDependencyManagement, isSamePom, checkFullDependency); }
public void updateProjectType(final String moduleName, final ProjectType projectType) { Validate.notNull(projectType, "Project type required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so the project type cannot be changed"); final Document document = XmlUtils.readXml(fileManager.getInputStream(pom.getPath())); final Element packaging = DomUtils.createChildIfNotExists("packaging", document.getDocumentElement(), document); if (packaging.getTextContent().equals(projectType.getType())) { return; } packaging.setTextContent(projectType.getType()); final String descriptionOfChange = highlight(UPDATED + " project type") + " to " + projectType.getType(); fileManager.createOrUpdateTextFileIfRequired(pom.getPath(), XmlUtils.nodeToString(document), descriptionOfChange, false); }
return; final Pom parentPom = getPomFromModuleName(""); boolean isSamePom = false; Pom pom = null; pom = parentPom; } else { pom = getPomFromModuleName(moduleName);
public void addResource(final String moduleName, final Resource resource) { Validate .isTrue(isProjectAvailable(moduleName), "Resource modification prohibited at this time"); Validate.notNull(resource, "Resource to add required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so resource addition cannot be performed"); if (pom.isResourceRegistered(resource)) { return; } final Document document = XmlUtils.readXml(fileManager.getInputStream(pom.getPath())); final Element buildElement = XmlUtils.findFirstElement("/project/build", document.getDocumentElement()); final Element resourcesElement = DomUtils.createChildIfNotExists("resources", buildElement, document); resourcesElement.appendChild(resource.getElement(document)); final String descriptionOfChange = highlight(ADDED + " resource") + " " + resource.getSimpleDescription(); fileManager.createOrUpdateTextFileIfRequired(pom.getPath(), XmlUtils.nodeToString(document), descriptionOfChange, false); }
return; final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so dependency removal cannot be performed"); if (!pom.isAnyDependenciesRegistered(dependenciesToRemove)) {
private void removeRepository(final String moduleName, final Repository repository, final String path) { Validate.isTrue(isProjectAvailable(moduleName), "Repository modification prohibited at this time"); Validate.notNull(repository, "Repository required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so repository removal cannot be performed"); if ("pluginRepository".equals(path)) { if (!pom.isPluginRepositoryRegistered(repository)) { return; } } else { if (!pom.isRepositoryRegistered(repository)) { return; } } final Document document = XmlUtils.readXml(fileManager.getInputStream(pom.getPath())); final Element root = document.getDocumentElement(); String descriptionOfChange = ""; for (final Element candidate : XmlUtils.findElements(path, root)) { if (repository.equals(new Repository(candidate))) { candidate.getParentNode().removeChild(candidate); descriptionOfChange = highlight(REMOVED + " repository") + " " + repository.getUrl(); // We stay in the loop just in case it was in the POM more than // once } } fileManager.createOrUpdateTextFileIfRequired(pom.getPath(), XmlUtils.nodeToString(document), descriptionOfChange, false); }
return; final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so repository addition cannot be performed"); final Document document = XmlUtils.readXml(fileManager.getInputStream(pom.getPath()));
private boolean hasModuleDependency(Pom module, Pom dependencyModule) { if (module.isDependencyRegistered(dependencyModule.asDependency(COMPILE), false)) { return true; } for (String moduleName : getModuleNames()) { Pom relatedModule = getPomFromModuleName(moduleName); if (module.isDependencyRegistered(relatedModule.asDependency(COMPILE), false) && hasModuleDependency(relatedModule, dependencyModule)) { return true; } } return false; }
public void removeFilter(final String moduleName, final Filter filter) { Validate.isTrue(isProjectAvailable(moduleName), "Filter modification prohibited at this time"); Validate.notNull(filter, "Filter required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so filter removal cannot be performed"); if (filter == null || !pom.isFilterRegistered(filter)) {
public void removeProperty(final String moduleName, final Property property) { Validate .isTrue(isProjectAvailable(moduleName), "Property modification prohibited at this time"); Validate.notNull(property, "Property to remove required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so property removal cannot be performed"); if (!pom.isPropertyRegistered(property)) { return; } final Document document = XmlUtils.readXml(fileManager.getInputStream(pom.getPath())); final Element root = document.getDocumentElement(); final Element propertiesElement = XmlUtils.findFirstElement("/project/properties", root); String descriptionOfChange = ""; for (final Element candidate : XmlUtils.findElements("/project/properties/*", document.getDocumentElement())) { if (property.equals(new Property(candidate))) { propertiesElement.removeChild(candidate); descriptionOfChange = highlight(REMOVED + " property") + " " + property.getName(); // Stay in the loop just in case it was in the POM more than // once } } DomUtils.removeTextNodes(propertiesElement); fileManager.createOrUpdateTextFileIfRequired(pom.getPath(), XmlUtils.nodeToString(document), descriptionOfChange, false); }
.isTrue(isProjectAvailable(moduleName), "Resource modification prohibited at this time"); Validate.notNull(resource, "Resource required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so resource removal cannot be performed"); if (!pom.isResourceRegistered(resource)) {
return; final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so plugin removal cannot be performed"); if (!pom.isAnyPluginsRegistered(plugins)) {
return; // No need to ever add a dependency upon the root POM final Pom module = getPomFromModuleName(moduleName); if (module != null && StringUtils.isNotBlank(module.getModuleName()) && !moduleToDependUpon.equals(module.getModuleName())) {
"Dependency modification prohibited at this time"); Validate.notNull(dependency, "Dependency to remove required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so dependency removal cannot be performed"); if (!pom.isDependencyRegistered(dependency, false)) {
public void addFilter(final String moduleName, final Filter filter) { Validate.isTrue(isProjectAvailable(moduleName), "Filter modification prohibited at this time"); Validate.notNull(filter, "Filter required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so filter addition cannot be performed"); if (filter == null || pom.isFilterRegistered(filter)) { return; } final Document document = XmlUtils.readXml(fileManager.getInputStream(pom.getPath())); final Element root = document.getDocumentElement(); final String descriptionOfChange; final Element buildElement = XmlUtils.findFirstElement("/project/build", root); final Element existingFilter = XmlUtils.findFirstElement("filters/filter['" + filter.getValue() + "']", buildElement); if (existingFilter == null) { // No such filter; add it final Element filtersElement = DomUtils.createChildIfNotExists("filters", buildElement, document); filtersElement.appendChild(XmlUtils.createTextElement(document, "filter", filter.getValue())); descriptionOfChange = highlight(ADDED + " filter") + " '" + filter.getValue() + "'"; } else { existingFilter.setTextContent(filter.getValue()); descriptionOfChange = highlight(UPDATED + " filter") + " '" + filter.getValue() + "'"; } fileManager.createOrUpdateTextFileIfRequired(pom.getPath(), XmlUtils.nodeToString(document), descriptionOfChange, false); }
"Dependency modification prohibited at this time"); Validate.notNull(dependency, "Dependency to update required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so updating a dependency cannot be performed"); if (!pom.isDependencyRegistered(dependency, false)) {
.isTrue(isProjectAvailable(moduleName), "Property modification prohibited at this time"); Validate.notNull(property, "Property to add required"); final Pom pom = getPomFromModuleName(moduleName); Validate.notNull(pom, "The pom is not available, so property addition cannot be performed"); if (pom.isPropertyRegistered(property)) {