aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
diff options
context:
space:
mode:
authorGravatar carmi <carmi@google.com>2017-07-25 04:56:22 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-07-25 13:17:41 +0200
commitef9fe8f3a291e9be3ba2d87ca0310178d0990b84 (patch)
tree0b8ac91887f124657773f0e80a85350dd2bbae46 /src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
parente1925a7a2f739611293dabc9b29060b8813b80a3 (diff)
Automated rollback of commit 7d0200703cfa207d6577d84bee45ca185d240dfa.
SKIP_KOKORO: Kokoro is out of quota. *** Reason for rollback *** Causes memory regression, somehow: b/63934093 *** Original change description *** PiperOrigin-RevId: 163023580
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java46
1 files changed, 7 insertions, 39 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
index 11dbcfad5a..398494c737 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
@@ -16,7 +16,6 @@ package com.google.devtools.build.lib.rules.java.proto;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.Iterables.getOnlyElement;
-import static com.google.common.collect.Iterables.transform;
import static com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode.TARGET;
import static com.google.devtools.build.lib.cmdline.Label.parseAbsoluteUnchecked;
import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
@@ -64,7 +63,6 @@ import com.google.devtools.build.lib.rules.proto.ProtoSourceFileBlacklist;
import com.google.devtools.build.lib.rules.proto.ProtoSourcesProvider;
import com.google.devtools.build.lib.rules.proto.ProtoSupportDataProvider;
import com.google.devtools.build.lib.rules.proto.SupportData;
-import java.util.ArrayList;
import javax.annotation.Nullable;
/** An Aspect which JavaProtoLibrary injects to build Java SPEED protos. */
@@ -245,29 +243,7 @@ public class JavaProtoAspect extends NativeAspectClass implements ConfiguredAspe
JavaSkylarkApiProvider.PROTO_NAME.getLegacyId(),
JavaSkylarkApiProvider.fromProviderMap(javaProviders))
.addProvider(
- new JavaProtoLibraryAspectProvider(
- javaProviders,
- transitiveOutputJars.build(),
- createNonStrictCompilationArgsProvider(generatedCompilationArgsProvider)));
- }
-
- /**
- * Creates a JavaCompilationArgsProvider that's used when java_proto_library sets strict_deps=0.
- * It contains the jars we produced, as well as all transitive proto jars, and the proto runtime
- * jars, all described as direct dependencies.
- *
- * <p>This method is used when JavaProtoAspect is creating actions itself, as opposed to reusing
- * ones created by the underlying proto_library.
- */
- private JavaCompilationArgsProvider createNonStrictCompilationArgsProvider(
- JavaCompilationArgsProvider generatedCompilationArgsProvider) {
- ArrayList<JavaCompilationArgsProvider> providers = new ArrayList<>(5);
- providers.add(
- JavaCompilationArgsProvider.merge(
- transform(javaProtoLibraryAspectProviders, p -> p.getNonStrictCompArgsProvider())));
- providers.add(generatedCompilationArgsProvider);
- providers.addAll(getProtoRuntimeDeps());
- return JavaCompilationArgsProvider.merge(providers);
+ new JavaProtoLibraryAspectProvider(javaProviders, transitiveOutputJars.build()));
}
/**
@@ -314,11 +290,13 @@ public class JavaProtoAspect extends NativeAspectClass implements ConfiguredAspe
.setOutput(outputJar)
.addSourceJars(sourceJar)
.setJavacOpts(ProtoJavacOpts.constructJavacOpts(ruleContext));
- helper
- .addDep(dependencyCompilationArgs)
- .addAllDeps(getProtoRuntimeDeps())
- .setCompilationStrictDepsMode(StrictDepsMode.OFF);
+ helper.addDep(dependencyCompilationArgs).setCompilationStrictDepsMode(StrictDepsMode.OFF);
+ TransitiveInfoCollection runtime = getProtoToolchainProvider().runtime();
+ if (runtime != null) {
+ helper.addDep(runtime.getProvider(JavaCompilationArgsProvider.class));
+ }
+ rpcSupport.mutateJavaCompileAction(ruleContext, helper);
return helper.buildCompilationArgsProvider(
helper.build(
javaSemantics,
@@ -328,16 +306,6 @@ public class JavaProtoAspect extends NativeAspectClass implements ConfiguredAspe
true /* isReportedAsStrict */);
}
- private ImmutableList<JavaCompilationArgsProvider> getProtoRuntimeDeps() {
- ImmutableList.Builder<JavaCompilationArgsProvider> result = ImmutableList.builder();
- TransitiveInfoCollection runtime = getProtoToolchainProvider().runtime();
- if (runtime != null) {
- result.add(runtime.getProvider(JavaCompilationArgsProvider.class));
- }
- result.addAll(rpcSupport.getRuntimes(ruleContext));
- return result.build();
- }
-
private ProtoLangToolchainProvider getProtoToolchainProvider() {
return ruleContext.getPrerequisite(
SPEED_PROTO_TOOLCHAIN_ATTR, TARGET, ProtoLangToolchainProvider.class);