aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-02-23 15:23:29 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-02-23 22:16:51 +0000
commitc5d7a7fd23ec05acbe832840445bee119e721ccc (patch)
tree62c7627af7a66134db06348ecc84baad18735442
parentda88192f91398de4a683ed292ff22f287d63241f (diff)
Make another JavaCommon method static to reduce reliance on mutability.
-- MOS_MIGRATED_REVID=115337586
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java22
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java12
5 files changed, 24 insertions, 18 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
index 81e89562b4..3ba34655c6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -467,7 +467,8 @@ public class AndroidCommon {
ruleContext, semantics, javaCommon.getJavacOpts(), attributes);
helper.addLibrariesToAttributes(javaCommon.targetsTreatedAsDeps(ClasspathType.COMPILE_ONLY));
- helper.addProvidersToAttributes(javaCommon.compilationArgsFromSources(), asNeverLink);
+ helper.addProvidersToAttributes(
+ JavaCommon.compilationArgsFromSources(ruleContext), asNeverLink);
attributes.setStrictJavaDeps(getStrictAndroidDeps());
attributes.setRuleKind(ruleContext.getRule().getRuleClass());
attributes.setTargetLabel(ruleContext.getLabel());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
index db26843176..8b3927459b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
@@ -188,7 +188,7 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
.add(JavaSourceJarsProvider.class, androidCommon.getJavaSourceJarsProvider())
.add(AndroidCcLinkParamsProvider.class,
new AndroidCcLinkParamsProvider(androidCommon.getCcLinkParamsStore()))
- .add(JavaPluginInfoProvider.class, javaCommon.getTransitivePlugins())
+ .add(JavaPluginInfoProvider.class, JavaCommon.getTransitivePlugins(ruleContext))
.add(ProguardSpecProvider.class, new ProguardSpecProvider(transitiveProguardConfigs))
.addOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL, transitiveProguardConfigs)
.add(AndroidLibraryAarProvider.class, new AndroidLibraryAarProvider(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
index 9084d9b3b0..27afae17d0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
@@ -93,7 +93,8 @@ public class JavaBinary implements RuleConfiguredTargetFactory {
JavaCompilationHelper helper = new JavaCompilationHelper(
ruleContext, semantics, common.getJavacOpts(), attributesBuilder);
helper.addLibrariesToAttributes(deps);
- helper.addProvidersToAttributes(common.compilationArgsFromSources(), /* isNeverLink */ false);
+ helper.addProvidersToAttributes(
+ JavaCommon.compilationArgsFromSources(ruleContext), /* isNeverLink */ false);
attributesBuilder.addNativeLibraries(
collectNativeLibraries(common.targetsTreatedAsDeps(ClasspathType.BOTH)));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
index 9b12352c11..51b1b689e5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
@@ -630,7 +630,8 @@ public class JavaCommon {
attributes.addInstrumentationMetadataEntries(args.getInstrumentationMetadata());
}
- public Iterable<SourcesJavaCompilationArgsProvider> compilationArgsFromSources() {
+ public static Iterable<SourcesJavaCompilationArgsProvider> compilationArgsFromSources(
+ RuleContext ruleContext) {
return ruleContext.getPrerequisites("srcs", Mode.TARGET,
SourcesJavaCompilationArgsProvider.class);
}
@@ -651,24 +652,25 @@ public class JavaCommon {
private ImmutableList<JavaPluginInfoProvider> collectPlugins() {
List<JavaPluginInfoProvider> result = new ArrayList<>();
- Iterables.addAll(result, getPluginInfoProvidersForAttribute(":java_plugins", Mode.HOST));
- Iterables.addAll(result, getPluginInfoProvidersForAttribute("plugins", Mode.HOST));
- Iterables.addAll(result, getPluginInfoProvidersForAttribute("deps", Mode.TARGET));
+ Iterables.addAll(result,
+ getPluginInfoProvidersForAttribute(ruleContext, ":java_plugins", Mode.HOST));
+ Iterables.addAll(result, getPluginInfoProvidersForAttribute(ruleContext, "plugins", Mode.HOST));
+ Iterables.addAll(result, getPluginInfoProvidersForAttribute(ruleContext, "deps", Mode.TARGET));
return ImmutableList.copyOf(result);
}
- Iterable<JavaPluginInfoProvider> getPluginInfoProvidersForAttribute(String attribute,
- Mode mode) {
+ private static Iterable<JavaPluginInfoProvider> getPluginInfoProvidersForAttribute(
+ RuleContext ruleContext, String attribute, Mode mode) {
if (ruleContext.attributes().has(attribute, BuildType.LABEL_LIST)) {
return ruleContext.getPrerequisites(attribute, mode, JavaPluginInfoProvider.class);
}
return ImmutableList.of();
}
-
- public JavaPluginInfoProvider getTransitivePlugins() {
+
+ public static JavaPluginInfoProvider getTransitivePlugins(RuleContext ruleContext) {
return JavaPluginInfoProvider.merge(Iterables.concat(
- getPluginInfoProvidersForAttribute("exported_plugins", Mode.HOST),
- getPluginInfoProvidersForAttribute("exports", Mode.TARGET)));
+ getPluginInfoProvidersForAttribute(ruleContext, "exported_plugins", Mode.HOST),
+ getPluginInfoProvidersForAttribute(ruleContext, "exports", Mode.TARGET)));
}
public Runfiles getRunfiles(boolean neverLink) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
index 835c929d8e..1a344cb4cb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
@@ -58,8 +58,10 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
JavaCompilationHelper helper = new JavaCompilationHelper(
ruleContext, semantics, common.getJavacOpts(), attributesBuilder);
helper.addLibrariesToAttributes(common.targetsTreatedAsDeps(ClasspathType.COMPILE_ONLY));
- helper.addProvidersToAttributes(common.compilationArgsFromSources(),
- JavaCommon.isNeverLink(ruleContext));
+ Iterable<SourcesJavaCompilationArgsProvider> compilationArgsFromSources =
+ JavaCommon.compilationArgsFromSources(ruleContext);
+ helper.addProvidersToAttributes(
+ compilationArgsFromSources, JavaCommon.isNeverLink(ruleContext));
if (ruleContext.hasErrors()) {
return null;
@@ -136,9 +138,9 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
// If sources are empty, treat this library as a forwarding node for dependencies.
JavaCompilationArgs javaCompilationArgs = common.collectJavaCompilationArgs(
- false, neverLink, common.compilationArgsFromSources(), false);
+ false, neverLink, compilationArgsFromSources, false);
JavaCompilationArgs recursiveJavaCompilationArgs = common.collectJavaCompilationArgs(
- true, neverLink, common.compilationArgsFromSources(), false);
+ true, neverLink, compilationArgsFromSources, false);
NestedSet<Artifact> compileTimeJavaDepArtifacts = common.collectCompileTimeDependencyArtifacts(
javaArtifacts.getCompileTimeDependencyArtifact());
NestedSet<Artifact> runTimeJavaDepArtifacts = NestedSetBuilder.emptySet(Order.STABLE_ORDER);
@@ -191,7 +193,7 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
.add(JavaSourceJarsProvider.class, new JavaSourceJarsProvider(
transitiveSourceJars, ImmutableList.of(srcJar)))
// TODO(bazel-team): this should only happen for java_plugin
- .add(JavaPluginInfoProvider.class, common.getTransitivePlugins())
+ .add(JavaPluginInfoProvider.class, JavaCommon.getTransitivePlugins(ruleContext))
.add(ProguardSpecProvider.class, new ProguardSpecProvider(proguardSpecs))
.addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars)
.addOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL, proguardSpecs);