use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class AbstractProjectOperations method addFilter.
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);
}
use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class AbstractProjectOperations method removeRepository.
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);
}
use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class AbstractProjectOperations method updateProjectType.
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);
}
use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class MavenPathResolvingStrategy method getPath.
private File getPath(final LogicalPath logicalPath) {
final Pom pom = pomManagementService.getPomFromModuleName(logicalPath.getModule());
final File moduleRoot = getModuleRoot(logicalPath.getModule(), pom);
final String pathRelativeToPom = logicalPath.getPathRelativeToPom(pom);
return new File(moduleRoot, pathRelativeToPom);
}
use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class MavenProjectMetadataProvider method get.
public MetadataItem get(final String metadataId) {
Validate.isTrue(ProjectMetadata.isValid(metadataId), "Unexpected metadata request '%s' for this provider", metadataId);
// Just rebuild on demand. We always do this as we expect
// MetadataService to cache on our behalf
final Pom pom = pomManagementService.getPomFromModuleName(ProjectMetadata.getModuleName(metadataId));
// Read the file, if it is available
if (pom == null || !fileManager.exists(pom.getPath())) {
return null;
}
return new ProjectMetadata(pom);
}
Aggregations