IDEA-150835: Provide an API which tells which production module corresponding to...
[idea/community.git] / plugins / gradle / src / org / jetbrains / plugins / gradle / service / project / BaseGradleProjectResolverExtension.java
index 09ce935ed1018c7d6cab69448b09b69755a80027..2a7f6b2eb6c2575a44ed662fdff859250913c316 100644 (file)
@@ -178,7 +178,7 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
       for (ExternalSourceSet sourceSet : externalProject.getSourceSets().values()) {
         final String moduleId = getModuleId(externalProject, sourceSet);
         final String moduleExternalName = gradleModule.getName() + ":" + sourceSet.getName();
-        final String moduleInternalName = gradleModule.getName() + "_" + sourceSet.getName();
+        final String moduleInternalName = getInternalModuleName(gradleModule, sourceSet.getName());
 
         GradleSourceSetData sourceSetData = new GradleSourceSetData(
           moduleId, moduleExternalName, moduleInternalName, mainModuleFileDirectoryPath, mainModuleConfigPath);
@@ -204,10 +204,14 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
             }
             artifacts.addAll(archivesArtifacts);
           }
-        } else if("test".equals(sourceSet.getName())) {
-          final Set<File> testsArtifacts = externalProject.getArtifactsByConfiguration().get("tests");
-          if (testsArtifacts != null) {
-            artifacts.addAll(testsArtifacts);
+        }
+        else {
+          sourceSetData.setProductionModuleId(getInternalModuleName(gradleModule, "main"));
+          if ("test".equals(sourceSet.getName())) {
+            final Set<File> testsArtifacts = externalProject.getArtifactsByConfiguration().get("tests");
+            if (testsArtifacts != null) {
+              artifacts.addAll(testsArtifacts);
+            }
           }
         }
         sourceSetData.setArtifacts(ContainerUtil.newArrayList(artifacts));
@@ -229,6 +233,11 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
     return mainModuleNode;
   }
 
+  @NotNull
+  public String getInternalModuleName(@NotNull IdeaModule gradleModule, @NotNull String sourceSetName) {
+    return gradleModule.getName() + "_" + sourceSetName;
+  }
+
   @Override
   public void populateModuleExtraModels(@NotNull IdeaModule gradleModule, @NotNull DataNode<ModuleData> ideModule) {
     final BuildScriptClasspathModel buildScriptClasspathModel = resolverCtx.getExtraProject(gradleModule, BuildScriptClasspathModel.class);