private Map generateProperties()

in buildSrc/src/main/groovy/org/grails/forge/internal/tasks/WriteGrailsVersionInfoTask.java [66:91]


    private Map<String, String> generateProperties() {
        ArtifactResolutionResult result = getProject().getDependencies().createArtifactResolutionQuery()
                .forModule("org.apache.grails", "grails-bom", getVersion().get())
                .withArtifacts(MavenModule.class, MavenPomArtifact.class)
                .execute();
        Map<String, String> props = new TreeMap<>();
        props.put("grails.version", getVersion().get());
        for (ComponentArtifactsResult component : result.getResolvedComponents()) {
            component.getArtifacts(MavenPomArtifact.class).forEach(artifact -> {
                if (artifact instanceof ResolvedArtifactResult) {
                    ResolvedArtifactResult resolved = (ResolvedArtifactResult) artifact;
                    GPathResult pom = null;
                    try {
                        pom = new XmlSlurper().parse(resolved.getFile());
                    } catch (IOException | SAXException | ParserConfigurationException e) {
                        // ignore
                    }
                    ((GPathResult) pom.getProperty("properties")).children().forEach(child -> {
                        NodeChild node = (NodeChild) child;
                        props.put(node.name(), node.text());
                    });
                }
            });
        }
        return props;
    }