Skip to content

Commit

Permalink
Remove JavaSourceInfoProvider
Browse files Browse the repository at this point in the history
The use of the provider has been behind the flag incompatible_dont_use_javasourceinfoprovider. The flag was flipped, tested. The provider can be removed.

PiperOrigin-RevId: 360608367
  • Loading branch information
comius authored and Copybara-Service committed Mar 3, 2021
1 parent 065423f commit 2cb919f
Show file tree
Hide file tree
Showing 20 changed files with 39 additions and 250 deletions.
Expand Up @@ -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
Expand Down
Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -214,8 +213,6 @@ public ConfiguredTarget create(RuleContext ruleContext)
NestedSet<Artifact> transitiveJavaSourceJars = transitiveJavaSourceJarBuilder.build();
JavaSourceJarsProvider javaSourceJarsProvider =
JavaSourceJarsProvider.create(transitiveJavaSourceJars, srcJars);
JavaSourceInfoProvider javaSourceInfoProvider =
new JavaSourceInfoProvider.Builder().setSourceJars(srcJars).build();

JavaInfo.Builder javaInfoBuilder =
JavaInfo.Builder.create()
Expand All @@ -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(
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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()))
Expand All @@ -259,7 +255,6 @@ public ConfiguredTarget create(RuleContext ruleContext)
builder.addNativeDeclaredProvider(aar.toProvider(ruleContext, definesLocalResources));
}


return builder.build();
}

Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/com/google/devtools/build/lib/rules/java/BUILD
Expand Up @@ -26,7 +26,6 @@ java_library(
"JavaRuntimeAliasRule.java",
"JavaRuntimeClasspathProvider.java",
"JavaRuntimeRule.java",
"JavaSourceInfoProvider.java",
"JavaStarlarkCommon.java",
"JavaToolchain.java",
"JavaToolchainAliasRule.java",
Expand Down Expand Up @@ -147,7 +146,6 @@ java_library(
"JavaRuleOutputJarsProvider.java",
"JavaRuntimeInfo.java",
"JavaSemantics.java",
"JavaSourceInfoProvider.java",
"JavaSourceJarsProvider.java",
"JavaStarlarkCommon.java",
"JavaTargetAttributes.java",
Expand Down
Expand Up @@ -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();

Expand Down
Expand Up @@ -113,9 +113,6 @@ public ConfiguredTarget create(RuleContext ruleContext)

NestedSet<Artifact> filesToBuild = filesBuilder.build();

JavaSourceInfoProvider javaSourceInfoProvider =
new JavaSourceInfoProvider.Builder().setSourceJars(srcJars).build();

JavaRuleOutputJarsProvider.Builder ruleOutputJarsProviderBuilder =
JavaRuleOutputJarsProvider.builder();
for (Artifact jar : jars) {
Expand All @@ -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))
Expand Down
Expand Up @@ -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();
}
Expand Down
Expand Up @@ -74,8 +74,7 @@ private static <T> T nullIfNone(Object object, Class<T> type) {
JavaPluginInfoProvider.class,
JavaGenJarsProvider.class,
JavaExportsProvider.class,
JavaCompilationInfoProvider.class,
JavaSourceInfoProvider.class);
JavaCompilationInfoProvider.class);

private final TransitiveInfoProviderMap providers;

Expand Down Expand Up @@ -125,8 +124,6 @@ public static JavaInfo merge(List<JavaInfo> providers) {
JavaInfo.fetchProvidersFromList(providers, JavaExportsProvider.class);
List<JavaRuleOutputJarsProvider> javaRuleOutputJarsProviders =
JavaInfo.fetchProvidersFromList(providers, JavaRuleOutputJarsProvider.class);
List<JavaSourceInfoProvider> sourceInfos =
JavaInfo.fetchProvidersFromList(providers, JavaSourceInfoProvider.class);

ImmutableList.Builder<Artifact> runtimeJars = ImmutableList.builder();
ImmutableList.Builder<String> javaConstraints = ImmutableList.builder();
Expand All @@ -147,7 +144,6 @@ public static JavaInfo merge(List<JavaInfo> 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())
Expand Down
Expand Up @@ -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)
Expand Down

This file was deleted.

Expand Up @@ -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;
Expand Down Expand Up @@ -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<Artifact> javaSourceFilesBuilder = ImmutableSet.builder();
ImmutableSet.Builder<Artifact> 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) {
Expand Down

0 comments on commit 2cb919f

Please sign in to comment.