aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-05-24 20:31:41 +0200
committerGravatar Irina Iancu <elenairina@google.com>2017-05-26 09:35:12 +0200
commit3efc572c7d4fa4a86e5890b76a650b61048dd016 (patch)
tree8e425f475f1ab71da8fa79d7e17cc728620cfed3 /src
parent13263f7b799c31ef335078870a905210c14de80d (diff)
Add one version enforcement to android_robolectric_test
RELNOTES: add one-version enforcement to android_local_test PiperOrigin-RevId: 157014802
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
index 1ef476f87f..de6987ed71 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
@@ -15,6 +15,7 @@ package com.google.devtools.build.lib.rules.android;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
import static com.google.devtools.build.lib.rules.java.DeployArchiveBuilder.Compression.COMPRESSED;
+import static com.google.devtools.build.lib.vfs.FileSystemUtils.replaceExtension;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
@@ -41,6 +42,8 @@ import com.google.devtools.build.lib.rules.java.JavaCommon;
import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
import com.google.devtools.build.lib.rules.java.JavaCompilationArtifacts;
import com.google.devtools.build.lib.rules.java.JavaCompilationHelper;
+import com.google.devtools.build.lib.rules.java.JavaConfiguration;
+import com.google.devtools.build.lib.rules.java.JavaConfiguration.OneVersionEnforcementLevel;
import com.google.devtools.build.lib.rules.java.JavaHelper;
import com.google.devtools.build.lib.rules.java.JavaPrimaryClassProvider;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider;
@@ -51,6 +54,7 @@ import com.google.devtools.build.lib.rules.java.JavaSkylarkApiProvider;
import com.google.devtools.build.lib.rules.java.JavaSourceInfoProvider;
import com.google.devtools.build.lib.rules.java.JavaSourceJarsProvider;
import com.google.devtools.build.lib.rules.java.JavaTargetAttributes;
+import com.google.devtools.build.lib.rules.java.OneVersionCheckActionBuilder;
import com.google.devtools.build.lib.rules.java.SingleJarActionBuilder;
import com.google.devtools.build.lib.rules.java.proto.GeneratedExtensionRegistryProvider;
import com.google.devtools.build.lib.syntax.Type;
@@ -173,6 +177,28 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
Artifact deployJar =
ruleContext.getImplicitOutputArtifact(JavaSemantics.JAVA_BINARY_DEPLOY_JAR);
+ OneVersionEnforcementLevel oneVersionEnforcementLevel =
+ ruleContext.getFragment(JavaConfiguration.class).oneVersionEnforcementLevel();
+ if (oneVersionEnforcementLevel != OneVersionEnforcementLevel.OFF) {
+ Artifact oneVersionOutput =
+ ruleContext
+ .getAnalysisEnvironment()
+ .getDerivedArtifact(
+ replaceExtension(classJar.getRootRelativePath(), "-one-version.txt"),
+ classJar.getRoot());
+ filesToBuildBuilder.add(oneVersionOutput);
+
+ NestedSet<Artifact> transitiveDependencies =
+ NestedSetBuilder.fromNestedSet(helper.getAttributes().getRuntimeClassPath())
+ .add(classJar)
+ .build();
+ OneVersionCheckActionBuilder.build(
+ ruleContext,
+ transitiveDependencies,
+ oneVersionOutput,
+ oneVersionEnforcementLevel);
+ }
+
NestedSet<Artifact> filesToBuild = filesToBuildBuilder.build();
Iterable<AndroidLibraryAarProvider> androidAarProviders =