private void appendNodes(Closure c) { List tail = getTail(); for (Node child : buildChildrenFromClosure(c)) { parent().appendNode(child.name(), child.attributes(), child.value()); } parent().children().addAll(tail); }
/** * Replaces the current node with the supplied node. * * @param n the new Node * @return the original now replaced node */ public Node replaceNode(Node n) { if (parent() == null) { throw new UnsupportedOperationException("Replacing the root node is not supported"); } List tail = getTail(); parent().appendNode(n.name(), n.attributes(), n.value()); parent().children().addAll(tail); getParentList(parent()).remove(this); this.setParent(null); return this; }
private Node appendDependencyNode(Node parent, Coordinates coordinates, String scope, String type) { Node dependencyNode = parent.appendNode(NODE_NAME_DEPENDENCY); dependencyNode.appendNode(NODE_NAME_GROUP_ID, coordinates.getGroupId()); dependencyNode.appendNode(NODE_NAME_ARTIFACT_ID, coordinates.getArtifactId()); dependencyNode.appendNode(NODE_NAME_VERSION, coordinates.getVersion()); if (scope != null) { dependencyNode.appendNode(NODE_NAME_SCOPE, scope); } if (!"jar".equals(type)) { dependencyNode.appendNode(NODE_NAME_TYPE, type); } return dependencyNode; }
@SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_INFERRED") void appendToFilteredResources(Node filteredResources) { Preconditions.checkArgument(filteredResources.name().equals("filteredResources")); checkValid(); Node filterNode = filteredResources.appendNode("filter"); filterNode.appendNode("id", hashCode()); // any random string will work, we'll use our hash filterNode.appendNode("name", ""); filterNode.appendNode("type", Kind.create(kinds)); // make sure that it matches the build folder Node matcherNode = filterNode.appendNode("matcher"); matcherNode.appendNode("id", "org.eclipse.ui.ide.multiFilter"); matcherNode.appendNode("arguments", "1.0-" + matcher.name() + "-matches-" + caseSensitive + "-" + isRegex + "-" + matchValue); }
private void addManagedDependency(Node managedDependencies, Dependency managedDependency, String classifier) { Node dependencyNode = appendDependencyNode(managedDependencies, managedDependency.getCoordinates(), managedDependency.getScope(), managedDependency.getType()); if (!managedDependency.getExclusions().isEmpty()) { Node exclusionsNode = dependencyNode.appendNode(NODE_NAME_EXCLUSIONS); for (String exclusion : managedDependency.getExclusions()) { String[] exclusionComponents = exclusion.split(":"); Node exclusionNode = exclusionsNode.appendNode(NODE_NAME_EXCLUSION); exclusionNode.appendNode(NODE_NAME_GROUP_ID, exclusionComponents[0]); exclusionNode.appendNode(NODE_NAME_ARTIFACT_ID, exclusionComponents[1]); } } if (classifier != null) { Node classifierNode = dependencyNode.appendNode(NODE_NAME_CLASSIFIER); classifierNode.setValue(classifier); } }
/** Creates an XML node representing all the repos in this model. */ private Node sourceNode(Node parent) { Node source = new Node(parent, "source"); @SuppressWarnings("unchecked") BiConsumer<Iterable<String>, Consumer<Map<String, String>>> addRepos = (urls, repoAttributes) -> { for (String url : urls) { Node repository = source.appendNode("repository"); repository.attributes().put("location", url); repoAttributes.accept(repository.attributes()); } }; addRepos.accept(repos, Consumers.doNothing()); addRepos.accept(metadataRepos, repoAttr -> repoAttr.put("kind", "metadata")); addRepos.accept(artifactRepos, repoAttr -> repoAttr.put("kind", "artifact")); return source; }
root.appendNode("name", projectName); root.appendNode("packaging", "jar"); root.appendNode("url", repoLink); if(projectDescription != null) { root.appendNode("description", projectDescription); Node license = root.appendNode("licenses").appendNode("license"); license.appendNode("name", "The MIT License"); license.appendNode("url", repoLink + "/blob/master/LICENSE"); license.appendNode("distribution", "repo"); root.appendNode("scm").appendNode("url", repoLink + ".git"); Node issues = root.appendNode("issueManagement"); issues.appendNode("url", repoLink + "/issues"); issues.appendNode("system", "GitHub issues"); Node ci = root.appendNode("ciManagement"); ci.appendNode("url", "https://travis-ci.org/" + conf.getGitHub().getRepository()); ci.appendNode("system", "TravisCI"); Node developers = root.appendNode("developers"); for (String notation : conf.getTeam().getDevelopers()) { TeamMember person = parsePerson(notation); Node d = developers.appendNode("developer"); d.appendNode("id", person.gitHubUser); d.appendNode("name", person.name); d.appendNode("roles").appendNode("role", "Core developer");
root.appendNode("name", projectName); root.appendNode("packaging", "jar"); root.appendNode("url", repoLink); if (projectDescription != null) { root.appendNode("description", projectDescription); Node license = root.appendNode("licenses").appendNode("license"); license.appendNode("name", "The MIT License"); license.appendNode("url", repoLink + "/blob/master/LICENSE"); license.appendNode("distribution", "repo"); root.appendNode("scm").appendNode("url", repoLink + ".git"); Node issues = root.appendNode("issueManagement"); issues.appendNode("url", repoLink + "/issues"); issues.appendNode("system", "GitHub issues"); Node ci = root.appendNode("ciManagement"); ci.appendNode("url", "https://travis-ci.org/" + conf.getGitHub().getRepository()); ci.appendNode("system", "TravisCI"); Node developers = root.appendNode("developers"); for (String notation : conf.getTeam().getDevelopers()) { TeamMember person = parsePerson(notation); Node d = developers.appendNode("developer"); d.appendNode("id", person.gitHubUser); d.appendNode("name", person.name); d.appendNode("roles").appendNode("role", "Core developer");
root.appendNode("name", projectName); root.appendNode("packaging", "jar"); root.appendNode("url", repoLink); if (projectDescription != null) { root.appendNode("description", projectDescription); Node license = root.appendNode("licenses").appendNode("license"); license.appendNode("name", "The MIT License"); license.appendNode("url", repoLink + "/blob/master/LICENSE"); license.appendNode("distribution", "repo"); root.appendNode("scm").appendNode("url", repoLink + ".git"); Node issues = root.appendNode("issueManagement"); issues.appendNode("url", repoLink + "/issues"); issues.appendNode("system", "GitHub issues"); Node ci = root.appendNode("ciManagement"); ci.appendNode("url", "https://travis-ci.org/" + conf.getGitHub().getRepository()); ci.appendNode("system", "TravisCI"); Node developers = root.appendNode("developers"); for (String notation : conf.getTeam().getDevelopers()) { TeamMember person = parsePerson(notation); Node d = developers.appendNode("developer"); d.appendNode("id", person.gitHubUser); d.appendNode("name", person.name); d.appendNode("roles").appendNode("role", "Core developer");
private void doConfigurePom(Node pom) { Node dependencyManagementNode = findChild(pom, NODE_NAME_DEPENDENCY_MANAGEMENT); if (dependencyManagementNode == null) { dependencyManagementNode = pom.appendNode(NODE_NAME_DEPENDENCY_MANAGEMENT); } Node managedDependenciesNode = findChild(dependencyManagementNode, NODE_NAME_DEPENDENCIES); if (managedDependenciesNode == null) { managedDependenciesNode = dependencyManagementNode.appendNode(NODE_NAME_DEPENDENCIES); } configureBomImports(managedDependenciesNode); configureManagedDependencies(managedDependenciesNode, findChild(pom, NODE_NAME_DEPENDENCIES)); }
private Node appendNodes(Closure c) { List list = parent().children(); int afterIndex = list.indexOf(this); List leftOvers = new ArrayList(list.subList(afterIndex + 1, list.size())); list.subList(afterIndex + 1, list.size()).clear(); Node lastAppended = null; for (Node child : buildChildrenFromClosure(c)) { lastAppended = parent().appendNode(child.name(), child.attributes(), child.value()); } parent().children().addAll(leftOvers); return lastAppended; }
Node entry = classpathNode.appendNode("classpathentry"); entry.attributes().put("combineaccessrules", "true"); entry.attributes().put("exported", "true");
@SuppressWarnings("unchecked") @Override protected void applyOnce(Project project) { extension = project.getExtensions().create(ResourceFiltersExtension.NAME, ResourceFiltersExtension.class); EclipseProjectPlugin.modifyEclipseProject(project, eclipseModel -> { eclipseModel.getProject().getFile().getXmlTransformer().addAction(xmlProvider -> { Node rootNode = (Node) xmlProvider.asNode(); // remove the old filteredResources List<Node> toRemove = ((List<Node>) rootNode.children()).stream() .filter(Objects::nonNull) .filter(node -> FILTERED_RESOURCES.equals(node.name())) .collect(Collectors.toList()); toRemove.forEach(rootNode::remove); // now add ours Node filteredResources = rootNode.appendNode(FILTERED_RESOURCES); for (ResourceFilter toExclude : extension.filters) { toExclude.appendToFilteredResources(filteredResources); } }); }); }
.equals("ScalaCompilerConfiguration")) .findFirst() .orElseGet(() -> rootNode.appendNode( "component", ImmutableMap.of("name", "ScalaCompilerConfiguration"))); .filter(o -> ((Node) o).attributes().get("name").equals("compileOrder")) .findFirst() .orElseGet(() -> scalaCompilerConf.appendNode("option")); compilerOrder.attributes().put("name", "compileOrder"); compilerOrder.attributes().put("value", compilerMode); Node parametersNode = (Node) scalaCompilerConf.getAt(new QName("parameters")).stream() .findFirst() .orElseGet(() -> scalaCompilerConf.appendNode("parameters")); Node parameter = (Node) parametersNode.getAt(new QName("parameter")).stream() .filter(o -> ((Node) o).attributes().get("value").equals(targetJvmVersion)) .findFirst() .orElseGet(() -> parametersNode.appendNode("parameter")); parameter.attributes().put("value", targetJvmVersion); });
private void applyUserPom(Project project, Node pomXml) { PomConvention pomExt = project.getConvention().getPlugin(PomConvention.class); if (pomExt.config != null) { XmlMerger.mergePom(pomXml, pomExt.config); } // apply defaults if required if (pomXml.get("name") == null) { pomXml.appendNode("name", project.getName()); } if (project.getDescription() != null && pomXml.get("description") == null) { pomXml.appendNode("description", project.getDescription()); } } }
Node entry = xmlProvider.asNode().appendNode("classpathentry"); entry.attributes().put("kind", "src"); entry.attributes().put("path", "");