diff options
author | carmi <carmi@google.com> | 2017-07-25 04:56:22 +0200 |
---|---|---|
committer | Jakob Buchgraber <buchgr@google.com> | 2017-07-25 13:17:41 +0200 |
commit | ef9fe8f3a291e9be3ba2d87ca0310178d0990b84 (patch) | |
tree | 0b8ac91887f124657773f0e80a85350dd2bbae46 /src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java | |
parent | e1925a7a2f739611293dabc9b29060b8813b80a3 (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.java | 46 |
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); |