/** * Sets collection of plugin repositories. * * <p><b>Note: all existing plugin repositories will be removed from model and xml as well</b> * * @param pluginRepositories new plugin repositories */ public Model setPluginRepositories(Collection<? extends Repository> pluginRepositories) { // remove existing plugin repositories for (Repository pluginRepository : pluginRepositories()) { pluginRepository.remove(); } // add plugin repositories if necessary if (pluginRepositories != null && !pluginRepositories.isEmpty()) { for (Repository pluginRepository : pluginRepositories) { addPluginRepository(pluginRepository); } } else { root.removeChild("pluginRepositories"); this.pluginRepositories = null; } return this; }
/** * Adds plugin repository * * @param pluginRepository new plugin repository */ public Model addPluginRepository(Repository pluginRepository) { requireNonNull(pluginRepository, "Required not null plugin repository"); pluginRepositories().add(pluginRepository); // add plugin repository to xml if (root.hasSingleChild("pluginRepositories")) { root.getSingleChild("pluginRepositories").appendChild(pluginRepository.asXMLElement()); pluginRepository.element = root.getLastChild(); } else { root.insertChild( createElement("pluginRepositories", pluginRepository.asXMLElement()), beforeAnyOf("build", "reporting", "profiles").or(inTheEnd())); pluginRepository.element = root.getSingleChild("pluginRepositories").getFirstChild(); } return this; }