diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java index 3424d74eb0e466..c0f45ad7737f93 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java @@ -491,6 +491,18 @@ public static class GraveyardOptions extends OptionsBase { "The --legacy_spawn_scheduler flag is a no-op and will be removed soon.", help = "Was used to enable the old spawn scheduler. Now a no-op.") public boolean legacySpawnScheduler; + + @Option( + name = "incompatible_dont_use_javasourceinfoprovider", + defaultValue = "false", + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.UNKNOWN}, + metadataTags = { + OptionMetadataTag.INCOMPATIBLE_CHANGE, + OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES + }, + help = "No-op") + public boolean dontUseJavaSourceInfoProvider; } @Override diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaImportRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaImportRule.java index 13365cbb0ea248..83afc06418a237 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaImportRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaImportRule.java @@ -25,7 +25,6 @@ import com.google.devtools.build.lib.rules.java.JavaImportBaseRule; import com.google.devtools.build.lib.rules.java.JavaRuleClasses.IjarBaseRule; import com.google.devtools.build.lib.rules.java.JavaSemantics; -import com.google.devtools.build.lib.rules.java.JavaSourceInfoProvider; /** * Rule definition for the java_import rule. @@ -68,9 +67,7 @@ public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) .allowedRuleClasses(ALLOWED_DEPS) .mandatoryProvidersList(BazelJavaRuleClasses.MANDATORY_JAVA_PROVIDER_ONLY) .skipAnalysisTimeFileTypeCheck()) - .advertiseProvider(JavaSourceInfoProvider.class) .build(); - } @Override diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java index a116cb8647155f..32e1bf9c177305 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java @@ -43,7 +43,6 @@ import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider; import com.google.devtools.build.lib.rules.java.JavaRuntimeInfo; import com.google.devtools.build.lib.rules.java.JavaSemantics; -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.JavaToolchainProvider; import com.google.devtools.build.lib.rules.java.ProguardLibrary; @@ -214,8 +213,6 @@ public ConfiguredTarget create(RuleContext ruleContext) NestedSet transitiveJavaSourceJars = transitiveJavaSourceJarBuilder.build(); JavaSourceJarsProvider javaSourceJarsProvider = JavaSourceJarsProvider.create(transitiveJavaSourceJars, srcJars); - JavaSourceInfoProvider javaSourceInfoProvider = - new JavaSourceInfoProvider.Builder().setSourceJars(srcJars).build(); JavaInfo.Builder javaInfoBuilder = JavaInfo.Builder.create() @@ -224,7 +221,6 @@ public ConfiguredTarget create(RuleContext ruleContext) .setNeverlink(JavaCommon.isNeverLink(ruleContext)) .addProvider(JavaCompilationArgsProvider.class, javaCompilationArgsProvider) .addProvider(JavaSourceJarsProvider.class, javaSourceJarsProvider) - .addProvider(JavaSourceInfoProvider.class, javaSourceInfoProvider) .addProvider(JavaRuleOutputJarsProvider.class, jarProviderBuilder.build()); common.addTransitiveInfoProviders( diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java index 469d683ebc4e9f..4c9a338850fa73 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java @@ -76,7 +76,6 @@ import com.google.devtools.build.lib.rules.java.JavaConfiguration.OneVersionEnforcementLevel; import com.google.devtools.build.lib.rules.java.JavaRuntimeInfo; import com.google.devtools.build.lib.rules.java.JavaSemantics; -import com.google.devtools.build.lib.rules.java.JavaSourceInfoProvider; import com.google.devtools.build.lib.rules.java.JavaTargetAttributes; import com.google.devtools.build.lib.rules.java.JavaToolchainProvider; import com.google.devtools.build.lib.rules.java.OneVersionCheckActionBuilder; @@ -264,8 +263,7 @@ private static RuleConfiguredTargetBuilder init( AndroidApplicationResourceInfo androidApplicationResourceInfo = ruleContext.getPrerequisite( - "application_resources", - AndroidApplicationResourceInfo.PROVIDER); + "application_resources", AndroidApplicationResourceInfo.PROVIDER); final ResourceApk resourceApk; boolean shouldCompileJavaSrcs = true; @@ -694,9 +692,6 @@ public static RuleConfiguredTargetBuilder createAndroidBinary( .addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES) .addTransitiveArtifacts(filesToBuild) .build())) - .addProvider( - JavaSourceInfoProvider.class, - JavaSourceInfoProvider.fromJavaTargetAttributes(resourceClasses, javaSemantics)) .addNativeDeclaredProvider( new ApkInfo( zipAlignedApk, 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 033b6ce74042cf..f7b91eb226532a 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 @@ -32,7 +32,6 @@ import com.google.devtools.build.lib.rules.android.databinding.DataBinding; import com.google.devtools.build.lib.rules.java.JavaCommon; import com.google.devtools.build.lib.rules.java.JavaSemantics; -import com.google.devtools.build.lib.rules.java.JavaSourceInfoProvider; import com.google.devtools.build.lib.rules.java.JavaTargetAttributes; import com.google.devtools.build.lib.rules.java.ProguardLibrary; import com.google.devtools.build.lib.rules.java.ProguardSpecProvider; @@ -244,9 +243,6 @@ public ConfiguredTarget create(RuleContext ruleContext) new AndroidNativeLibsInfo( AndroidCommon.collectTransitiveNativeLibs(ruleContext).build())) .addNativeDeclaredProvider(new AndroidCcLinkParamsProvider(androidCommon.getCcInfo())) - .add( - JavaSourceInfoProvider.class, - JavaSourceInfoProvider.fromJavaTargetAttributes(javaTargetAttributes, javaSemantics)) .addNativeDeclaredProvider(new ProguardSpecProvider(transitiveProguardConfigs)) .addNativeDeclaredProvider( new AndroidProguardInfo(proguardLibrary.collectLocalProguardSpecs())) @@ -259,7 +255,6 @@ public ConfiguredTarget create(RuleContext ruleContext) builder.addNativeDeclaredProvider(aar.toProvider(ruleContext, definesLocalResources)); } - return builder.build(); } 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 a78f51eee034cf..3e0e9f68672c67 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 @@ -56,7 +56,6 @@ import com.google.devtools.build.lib.rules.java.JavaRuntimeClasspathProvider; import com.google.devtools.build.lib.rules.java.JavaRuntimeInfo; import com.google.devtools.build.lib.rules.java.JavaSemantics; -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.JavaToolchainProvider; @@ -383,9 +382,6 @@ public ConfiguredTarget create(RuleContext ruleContext) javaInfoBuilder .addProvider(JavaSourceJarsProvider.class, sourceJarsProvider) .addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider) - .addProvider( - JavaSourceInfoProvider.class, - JavaSourceInfoProvider.fromJavaTargetAttributes(attributes, javaSemantics)) .build(); return builder diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD index a974808a3c40e4..9f0d030b5511d4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD @@ -26,7 +26,6 @@ java_library( "JavaRuntimeAliasRule.java", "JavaRuntimeClasspathProvider.java", "JavaRuntimeRule.java", - "JavaSourceInfoProvider.java", "JavaStarlarkCommon.java", "JavaToolchain.java", "JavaToolchainAliasRule.java", @@ -147,7 +146,6 @@ java_library( "JavaRuleOutputJarsProvider.java", "JavaRuntimeInfo.java", "JavaSemantics.java", - "JavaSourceInfoProvider.java", "JavaSourceJarsProvider.java", "JavaStarlarkCommon.java", "JavaTargetAttributes.java", 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 50388a76b41edd..1a3053307383a0 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 @@ -474,9 +474,6 @@ public ConfiguredTarget create(RuleContext ruleContext) javaInfoBuilder .addProvider(JavaSourceJarsProvider.class, sourceJarsProvider) .addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider) - .addProvider( - JavaSourceInfoProvider.class, - JavaSourceInfoProvider.fromJavaTargetAttributes(attributes, semantics)) .maybeTransitiveOnlyRuntimeJarsToJavaInfo(common.getDependencies(), true) .build(); 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 c243b7ff7e2deb..983dfb6316da60 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 @@ -113,9 +113,6 @@ public ConfiguredTarget create(RuleContext ruleContext) NestedSet filesToBuild = filesBuilder.build(); - JavaSourceInfoProvider javaSourceInfoProvider = - new JavaSourceInfoProvider.Builder().setSourceJars(srcJars).build(); - JavaRuleOutputJarsProvider.Builder ruleOutputJarsProviderBuilder = JavaRuleOutputJarsProvider.builder(); for (Artifact jar : jars) { @@ -138,7 +135,6 @@ public ConfiguredTarget create(RuleContext ruleContext) .addProvider(JavaCompilationArgsProvider.class, compilationArgsProvider) .addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider) .addProvider(JavaSourceJarsProvider.class, sourceJarsProvider) - .addProvider(JavaSourceInfoProvider.class, javaSourceInfoProvider) .maybeTransitiveOnlyRuntimeJarsToJavaInfo(common.getDependencies(), true) .setRuntimeJars(javaArtifacts.getRuntimeJars()) .setJavaConstraints(JavaCommon.getConstraints(ruleContext)) 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 4d7a9fa8d642bd..3193cbda6de6fd 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 @@ -63,7 +63,6 @@ public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment envi .orderIndependent() .nonconfigurable( "used in Attribute.validityPredicate implementations (loading time)")) - .advertiseProvider(JavaSourceInfoProvider.class) .advertiseStarlarkProvider(StarlarkProviderIdentifier.forKey(JavaInfo.PROVIDER.getKey())) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java index 391053c518a92e..005aa12882f427 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java @@ -74,8 +74,7 @@ private static T nullIfNone(Object object, Class type) { JavaPluginInfoProvider.class, JavaGenJarsProvider.class, JavaExportsProvider.class, - JavaCompilationInfoProvider.class, - JavaSourceInfoProvider.class); + JavaCompilationInfoProvider.class); private final TransitiveInfoProviderMap providers; @@ -125,8 +124,6 @@ public static JavaInfo merge(List providers) { JavaInfo.fetchProvidersFromList(providers, JavaExportsProvider.class); List javaRuleOutputJarsProviders = JavaInfo.fetchProvidersFromList(providers, JavaRuleOutputJarsProvider.class); - List sourceInfos = - JavaInfo.fetchProvidersFromList(providers, JavaSourceInfoProvider.class); ImmutableList.Builder runtimeJars = ImmutableList.builder(); ImmutableList.Builder javaConstraints = ImmutableList.builder(); @@ -147,7 +144,6 @@ public static JavaInfo merge(List providers) { .addProvider( JavaPluginInfoProvider.class, JavaPluginInfoProvider.merge(javaPluginInfoProviders)) .addProvider(JavaExportsProvider.class, JavaExportsProvider.merge(javaExportsProviders)) - .addProvider(JavaSourceInfoProvider.class, JavaSourceInfoProvider.merge(sourceInfos)) // TODO(b/65618333): add merge function to JavaGenJarsProvider. See #3769 // TODO(iirina): merge or remove JavaCompilationInfoProvider .setRuntimeJars(runtimeJars.build()) 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 5f8471ac7c288b..0402192188199c 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 @@ -195,7 +195,6 @@ final ConfiguredTarget init( JavaCommon.getRunfiles(ruleContext, semantics, javaArtifacts, neverLink))) .setFilesToBuild(filesToBuild) .addNativeDeclaredProvider(new JavaNativeLibraryInfo(transitiveJavaNativeLibraries)) - .addProvider(JavaSourceInfoProvider.fromJavaTargetAttributes(attributes, semantics)) .addNativeDeclaredProvider(new ProguardSpecProvider(proguardSpecs)) .addNativeDeclaredProvider(javaInfo) .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars) diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java deleted file mode 100644 index 841b460f7ca086..00000000000000 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2015 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -package com.google.devtools.build.lib.rules.java; - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; -import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; -import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization; -import java.util.Collection; - -/** A Provider describing the java sources directly belonging to a java rule. */ -@Immutable -@AutoCodec -public final class JavaSourceInfoProvider implements TransitiveInfoProvider { - private final Collection sourceFiles; - private final Collection sourceJars; - - @VisibleForSerialization - JavaSourceInfoProvider(Collection sourceFiles, Collection sourceJars) { - this.sourceFiles = sourceFiles; - this.sourceJars = sourceJars; - } - - /** Gets the original Java source files provided as inputs to this rule. */ - public Collection getSourceFiles() { - return sourceFiles; - } - - /** - * Gets the original source jars provided as inputs to this rule. - * - *

These should contain Java source files, but can contain other files as well. - */ - public Collection getSourceJars() { - return sourceJars; - } - /** - * Constructs a JavaSourceInfoProvider using the sources in the given JavaTargetAttributes. - * - * @param attributes the object from which to draw the sources - * @param semantics semantics used to find the path for a resource within the jar - */ - public static JavaSourceInfoProvider fromJavaTargetAttributes( - JavaTargetAttributes attributes, JavaSemantics semantics) { - return new Builder() - .setSourceFiles(attributes.getSourceFiles()) - .setSourceJars(attributes.getSourceJars()) - .build(); - } - - public static JavaSourceInfoProvider merge(Collection sourceInfos) { - JavaSourceInfoProvider.Builder javaSourceInfo = new JavaSourceInfoProvider.Builder(); - ImmutableList.Builder sourceFiles = new ImmutableList.Builder<>(); - ImmutableList.Builder sourceJars = new ImmutableList.Builder<>(); - - for (JavaSourceInfoProvider sourceInfo : sourceInfos) { - sourceFiles.addAll(sourceInfo.getSourceFiles()); - sourceJars.addAll(sourceInfo.getSourceJars()); - } - javaSourceInfo.setSourceFiles(sourceFiles.build()); - javaSourceInfo.setSourceJars(sourceJars.build()); - return javaSourceInfo.build(); - } - - /** Builder class for constructing JavaSourceInfoProviders. */ - public static final class Builder { - private Collection sourceFiles = ImmutableList.of(); - private Collection sourceJars = ImmutableList.of(); - - /** Sets the source files included as part of the sources of this rule. */ - public Builder setSourceFiles(Collection sourceFiles) { - this.sourceFiles = Preconditions.checkNotNull(sourceFiles); - return this; - } - - /** Sets the source jars included as part of the sources of this rule. */ - public Builder setSourceJars(Collection sourceJars) { - this.sourceJars = Preconditions.checkNotNull(sourceJars); - return this; - } - - /** Constructs the JavaSourceInfoProvider from the provided Java sources. */ - public JavaSourceInfoProvider build() { - return new JavaSourceInfoProvider(sourceFiles, sourceJars); - } - } -} diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java index 98cf9174d7a641..1746b7c5448550 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java @@ -66,7 +66,6 @@ import com.google.devtools.build.lib.rules.java.JavaInfo; import com.google.devtools.build.lib.rules.java.JavaRuntimeInfo; import com.google.devtools.build.lib.rules.java.JavaSemantics; -import com.google.devtools.build.lib.rules.java.JavaSourceInfoProvider; import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraCompileArgs; import com.google.devtools.build.lib.rules.objc.J2ObjcSource.SourceType; import com.google.devtools.build.lib.rules.proto.ProtoCommon; @@ -315,33 +314,24 @@ private ConfiguredAspect java(ConfiguredTarget base, RuleContext ruleContext) throws InterruptedException, ActionConflictException { JavaCompilationArgsProvider compilationArgsProvider = JavaInfo.getProvider(JavaCompilationArgsProvider.class, base); - JavaSourceInfoProvider sourceInfoProvider = - JavaInfo.getProvider(JavaSourceInfoProvider.class, base); JavaGenJarsProvider genJarProvider = JavaInfo.getProvider(JavaGenJarsProvider.class, base); ImmutableSet.Builder javaSourceFilesBuilder = ImmutableSet.builder(); ImmutableSet.Builder javaSourceJarsBuilder = ImmutableSet.builder(); - if (ruleContext - .getConfiguration() - .getFragment(J2ObjcConfiguration.class) - .dontUseJavaSourceInfoProvider()) { - for (Artifact srcArtifact : ruleContext.getPrerequisiteArtifacts("srcs").list()) { - String srcFilename = srcArtifact.getExecPathString(); - if (JavaSemantics.SOURCE_JAR.apply(srcFilename)) { - javaSourceJarsBuilder.add(srcArtifact); - } else if (JavaSemantics.JAVA_SOURCE.apply(srcFilename)) { - javaSourceFilesBuilder.add(srcArtifact); - } - } - Artifact srcJar = - ruleContext.attributes().has("srcjar") - ? ruleContext.getPrerequisiteArtifact("srcjar") - : null; - if (srcJar != null) { - javaSourceJarsBuilder.add(srcJar); + + for (Artifact srcArtifact : ruleContext.getPrerequisiteArtifacts("srcs").list()) { + String srcFilename = srcArtifact.getExecPathString(); + if (JavaSemantics.SOURCE_JAR.apply(srcFilename)) { + javaSourceJarsBuilder.add(srcArtifact); + } else if (JavaSemantics.JAVA_SOURCE.apply(srcFilename)) { + javaSourceFilesBuilder.add(srcArtifact); } - } else if (sourceInfoProvider != null) { - javaSourceFilesBuilder.addAll(sourceInfoProvider.getSourceFiles()); - javaSourceJarsBuilder.addAll(sourceInfoProvider.getSourceJars()); + } + Artifact srcJar = + ruleContext.attributes().has("srcjar") + ? ruleContext.getPrerequisiteArtifact("srcjar") + : null; + if (srcJar != null) { + javaSourceJarsBuilder.add(srcJar); } if (genJarProvider != null && genJarProvider.getGenSourceJar() != null) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java index cafb306ca73e3f..f7457d93c4b7cb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java @@ -21,7 +21,6 @@ import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; import com.google.devtools.common.options.OptionEffectTag; -import com.google.devtools.common.options.OptionMetadataTag; import java.util.List; /** @@ -79,16 +78,4 @@ public class J2ObjcCommandLineOptions extends FragmentOptions { help = "Whether to generate with shorter header path (uses \"_ios\" instead of \"_j2objc\")." ) public boolean experimentalShorterHeaderPath; - - @Option( - name = "incompatible_dont_use_javasourceinfoprovider", - defaultValue = "false", - documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, - effectTags = {OptionEffectTag.UNKNOWN}, - metadataTags = { - OptionMetadataTag.INCOMPATIBLE_CHANGE, - OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES - }, - help = "Whether to use JavaSourceInfoProvider to collect sources or do so directly.") - public boolean dontUseJavaSourceInfoProvider; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java index a559915901d3b4..12b7016ebad6cd 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java @@ -70,7 +70,6 @@ public class J2ObjcConfiguration extends Fragment implements J2ObjcConfiguration private final boolean experimentalJ2ObjcHeaderMap; private final boolean experimentalShorterHeaderPath; @Nullable private final Label deadCodeReport; - private final boolean dontUseJavaSourceInfoProvider; public J2ObjcConfiguration(BuildOptions buildOptions) { J2ObjcCommandLineOptions j2ObjcOptions = buildOptions.get(J2ObjcCommandLineOptions.class); @@ -84,7 +83,6 @@ public J2ObjcConfiguration(BuildOptions buildOptions) { this.experimentalJ2ObjcHeaderMap = j2ObjcOptions.experimentalJ2ObjcHeaderMap; this.experimentalShorterHeaderPath = j2ObjcOptions.experimentalShorterHeaderPath; this.deadCodeReport = j2ObjcOptions.deadCodeReport; - this.dontUseJavaSourceInfoProvider = j2ObjcOptions.dontUseJavaSourceInfoProvider; } /** @@ -146,11 +144,6 @@ public boolean compileWithARC() { return translationFlags.contains(J2OBJC_USE_ARC_FLAG); } - /** Collect sources directly or use JavaSourceInfoProvider. */ - public boolean dontUseJavaSourceInfoProvider() { - return dontUseJavaSourceInfoProvider; - } - @Override public void reportInvalidOptions(EventHandler reporter, BuildOptions buildOptions) { if (!Collections.disjoint(translationFlags, J2OBJC_BLACKLISTED_TRANSLATION_FLAGS)) { diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java index 2459cefab9c6df..c3121cf4b55f50 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java @@ -39,7 +39,6 @@ import com.google.devtools.build.lib.rules.java.JavaInfo; import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider; import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider.OutputJar; -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.ProguardSpecProvider; import java.util.Collection; @@ -280,12 +279,6 @@ public void testSourceJarsProvided() throws Exception { assertThat(srcJars).hasSize(1); Artifact srcJar = Iterables.getOnlyElement(srcJars); assertThat(srcJar.getExecPathString()).endsWith("foo-src.jar"); - - Iterable srcInfoJars = - JavaInfo.getProvider(JavaSourceInfoProvider.class, aarImportTarget).getSourceJars(); - assertThat(srcInfoJars).hasSize(1); - Artifact srcInfoJar = Iterables.getOnlyElement(srcInfoJars); - assertThat(srcInfoJar.getExecPathString()).endsWith("foo-src.jar"); } @Test @@ -297,12 +290,6 @@ public void testSourceJarsCollectedTransitively() throws Exception { .getTransitiveSourceJars(); assertThat(ActionsTestUtil.baseArtifactNames(srcJars)) .containsExactly("foo-src.jar", "bar-src.jar"); - - Iterable srcInfoJars = - JavaInfo.getProvider(JavaSourceInfoProvider.class, aarImportTarget).getSourceJars(); - assertThat(srcInfoJars).hasSize(1); - Artifact srcInfoJar = Iterables.getOnlyElement(srcInfoJars); - assertThat(srcInfoJar.getExecPathString()).endsWith("bar-src.jar"); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaStarlarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaStarlarkApiTest.java index 9b805d5a497b60..13ed3a65017f92 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaStarlarkApiTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaStarlarkApiTest.java @@ -1741,34 +1741,6 @@ public void mergeRuntimeOutputJarsTest() throws Exception { assertThat(directJars).containsExactly("foo/liba.jar", "foo/libb.jar"); } - @Test - public void mergeSourceInfo() throws Exception { - scratch.file( - "foo/custom_library.bzl", - "def _impl(ctx):", - " java_provider = java_common.merge([dep[JavaInfo] for dep in ctx.attr.deps])", - " return [java_provider]", - "custom_library = rule(", - " attrs = {", - " 'deps': attr.label_list(),", - " 'strict_deps': attr.bool()", - " },", - " implementation = _impl", - ")"); - scratch.file( - "foo/BUILD", - "load(':custom_library.bzl', 'custom_library')", - "custom_library(name = 'custom', deps = [':a', ':b'])", - "java_import(name = 'a', jars = ['java/A.jar'], srcjar = 'java/A.srcjar')", - "java_import(name = 'b', jars = ['java/B.jar'], srcjar = 'java/B.srcjar')"); - - ConfiguredTarget myRuleTarget = getConfiguredTarget("//foo:custom"); - JavaSourceInfoProvider sourceInfo = - JavaInfo.getProvider(JavaSourceInfoProvider.class, myRuleTarget); - assertThat(prettyArtifactNames(sourceInfo.getSourceJars())) - .containsExactly("foo/java/A.srcjar", "foo/java/B.srcjar"); - } - @Test public void javaToolchainFlag_default() throws Exception { JavaToolchainTestUtil.writeBuildFileForJavaToolchain(scratch); diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java index e0e40a30b241cb..e2e35a25cae835 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java @@ -397,16 +397,14 @@ protected void checkObjcArchiveAndLinkActions( @Test public void testMissingEntryClassesError() throws Exception { - useConfiguration( - "--j2objc_dead_code_removal", "--incompatible_dont_use_javasourceinfoprovider"); + useConfiguration("--j2objc_dead_code_removal"); checkError("java/com/google/dummy", "transpile", J2ObjcLibrary.NO_ENTRY_CLASS_ERROR_MSG, "j2objc_library(name = 'transpile', deps = ['//java/com/google/dummy/test:test'])"); } @Test public void testNoJ2ObjcDeadCodeRemovalActionWithoutOptFlag() throws Exception { - useConfiguration( - "--noj2objc_dead_code_removal", "--incompatible_dont_use_javasourceinfoprovider"); + useConfiguration("--noj2objc_dead_code_removal"); addSimpleJ2ObjcLibraryWithEntryClasses(); addSimpleBinaryTarget("//java/com/google/app/test:transpile"); @@ -432,8 +430,7 @@ public void testExplicitJreDeps() throws Exception { @Test public void testTranspilationActionTreeArtifactOutputsFromSourceJar() throws Exception { - useConfiguration( - "--ios_cpu=i386", "--ios_minimum_os=1.0", "--incompatible_dont_use_javasourceinfoprovider"); + useConfiguration("--ios_cpu=i386", "--ios_minimum_os=1.0"); scratch.file("java/com/google/transpile/dummy.java"); scratch.file("java/com/google/transpile/dummyjar.srcjar"); scratch.file( @@ -461,8 +458,7 @@ public void testTranspilationActionTreeArtifactOutputsFromSourceJar() throws Exc @Test public void testGeneratedTreeArtifactFromGenJar() throws Exception { - useConfiguration( - "--ios_cpu=i386", "--ios_minimum_os=1.0", "--incompatible_dont_use_javasourceinfoprovider"); + useConfiguration("--ios_cpu=i386", "--ios_minimum_os=1.0"); addSimpleJ2ObjcLibraryWithJavaPlugin(); ConfiguredTarget j2objcLibraryTarget = getConfiguredTarget("//java/com/google/app/test:transpile"); @@ -734,8 +730,7 @@ public void testJ2ObjcAppearsInLinkArgs() throws Exception { @Test public void testArchiveLinkActionWithTreeArtifactFromGenJar() throws Exception { - useConfiguration( - "--ios_cpu=i386", "--ios_minimum_os=1.0", "--incompatible_dont_use_javasourceinfoprovider"); + useConfiguration("--ios_cpu=i386", "--ios_minimum_os=1.0"); addSimpleJ2ObjcLibraryWithJavaPlugin(); Artifact archive = j2objcArchive("//java/com/google/app/test:transpile", "test"); CommandAction archiveAction = (CommandAction) getGeneratingAction(archive); @@ -811,8 +806,7 @@ public void testJ2ObjCCustomModuleMap() throws Exception { @Test public void testModuleMapFromGenJarTreeArtifact() throws Exception { - useConfiguration( - "--ios_cpu=i386", "--ios_minimum_os=1.0", "--incompatible_dont_use_javasourceinfoprovider"); + useConfiguration("--ios_cpu=i386", "--ios_minimum_os=1.0"); addSimpleJ2ObjcLibraryWithJavaPlugin(); ConfiguredTarget j2objcLibraryTarget = getConfiguredTarget("//java/com/google/app/test:transpile"); @@ -894,8 +888,7 @@ public void testObjcCompileAction() throws Exception { @Test public void testObjcCompileArcAction() throws Exception { - useConfiguration( - "--j2objc_translation_flags=-use-arc", "--incompatible_dont_use_javasourceinfoprovider"); + useConfiguration("--j2objc_translation_flags=-use-arc"); Artifact archive = j2objcArchive("//java/com/google/dummy/test:transpile", "test"); CommandAction compileAction = getObjcCompileAction(archive, "test.o"); assertThat(baseArtifactNames(compileAction.getPossibleInputsForTesting())) @@ -1022,8 +1015,7 @@ public void testJ2ObjcTranspiledHeaderInCompilationAction() throws Exception { public void testProtoToolchainForJ2ObjcFlag() throws Exception { useConfiguration( "--proto_toolchain_for_java=//tools/proto/toolchains:java", - "--proto_toolchain_for_j2objc=//tools/j2objc:alt_j2objc_proto_toolchain", - "--incompatible_dont_use_javasourceinfoprovider"); + "--proto_toolchain_for_j2objc=//tools/j2objc:alt_j2objc_proto_toolchain"); scratch.file("tools/j2objc/proto_plugin_binary"); scratch.file("tools/j2objc/alt_proto_runtime.h"); @@ -1110,8 +1102,7 @@ public void testProtoToolchainForJ2ObjcFlag() throws Exception { @Test public void testJ2ObjcDeadCodeRemovalActionWithOptFlag() throws Exception { - useConfiguration( - "--j2objc_dead_code_removal", "--incompatible_dont_use_javasourceinfoprovider"); + useConfiguration("--j2objc_dead_code_removal"); addSimpleJ2ObjcLibraryWithEntryClasses(); addSimpleBinaryTarget("//java/com/google/app/test:transpile"); @@ -1175,11 +1166,7 @@ protected ImmutableList getActionsForInputsOfGeneratingActionT @Test public void testCompileActionTemplateFromGenJar() throws Exception { - useConfiguration( - "--apple_platform_type=ios", - "--cpu=ios_i386", - "--ios_minimum_os=1.0", - "--incompatible_dont_use_javasourceinfoprovider"); + useConfiguration("--apple_platform_type=ios", "--cpu=ios_i386", "--ios_minimum_os=1.0"); addSimpleJ2ObjcLibraryWithJavaPlugin(); Artifact archive = j2objcArchive("//java/com/google/app/test:transpile", "test"); CommandAction archiveAction = (CommandAction) getGeneratingAction(archive); diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryTest.java index db8e205a673a8e..02c5a1b6464a41 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryTest.java @@ -74,9 +74,7 @@ public final void setup() throws Exception { MockJ2ObjcSupport.setup(mockToolsConfig); MockProtoSupport.setup(mockToolsConfig); - useConfiguration( - "--incompatible_dont_use_javasourceinfoprovider", - "--proto_toolchain_for_java=//tools/proto/toolchains:java"); + useConfiguration("--proto_toolchain_for_java=//tools/proto/toolchains:java"); mockToolsConfig.create( "tools/proto/toolchains/BUILD",