Skip to content

Commit 0ea2775

Browse files
committed
Merge branch '3.4.x'
Closes gh-44896
2 parents 14060a2 + d78a208 commit 0ea2775

File tree

3 files changed

+1
-134
lines changed

3 files changed

+1
-134
lines changed

buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java

+1-119
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@
1616

1717
package org.springframework.boot.build.bom;
1818

19-
import java.io.File;
20-
import java.io.IOException;
21-
import java.io.InputStreamReader;
22-
import java.nio.charset.StandardCharsets;
2319
import java.util.ArrayList;
2420
import java.util.Collection;
2521
import java.util.HashMap;
@@ -29,37 +25,19 @@
2925
import java.util.function.Function;
3026

3127
import javax.inject.Inject;
32-
import javax.xml.parsers.DocumentBuilderFactory;
33-
import javax.xml.transform.TransformerFactory;
34-
import javax.xml.transform.dom.DOMSource;
35-
import javax.xml.transform.stream.StreamResult;
36-
import javax.xml.xpath.XPath;
37-
import javax.xml.xpath.XPathConstants;
38-
import javax.xml.xpath.XPathFactory;
3928

4029
import groovy.lang.Closure;
4130
import groovy.lang.GroovyObjectSupport;
4231
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
4332
import org.apache.maven.artifact.versioning.VersionRange;
4433
import org.gradle.api.Action;
45-
import org.gradle.api.GradleException;
4634
import org.gradle.api.InvalidUserCodeException;
4735
import org.gradle.api.InvalidUserDataException;
4836
import org.gradle.api.Project;
49-
import org.gradle.api.Task;
50-
import org.gradle.api.artifacts.Configuration;
5137
import org.gradle.api.artifacts.dsl.DependencyHandler;
5238
import org.gradle.api.model.ObjectFactory;
5339
import org.gradle.api.plugins.JavaPlatformPlugin;
54-
import org.gradle.api.publish.maven.tasks.GenerateMavenPom;
55-
import org.gradle.api.tasks.Sync;
56-
import org.gradle.api.tasks.TaskExecutionException;
57-
import org.gradle.api.tasks.TaskProvider;
58-
import org.w3c.dom.Document;
59-
import org.w3c.dom.NodeList;
60-
61-
import org.springframework.boot.build.DeployedPlugin;
62-
import org.springframework.boot.build.RepositoryTransformersExtension;
40+
6341
import org.springframework.boot.build.bom.Library.Exclusion;
6442
import org.springframework.boot.build.bom.Library.Group;
6543
import org.springframework.boot.build.bom.Library.LibraryVersion;
@@ -68,9 +46,7 @@
6846
import org.springframework.boot.build.bom.Library.ProhibitedVersion;
6947
import org.springframework.boot.build.bom.Library.VersionAlignment;
7048
import org.springframework.boot.build.bom.bomr.version.DependencyVersion;
71-
import org.springframework.boot.build.mavenplugin.MavenExec;
7249
import org.springframework.boot.build.properties.BuildProperties;
73-
import org.springframework.util.FileCopyUtils;
7450
import org.springframework.util.PropertyPlaceholderHelper;
7551
import org.springframework.util.PropertyPlaceholderHelper.PlaceholderResolver;
7652

@@ -138,65 +114,6 @@ public void library(String name, String version, Action<LibraryHandler> action)
138114
libraryHandler.links));
139115
}
140116

141-
public void effectiveBomArtifact() {
142-
Configuration effectiveBomConfiguration = this.project.getConfigurations().create("effectiveBom");
143-
RepositoryTransformersExtension repositoryTransformers = this.project.getExtensions()
144-
.getByType(RepositoryTransformersExtension.class);
145-
this.project.getTasks()
146-
.matching((task) -> task.getName().equals(DeployedPlugin.GENERATE_POM_TASK_NAME))
147-
.all((task) -> {
148-
File generatedBomDir = this.project.getLayout()
149-
.getBuildDirectory()
150-
.dir("generated/bom")
151-
.get()
152-
.getAsFile();
153-
TaskProvider<Sync> syncBom = this.project.getTasks().register("syncBom", Sync.class, (sync) -> {
154-
sync.dependsOn(task);
155-
sync.setDestinationDir(generatedBomDir);
156-
sync.from(((GenerateMavenPom) task).getDestination(), (pom) -> pom.rename((name) -> "pom.xml"));
157-
sync.from(this.project.getResources().getText().fromString(loadSettingsXml()), (settingsXml) -> {
158-
settingsXml.rename((name) -> "settings.xml");
159-
settingsXml.filter(repositoryTransformers.mavenSettings());
160-
});
161-
});
162-
File effectiveBom = this.project.getLayout()
163-
.getBuildDirectory()
164-
.file("generated/effective-bom/" + this.project.getName() + "-effective-bom.xml")
165-
.get()
166-
.getAsFile();
167-
TaskProvider<MavenExec> generateEffectiveBom = this.project.getTasks()
168-
.register("generateEffectiveBom", MavenExec.class, (maven) -> {
169-
maven.getProjectDir().set(generatedBomDir);
170-
maven.args("--settings", "settings.xml", "help:effective-pom", "-Doutput=" + effectiveBom);
171-
maven.dependsOn(syncBom);
172-
maven.getOutputs().file(effectiveBom);
173-
maven.doLast(new StripUnrepeatableOutputAction(effectiveBom));
174-
});
175-
this.project.getArtifacts()
176-
.add(effectiveBomConfiguration.getName(), effectiveBom,
177-
(artifact) -> artifact.builtBy(generateEffectiveBom));
178-
});
179-
}
180-
181-
private String loadSettingsXml() {
182-
try {
183-
return FileCopyUtils
184-
.copyToString(new InputStreamReader(
185-
getClass().getClassLoader().getResourceAsStream("effective-bom-settings.xml"),
186-
StandardCharsets.UTF_8))
187-
.replace("localRepositoryPath",
188-
this.project.getLayout()
189-
.getBuildDirectory()
190-
.dir("local-m2-repository")
191-
.get()
192-
.getAsFile()
193-
.getAbsolutePath());
194-
}
195-
catch (IOException ex) {
196-
throw new GradleException("Failed to prepare settings.xml", ex);
197-
}
198-
}
199-
200117
private String createDependencyNotation(String groupId, String artifactId, DependencyVersion version) {
201118
return groupId + ":" + artifactId + ":" + version;
202119
}
@@ -654,39 +571,4 @@ public List<String> getIssueLabels() {
654571

655572
}
656573

657-
private static final class StripUnrepeatableOutputAction implements Action<Task> {
658-
659-
private final File effectiveBom;
660-
661-
private StripUnrepeatableOutputAction(File xmlFile) {
662-
this.effectiveBom = xmlFile;
663-
}
664-
665-
@Override
666-
public void execute(Task task) {
667-
try {
668-
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(this.effectiveBom);
669-
XPath xpath = XPathFactory.newInstance().newXPath();
670-
NodeList comments = (NodeList) xpath.evaluate("//comment()", document, XPathConstants.NODESET);
671-
for (int i = 0; i < comments.getLength(); i++) {
672-
org.w3c.dom.Node comment = comments.item(i);
673-
comment.getParentNode().removeChild(comment);
674-
}
675-
org.w3c.dom.Node build = (org.w3c.dom.Node) xpath.evaluate("/project/build", document,
676-
XPathConstants.NODE);
677-
build.getParentNode().removeChild(build);
678-
org.w3c.dom.Node reporting = (org.w3c.dom.Node) xpath.evaluate("/project/reporting", document,
679-
XPathConstants.NODE);
680-
reporting.getParentNode().removeChild(reporting);
681-
TransformerFactory.newInstance()
682-
.newTransformer()
683-
.transform(new DOMSource(document), new StreamResult(this.effectiveBom));
684-
}
685-
catch (Exception ex) {
686-
throw new TaskExecutionException(task, ex);
687-
}
688-
}
689-
690-
}
691-
692574
}

buildSrc/src/main/resources/effective-bom-settings.xml

-14
This file was deleted.

spring-boot-project/spring-boot-dependencies/build.gradle

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ plugins {
66
description = "Spring Boot Dependencies"
77

88
bom {
9-
effectiveBomArtifact()
109
upgrade {
1110
policy = "any"
1211
gitHub {

0 commit comments

Comments
 (0)