1
1
package io .quarkus .maven ;
2
2
3
- import static io .quarkus .devtools .project .CodestartResourceLoadersBuilder .getCodestartResourceLoaders ;
4
-
5
3
import java .io .BufferedWriter ;
6
4
import java .io .IOException ;
7
5
import java .io .StringWriter ;
8
6
import java .nio .file .Path ;
9
7
import java .nio .file .Paths ;
10
8
import java .util .ArrayList ;
11
- import java .util .Collections ;
12
9
import java .util .List ;
13
10
14
11
import org .apache .maven .execution .MavenSession ;
18
15
import org .apache .maven .plugins .annotations .Component ;
19
16
import org .apache .maven .plugins .annotations .Parameter ;
20
17
import org .apache .maven .project .MavenProject ;
21
- import org .eclipse .aether .RepositorySystem ;
22
18
import org .eclipse .aether .RepositorySystemSession ;
23
19
import org .eclipse .aether .artifact .Artifact ;
24
20
import org .eclipse .aether .artifact .DefaultArtifact ;
25
- import org .eclipse .aether .impl .RemoteRepositoryManager ;
26
21
import org .eclipse .aether .repository .RemoteRepository ;
27
22
28
23
import io .quarkus .bootstrap .BootstrapConstants ;
29
- import io .quarkus .bootstrap .resolver .maven .BootstrapMavenException ;
24
+ import io .quarkus .bootstrap .resolver .maven .BootstrapMavenContext ;
30
25
import io .quarkus .bootstrap .resolver .maven .MavenArtifactResolver ;
31
26
import io .quarkus .devtools .messagewriter .MessageWriter ;
32
27
import io .quarkus .devtools .project .BuildTool ;
28
+ import io .quarkus .devtools .project .CodestartResourceLoadersBuilder ;
33
29
import io .quarkus .devtools .project .JavaVersion ;
34
30
import io .quarkus .devtools .project .QuarkusProject ;
35
31
import io .quarkus .devtools .project .QuarkusProjectHelper ;
36
32
import io .quarkus .devtools .project .buildfile .MavenProjectBuildFile ;
33
+ import io .quarkus .maven .components .QuarkusWorkspaceProvider ;
37
34
import io .quarkus .maven .dependency .ArtifactCoords ;
38
- import io .quarkus .maven .utilities .MojoUtils ;
39
35
import io .quarkus .platform .descriptor .loader .json .ResourceLoader ;
40
36
import io .quarkus .platform .tools .ToolsConstants ;
41
37
import io .quarkus .platform .tools .ToolsUtils ;
@@ -56,9 +52,6 @@ public abstract class QuarkusProjectMojoBase extends AbstractMojo {
56
52
@ Parameter (defaultValue = "${session}" , readonly = true )
57
53
MavenSession session ;
58
54
59
- @ Component
60
- protected RepositorySystem repoSystem ;
61
-
62
55
@ Parameter (defaultValue = "${repositorySystemSession}" , readonly = true )
63
56
protected RepositorySystemSession repoSession ;
64
57
@@ -75,7 +68,7 @@ public abstract class QuarkusProjectMojoBase extends AbstractMojo {
75
68
private String bomVersion ;
76
69
77
70
@ Component
78
- RemoteRepositoryManager remoteRepositoryManager ;
71
+ QuarkusWorkspaceProvider workspaceProvider ;
79
72
80
73
private List <ArtifactCoords > importedPlatforms ;
81
74
@@ -108,10 +101,14 @@ public void execute() throws MojoExecutionException {
108
101
throw new MojoExecutionException ("Failed to initialize Quarkus Maven extension manager" , e );
109
102
}
110
103
} else {
111
- final List <ResourceLoader > codestartsResourceLoader = getCodestartResourceLoaders (resolveExtensionCatalog ());
112
- quarkusProject = QuarkusProject .of (baseDir (), resolveExtensionCatalog (),
113
- codestartsResourceLoader ,
114
- log , buildTool , JavaVersion .NA );
104
+ final ExtensionCatalog extensionCatalog = resolveExtensionCatalog ();
105
+ final List <ResourceLoader > codestartsResourceLoader = CodestartResourceLoadersBuilder
106
+ .codestartLoadersBuilder ()
107
+ .artifactResolver (artifactResolver ())
108
+ .catalog (extensionCatalog )
109
+ .build ();
110
+ quarkusProject = QuarkusProject .of (baseDir (), extensionCatalog ,
111
+ codestartsResourceLoader , log , buildTool , JavaVersion .NA );
115
112
}
116
113
117
114
doExecute (quarkusProject , getMessageWriter ());
@@ -155,7 +152,7 @@ protected List<ArtifactCoords> getImportedPlatforms() throws MojoExecutionExcept
155
152
if (importedPlatforms == null ) {
156
153
if (project .getFile () == null ) {
157
154
if (bomGroupId == null && bomArtifactId == null && bomVersion == null ) {
158
- return Collections . emptyList ();
155
+ return List . of ();
159
156
}
160
157
final ExtensionCatalogResolver catalogResolver = getExtensionCatalogResolver ();
161
158
if (!catalogResolver .hasRegistries ()) {
@@ -172,39 +169,35 @@ protected List<ArtifactCoords> getImportedPlatforms() throws MojoExecutionExcept
172
169
} catch (RegistryResolutionException e ) {
173
170
throw new MojoExecutionException ("Failed to resolve the catalog of Quarkus platforms" , e );
174
171
}
175
- return importedPlatforms = Collections . singletonList (platformBom );
172
+ return importedPlatforms = List . of (platformBom );
176
173
}
177
174
importedPlatforms = collectImportedPlatforms ();
178
175
}
179
176
return importedPlatforms ;
180
177
}
181
178
182
179
protected MavenArtifactResolver catalogArtifactResolver () throws MojoExecutionException {
183
- return artifactResolver ;
180
+ return artifactResolver () ;
184
181
}
185
182
186
183
protected MavenArtifactResolver artifactResolver () throws MojoExecutionException {
187
184
return artifactResolver == null ? artifactResolver = initArtifactResolver () : artifactResolver ;
188
185
}
189
186
190
187
protected MavenArtifactResolver initArtifactResolver () throws MojoExecutionException {
191
- try {
192
- return MavenArtifactResolver .builder ()
193
- .setRepositorySystem (repoSystem )
194
- .setRepositorySystemSession (
195
- getLog ().isDebugEnabled () ? repoSession : MojoUtils .muteTransferListener (repoSession ))
196
- .setRemoteRepositories (repos )
197
- .setRemoteRepositoryManager (remoteRepositoryManager )
198
- .build ();
199
- } catch (BootstrapMavenException e ) {
200
- throw new MojoExecutionException ("Failed to initialize Maven artifact resolver" , e );
201
- }
188
+ var config = BootstrapMavenContext .config ()
189
+ .setArtifactTransferLogging (getLog ().isDebugEnabled ())
190
+ .setRemoteRepositoryManager (workspaceProvider .getRemoteRepositoryManager ())
191
+ .setRepositorySystem (workspaceProvider .getRepositorySystem ())
192
+ .setRemoteRepositories (repos )
193
+ .setWorkspaceDiscovery (false )
194
+ .setRepositorySystemSession (repoSession );
195
+ return workspaceProvider .createArtifactResolver (config );
202
196
}
203
197
204
- private List <ArtifactCoords > collectImportedPlatforms ()
205
- throws MojoExecutionException {
198
+ private List <ArtifactCoords > collectImportedPlatforms () {
206
199
final List <ArtifactCoords > descriptors = new ArrayList <>(4 );
207
- final List <Dependency > constraints = project .getDependencyManagement () == null ? Collections . emptyList ()
200
+ final List <Dependency > constraints = project .getDependencyManagement () == null ? List . of ()
208
201
: project .getDependencyManagement ().getDependencies ();
209
202
if (!constraints .isEmpty ()) {
210
203
final MessageWriter log = getMessageWriter ();
@@ -222,17 +215,6 @@ private List<ArtifactCoords> collectImportedPlatforms()
222
215
return descriptors ;
223
216
}
224
217
225
- private String getQuarkusCoreVersion () {
226
- final List <Dependency > constraints = project .getDependencyManagement () == null ? Collections .emptyList ()
227
- : project .getDependencyManagement ().getDependencies ();
228
- for (Dependency d : constraints ) {
229
- if (d .getArtifactId ().endsWith ("quarkus-core" ) && d .getGroupId ().equals ("io.quarkus" )) {
230
- return d .getVersion ();
231
- }
232
- }
233
- return null ;
234
- }
235
-
236
218
protected void validateParameters () throws MojoExecutionException {
237
219
}
238
220
@@ -241,8 +223,8 @@ protected abstract void doExecute(QuarkusProject quarkusProject, MessageWriter l
241
223
242
224
private Artifact projectArtifact () {
243
225
return projectArtifact == null
244
- ? projectArtifact = new DefaultArtifact (project .getGroupId (), project .getArtifactId (), null , "pom" ,
245
- project .getVersion ())
226
+ ? projectArtifact = new DefaultArtifact (project .getGroupId (), project .getArtifactId (), null ,
227
+ ArtifactCoords . TYPE_POM , project .getVersion ())
246
228
: projectArtifact ;
247
229
}
248
230
0 commit comments