public NewElement asXMLElement() { final NewElement xmlBuildElement = createElement("build"); if (!isNullOrEmpty(getDefaultGoal())) { xmlBuildElement.appendChild(createElement("defaultGoal", getDefaultGoal())); if (!isNullOrEmpty(getFinalName())) { xmlBuildElement.appendChild(createElement("finalName", getFinalName())); xmlBuildElement.appendChild(newResourcesElement(resources)); final List<Resource> testResources = getTestResources(); if (testResources != null && !testResources.isEmpty()) { xmlBuildElement.appendChild(newTestResourcesElement(testResources)); xmlBuildElement.appendChild(newResourcesElement(resources)); xmlBuildElement.appendChild(newPluginsElement(plugins));
/** Get resource directories. */ public static List<String> getResourceDirectories(Model model) { List<String> list = new LinkedList<>(); Build build = model.getBuild(); if (build != null) { if (build.getResources() != null && !build.getResources().isEmpty()) { for (Resource resource : build.getResources()) list.add(resource.getDirectory()); } } if (list.isEmpty()) { list.add("src/main/resources"); list.add("src/test/resources"); } return list; }
/** Get source directories. */ public static List<String> getSourceDirectories(Model model) { List<String> list = new LinkedList<>(); Build build = model.getBuild(); if (build != null) { if (build.getSourceDirectory() != null) { list.add(build.getSourceDirectory()); } else if (build.getTestSourceDirectory() != null) { list.add(build.getTestSourceDirectory()); } } if (list.isEmpty()) { list.add("src/main/java"); list.add("src/test/java"); } return list; }
private void removeResources() { if (!isNew()) { buildElement.removeChild("resources"); } this.resources = null; }
private void setPlugins0(Collection<? extends Plugin> plugins) { this.plugins = new ArrayList<>(plugins); if (isNew()) return; // if plugins element exists we should replace it children // with new set of plugins, otherwise create element for it if (buildElement.hasSingleChild("plugins")) { // remove "plugins" element children final Element pluginsElement = buildElement.getSingleChild("plugins"); for (Element plugin : pluginsElement.getChildren()) { plugin.remove(); } // append each new plugin to "plugins" element for (Plugin plugin : plugins) { pluginsElement.appendChild(plugin.asXMLElement()); } } else { buildElement.appendChild(newPluginsElement(plugins)); } }
private void setResources0(Collection<? extends Resource> resources) { this.resources = new ArrayList<>(resources); if (isNew()) return; // if resources element exists we should replace it children // with new set of resources, otherwise create element for it if (buildElement.hasSingleChild("resources")) { // remove "resources" element children final Element resourcesElement = buildElement.getSingleChild("resources"); for (Element resource : resourcesElement.getChildren()) { resource.remove(); } // append each new resource to "resources" element for (Resource resource : resources) { resourcesElement.appendChild(resource.asXMLElement()); resource.resourceElement = resourcesElement.getLastChild(); } } else { buildElement.appendChild(newResourcesElement(this.resources)); } }
/** * Sets build configuration, see {@link Activation} * * @param build new build * @return this profile instance */ public Profile setBuild(Build build) { this.build = build; if (!isNew()) { if (build == null) { element.removeChild("build"); } else if (element.hasSingleChild("build")) { element.removeChild("build"); element.appendChild(build.asXMLElement()); } else { element.appendChild(build.asXMLElement()); } } return this; }
build = new Build(element.getSingleChild("build"));
private void removePlugins() { if (!isNew()) { buildElement.removeChild("plugins"); } plugins = null; }
/** * Sets build settings for project. * * <p>If {@code build} is {@code null} then it will be removed from model and xml as well. * * @param build new build * @return this model instance */ public Model setBuild(Build build) { this.build = build; if (build == null) { root.removeChild("build"); } else if (root.hasSingleChild("build")) { // replace build build.buildElement = root.getSingleChild("build").replaceWith(build.asXMLElement()); } else { // add build root.appendChild(this.build.asXMLElement()); build.buildElement = root.getSingleChild("build"); } return this; }
model.build = new Build(root.getSingleChild("build"));
/** Sets the path to directory where compiled application classes are placed. */ public Build setOutputDirectory(String outputDirectory) { this.outputDirectory = outputDirectory; if (!isNew()) { if (outputDirectory == null) { buildElement.removeChild("outputDirectory"); } else if (buildElement.hasSingleChild("outputDirectory")) { buildElement.getSingleChild("outputDirectory").setText(outputDirectory); } else { buildElement.appendChild(createElement("outputDirectory", outputDirectory)); } } return this; }
/** Returns profile element as XML element. */ public NewElement asXMLElement() { final NewElement profile = createElement("profile"); if (!isNullOrEmpty(id)) { profile.appendChild(createElement("id", id)); } if (modules != null && !modules.isEmpty()) { profile.appendChild(newModulesXMLElement(modules)); } if (activation != null) { profile.appendChild(activation.asXMLElement()); } if (build != null) { profile.appendChild(build.asXMLElement()); } if (repositories != null && !repositories.isEmpty()) { profile.appendChild(newRepositoryElement(repositories)); } if (dependencies != null && !dependencies.get().isEmpty()) { profile.appendChild(newDependencyElement(dependencies.get())); } if (properties != null && !properties.isEmpty()) { profile.appendChild(newPropertiesElement(properties)); } if (dependencyManagement != null && !dependencyManagement.getDependencies().isEmpty()) { profile.appendChild(newDependencyManagementElement(dependencies.get())); } return profile; }
/** * Sets the path to directory containing the script sources of the project * * <p>If {@code scriptSourceDirectory} is {@code null} and this build instance is associated with * xml element then {@code scriptSourceDirectory} will be removed from model as well as from xml. * * @param scriptSourceDirectory new build script source directory * @return this build instance */ public Build setScriptSourceDirectory(String scriptSourceDirectory) { this.scriptSourceDirectory = scriptSourceDirectory; if (!isNew()) { if (scriptSourceDirectory == null) { buildElement.removeChild("scriptSourceDirectory"); } else if (buildElement.hasSingleChild("scriptSourceDirectory")) { buildElement.getSingleChild("scriptSourceDirectory").setText(scriptSourceDirectory); } else { buildElement.appendChild(createElement("scriptSourceDirectory", scriptSourceDirectory)); } } return this; }
/** * Sets the path to directory containing the source of the project. * * <p>If {@code sourceDirectory} is {@code null} and this build instance is associated with xml * element then {@code sourceDirectory} will be removed from model as well as from xml. * * @param sourceDirectory new build source directory */ public Build setSourceDirectory(String sourceDirectory) { this.sourceDirectory = sourceDirectory; if (!isNew()) { if (sourceDirectory == null) { buildElement.removeChild("sourceDirectory"); } else if (buildElement.hasSingleChild("sourceDirectory")) { buildElement.getSingleChild("sourceDirectory").setText(sourceDirectory); } else { buildElement.appendChild(createElement("sourceDirectory", sourceDirectory)); } } return this; }
/** * Sets the path to directory where compiled test classes are placed. * * <p>If {@code testOutputDirectory} is {@code null} and this build instance is associated with * xml element then {@code testOutputDirectory} will be removed from model as well as from xml. * * @param testOutputDirectory new build test output directory * @return this build instance */ public Build setTestOutputDirectory(String testOutputDirectory) { this.testOutputDirectory = testOutputDirectory; if (!isNew()) { if (testOutputDirectory == null) { buildElement.removeChild("testOutputDirectory"); } else if (buildElement.hasSingleChild("testOutputDirectory")) { buildElement.getSingleChild("testOutputDirectory").setText(testOutputDirectory); } else { buildElement.appendChild(createElement("testOutputDirectory", testOutputDirectory)); } } return this; }
/** * Sets the path to directory containing the unit test source of the project. * * <p>If {@code testSourceDirectory} is {@code null} and this build instance is associated with * xml element then {@code testSourceDirectory} will be removed from model as well as from xml. * * @param testSourceDirectory new build test source directory * @return this build instance */ public Build setTestSourceDirectory(String testSourceDirectory) { this.testSourceDirectory = testSourceDirectory; if (!isNew()) { if (testSourceDirectory == null) { buildElement.removeChild("testSourceDirectory"); } else if (buildElement.hasSingleChild("testSourceDirectory")) { buildElement.getSingleChild("testSourceDirectory").setText(testSourceDirectory); } else { buildElement.appendChild(createElement("testSourceDirectory", testSourceDirectory)); } } return this; }