diff options
author | cushon <cushon@google.com> | 2018-07-05 11:54:59 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-05 11:56:37 -0700 |
commit | 6e0466f2c9d76d1ad9c1ee8ef7b3013e002765f1 (patch) | |
tree | deb76183d2d00f137f341b57e69f5ca199ac1e17 /src | |
parent | 55d0c1c649d3117f59e3d5d7b79de12d6b090381 (diff) |
Remove support for java_runtime_suite
RELNOTES: Remove support for java_runtime_suite; use alias() together with select() instead.
PiperOrigin-RevId: 203393253
Diffstat (limited to 'src')
11 files changed, 25 insertions, 202 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD index 5d7b548914..fedf4990a2 100644 --- a/src/main/java/com/google/devtools/build/lib/BUILD +++ b/src/main/java/com/google/devtools/build/lib/BUILD @@ -929,8 +929,6 @@ java_library( "rules/java/JavaRuntimeAliasRule.java", "rules/java/JavaRuntimeClasspathProvider.java", "rules/java/JavaRuntimeRule.java", - "rules/java/JavaRuntimeSuite.java", - "rules/java/JavaRuntimeSuiteRule.java", "rules/java/JavaSkylarkCommon.java", "rules/java/JavaSourceInfoProvider.java", "rules/java/JavaToolchain.java", diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java index 84f16611f8..0ce84233b2 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java @@ -37,7 +37,6 @@ import com.google.devtools.build.lib.rules.java.JavaPackageConfigurationRule; import com.google.devtools.build.lib.rules.java.JavaRuleClasses.IjarBaseRule; import com.google.devtools.build.lib.rules.java.JavaRuntimeAliasRule; import com.google.devtools.build.lib.rules.java.JavaRuntimeRule; -import com.google.devtools.build.lib.rules.java.JavaRuntimeSuiteRule; import com.google.devtools.build.lib.rules.java.JavaSkylarkCommon; import com.google.devtools.build.lib.rules.java.JavaToolchainAliasRule; import com.google.devtools.build.lib.rules.java.JavaToolchainRule; @@ -78,7 +77,6 @@ public class JavaRules implements RuleSet { builder.addRuleDefinition(JavaToolchainRule.create(BazelJavaToolchain.class)); builder.addRuleDefinition(new JavaPackageConfigurationRule()); builder.addRuleDefinition(new JavaRuntimeRule()); - builder.addRuleDefinition(new JavaRuntimeSuiteRule()); builder.addRuleDefinition(new JavaRuntimeAliasRule()); builder.addRuleDefinition(new JavaHostRuntimeAliasRule()); builder.addRuleDefinition(new JavaToolchainAliasRule()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java index b794bcbc51..9245257c01 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java @@ -74,16 +74,15 @@ public class JavaOptions extends FragmentOptions { } @Option( - name = "javabase", - defaultValue = "@bazel_tools//tools/jdk:jdk", - converter = LabelConverter.class, - documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, - effectTags = {OptionEffectTag.UNKNOWN}, - help = - "JAVABASE used for the JDK invoked by Blaze. This is the " - + "java_runtime_suite which will be used to execute " - + "external Java commands." - ) + name = "javabase", + defaultValue = "@bazel_tools//tools/jdk:jdk", + converter = LabelConverter.class, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.UNKNOWN}, + help = + "JAVABASE used for the JDK invoked by Blaze. This is the " + + "java_runtime which will be used to execute " + + "external Java commands.") public Label javaBase; @Option( @@ -107,15 +106,14 @@ public class JavaOptions extends FragmentOptions { public Label hostJavaToolchain; @Option( - name = "host_javabase", - defaultValue = "@bazel_tools//tools/jdk:host_jdk", - converter = LabelConverter.class, - documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, - effectTags = {OptionEffectTag.UNKNOWN}, - help = - "JAVABASE used for the host JDK. This is the java_runtime_suite which is used to execute " - + "tools during a build." - ) + name = "host_javabase", + defaultValue = "@bazel_tools//tools/jdk:host_jdk", + converter = LabelConverter.class, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.UNKNOWN}, + help = + "JAVABASE used for the host JDK. This is the java_runtime which is used to execute " + + "tools during a build.") public Label hostJavaBase; @Option( diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java deleted file mode 100644 index f1c895f473..0000000000 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2017 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.devtools.build.lib.actions.MutableActionGraph.ActionConflictException; -import com.google.devtools.build.lib.analysis.ConfiguredTarget; -import com.google.devtools.build.lib.analysis.FileProvider; -import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; -import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory; -import com.google.devtools.build.lib.analysis.RuleContext; -import com.google.devtools.build.lib.analysis.RunfilesProvider; -import com.google.devtools.build.lib.analysis.TemplateVariableInfo; -import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; -import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode; - -/** Implementation for the {@code java_runtime_suite} rule. */ -public class JavaRuntimeSuite implements RuleConfiguredTargetFactory { - @Override - public ConfiguredTarget create(RuleContext ruleContext) - throws InterruptedException, RuleErrorException, ActionConflictException { - TransitiveInfoCollection runtime = - ruleContext.getPrerequisiteMap("runtimes").get(ruleContext.getConfiguration().getCpu()); - if (runtime == null) { - runtime = ruleContext.getPrerequisite("default", Mode.TARGET); - } - - if (runtime == null) { - ruleContext.throwWithRuleError( - "could not resolve runtime for cpu " + ruleContext.getConfiguration().getCpu()); - } - - JavaRuntimeInfo javaRuntimeInfo = JavaRuntimeInfo.from(runtime, ruleContext); - - TemplateVariableInfo templateVariableInfo = - runtime.get(TemplateVariableInfo.PROVIDER); - - return new RuleConfiguredTargetBuilder(ruleContext) - .addNativeDeclaredProvider(javaRuntimeInfo) - .addNativeDeclaredProvider(new JavaRuntimeToolchainInfo(javaRuntimeInfo)) - .addProvider(RunfilesProvider.class, runtime.getProvider(RunfilesProvider.class)) - .addNativeDeclaredProvider(templateVariableInfo) - .setFilesToBuild(runtime.getProvider(FileProvider.class).getFilesToBuild()) - .build(); - } -} diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java deleted file mode 100644 index 1b7c437771..0000000000 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2017 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 static com.google.devtools.build.lib.packages.Attribute.attr; -import static com.google.devtools.build.lib.packages.BuildType.LICENSE; - -import com.google.devtools.build.lib.analysis.BaseRuleClasses; -import com.google.devtools.build.lib.analysis.RuleDefinition; -import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; -import com.google.devtools.build.lib.packages.BuildType; -import com.google.devtools.build.lib.packages.RuleClass; -import com.google.devtools.build.lib.util.FileTypeSet; - -/** Rule definition for {@code java_runtime_suite} */ -public final class JavaRuntimeSuiteRule implements RuleDefinition { - @Override - public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) { - return builder - /* <!-- #BLAZE_RULE(java_runtime_suite).ATTRIBUTE(runtimes) --> - A map from each supported architecture to the corresponding <code>java_runtime</code>. - <!-- #END_BLAZE_RULE.ATTRIBUTE --> */ - .add(attr("runtimes", BuildType.LABEL_DICT_UNARY).allowedFileTypes(FileTypeSet.NO_FILE)) - /* <!-- #BLAZE_RULE(java_runtime_suite).ATTRIBUTE(default) --> - The default <code>java_runtime</code>, used if - <a href="${link java_runtime_suite.runtimes}"><code>runtimes</code></a> - does not contain an entry for the configured architecture. - <!-- #END_BLAZE_RULE.ATTRIBUTE --> */ - .add( - attr("default", BuildType.LABEL) - .mandatoryProviders(JavaRuntimeInfo.PROVIDER.id()) - .allowedFileTypes(FileTypeSet.NO_FILE)) - .add(attr("output_licenses", LICENSE)) - .build(); - } - - @Override - public Metadata getMetadata() { - return RuleDefinition.Metadata.builder() - .name("java_runtime_suite") - .ancestors(BaseRuleClasses.BaseRule.class) - .factoryClass(JavaRuntimeSuite.class) - .build(); - } -} -/*<!-- #BLAZE_RULE (NAME = java_runtime_suite, TYPE = OTHER, FAMILY = Java) --> - -<p> -Specifies the configuration for the Java runtimes for each architecture. -</p> - -<h4 id="java_runtime_suite">Example:</h4> - -<pre class="code"> -java_runtime_suite( - name = "jdk9", - runtimes = { - "k8": ":jdk9-k8", - "ppc": ":jdk9-ppc", - "arm": ":jdk9-arm", - }, -) -</pre> - -<!-- #END_BLAZE_RULE -->*/ diff --git a/src/main/tools/jdk.BUILD b/src/main/tools/jdk.BUILD index 48df3b6e7e..8500c864e2 100644 --- a/src/main/tools/jdk.BUILD +++ b/src/main/tools/jdk.BUILD @@ -141,14 +141,8 @@ filegroup( ]), ) -java_runtime_suite( - name = "jdk", - runtimes = {}, - default = ":jdk-default", -) - java_runtime( - name = "jdk-default", + name = "jdk", srcs = [ ":jdk-bin", ":jdk-include", diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java index a176758fe2..298bfc0c2d 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java @@ -92,13 +92,12 @@ public final class BazelAnalysisMock extends AnalysisMock { " genclass = ['GenClass_deploy.jar'],", " ijar = ['ijar'],", ")", - "java_runtime(name = 'jdk-default', srcs = [])", + "java_runtime(name = 'jdk', srcs = [])", + "java_runtime(name = 'host_jdk', srcs = [])", "java_runtime_alias(name = 'current_java_runtime')", // This isn't actually the host runtime, but will do. This way, we don't need to pull in the // Skylark implementation of the java_host_runtime_alias rule. "java_runtime_alias(name = 'current_host_java_runtime')", - "java_runtime_suite(name = 'jdk', runtimes = {}, default = ':jdk-default')", - "java_runtime_suite(name = 'host_jdk', runtimes = {}, default = ':jdk-default')", "filegroup(name='langtools', srcs=['jdk/lib/tools.jar'])", "filegroup(name='bootclasspath', srcs=['jdk/jre/lib/rt.jar'])", "filegroup(name='extdir', srcs=glob(['jdk/jre/lib/ext/*']))", @@ -111,7 +110,6 @@ public final class BazelAnalysisMock extends AnalysisMock { " 'turbine_deploy.jar','ExperimentalTestRunner_deploy.jar'])", "sh_binary(name = 'proguard_whitelister', srcs = ['empty.sh'])"); - ImmutableList<String> androidBuildContents = createAndroidBuildContents(); config.create( "/bazel_tools_workspace/tools/android/BUILD", diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java index cd5eaf171c..d1c5b02dc7 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java @@ -53,7 +53,6 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { scratch.file("a/BUILD", "load(':rule.bzl', 'jrule')", "java_runtime(name='jvm', srcs=[], java_home='/foo/bar/')", - "java_runtime_suite(name='suite', default=':jvm')", "java_runtime_alias(name='alias')", "jrule(name='r')"); @@ -67,7 +66,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { ")", "jrule = rule(_impl, attrs = { '_java_runtime': attr.label(default=Label('//a:alias'))})"); - useConfiguration("--javabase=//a:suite"); + useConfiguration("--javabase=//a:jvm"); ConfiguredTarget ct = getConfiguredTarget("//a:r"); @SuppressWarnings("unchecked") PathFragment javaExecutable = (PathFragment) ct.get("java_executable"); @@ -82,7 +81,6 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { scratch.file("a/BUILD", "load(':rule.bzl', 'jrule')", "java_runtime(name='jvm', srcs=[], java_home='foo/bar')", - "java_runtime_suite(name='suite', default=':jvm')", "java_runtime_alias(name='alias')", "jrule(name='r')"); @@ -96,7 +94,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { ")", "jrule = rule(_impl, attrs = { '_java_runtime': attr.label(default=Label('//a:alias'))})"); - useConfiguration("--javabase=//a:suite"); + useConfiguration("--javabase=//a:jvm"); ConfiguredTarget ct = getConfiguredTarget("//a:r"); @SuppressWarnings("unchecked") PathFragment javaExecutable = (PathFragment) ct.get("java_executable"); @@ -111,7 +109,6 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { scratch.file("a/BUILD", "load(':rule.bzl', 'jrule')", "java_runtime(name='jvm', srcs=[], java_home='/foo/bar/')", - "java_runtime_suite(name='suite', default=':jvm')", "java_runtime_alias(name='alias')", "jrule(name='r')"); @@ -124,7 +121,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { ")", "jrule = rule(_impl, attrs = { '_java_runtime': attr.label(default=Label('//a:alias'))})"); - useConfiguration("--javabase=//a:suite"); + useConfiguration("--javabase=//a:jvm"); ConfiguredTarget ct = getConfiguredTarget("//a:r"); @SuppressWarnings("unchecked") PathFragment javaHome = (PathFragment) ct.get("java_home"); diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java index 9b13ccde09..eb6767ef48 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java @@ -2008,27 +2008,6 @@ public class SkylarkRuleContextTest extends SkylarkTestCase { assertThat((Boolean) result).isTrue(); } - @Test - public void testStringKeyedLabelDictAttributeInSkylarkRuleContext() throws Exception { - scratch.file("jvm/BUILD", - "java_runtime(name='runtime', srcs=[], java_home='')", - "java_runtime_suite(", - " name = 'suite',", - " runtimes = {'x86': ':runtime'},", - " default = ':runtime',", - ")"); - - invalidatePackages(); - SkylarkRuleContext ruleContext = createRuleContext("//jvm:suite"); - assertNoEvents(); - String keyString = - (String) evalRuleContextCode(ruleContext, "ruleContext.attr.runtimes.keys()[0]"); - assertThat(keyString).isEqualTo("x86"); - Label valueLabel = - (Label) evalRuleContextCode(ruleContext, "ruleContext.attr.runtimes.values()[0]"); - assertThat(valueLabel).isEqualTo(Label.parseAbsolute("//jvm:runtime", ImmutableMap.of())); - } - // A list of attributes and methods ctx objects have private final List<String> ctxAttributes = ImmutableList.of( "attr", diff --git a/src/test/py/bazel/windows_remote_test.py b/src/test/py/bazel/windows_remote_test.py index e962ce590d..a717b03581 100644 --- a/src/test/py/bazel/windows_remote_test.py +++ b/src/test/py/bazel/windows_remote_test.py @@ -179,12 +179,8 @@ class WindowsRemoteTest(test_base.TestBase): ' use_testrunner = 0,', ' data = ["//bar:bar.txt"],', ')', - 'java_runtime_suite(', - ' name = "jdk8",', - ' default = ":jdk8-default",', - ')', 'java_runtime(', - ' name = "jdk8-default",', + ' name = "jdk8",', ' srcs = [],', ' java_home = "' + java_home + '",', ')', diff --git a/src/test/shell/integration/java_integration_test.sh b/src/test/shell/integration/java_integration_test.sh index e93faf7f7f..a1b4f15e42 100755 --- a/src/test/shell/integration/java_integration_test.sh +++ b/src/test/shell/integration/java_integration_test.sh @@ -254,14 +254,13 @@ function assert_singlejar_works() { mkdir -p "$pkg/jvm" cat > "$pkg/jvm/BUILD" <<EOF package(default_visibility=["//visibility:public"]) -java_runtime_suite(name='suite', default=':runtime') java_runtime(name='runtime', java_home='$javabase') EOF # Set javabase to an absolute path. bazel build //$pkg/java/hello:hello //$pkg/java/hello:hello_deploy.jar \ - "$stamp_arg" --javabase="//$pkg/jvm:suite" "$embed_label" >&"$TEST_log" \ + "$stamp_arg" --javabase="//$pkg/jvm:runtime" "$embed_label" >&"$TEST_log" \ || fail "Build failed" mkdir $pkg/ugly/ || fail "mkdir failed" |