aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2018-07-05 11:54:59 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-05 11:56:37 -0700
commit6e0466f2c9d76d1ad9c1ee8ef7b3013e002765f1 (patch)
treedeb76183d2d00f137f341b57e69f5ca199ac1e17 /src
parent55d0c1c649d3117f59e3d5d7b79de12d6b090381 (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java36
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java57
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java77
-rw-r--r--src/main/tools/jdk.BUILD8
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java6
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java9
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java21
-rw-r--r--src/test/py/bazel/windows_remote_test.py6
-rwxr-xr-xsrc/test/shell/integration/java_integration_test.sh3
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"