diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java index bfcc7b186fa6b1..9c4e92fd2d769c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java @@ -32,6 +32,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider.JavaOutput; +import com.google.devtools.build.lib.packages.Type; import java.util.LinkedHashSet; import java.util.Set; @@ -202,7 +203,8 @@ private ImmutableList processWithIjarIfNeeded( RuleContext ruleContext, ImmutableMap.Builder compilationToRuntimeJarMap) { ImmutableList.Builder interfaceJarsBuilder = ImmutableList.builder(); - boolean useIjar = ruleContext.getFragment(JavaConfiguration.class).getUseIjars(); + boolean useIjar = ruleContext.getFragment(JavaConfiguration.class).getUseIjars() + && ruleContext.attributes().get("use_ijar", Type.BOOLEAN); for (Artifact jar : jars) { Artifact interfaceJar = useIjar diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java index 3193cbda6de6fd..e0d3cfd704ff4b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java @@ -54,6 +54,13 @@ public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment envi for IDE plug-ins or tools.jar for anything running on a standard JDK. */ + .add(attr("use_ijar", BOOLEAN).value(false)) + /* + If you import an oft-changing JAR that doesn't have a Kotlin interface, + you can enable this as a caching optimization. + Temporarily available until ijar is updated to properly handle Kotlin. + For more, see https://github.com/bazelbuild/bazel/issues/4549. + */ .add(attr("neverlink", BOOLEAN).value(false)) /* Extra constraints imposed on this rule as a Java library.