Skip to content

Commit

Permalink
Stop creating a merged jar in an action in java binary.
Browse files Browse the repository at this point in the history
The merged jar was used by JacocoCoverageRunner to collect coverage. Since unknown commit JacocoCoverageRunner gets the runtime classpath from the system classloader, so there is no more need for the merged jar.

Progress on #7124.

RELNOTES: None.
PiperOrigin-RevId: 234988946
  • Loading branch information
iirina authored and Copybara-Service committed Feb 21, 2019
1 parent 9a51587 commit d54b741
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 35 deletions.
Expand Up @@ -32,7 +32,6 @@
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
import com.google.devtools.build.lib.analysis.actions.LauncherFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.LauncherFileWriteAction.LaunchInfo;
import com.google.devtools.build.lib.analysis.actions.LazyWritePathsFileAction;
import com.google.devtools.build.lib.analysis.actions.Substitution;
import com.google.devtools.build.lib.analysis.actions.Substitution.ComputedSubstitution;
import com.google.devtools.build.lib.analysis.actions.Template;
Expand Down Expand Up @@ -274,8 +273,7 @@ public Artifact createStubAction(
javaStartClass,
"",
NestedSetBuilder.<Artifact>stableOrder(),
javaExecutable,
/* createCoverageMetadataJar= */ true);
javaExecutable);
}

@Override
Expand All @@ -287,8 +285,7 @@ public Artifact createStubAction(
String javaStartClass,
String coverageStartClass,
NestedSetBuilder<Artifact> filesBuilder,
String javaExecutable,
boolean createCoverageMetadataJar) {
String javaExecutable) {
Preconditions.checkState(ruleContext.getConfiguration().hasFragment(JavaConfiguration.class));

Preconditions.checkNotNull(jvmFlags);
Expand Down Expand Up @@ -351,30 +348,8 @@ public Artifact createStubAction(

if (ruleContext.getConfiguration().isCodeCoverageEnabled()
&& ruleContext.getConfiguration().isExperimentalJavaCoverage()) {
if (createCoverageMetadataJar) {
Artifact runtimeClassPathArtifact =
ruleContext.getUniqueDirectoryArtifact(
"coverage_runtime_classpath",
"runtime-classpath.txt",
ruleContext.getBinOrGenfilesDirectory());
ruleContext.registerAction(
new LazyWritePathsFileAction(
ruleContext.getActionOwner(),
runtimeClassPathArtifact,
javaCommon.getRuntimeClasspath(),
true));
filesBuilder.add(runtimeClassPathArtifact);
arguments.add(
Substitution.of(
JavaSemantics.JACOCO_METADATA_PLACEHOLDER,
"export JACOCO_METADATA_JAR=${JAVA_RUNFILES}/"
+ workspacePrefix
+ "/"
+ runtimeClassPathArtifact.getRootRelativePathString()));
} else {
// Remove the placeholder in the stub otherwise bazel coverage fails.
arguments.add(Substitution.of(JavaSemantics.JACOCO_METADATA_PLACEHOLDER, ""));
}
// Remove the placeholder in the stub otherwise bazel coverage fails.
arguments.add(Substitution.of(JavaSemantics.JACOCO_METADATA_PLACEHOLDER, ""));
arguments.add(Substitution.of(
JavaSemantics.JACOCO_MAIN_CLASS_PLACEHOLDER,
"export JACOCO_MAIN_CLASS=" + coverageStartClass));
Expand Down
Expand Up @@ -270,8 +270,7 @@ public ConfiguredTarget create(RuleContext ruleContext)
mainClass,
originalMainClass,
filesToBuildBuilder,
javaExecutable,
/* createCoverageMetadataJar= */ true);
javaExecutable);

Artifact oneVersionOutputArtifact = null;
JavaConfiguration javaConfig = ruleContext.getFragment(JavaConfiguration.class);
Expand Down
Expand Up @@ -292,8 +292,7 @@ public ConfiguredTarget create(RuleContext ruleContext)
mainClass,
originalMainClass,
filesBuilder,
javaExecutable,
/* createCoverageMetadataJar= */ false);
javaExecutable);
if (!executableToRun.equals(executableForRunfiles)) {
filesBuilder.add(executableToRun);
runfilesBuilder.addArtifact(executableToRun);
Expand Down
Expand Up @@ -310,8 +310,7 @@ public Artifact createStubAction(
String javaStartClass,
String coverageStartClass,
NestedSetBuilder<Artifact> filesBuilder,
String javaExecutable,
boolean createCoverageMetadataJar)
String javaExecutable)
throws InterruptedException;

/**
Expand Down

0 comments on commit d54b741

Please sign in to comment.