diff --git a/java/src/com/google/idea/blaze/java/fastbuild/BazelFastBuildDeployJarStrategy.java b/java/src/com/google/idea/blaze/java/fastbuild/BazelFastBuildDeployJarStrategy.java index f35b4030845..4ccbb9fa59e 100644 --- a/java/src/com/google/idea/blaze/java/fastbuild/BazelFastBuildDeployJarStrategy.java +++ b/java/src/com/google/idea/blaze/java/fastbuild/BazelFastBuildDeployJarStrategy.java @@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; +import com.google.idea.blaze.base.model.BlazeVersionData; import com.google.idea.blaze.base.model.primitives.Label; import com.google.idea.blaze.base.model.primitives.TargetExpression; import com.google.idea.blaze.base.settings.BuildSystemName; @@ -29,22 +30,37 @@ public ImmutableSet getSupportedBuildSystems() { } @Override - public ImmutableList getBuildTargets(Label label) { - return ImmutableList.of(createDeployJarLabel(label), label); + public ImmutableList getBuildTargets( + Label label, BlazeVersionData versionData) { + if (versionData.bazelIsAtLeastVersion(7, 0, 1)) { + return ImmutableList.of(label); + } + return ImmutableList.of(createDeployJarLabel(label, versionData), label); } @Override - public ImmutableList getBuildFlags() { + public ImmutableList getBuildFlags(BlazeVersionData versionData) { + if (versionData.bazelIsAtLeastVersion(7, 0, 1)) { + return ImmutableList.of( + "--experimental_java_test_auto_create_deploy_jar", + "--output_groups=+_hidden_top_level_INTERNAL_"); + } return ImmutableList.of(); } @Override - public Label createDeployJarLabel(Label label) { + public Label createDeployJarLabel(Label label, BlazeVersionData versionData) { + if (versionData.bazelIsAtLeastVersion(7, 0, 1)) { + return Label.create(label + "_auto_deploy.jar"); + } return Label.create(label + "_deploy.jar"); } @Override - public Label deployJarOwnerLabel(Label label) { - return createDeployJarLabel(label); + public Label deployJarOwnerLabel(Label label, BlazeVersionData versionData) { + if (versionData.bazelIsAtLeastVersion(7, 0, 1)) { + return label; + } + return createDeployJarLabel(label, versionData); } } diff --git a/java/src/com/google/idea/blaze/java/fastbuild/FastBuildDeployJarStrategy.java b/java/src/com/google/idea/blaze/java/fastbuild/FastBuildDeployJarStrategy.java index 24fef327d01..ecd9eea475e 100644 --- a/java/src/com/google/idea/blaze/java/fastbuild/FastBuildDeployJarStrategy.java +++ b/java/src/com/google/idea/blaze/java/fastbuild/FastBuildDeployJarStrategy.java @@ -16,6 +16,7 @@ package com.google.idea.blaze.java.fastbuild; import com.google.common.collect.ImmutableList; +import com.google.idea.blaze.base.model.BlazeVersionData; import com.google.idea.blaze.base.model.primitives.Label; import com.google.idea.blaze.base.model.primitives.TargetExpression; import com.google.idea.blaze.base.settings.BuildSystemName; @@ -30,11 +31,12 @@ static FastBuildDeployJarStrategy getInstance(BuildSystemName buildSystemName) { return BuildSystemExtensionPoint.getInstance(EP_NAME, buildSystemName); } - public abstract ImmutableList getBuildTargets(Label label); + public abstract ImmutableList getBuildTargets( + Label label, BlazeVersionData versionData); - public abstract ImmutableList getBuildFlags(); + public abstract ImmutableList getBuildFlags(BlazeVersionData versionData); - public abstract Label createDeployJarLabel(Label label); + public abstract Label createDeployJarLabel(Label label, BlazeVersionData versionData); - public abstract Label deployJarOwnerLabel(Label label); + public abstract Label deployJarOwnerLabel(Label label, BlazeVersionData versionData); } diff --git a/java/src/com/google/idea/blaze/java/fastbuild/FastBuildServiceImpl.java b/java/src/com/google/idea/blaze/java/fastbuild/FastBuildServiceImpl.java index a58669c7640..1b662220b74 100644 --- a/java/src/com/google/idea/blaze/java/fastbuild/FastBuildServiceImpl.java +++ b/java/src/com/google/idea/blaze/java/fastbuild/FastBuildServiceImpl.java @@ -269,14 +269,20 @@ private FastBuildState.BuildOutput buildDeployJar( Label label, FastBuildParameters buildParameters, BuildResultHelper resultHelper) { + WorkspaceRoot workspaceRoot = WorkspaceRoot.fromProject(project); + BlazeInfo blazeInfo = getBlazeInfo(context, buildParameters); + + BlazeVersionData blazeversionData = + BlazeVersionData.build( + Blaze.getBuildSystemProvider(project).getBuildSystem(), workspaceRoot, blazeInfo); + FastBuildDeployJarStrategy deployJarStrategy = FastBuildDeployJarStrategy.getInstance(Blaze.getBuildSystemName(project)); - Label deployJarLabel = deployJarStrategy.createDeployJarLabel(label); + Label deployJarLabel = deployJarStrategy.createDeployJarLabel(label, blazeversionData); context.output( new StatusOutput( "Building base deploy jar for fast builds: " + deployJarLabel.targetName())); - BlazeInfo blazeInfo = getBlazeInfo(context, buildParameters); FastBuildAspectStrategy aspectStrategy = FastBuildAspectStrategy.getInstance(Blaze.getBuildSystemName(project)); @@ -284,18 +290,13 @@ private FastBuildState.BuildOutput buildDeployJar( BlazeCommand.Builder command = BlazeCommand.builder(buildParameters.blazeBinary(), BlazeCommandName.BUILD) - .addTargets(deployJarStrategy.getBuildTargets(label)) - .addBlazeFlags(deployJarStrategy.getBuildFlags()) + .addTargets(deployJarStrategy.getBuildTargets(label, blazeversionData)) + .addBlazeFlags(deployJarStrategy.getBuildFlags(blazeversionData)) .addBlazeFlags(buildParameters.buildFlags()) .addBlazeFlags(resultHelper.getBuildFlags()); - WorkspaceRoot workspaceRoot = WorkspaceRoot.fromProject(project); - aspectStrategy.addAspectAndOutputGroups( - command, - BlazeVersionData.build( - Blaze.getBuildSystemProvider(project).getBuildSystem(), workspaceRoot, blazeInfo), - /* additionalOutputGroups...= */ "default"); + command, blazeversionData, /* additionalOutputGroups...= */ "default"); int exitCode = ExternalTask.builder(workspaceRoot) @@ -318,7 +319,7 @@ private FastBuildState.BuildOutput buildDeployJar( ImmutableList deployJarArtifacts = BlazeArtifact.getLocalFiles( resultHelper.getBuildArtifactsForTarget( - deployJarStrategy.deployJarOwnerLabel(label), jarPredicate)); + deployJarStrategy.deployJarOwnerLabel(label, blazeversionData), jarPredicate)); checkState(deployJarArtifacts.size() == 1); File deployJar = deployJarArtifacts.get(0); diff --git a/java/src/com/google/idea/blaze/java/run/fastbuild/BazelFastBuildTestEnvironmentCreator.java b/java/src/com/google/idea/blaze/java/run/fastbuild/BazelFastBuildTestEnvironmentCreator.java index 22b7942fc5f..3ddada81c20 100644 --- a/java/src/com/google/idea/blaze/java/run/fastbuild/BazelFastBuildTestEnvironmentCreator.java +++ b/java/src/com/google/idea/blaze/java/run/fastbuild/BazelFastBuildTestEnvironmentCreator.java @@ -27,6 +27,9 @@ final class BazelFastBuildTestEnvironmentCreator extends FastBuildTestEnvironmen // Bazel adds the Java launcher to the runfiles path when building a Java test target. private static final File STANDARD_JAVA_BINARY = new File("../local_jdk/bin/java"); + // TODO: b/295221112 - remove LAUNCHER_ALIAS once label_flag is used + private static final String LAUNCHER_ALIAS = "@bazel_tools//tools/jdk:launcher_flag_alias"; + @Override String getTestClassProperty() { return "bazel.test_suite"; @@ -44,7 +47,7 @@ File getJavaBinFromLauncher( @Nullable Label javaLauncher, boolean swigdeps, String runfilesPath) { - if (javaLauncher == null) { + if (javaLauncher == null || javaLauncher.getLabel().equals(LAUNCHER_ALIAS)) { return getStandardJavaBinary(runfilesPath); } else { return new File(getTestBinary(label) + "_nativedeps");