53
53
import io .quarkus .bootstrap .workspace .DefaultWorkspaceModule ;
54
54
import io .quarkus .bootstrap .workspace .SourceDir ;
55
55
import io .quarkus .bootstrap .workspace .WorkspaceModule ;
56
+ import io .quarkus .bootstrap .workspace .WorkspaceModuleId ;
56
57
import io .quarkus .fs .util .ZipUtils ;
57
58
import io .quarkus .gradle .dependency .ApplicationDeploymentClasspathBuilder ;
58
59
import io .quarkus .maven .dependency .ArtifactCoords ;
@@ -355,50 +356,31 @@ private void collectDependencies(org.gradle.api.artifacts.ResolvedDependency res
355
356
PathCollection paths = null ;
356
357
if (workspaceDiscovery && a .getId ().getComponentIdentifier () instanceof ProjectComponentIdentifier compId ) {
357
358
Project projectDep = project .getRootProject ().findProject (compId .getProjectPath ());
358
- SourceSetContainer sourceSets = projectDep == null ? null
359
- : projectDep .getExtensions ().findByType (SourceSetContainer .class );
360
359
361
360
final String classifier = a .getClassifier ();
362
361
if (classifier == null || classifier .isEmpty ()) {
363
362
final IncludedBuild includedBuild = ToolingUtils .includedBuild (project .getRootProject (),
364
363
compId .getBuild ().getName ());
365
364
if (includedBuild != null ) {
366
- final PathList .Builder pathBuilder = PathList .builder ();
367
-
368
365
if (includedBuild instanceof IncludedBuildInternal ib ) {
369
366
projectDep = ToolingUtils .includedBuildProject (ib , compId .getProjectPath ());
370
367
}
371
368
if (projectDep != null ) {
372
- projectModule = initProjectModuleAndBuildPaths (projectDep , a , modelBuilder , depBuilder ,
373
- pathBuilder , SourceSet .MAIN_SOURCE_SET_NAME , false );
374
- addSubstitutedProject (pathBuilder , projectDep .getProjectDir ());
369
+ initProjectModuleAndBuildPaths (projectDep , a , modelBuilder , depBuilder );
375
370
} else {
371
+ final PathList .Builder pathBuilder = PathList .builder ();
376
372
addSubstitutedProject (pathBuilder , includedBuild .getProjectDir ());
373
+ paths = pathBuilder .build ();
377
374
}
378
- paths = pathBuilder .build ();
379
- } else if (sourceSets != null ) {
380
- final PathList .Builder pathBuilder = PathList .builder ();
381
- projectModule = initProjectModuleAndBuildPaths (projectDep , a , modelBuilder , depBuilder ,
382
- pathBuilder , SourceSet .MAIN_SOURCE_SET_NAME , false );
383
- paths = pathBuilder .build ();
384
- }
385
- } else if (sourceSets != null ) {
386
- if (SourceSet .TEST_SOURCE_SET_NAME .equals (classifier )) {
387
- final PathList .Builder pathBuilder = PathList .builder ();
388
- projectModule = initProjectModuleAndBuildPaths (projectDep , a , modelBuilder , depBuilder ,
389
- pathBuilder , SourceSet .TEST_SOURCE_SET_NAME , true );
390
- paths = pathBuilder .build ();
391
- } else if ("test-fixtures" .equals (classifier )) {
392
- final PathList .Builder pathBuilder = PathList .builder ();
393
- projectModule = initProjectModuleAndBuildPaths (projectDep , a , modelBuilder , depBuilder ,
394
- pathBuilder , "testFixtures" , true );
395
- paths = pathBuilder .build ();
375
+ } else {
376
+ initProjectModuleAndBuildPaths (projectDep , a , modelBuilder , depBuilder );
396
377
}
378
+ } else {
379
+ initProjectModuleAndBuildPaths (projectDep , a , modelBuilder , depBuilder );
397
380
}
398
381
}
399
382
400
- depBuilder .setResolvedPaths (paths == null ? PathList .of (a .getFile ().toPath ()) : paths )
401
- .setWorkspaceModule (projectModule );
383
+ depBuilder .setResolvedPaths (paths == null ? PathList .of (a .getFile ().toPath ()) : paths );
402
384
if (processQuarkusDependency (depBuilder , modelBuilder )) {
403
385
if (isFlagOn (flags , COLLECT_TOP_EXTENSION_RUNTIME_NODES )) {
404
386
depBuilder .setFlags (DependencyFlags .TOP_LEVEL_RUNTIME_EXTENSION_ARTIFACT );
@@ -410,6 +392,9 @@ private void collectDependencies(org.gradle.api.artifacts.ResolvedDependency res
410
392
depBuilder .clearFlag (DependencyFlags .RELOADABLE );
411
393
}
412
394
modelBuilder .addDependency (depBuilder );
395
+ if (projectModule == null && depBuilder .getWorkspaceModule () != null ) {
396
+ projectModule = depBuilder .getWorkspaceModule ().mutable ();
397
+ }
413
398
414
399
if (artifactFiles != null ) {
415
400
artifactFiles .add (a .getFile ());
@@ -429,30 +414,23 @@ private static String toNonNullClassifier(String resolvedClassifier) {
429
414
return resolvedClassifier == null ? ArtifactCoords .DEFAULT_CLASSIFIER : resolvedClassifier ;
430
415
}
431
416
432
- private WorkspaceModule .Mutable initProjectModuleAndBuildPaths (final Project project ,
433
- ResolvedArtifact resolvedArtifact , ApplicationModelBuilder appModel , final ResolvedDependencyBuilder appDep ,
434
- PathList .Builder buildPaths , String sourceName , boolean test ) {
417
+ private void initProjectModuleAndBuildPaths (final Project project ,
418
+ ResolvedArtifact resolvedArtifact , ApplicationModelBuilder appModel , final ResolvedDependencyBuilder appDep ) {
435
419
436
420
appDep .setWorkspaceModule ().setReloadable ();
437
421
438
- final WorkspaceModule .Mutable projectModule = appModel .getOrCreateProjectModule (
439
- new GAV (resolvedArtifact .getModuleVersion ().getId ().getGroup (), resolvedArtifact .getName (),
440
- resolvedArtifact .getModuleVersion ().getId ().getVersion ()),
441
- project .getProjectDir (),
442
- project .getBuildDir ())
443
- .setBuildFile (project .getBuildFile ().toPath ());
444
-
445
- final String classifier = toNonNullClassifier (resolvedArtifact .getClassifier ());
446
- SourceSetContainer sourceSets = project .getExtensions ().getByType (SourceSetContainer .class );
447
- initProjectModule (project , projectModule , sourceSets .findByName (sourceName ), classifier );
448
-
449
- collectDestinationDirs (projectModule .getSources (classifier ).getSourceDirs (), buildPaths );
450
- collectDestinationDirs (projectModule .getSources (classifier ).getResourceDirs (), buildPaths );
422
+ if (appDep .getWorkspaceModule () == null ) {
423
+ final WorkspaceModule .Mutable projectModule = appModel .getOrCreateProjectModule (
424
+ WorkspaceModuleId .of (resolvedArtifact .getModuleVersion ().getId ().getGroup (), resolvedArtifact .getName (),
425
+ resolvedArtifact .getModuleVersion ().getId ().getVersion ()),
426
+ project .getProjectDir (),
427
+ project .getLayout ().getBuildDirectory ().get ().getAsFile ())
428
+ .setBuildFile (project .getBuildFile ().toPath ());
429
+ ProjectDescriptorBuilder .initSourceDirs (project , projectModule );
430
+ appDep .setWorkspaceModule (projectModule );
431
+ }
451
432
452
- appModel .addReloadableWorkspaceModule (
453
- ArtifactKey .of (resolvedArtifact .getModuleVersion ().getId ().getGroup (), resolvedArtifact .getName (), classifier ,
454
- ArtifactCoords .TYPE_JAR ));
455
- return projectModule ;
433
+ appModel .addReloadableWorkspaceModule (appDep .getKey ());
456
434
}
457
435
458
436
private boolean processQuarkusDependency (ResolvedDependencyBuilder artifactBuilder , ApplicationModelBuilder modelBuilder ) {
0 commit comments