Skip to content

Commit

Permalink
Remove the flag experimental_java_common_create_provider_enabled_pack…
Browse files Browse the repository at this point in the history
…ages.

RELNOTES: None.
PiperOrigin-RevId: 262531954
  • Loading branch information
iirina authored and copybara-github committed Aug 9, 2019
1 parent fdced25 commit 760e1dd
Show file tree
Hide file tree
Showing 5 changed files with 4 additions and 150 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -115,19 +115,6 @@ public class StarlarkSemanticsOptions extends OptionsBase implements Serializabl
+ "pertaining to Google legacy code.")
public boolean experimentalGoogleLegacyApi;

// This flag is declared in StarlarkSemanticsOptions instead of JavaOptions because there is no
// way to retrieve the java configuration from the Java implementation of
// java_common.create_provider.
@Option(
name = "experimental_java_common_create_provider_enabled_packages",
converter = CommaSeparatedOptionListConverter.class,
defaultValue = "",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
metadataTags = {OptionMetadataTag.EXPERIMENTAL},
help = "Passes list of packages that can use the java_common.create_provider Starlark API.")
public List<String> experimentalJavaCommonCreateProviderEnabledPackages;

@Option(
name = "experimental_platforms_api",
defaultValue = "false",
Expand Down Expand Up @@ -711,8 +698,6 @@ public StarlarkSemantics toSkylarkSemantics() {
.experimentalCcSkylarkApiEnabledPackages(experimentalCcSkylarkApiEnabledPackages)
.experimentalEnableAndroidMigrationApis(experimentalEnableAndroidMigrationApis)
.experimentalGoogleLegacyApi(experimentalGoogleLegacyApi)
.experimentalJavaCommonCreateProviderEnabledPackages(
experimentalJavaCommonCreateProviderEnabledPackages)
.experimentalPlatformsApi(experimentalPlatformsApi)
.experimentalStarlarkConfigTransitions(experimentalStarlarkConfigTransitions)
.experimentalStarlarkUnusedInputsList(experimentalStarlarkUnusedInputsList)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import com.google.devtools.build.lib.syntax.SkylarkList;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.syntax.StarlarkSemantics;
import java.util.List;
import javax.annotation.Nullable;

/** A module that contains Skylark utilities for Java support. */
Expand Down Expand Up @@ -61,10 +60,11 @@ public JavaInfo create(
Environment environment)
throws EvalException {
if (environment.getSemantics().incompatibleDisallowLegacyJavaInfo()) {
checkCallPathInWhitelistedPackages(
environment.getSemantics(),
throw new EvalException(
location,
environment.getGlobals().getLabel().getPackageName());
"java_common.create_provider is deprecated and cannot be used when "
+ "--incompatible_disallow_legacy_javainfo is set. "
+ "Please migrate to the JavaInfo constructor.");
}
return JavaInfoBuildHelper.getInstance()
.create(
Expand Down Expand Up @@ -240,23 +240,6 @@ private NestedSet<Artifact> asArtifactNestedSet(Object o) throws EvalException {
.build();
}

/**
* Throws an {@link EvalException} if the given {@code callPath} is not listed under the {@code
* --experimental_java_common_create_provider_enabled_packages} flag.
*/
private static void checkCallPathInWhitelistedPackages(
StarlarkSemantics semantics, Location location, String callPath) throws EvalException {
List<String> whitelistedPackagesList =
semantics.experimentalJavaCommonCreateProviderEnabledPackages();
if (whitelistedPackagesList.stream().noneMatch(path -> callPath.startsWith(path))) {
throw new EvalException(
location,
"java_common.create_provider is deprecated and cannot be used when "
+ "--incompatible_disallow_legacy_javainfo is set. "
+ "Please migrate to the JavaInfo constructor.");
}
}

@Override
public boolean isJavaToolchainResolutionEnabled(SkylarkRuleContext ruleContext)
throws EvalException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,6 @@ public boolean flagValue(FlagIdentifier flagIdentifier) {

public abstract boolean experimentalGoogleLegacyApi();

public abstract ImmutableList<String> experimentalJavaCommonCreateProviderEnabledPackages();

public abstract boolean experimentalPlatformsApi();

public abstract boolean experimentalStarlarkConfigTransitions();
Expand Down Expand Up @@ -258,7 +256,6 @@ public static Builder builderWithDefaults() {
.experimentalAllowIncrementalRepositoryUpdates(true)
.experimentalEnableAndroidMigrationApis(false)
.experimentalGoogleLegacyApi(false)
.experimentalJavaCommonCreateProviderEnabledPackages(ImmutableList.of())
.experimentalPlatformsApi(false)
.experimentalStarlarkConfigTransitions(true)
.experimentalStarlarkUnusedInputsList(true)
Expand Down Expand Up @@ -318,8 +315,6 @@ public abstract static class Builder {

public abstract Builder experimentalGoogleLegacyApi(boolean value);

public abstract Builder experimentalJavaCommonCreateProviderEnabledPackages(List<String> value);

public abstract Builder experimentalPlatformsApi(boolean value);

public abstract Builder experimentalStarlarkConfigTransitions(boolean value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,10 +126,6 @@ private static StarlarkSemanticsOptions buildRandomOptions(Random rand) throws E
+ rand.nextDouble(),
"--experimental_enable_android_migration_apis=" + rand.nextBoolean(),
"--experimental_google_legacy_api=" + rand.nextBoolean(),
"--experimental_java_common_create_provider_enabled_packages="
+ rand.nextDouble()
+ ","
+ rand.nextDouble(),
"--experimental_platforms_api=" + rand.nextBoolean(),
"--experimental_starlark_config_transitions=" + rand.nextBoolean(),
"--experimental_starlark_unused_inputs_list=" + rand.nextBoolean(),
Expand Down Expand Up @@ -187,8 +183,6 @@ private static StarlarkSemantics buildRandomSemantics(Random rand) {
ImmutableList.of(String.valueOf(rand.nextDouble()), String.valueOf(rand.nextDouble())))
.experimentalEnableAndroidMigrationApis(rand.nextBoolean())
.experimentalGoogleLegacyApi(rand.nextBoolean())
.experimentalJavaCommonCreateProviderEnabledPackages(
ImmutableList.of(String.valueOf(rand.nextDouble()), String.valueOf(rand.nextDouble())))
.experimentalPlatformsApi(rand.nextBoolean())
.experimentalStarlarkConfigTransitions(rand.nextBoolean())
.experimentalStarlarkUnusedInputsList(rand.nextBoolean())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1881,109 +1881,6 @@ public void testIncompatibleDisallowLegacyJavaInfo() throws Exception {
")");
}

@Test
public void testIncompatibleDisallowLegacyJavaInfoWithFlag() throws Exception {
setSkylarkSemanticsOptions(
"--incompatible_disallow_legacy_javainfo",
"--experimental_java_common_create_provider_enabled_packages=java/test");
scratch.file(
"java/test/custom_rule.bzl",
"def _impl(ctx):",
" jar = ctx.file.jar",
" java_common.create_provider(",
" compile_time_jars = [jar],",
" transitive_compile_time_jars = [jar],",
" runtime_jars = [jar],",
" use_ijar = False,",
" )",
"java_custom_library = rule(",
" implementation = _impl,",
" attrs = {",
" 'jar': attr.label(allow_single_file = True),",
" }",
")");
scratch.file(
"java/test/BUILD",
"load(':custom_rule.bzl', 'java_custom_library')",
"java_custom_library(",
" name = 'custom',",
" jar = 'lib.jar'",
")");
assertThat(getConfiguredTarget("//java/test:custom")).isNotNull();
}

@Test
public void testIncompatibleDisallowLegacyJavaInfoOtherPackageWithFlag() throws Exception {
setSkylarkSemanticsOptions(
"--incompatible_disallow_legacy_javainfo",
"--experimental_java_common_create_provider_enabled_packages=java/package");
scratch.file(
"java/package/custom_rule.bzl",
"def _impl(ctx):",
" jar = ctx.file.jar",
" java_common.create_provider(",
" compile_time_jars = [jar],",
" transitive_compile_time_jars = [jar],",
" runtime_jars = [jar],",
" use_ijar = False,",
" )",
"custom_rule = rule(",
" implementation = _impl,",
" attrs = {",
" 'jar': attr.label(allow_single_file = True),",
" }",
")");
scratch.file(
"java/package/BUILD",
"load('//third_party/bazel_skylib:bzl_library.bzl', 'bzl_library')",
"bzl_library(name = 'custom_rule', srcs = ['custom_rule.bzl'])");
scratch.file(
"java/otherpackage/BUILD",
"load('//java/package:custom_rule.bzl', 'custom_rule')",
"custom_rule(",
" name = 'custom',",
" jar = 'lib.jar'",
")");
assertThat(getConfiguredTarget("//java/otherpackage:custom")).isNotNull();
}

@Test
public void testIncompatibleDisallowLegacyJavaInfoOtherPackageFailsWithFlag() throws Exception {
setSkylarkSemanticsOptions(
"--incompatible_disallow_legacy_javainfo",
"--experimental_java_common_create_provider_enabled_packages=java/otherpackage");
scratch.file(
"java/package/custom_rule.bzl",
"def _impl(ctx):",
" jar = ctx.file.jar",
" java_common.create_provider(",
" compile_time_jars = [jar],",
" transitive_compile_time_jars = [jar],",
" runtime_jars = [jar],",
" use_ijar = False,",
" )",
"custom_rule = rule(",
" implementation = _impl,",
" attrs = {",
" 'jar': attr.label(allow_single_file = True),",
" }",
")");
scratch.file(
"java/package/BUILD",
"load('//third_party/bazel_skylib:bzl_library.bzl', 'bzl_library')",
"bzl_library(name = 'custom_rule', srcs = ['custom_rule.bzl'])");
checkError(
"java/otherpackage",
"custom",
"java_common.create_provider is deprecated and cannot be used when "
+ "--incompatible_disallow_legacy_javainfo is set.",
"load('//java/package:custom_rule.bzl', 'custom_rule')",
"custom_rule(",
" name = 'custom',",
" jar = 'lib.jar'",
")");
}

private static boolean javaCompilationArgsHaveTheSameParent(
JavaCompilationArgsProvider args, JavaCompilationArgsProvider otherArgs) {
if (!nestedSetsOfArtifactHaveTheSameParent(
Expand Down

0 comments on commit 760e1dd

Please sign in to comment.