Skip to content

Commit 2bd0593

Browse files
committed
Refactor and cleanup MavenProjectFactory
1 parent ae02a68 commit 2bd0593

File tree

3 files changed

+21
-50
lines changed

3 files changed

+21
-50
lines changed

sbm-support-rewrite/src/main/java/org/springframework/sbm/parsers/MavenProjectFactory.java

Lines changed: 19 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
package org.springframework.sbm.parsers;
1717

1818
import lombok.RequiredArgsConstructor;
19+
import org.apache.maven.artifact.Artifact;
1920
import org.apache.maven.artifact.DefaultArtifact;
2021
import org.apache.maven.artifact.handler.DefaultArtifactHandler;
2122
import org.apache.maven.model.Model;
22-
import org.apache.maven.model.Plugin;
2323
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
2424
import org.apache.maven.project.*;
2525
import org.apache.maven.project.artifact.PluginArtifact;
@@ -34,11 +34,10 @@
3434
import java.util.List;
3535
import java.util.Set;
3636
import java.util.concurrent.atomic.AtomicReference;
37+
import java.util.stream.Collectors;
3738

3839

3940
/**
40-
* Creates instances of {@link MavenProject}.
41-
*
4241
* @author Fabian Krüger
4342
*/
4443
@Component
@@ -48,11 +47,11 @@ public class MavenProjectFactory {
4847
private final MavenExecutor mavenExecutor;
4948

5049
/**
51-
* Convenience method for {@link #createMavenProject(File)}.
50+
* Convenience method for {@link #createMavenProjectFromMaven(File)}.
5251
*/
53-
public MavenProject createMavenProject(Resource pom) {
52+
public MavenProject createMavenProjectFromMaven(Resource pom) {
5453
try {
55-
return createMavenProject(pom.getFile());
54+
return createMavenProjectFromMaven(pom.getFile());
5655
} catch (IOException e) {
5756
throw new RuntimeException(e);
5857
}
@@ -64,7 +63,7 @@ public MavenProject createMavenProject(Resource pom) {
6463
* and provides the {@link MavenProject} received from {@link org.apache.maven.execution.ExecutionEvent}.
6564
* All classpath elements are resolved.
6665
*/
67-
public MavenProject createMavenProject(File file) {
66+
public MavenProject createMavenProjectFromMaven(File file) {
6867
if (!file.isFile() || !"pom.xml".equals(file.getName())) {
6968
throw new IllegalArgumentException("Maven pom.xml file must be provided.");
7069
}
@@ -81,43 +80,32 @@ public MavenProject createMavenProject(File file) {
8180
/**
8281
*
8382
*/
84-
public MavenProject createMavenProject(String s) {
83+
public MavenProject createMavenProjectFromPomContent(String s) {
8584
try {
86-
87-
DefaultProjectBuilder builder = new DefaultProjectBuilder();
8885
MavenXpp3Reader reader = new MavenXpp3Reader();
8986
Model model = reader.read(new ByteArrayInputStream(s.getBytes()));
90-
ProjectBuildingRequest request = buildRequest();
91-
// builder.build(model., request);
92-
9387
MavenProject mavenProject = new MavenProject(model);
9488
mavenProject.setName(model.getName());
9589
mavenProject.setGroupId(model.getGroupId());
9690
mavenProject.setArtifactId(model.getArtifactId());
9791
mavenProject.setVersion(model.getVersion());
9892
if (model.getBuild() != null) {
99-
Plugin plugin = model.getBuild().getPlugins().get(0);
100-
101-
PluginArtifact pluginArtifact = new PluginArtifact(plugin, new DefaultArtifact(
102-
plugin.getGroupId(),
103-
plugin.getArtifactId(),
104-
plugin.getVersion(),
105-
"",
106-
"",
107-
"",
108-
new DefaultArtifactHandler()
109-
));
110-
mavenProject.setPluginArtifacts(Set.of(pluginArtifact));
93+
Set<Artifact> pluginArtifacts = model.getBuild().getPlugins().stream()
94+
.map(plugin -> new PluginArtifact(plugin, new DefaultArtifact(
95+
plugin.getGroupId(),
96+
plugin.getArtifactId(),
97+
plugin.getVersion(),
98+
"",
99+
"",
100+
"",
101+
new DefaultArtifactHandler()
102+
)))
103+
.collect(Collectors.toSet());
104+
mavenProject.setPluginArtifacts(pluginArtifacts);
111105
}
112106
return mavenProject;
113107
} catch (IOException | XmlPullParserException e) {
114108
throw new RuntimeException(e);
115109
}
116110
}
117-
118-
private ProjectBuildingRequest buildRequest() {
119-
DefaultProjectBuildingRequest request = new DefaultProjectBuildingRequest();
120-
request.setSystemProperties(System.getProperties());
121-
return request;
122-
}
123111
}

sbm-support-rewrite/src/main/java/org/springframework/sbm/parsers/ProvenanceMarkerFactory.java

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,40 +16,23 @@
1616
package org.springframework.sbm.parsers;
1717

1818
import lombok.RequiredArgsConstructor;
19-
import org.apache.maven.artifact.Artifact;
20-
import org.apache.maven.artifact.DefaultArtifact;
21-
import org.apache.maven.artifact.handler.ArtifactHandler;
22-
import org.apache.maven.artifact.metadata.ArtifactMetadata;
23-
import org.apache.maven.artifact.repository.ArtifactRepository;
24-
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
25-
import org.apache.maven.artifact.versioning.ArtifactVersion;
26-
import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
27-
import org.apache.maven.artifact.versioning.VersionRange;
2819
import org.apache.maven.execution.MavenSession;
29-
import org.apache.maven.model.Model;
30-
import org.apache.maven.model.Plugin;
31-
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
3220
import org.apache.maven.plugin.logging.Log;
3321
import org.apache.maven.plugin.logging.SystemStreamLog;
3422
import org.apache.maven.project.MavenProject;
35-
import org.apache.maven.project.artifact.PluginArtifact;
3623
import org.apache.maven.rtinfo.RuntimeInformation;
3724
import org.apache.maven.rtinfo.internal.DefaultRuntimeInformation;
3825
import org.apache.maven.settings.crypto.SettingsDecrypter;
39-
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
4026
import org.jetbrains.annotations.NotNull;
4127
import org.openrewrite.marker.Marker;
4228
import org.openrewrite.maven.MavenMojoProjectParser;
4329
import org.springframework.core.io.Resource;
4430
import org.springframework.sbm.utils.ResourceUtil;
4531
import org.springframework.stereotype.Component;
4632

47-
import java.io.File;
48-
import java.io.IOException;
4933
import java.lang.reflect.InvocationTargetException;
5034
import java.nio.file.Path;
5135
import java.util.*;
52-
import java.util.stream.Stream;
5336

5437
/**
5538
* @author Fabian Krüger
@@ -91,7 +74,7 @@ private MavenMojoProjectParser getMavenMojoProjectParser(Path baseDir, RuntimeIn
9174
}
9275

9376
private MavenProject createMavenProject(Resource pom) {
94-
return mavenProjectFactory.createMavenProject(pom);
77+
return mavenProjectFactory.createMavenProjectFromMaven(pom);
9578
}
9679

9780
private Log getLogger(ParserSettings parserSettings) {

sbm-support-rewrite/src/main/java/org/springframework/sbm/recipes/RewriteRecipeDiscovery.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public List<Recipe> discoverFilteredRecipes(Xml.Document rootPom, List<String> a
124124

125125
List<Recipe> recipes = new ArrayList<>();
126126

127-
MavenProject mavenProject = mavenProjectFactory.createMavenProject(rootPom.printAll());
127+
MavenProject mavenProject = mavenProjectFactory.createMavenProjectFromPomContent(rootPom.printAll());
128128
AbstractRewriteMojoHelper helper = new AbstractRewriteMojoHelper(mavenProject);
129129

130130
Environment env =helper.environment(getClass().getClassLoader());

0 commit comments

Comments
 (0)