16
16
package org .springframework .sbm .parsers ;
17
17
18
18
import lombok .RequiredArgsConstructor ;
19
+ import org .apache .maven .artifact .Artifact ;
19
20
import org .apache .maven .artifact .DefaultArtifact ;
20
21
import org .apache .maven .artifact .handler .DefaultArtifactHandler ;
21
22
import org .apache .maven .model .Model ;
22
- import org .apache .maven .model .Plugin ;
23
23
import org .apache .maven .model .io .xpp3 .MavenXpp3Reader ;
24
24
import org .apache .maven .project .*;
25
25
import org .apache .maven .project .artifact .PluginArtifact ;
34
34
import java .util .List ;
35
35
import java .util .Set ;
36
36
import java .util .concurrent .atomic .AtomicReference ;
37
+ import java .util .stream .Collectors ;
37
38
38
39
39
40
/**
40
- * Creates instances of {@link MavenProject}.
41
- *
42
41
* @author Fabian Krüger
43
42
*/
44
43
@ Component
@@ -48,11 +47,11 @@ public class MavenProjectFactory {
48
47
private final MavenExecutor mavenExecutor ;
49
48
50
49
/**
51
- * Convenience method for {@link #createMavenProject (File)}.
50
+ * Convenience method for {@link #createMavenProjectFromMaven (File)}.
52
51
*/
53
- public MavenProject createMavenProject (Resource pom ) {
52
+ public MavenProject createMavenProjectFromMaven (Resource pom ) {
54
53
try {
55
- return createMavenProject (pom .getFile ());
54
+ return createMavenProjectFromMaven (pom .getFile ());
56
55
} catch (IOException e ) {
57
56
throw new RuntimeException (e );
58
57
}
@@ -64,7 +63,7 @@ public MavenProject createMavenProject(Resource pom) {
64
63
* and provides the {@link MavenProject} received from {@link org.apache.maven.execution.ExecutionEvent}.
65
64
* All classpath elements are resolved.
66
65
*/
67
- public MavenProject createMavenProject (File file ) {
66
+ public MavenProject createMavenProjectFromMaven (File file ) {
68
67
if (!file .isFile () || !"pom.xml" .equals (file .getName ())) {
69
68
throw new IllegalArgumentException ("Maven pom.xml file must be provided." );
70
69
}
@@ -81,43 +80,32 @@ public MavenProject createMavenProject(File file) {
81
80
/**
82
81
*
83
82
*/
84
- public MavenProject createMavenProject (String s ) {
83
+ public MavenProject createMavenProjectFromPomContent (String s ) {
85
84
try {
86
-
87
- DefaultProjectBuilder builder = new DefaultProjectBuilder ();
88
85
MavenXpp3Reader reader = new MavenXpp3Reader ();
89
86
Model model = reader .read (new ByteArrayInputStream (s .getBytes ()));
90
- ProjectBuildingRequest request = buildRequest ();
91
- // builder.build(model., request);
92
-
93
87
MavenProject mavenProject = new MavenProject (model );
94
88
mavenProject .setName (model .getName ());
95
89
mavenProject .setGroupId (model .getGroupId ());
96
90
mavenProject .setArtifactId (model .getArtifactId ());
97
91
mavenProject .setVersion (model .getVersion ());
98
92
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 );
111
105
}
112
106
return mavenProject ;
113
107
} catch (IOException | XmlPullParserException e ) {
114
108
throw new RuntimeException (e );
115
109
}
116
110
}
117
-
118
- private ProjectBuildingRequest buildRequest () {
119
- DefaultProjectBuildingRequest request = new DefaultProjectBuildingRequest ();
120
- request .setSystemProperties (System .getProperties ());
121
- return request ;
122
- }
123
111
}
0 commit comments