7171import io .quarkus .bootstrap .workspace .SourceDir ;
7272import io .quarkus .bootstrap .workspace .WorkspaceModule ;
7373import io .quarkus .fs .util .ZipUtils ;
74+ import io .quarkus .gradle .dependency .ConditionalDependencyResolver ;
75+ import io .quarkus .gradle .dependency .DeploymentConfigurationResolver ;
7476import io .quarkus .gradle .tooling .ToolingUtils ;
7577import io .quarkus .gradle .workspace .descriptors .DefaultProjectDescriptor ;
7678import io .quarkus .gradle .workspace .descriptors .ProjectDescriptor .TaskType ;
8284import io .quarkus .maven .dependency .GACTV ;
8385import io .quarkus .maven .dependency .GAV ;
8486import io .quarkus .maven .dependency .ResolvedDependencyBuilder ;
85- import io .quarkus .paths .PathCollection ;
8687import io .quarkus .paths .PathList ;
8788import io .quarkus .runtime .LaunchMode ;
8889import io .quarkus .runtime .util .HashUtil ;
@@ -149,19 +150,29 @@ public QuarkusApplicationModelTask() {
149150 private void collectPlatforms (ResolvedDependencyResult resolvedDependency ,
150151 Map <ComponentIdentifier , List <QuarkusResolvedArtifact >> artifactsByCapability ,
151152 PlatformImportsImpl platformImports ) {
152- List <QuarkusResolvedArtifact > artifacts = findArtifacts (resolvedDependency , artifactsByCapability );
153- ModuleVersionIdentifier moduleVersionIdentifier = resolvedDependency .getSelected ().getModuleVersion ();
154- for (QuarkusResolvedArtifact artifact : artifacts ) {
155- if (artifact != null && artifact .file .getName ().endsWith (".properties" )) {
156- try {
157- platformImports .addPlatformProperties (moduleVersionIdentifier .getGroup (), moduleVersionIdentifier .getName (),
158- null , "properties" , moduleVersionIdentifier .getVersion (), artifact .file .toPath ());
159- } catch (AppModelResolverException e ) {
160- throw new GradleException ("Failed to import platform properties " + artifact .file , e );
153+ final ModuleVersionIdentifier moduleVersionIdentifier = resolvedDependency .getSelected ().getModuleVersion ();
154+ if (moduleVersionIdentifier == null ) {
155+ return ;
156+ }
157+ final String moduleName = moduleVersionIdentifier .getName ();
158+ if (moduleName .endsWith (BootstrapConstants .PLATFORM_DESCRIPTOR_ARTIFACT_ID_SUFFIX )) {
159+ for (QuarkusResolvedArtifact artifact : findArtifacts (resolvedDependency , artifactsByCapability )) {
160+ if (artifact != null && artifact .file .getName ().endsWith (".json" )) {
161+ platformImports .addPlatformDescriptor (moduleVersionIdentifier .getGroup (), moduleVersionIdentifier .getName (),
162+ moduleVersionIdentifier .getVersion (), "json" , moduleVersionIdentifier .getVersion ());
163+ }
164+ }
165+ } else if (moduleName .endsWith (BootstrapConstants .PLATFORM_PROPERTIES_ARTIFACT_ID_SUFFIX )) {
166+ for (QuarkusResolvedArtifact artifact : findArtifacts (resolvedDependency , artifactsByCapability )) {
167+ if (artifact != null && artifact .file .getName ().endsWith (".properties" )) {
168+ try {
169+ platformImports .addPlatformProperties (moduleVersionIdentifier .getGroup (),
170+ moduleVersionIdentifier .getName (),
171+ null , "properties" , moduleVersionIdentifier .getVersion (), artifact .file .toPath ());
172+ } catch (AppModelResolverException e ) {
173+ throw new GradleException ("Failed to import platform properties " + artifact .file , e );
174+ }
161175 }
162- } else if (artifact != null && artifact .file .getName ().endsWith (".json" )) {
163- platformImports .addPlatformDescriptor (moduleVersionIdentifier .getGroup (), moduleVersionIdentifier .getName (),
164- moduleVersionIdentifier .getVersion (), "json" , moduleVersionIdentifier .getVersion ());
165176 }
166177 }
167178 }
@@ -267,9 +278,9 @@ private static void collectDependencies(QuarkusResolvedClasspath classpath, Appl
267278
268279 Set <File > alreadyCollectedFiles = new HashSet <>(artifacts .size ());
269280 classpath .getRoot ().get ().getDependencies ().forEach (d -> {
270- if (d instanceof ResolvedDependencyResult ) {
281+ if (d instanceof ResolvedDependencyResult resolvedDep ) {
271282 byte flags = (byte ) (COLLECT_TOP_EXTENSION_RUNTIME_NODES | COLLECT_DIRECT_DEPS | COLLECT_RELOADABLE_MODULES );
272- collectDependencies (( ResolvedDependencyResult ) d , modelBuilder , artifacts , wsModule , alreadyCollectedFiles ,
283+ collectDependencies (resolvedDep , modelBuilder , artifacts , wsModule , alreadyCollectedFiles ,
273284 new HashSet <>(), flags );
274285 }
275286 });
@@ -328,11 +339,11 @@ private static void collectDependencies(
328339 if (artifacts .isEmpty ()) {
329340 byte finalFlags = flags ;
330341 resolvedDependency .getSelected ().getDependencies ().forEach ((Consumer <DependencyResult >) dependencyResult -> {
331- if (dependencyResult instanceof ResolvedDependencyResult ) {
342+ if (dependencyResult instanceof ResolvedDependencyResult resolvedDep ) {
332343 ModuleVersionIdentifier dependencyId = Preconditions
333- .checkNotNull ((( ResolvedDependencyResult ) dependencyResult ) .getSelected ().getModuleVersion ());
334- if (!processedModules .contains (new GACT (dependencyId .getGroup (), dependencyId .getName ()))) {
335- collectDependencies (( ResolvedDependencyResult ) dependencyResult , modelBuilder , resolvedArtifacts ,
344+ .checkNotNull (resolvedDep .getSelected ().getModuleVersion ());
345+ if (!processedModules .contains (ArtifactKey . ga (dependencyId .getGroup (), dependencyId .getName ()))) {
346+ collectDependencies (resolvedDep , modelBuilder , resolvedArtifacts ,
336347 projectModule ,
337348 collectedArtifactFiles ,
338349 processedModules , finalFlags );
@@ -347,7 +358,7 @@ private static void collectDependencies(
347358
348359 for (QuarkusResolvedArtifact artifact : artifacts ) {
349360 String classifier = resolveClassifier (moduleVersionIdentifier , artifact .file );
350- ArtifactKey artifactKey = new GACT (
361+ ArtifactKey artifactKey = ArtifactKey . of (
351362 moduleVersionIdentifier .getGroup (),
352363 moduleVersionIdentifier .getName (),
353364 classifier ,
@@ -369,9 +380,7 @@ private static void collectDependencies(
369380 parentModule .addDependency (new ArtifactDependency (depCoords ));
370381 }
371382
372- PathCollection paths = null ;
373-
374- depBuilder .setResolvedPaths (paths == null ? PathList .of (artifact .file .toPath ()) : paths )
383+ depBuilder .setResolvedPaths (PathList .of (artifact .file .toPath ()))
375384 .setWorkspaceModule (projectModule );
376385 if (Utils .processQuarkusDependency (depBuilder , modelBuilder )) {
377386 if (isFlagOn (flags , COLLECT_TOP_EXTENSION_RUNTIME_NODES )) {
@@ -432,7 +441,7 @@ private static void collectExtensionDependencies(
432441 .checkNotNull (resolvedDependency .getSelected ().getModuleVersion ());
433442
434443 String classifier = resolveClassifier (moduleVersionIdentifier , artifact .file );
435- ArtifactKey artifactKey = new GACT (moduleVersionIdentifier .getGroup (), moduleVersionIdentifier .getName (),
444+ ArtifactKey artifactKey = ArtifactKey . of (moduleVersionIdentifier .getGroup (), moduleVersionIdentifier .getName (),
436445 classifier ,
437446 artifact .type );
438447 if (!alreadyVisited .add (artifactKey )) {
@@ -532,7 +541,7 @@ private QuarkusResolvedArtifact toResolvedArtifact(ResolvedArtifactResult result
532541 return new QuarkusResolvedArtifact (result .getId (), file , type );
533542 }
534543
535- public void configureFrom (Configuration configuration ) {
544+ public void configureFrom (Configuration configuration , LaunchMode mode , String appName ) {
536545 ResolvableDependencies resolvableDependencies = configuration .getIncoming ();
537546 getRoot ().set (resolvableDependencies .getResolutionResult ().getRootComponent ());
538547 getResolvedArtifactCollection ().set (resolvableDependencies .getArtifacts ());
@@ -541,8 +550,12 @@ public void configureFrom(Configuration configuration) {
541550 // Project descriptors make sense only for projects
542551 viewConfiguration .withVariantReselection ();
543552 viewConfiguration .componentFilter (component -> component instanceof ProjectComponentIdentifier );
544- viewConfiguration .attributes (attributes -> attributes .attribute (ArtifactTypeDefinition .ARTIFACT_TYPE_ATTRIBUTE ,
545- QUARKUS_PROJECT_DESCRIPTOR_ARTIFACT_TYPE ));
553+ viewConfiguration .attributes (attributes -> {
554+ attributes .attribute (ArtifactTypeDefinition .ARTIFACT_TYPE_ATTRIBUTE ,
555+ QUARKUS_PROJECT_DESCRIPTOR_ARTIFACT_TYPE );
556+ DeploymentConfigurationResolver .setDeploymentAttributes (attributes , appName , mode );
557+ ConditionalDependencyResolver .setConditionalAttributes (attributes , appName , mode );
558+ });
546559 }).getFiles ());
547560 }
548561 }
0 commit comments