[Gradle|Sync] cleanup: moved isBuildSrcProject flag into the Gradle DefaultProjectResolverContext

GitOrigin-RevId: 9fb9df00bd7519887f50e873c7c9d75c37937fda
This commit is contained in:
Sergei Vorobyov
2024-08-02 22:50:06 +00:00
committed by intellij-monorepo-bot
parent 78bb4fa1e8
commit c64fa428e7
4 changed files with 35 additions and 28 deletions
@@ -52,6 +52,7 @@ public class DefaultProjectResolverContext extends UserDataHolderBase implements
@Nullable private GradleIdeaModelHolder myModels;
private File myGradleUserHome;
@Nullable private String myProjectGradleVersion;
private final boolean myBuildSrcProject;
@Nullable private String myBuildSrcGroup;
@Nullable private BuildEnvironment myBuildEnvironment;
@Nullable private final GradlePartialResolverPolicy myPolicy;
@@ -69,7 +70,8 @@ public class DefaultProjectResolverContext extends UserDataHolderBase implements
@Nullable GradleExecutionSettings settings,
@NotNull ExternalSystemTaskNotificationListener listener,
@Nullable GradlePartialResolverPolicy resolverPolicy,
@NotNull GradleProjectResolverIndicator projectResolverIndicator
@NotNull GradleProjectResolverIndicator projectResolverIndicator,
boolean isBuildSrcProject
) {
myExternalSystemTaskId = externalSystemTaskId;
myProjectPath = projectPath;
@@ -78,12 +80,14 @@ public class DefaultProjectResolverContext extends UserDataHolderBase implements
myListener = listener;
myPolicy = resolverPolicy;
myProjectResolverIndicator = projectResolverIndicator;
myBuildSrcProject = isBuildSrcProject;
}
public DefaultProjectResolverContext(
@NotNull DefaultProjectResolverContext resolverContext,
@NotNull String projectPath,
@Nullable GradleExecutionSettings settings
@Nullable GradleExecutionSettings settings,
boolean isBuildSrcProject
) {
this(
resolverContext.myExternalSystemTaskId,
@@ -91,7 +95,8 @@ public class DefaultProjectResolverContext extends UserDataHolderBase implements
settings,
resolverContext.myListener,
resolverContext.myPolicy,
resolverContext.myProjectResolverIndicator
resolverContext.myProjectResolverIndicator,
isBuildSrcProject
);
resolverContext.copyUserDataTo(this);
}
@@ -313,6 +318,11 @@ public class DefaultProjectResolverContext extends UserDataHolderBase implements
return myProjectGradleVersion;
}
@Override
public boolean isBuildSrcProject() {
return myBuildSrcProject;
}
public void setBuildSrcGroup(@Nullable String groupId) {
myBuildSrcGroup = groupId;
}
@@ -111,7 +111,7 @@ public final class GradleBuildSrcProjectsResolver {
final String buildSrcProjectPath = buildPath + "/buildSrc";
DefaultProjectResolverContext buildSrcResolverCtx = new DefaultProjectResolverContext(
myResolverContext, buildSrcProjectPath, buildSrcProjectSettings
myResolverContext, buildSrcProjectPath, buildSrcProjectSettings, true
);
String buildName = index.buildNames().get(buildPath);
@@ -123,7 +123,7 @@ public final class GradleBuildSrcProjectsResolver {
index.buildClasspathNodesMap().getModifiable(Paths.get(buildPath)),
index.includedModulesPaths(),
buildSrcResolverCtx,
myProjectResolver.getProjectDataFunction(buildSrcResolverCtx, myResolverChain, true));
myProjectResolver.getProjectDataFunction(buildSrcResolverCtx, myResolverChain));
}
}
@@ -146,7 +146,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
GradleConnector.newCancellationTokenSource()
);
DefaultProjectResolverContext resolverContext = new DefaultProjectResolverContext(
syncTaskId, projectPath, settings, listener, gradleResolverPolicy, projectResolverIndicator
syncTaskId, projectPath, settings, listener, gradleResolverPolicy, projectResolverIndicator, false
);
GradleProjectResolverResultHandler resolverResultHandler = new GradleProjectResolverResultHandler(resolverContext);
@@ -188,7 +188,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
}
final GradleProjectResolverExtension projectResolverChain = createProjectResolverChain(resolverContext);
var projectDataFunction = getProjectDataFunction(resolverContext, projectResolverChain, false);
var projectDataFunction = getProjectDataFunction(resolverContext, projectResolverChain);
final DataNode<ProjectData> projectDataNode = myHelper.execute(
resolverContext.getProjectPath(),
resolverContext.getSettings(),
@@ -213,11 +213,12 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
}
}
@NotNull
Function<ProjectConnection, DataNode<ProjectData>> getProjectDataFunction(DefaultProjectResolverContext resolverContext,
GradleProjectResolverExtension projectResolverChain,
boolean isBuildSrcProject) {
return new ProjectConnectionDataNodeFunction(resolverContext, projectResolverChain, isBuildSrcProject);
protected @NotNull Function<ProjectConnection, DataNode<ProjectData>> getProjectDataFunction(
@NotNull DefaultProjectResolverContext resolverContext,
@NotNull GradleProjectResolverExtension projectResolverChain
) {
return new ProjectConnectionDataNodeFunction(resolverContext, projectResolverChain);
}
@NotNull
@@ -249,8 +250,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
@NotNull
private DataNode<ProjectData> doResolveProjectInfo(
@NotNull final DefaultProjectResolverContext resolverContext,
@NotNull final GradleProjectResolverExtension projectResolverChain,
boolean isBuildSrcProject
@NotNull final GradleProjectResolverExtension projectResolverChain
)
throws IllegalArgumentException, IllegalStateException {
@@ -272,7 +272,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
executionSettings = new GradleExecutionSettings(null, null, DistributionType.BUNDLED, false);
}
configureExecutionArgumentsAndVmOptions(executionSettings, resolverContext, isBuildSrcProject);
configureExecutionArgumentsAndVmOptions(executionSettings, resolverContext);
final Set<Class<?>> toolingExtensionClasses = new HashSet<>();
for (GradleProjectResolverExtension resolverExtension = projectResolverChain;
resolverExtension != null;
@@ -302,7 +302,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
}
GradleInitScriptUtil.attachTargetPathMapperInitScript(executionSettings);
var initScript = GradleInitScriptUtil.createMainInitScript(isBuildSrcProject, toolingExtensionClasses);
var initScript = GradleInitScriptUtil.createMainInitScript(resolverContext.isBuildSrcProject(), toolingExtensionClasses);
executionSettings.withArguments(GradleConstants.INIT_SCRIPT_CMD_OPTION, initScript.toString());
if (!executionSettings.isDownloadSources()) {
@@ -371,7 +371,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
.startSpan();
try (Scope ignore = projectResolversSpan.makeCurrent()) {
extractExternalProjectModels(models);
return convertData(executionSettings, resolverContext, projectResolverChain, isBuildSrcProject);
return convertData(executionSettings, resolverContext, projectResolverChain);
}
catch (Throwable t) {
projectResolversErrorsCount += 1;
@@ -391,8 +391,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
private @NotNull DataNode<ProjectData> convertData(
@NotNull GradleExecutionSettings executionSettings,
@NotNull DefaultProjectResolverContext resolverContext,
@NotNull GradleProjectResolverExtension tracedResolverChain,
boolean isBuildSrcProject
@NotNull GradleProjectResolverExtension tracedResolverChain
) {
final long activityId = resolverContext.getExternalSystemTaskId().getId();
@@ -454,7 +453,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
tracedResolverChain.populateModuleContentRoots(ideaModule, moduleDataNode);
tracedResolverChain.populateModuleCompileOutputSettings(ideaModule, moduleDataNode);
if (!isBuildSrcProject) {
if (!resolverContext.isBuildSrcProject()) {
tracedResolverChain.populateModuleTasks(ideaModule, moduleDataNode, projectDataNode);
}
@@ -610,8 +609,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
private static void configureExecutionArgumentsAndVmOptions(
@NotNull GradleExecutionSettings executionSettings,
@NotNull DefaultProjectResolverContext resolverContext,
boolean isBuildSrcProject
@NotNull DefaultProjectResolverContext resolverContext
) {
executionSettings.withArgument("-Didea.gradle.download.sources=" + executionSettings.isDownloadSources());
executionSettings.withArgument("-Didea.sync.active=true");
@@ -621,7 +619,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
if (executionSettings.isParallelModelFetch()) {
executionSettings.withArgument("-Didea.parallelModelFetch.enabled=true");
}
if (!isBuildSrcProject) {
if (!resolverContext.isBuildSrcProject()) {
for (GradleBuildParticipant buildParticipant : executionSettings.getExecutionWorkspace().getBuildParticipants()) {
executionSettings.withArguments(GradleConstants.INCLUDE_BUILD_CMD_OPTION, buildParticipant.getProjectPath());
}
@@ -917,16 +915,13 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
private final class ProjectConnectionDataNodeFunction implements Function<ProjectConnection, DataNode<ProjectData>> {
private final @NotNull GradleProjectResolverExtension myProjectResolverChain;
private final @NotNull DefaultProjectResolverContext myResolverContext;
private final boolean myIsBuildSrcProject;
private ProjectConnectionDataNodeFunction(
@NotNull DefaultProjectResolverContext resolverContext,
@NotNull GradleProjectResolverExtension projectResolverChain,
boolean isBuildSrcProject
@NotNull GradleProjectResolverExtension projectResolverChain
) {
myResolverContext = resolverContext;
myProjectResolverChain = projectResolverChain;
myIsBuildSrcProject = isBuildSrcProject;
}
@Override
@@ -937,7 +932,7 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
return computeCancellable(myResolverContext, () -> {
try {
myResolverContext.setConnection(connection);
return doResolveProjectInfo(myResolverContext, myProjectResolverChain, myIsBuildSrcProject);
return doResolveProjectInfo(myResolverContext, myProjectResolverChain);
}
catch (ProcessCanceledException e) {
throw e;
@@ -101,6 +101,8 @@ public interface ProjectResolverContext extends UserDataHolderEx {
@Nullable
String getProjectGradleVersion();
boolean isBuildSrcProject();
@Nullable
String getBuildSrcGroup();