getProjectOperations().addProperty(rootModuleName, new Property("bootstrap.version", "3.3.6")); dependencies.add(new Dependency("org.webjars.bower", "bootstrap", "${bootstrap.version}")); new Property("datatables.version", "1.10.12")); dependencies.add(new Dependency("org.webjars.bower", "datatables", "${datatables.version}")); new Property("datatables-bs.version", "1.10.11")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-bs", "${datatables-bs.version}")); new Property("datatables-buttons.version", "1.1.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-buttons", "${datatables-buttons.version}")); new Property("datatables-buttons-bs.version", "1.1.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-buttons-bs", "${datatables-buttons-bs.version}")); new Property("datatables-responsive.version", "2.0.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-responsive", "${datatables-responsive.version}")); new Property("datatables-responsive-bs.version", "2.0.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-responsive-bs", "${datatables-responsive-bs.version}")); new Property("datatables-select.version", "1.1.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-select", "${datatables-select.version}"));
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); }
pom.getPropertiesExcludingValue(new Property("roo.version")); for (final Property existingProperty : rooVersionResults) { final VersionInfo rooVersion = extractVersionInfoFromString(existingProperty.getValue()); if (rooVersion != null) { if (rooVersion.compareTo(bundleVersionInfo) < 0) { final Property newProperty = new Property(existingProperty.getName(), bundleVersionInfo.toString()); projectOperations.addProperty(moduleName, newProperty); break; pom.getPropertiesExcludingValue(new Property("spring.version")); for (final Property existingProperty : springVersionResults) { final VersionInfo springVersion = extractVersionInfoFromString(existingProperty.getValue()); if (springVersion != null) { final VersionInfo latestSpringVersion = extractVersionInfoFromString(SPRING_VERSION); if (springVersion.compareTo(latestSpringVersion) < 0) { final Property newProperty = new Property(existingProperty.getName(), latestSpringVersion.toString()); projectOperations.addProperty(moduleName, newProperty); break;
final String descriptionOfChange; final Element existing = XmlUtils.findFirstElement("/project/properties/" + property.getName(), root); if (existing == null) { properties.appendChild(XmlUtils.createTextElement(document, property.getName(), property.getValue())); descriptionOfChange = highlight(ADDED + " property") + " '" + property.getName() + "' = '" + property.getValue() + "'"; } else { existing.setTextContent(property.getValue()); descriptionOfChange = highlight(UPDATED + " property") + " '" + property.getName() + "' to '" + property.getValue() + "'";
/** * Locates the first occurrence of a property for a given name and returns * it. * * @param name the property name (required) * @return the property if found otherwise null */ public Property getProperty(final String name) { Validate.notBlank(name, "Property name to locate is required"); for (final Property p : pomProperties) { if (name.equals(p.getName())) { return p; } } return null; }
/** * Locates any properties which match the presented property, excluding the * value. This is useful for upgrade use cases, where it is necessary to * locate any properties with the name so that they can be removed. * * @param property to locate (required; note the value is ignored in * comparisons) * @return any matching properties (never returns null, but may return an * empty {@link Set}) */ public Set<Property> getPropertiesExcludingValue(final Property property) { Validate.notNull(property, "Property to locate is required"); final Set<Property> result = new HashSet<Property>(); for (final Property p : pomProperties) { if (property.getName().equals(p.getName())) { result.add(p); } } return result; }
/** * This method adds necessary thymeleaf dependencies to * generated project * * @param module */ private void addThymeleafDependencies(Pom module) { // Add Thymeleaf starter getProjectOperations().addDependency(module.getModuleName(), STARTER_THYMELEAF_DEPENDENCY); // Add Thymeleaf layout dialect getProjectOperations().addDependency(module.getModuleName(), LAYOUT_THYMELEAF_DEPENDENCY); // Add Thymeleaf data dialect getProjectOperations().addDependency(module.getModuleName(), DATA_THYMELEAF_DEPENDENCY); // ROO-3813: Use Thymeleaf 3.0 instead of the provided version by Spring IO // More info about Thymelead 3.0 using Spring Boot here // http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-use-thymeleaf-3 getProjectOperations().addProperty("", new Property("thymeleaf.version", "3.0.0.RELEASE")); getProjectOperations().addProperty("", new Property("thymeleaf-layout-dialect.version", "2.0.0")); getProjectOperations().addProperty("", new Property("thymeleaf-data-dialect.version", "2.0.1")); }
public void createProject(final JavaPackage topLevelPackage, final String projectName, final Integer majorJavaVersion, final PackagingProvider selectedPackagingProvider) { Validate.isTrue(isCreateProjectAvailable(), "Project creation is unavailable at this time"); final PackagingProvider packagingProvider = getPackagingProvider(selectedPackagingProvider); packagingProvider.createArtifacts(topLevelPackage, projectName, getJavaProductVersion(majorJavaVersion), null, "", this); // Add java.version property if specified if (majorJavaVersion != null) { getProjectOperations().addProperty("", new Property("java.version", getJavaVersion(majorJavaVersion))); } // ROO-3687: Generates necessary Spring Boot artifacts createSpringBootApplicationClass(topLevelPackage, projectName); // createApplicationTestsClass(topLevelPackage, projectName); // ROO-3741: Including banner.txt addBannerFile(getPomFromModuleName("")); // add application-dev.properties addApplicationDevPropertiesFile(getPomFromModuleName(""), topLevelPackage); }
getProjectOperations().addProperty("", new Property(property));
new Property("java.version", getJavaVersion(majorJavaVersion)));
private void installMavenPlugins(String moduleName) { final Element configuration = XmlUtils.getConfiguration(getClass()); // Add properties List<Element> properties = XmlUtils.findElements( "/configuration/properties/*", configuration); for (Element property : properties) { projectOperations.addProperty(moduleName, new Property(property)); } // Add Plugins List<Element> elements = XmlUtils.findElements( "/configuration/plugins/plugin", configuration); for (Element element : elements) { Plugin plugin = new Plugin(element); projectOperations.addBuildPlugin( moduleName, plugin); } }
/** * Install properties defined in external XML file * * @param configuration */ private void updatePomProperties(Element configuration) { List<Element> addonProperties = XmlUtils.findElements( "/configuration/gvnix/menu/properties/*", configuration); for (Element property : addonProperties) { getProjectOperations().addProperty( getProjectOperations().getFocusedModuleName(), new Property(property)); } }
getProjectOperations().addProperty(rootModuleName, new Property("bootstrap.version", "3.3.6")); dependencies.add(new Dependency("org.webjars.bower", "bootstrap", "${bootstrap.version}")); new Property("datatables.version", "1.10.12")); dependencies.add(new Dependency("org.webjars.bower", "datatables", "${datatables.version}")); new Property("datatables-bs.version", "1.10.11")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-bs", "${datatables-bs.version}")); new Property("datatables-buttons.version", "1.1.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-buttons", "${datatables-buttons.version}")); new Property("datatables-buttons-bs.version", "1.1.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-buttons-bs", "${datatables-buttons-bs.version}")); new Property("datatables-responsive.version", "2.0.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-responsive", "${datatables-responsive.version}")); new Property("datatables-responsive-bs.version", "2.0.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-responsive-bs", "${datatables-responsive-bs.version}")); new Property("datatables-select.version", "1.1.2")); dependencies.add(new Dependency("org.webjars.bower", "datatables.net-select", "${datatables-select.version}"));
/** * This method adds necessary thymeleaf dependencies to * generated project * * @param module */ private void addThymeleafDependencies(Pom module) { // Add Thymeleaf starter getProjectOperations().addDependency(module.getModuleName(), STARTER_THYMELEAF_DEPENDENCY); // Add Thymeleaf layout dialect getProjectOperations().addDependency(module.getModuleName(), LAYOUT_THYMELEAF_DEPENDENCY); // Add Thymeleaf data dialect getProjectOperations().addDependency(module.getModuleName(), DATA_THYMELEAF_DEPENDENCY); // ROO-3813: Use Thymeleaf 3.0 instead of the provided version by Spring IO // More info about Thymelead 3.0 using Spring Boot here // http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-use-thymeleaf-3 getProjectOperations().addProperty("", new Property("thymeleaf.version", "3.0.0.RELEASE")); getProjectOperations().addProperty("", new Property("thymeleaf-layout-dialect.version", "2.0.0")); getProjectOperations().addProperty("", new Property("thymeleaf-data-dialect.version", "2.0.1")); }
/** * {@inheritDoc} */ public void addAddonDependency() { // Get configuration (repository and dependency) XML element Element conf = XmlUtils.getConfiguration(this.getClass()); // Find repository elements and add them to the project for (Element repo : XmlUtils.findElements( "/configuration/gvnix/repositories/repository", conf)) { projectOperations.addRepository(projectOperations .getFocusedModuleName(), new Repository(repo)); } // Install properties List<Element> properties = XmlUtils.findElements( "/configuration/gvnix/properties/*", conf); for (Element property : properties) { projectOperations.addProperty(projectOperations .getFocusedModuleName(), new Property(property)); } // Find dependency elements and update them into the project DependenciesVersionManager.manageDependencyVersion(metadataService, projectOperations, XmlUtils.findElements( "/configuration/gvnix/dependencies/dependency", conf)); }
for (Element property : properties) { projectOperations.addProperty(projectOperations .getFocusedModuleName(), new Property(property));
for (Element property : properties) { projectOperations.addProperty(projectOperations .getFocusedModuleName(), new Property(property));
public void setup() { // Get add-on configuration file Element configuration = XmlUtils.getConfiguration(getClass()); // Install the add-on repository needed List<Element> repos = XmlUtils.findElements( "/configuration/gvnix/repositories/repository", configuration); for (Element repo : repos) { getProjectOperations().addRepositories( getProjectOperations().getFocusedModuleName(), Collections.singleton(new Repository(repo))); } // Install properties List<Element> properties = XmlUtils.findElements( "/configuration/gvnix/properties/*", configuration); for (Element property : properties) { getProjectOperations().addProperty( getProjectOperations().getFocusedModuleName(), new Property(property)); } // Install dependencies List<Element> depens = XmlUtils.findElements( "/configuration/gvnix/dependencies/dependency", configuration); DependenciesVersionManager.manageDependencyVersion( getMetadataService(), getProjectOperations(), depens); }
/** * Add addon repository and dependency to get annotations. * * @param configuration Configuration element */ private void addAnnotations(Element configuration) { // Install the add-on Google code repository and dependency needed to // get the annotations List<Element> repos = XmlUtils.findElements( "/configuration/gvnix/repositories/repository", configuration); for (Element repo : repos) { projectOperations.addRepository(projectOperations .getFocusedModuleName(), new Repository(repo)); } // Install properties List<Element> properties = XmlUtils.findElements( "/configuration/gvnix/properties/*", configuration); for (Element property : properties) { projectOperations.addProperty(projectOperations .getFocusedModuleName(), new Property(property)); } List<Element> depens = XmlUtils.findElements( "/configuration/gvnix/dependencies/dependency", configuration); DependenciesVersionManager.manageDependencyVersion(metadataService, projectOperations, depens); }
getProjectOperations().addProperty("", new Property(property));