5353import io .quarkus .bootstrap .workspace .DefaultWorkspaceModule ;
5454import io .quarkus .bootstrap .workspace .SourceDir ;
5555import io .quarkus .bootstrap .workspace .WorkspaceModule ;
56+ import io .quarkus .bootstrap .workspace .WorkspaceModuleId ;
5657import io .quarkus .fs .util .ZipUtils ;
5758import io .quarkus .gradle .dependency .ApplicationDeploymentClasspathBuilder ;
5859import io .quarkus .maven .dependency .ArtifactCoords ;
@@ -355,50 +356,31 @@ private void collectDependencies(org.gradle.api.artifacts.ResolvedDependency res
355356 PathCollection paths = null ;
356357 if (workspaceDiscovery && a .getId ().getComponentIdentifier () instanceof ProjectComponentIdentifier compId ) {
357358 Project projectDep = project .getRootProject ().findProject (compId .getProjectPath ());
358- SourceSetContainer sourceSets = projectDep == null ? null
359- : projectDep .getExtensions ().findByType (SourceSetContainer .class );
360359
361360 final String classifier = a .getClassifier ();
362361 if (classifier == null || classifier .isEmpty ()) {
363362 final IncludedBuild includedBuild = ToolingUtils .includedBuild (project .getRootProject (),
364363 compId .getBuild ().getName ());
365364 if (includedBuild != null ) {
366- final PathList .Builder pathBuilder = PathList .builder ();
367-
368365 if (includedBuild instanceof IncludedBuildInternal ib ) {
369366 projectDep = ToolingUtils .includedBuildProject (ib , compId .getProjectPath ());
370367 }
371368 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 );
375370 } else {
371+ final PathList .Builder pathBuilder = PathList .builder ();
376372 addSubstitutedProject (pathBuilder , includedBuild .getProjectDir ());
373+ paths = pathBuilder .build ();
377374 }
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 );
396377 }
378+ } else {
379+ initProjectModuleAndBuildPaths (projectDep , a , modelBuilder , depBuilder );
397380 }
398381 }
399382
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 );
402384 if (processQuarkusDependency (depBuilder , modelBuilder )) {
403385 if (isFlagOn (flags , COLLECT_TOP_EXTENSION_RUNTIME_NODES )) {
404386 depBuilder .setFlags (DependencyFlags .TOP_LEVEL_RUNTIME_EXTENSION_ARTIFACT );
@@ -410,6 +392,9 @@ private void collectDependencies(org.gradle.api.artifacts.ResolvedDependency res
410392 depBuilder .clearFlag (DependencyFlags .RELOADABLE );
411393 }
412394 modelBuilder .addDependency (depBuilder );
395+ if (projectModule == null && depBuilder .getWorkspaceModule () != null ) {
396+ projectModule = depBuilder .getWorkspaceModule ().mutable ();
397+ }
413398
414399 if (artifactFiles != null ) {
415400 artifactFiles .add (a .getFile ());
@@ -429,30 +414,23 @@ private static String toNonNullClassifier(String resolvedClassifier) {
429414 return resolvedClassifier == null ? ArtifactCoords .DEFAULT_CLASSIFIER : resolvedClassifier ;
430415 }
431416
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 ) {
435419
436420 appDep .setWorkspaceModule ().setReloadable ();
437421
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+ }
451432
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 ());
456434 }
457435
458436 private boolean processQuarkusDependency (ResolvedDependencyBuilder artifactBuilder , ApplicationModelBuilder modelBuilder ) {
0 commit comments