From 81a77e69a3e3bb9308d8bd72facea1e40b3c7bcf Mon Sep 17 00:00:00 2001 From: lpino Date: Mon, 20 Nov 2017 07:28:00 -0800 Subject: PiperOrigin-RevId: 176356590 --- src/main/java/com/google/devtools/build/lib/BUILD | 1 + .../lib/bazel/rules/BazelRuleClassProvider.java | 3 +- .../lib/bazel/rules/java/BazelJavaImportRule.java | 3 +- .../lib/bazel/rules/java/BazelJavaRuleClasses.java | 29 +----------- .../build/lib/rules/java/JavaRuleClasses.java | 55 ++++++++++++++++++++++ 5 files changed, 60 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java (limited to 'src/main/java/com') diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD index a84bae7a83..2baf5f3bc7 100644 --- a/src/main/java/com/google/devtools/build/lib/BUILD +++ b/src/main/java/com/google/devtools/build/lib/BUILD @@ -824,6 +824,7 @@ java_library( "rules/java/JavaNeverlinkInfoProvider.java", "rules/java/JavaOptions.java", "rules/java/JavaPluginInfoProvider.java", + "rules/java/JavaRuleClasses.java", "rules/java/JavaRuleOutputJarsProvider.java", "rules/java/JavaRunfilesProvider.java", "rules/java/JavaRuntimeInfo.java", diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java index 93c90f69ae..9842af69bb 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java @@ -119,6 +119,7 @@ import com.google.devtools.build.lib.rules.java.JavaConfigurationLoader; import com.google.devtools.build.lib.rules.java.JavaImportBaseRule; import com.google.devtools.build.lib.rules.java.JavaInfo; import com.google.devtools.build.lib.rules.java.JavaOptions; +import com.google.devtools.build.lib.rules.java.JavaRuleClasses.IjarBaseRule; import com.google.devtools.build.lib.rules.java.JavaRuntimeAlias; import com.google.devtools.build.lib.rules.java.JavaRuntimeRule; import com.google.devtools.build.lib.rules.java.JavaRuntimeSuiteRule; @@ -420,7 +421,7 @@ public class BazelRuleClassProvider { builder.addBuildInfoFactory(new BazelJavaBuildInfoFactory()); builder.addRuleDefinition(new BazelJavaRuleClasses.BaseJavaBinaryRule()); - builder.addRuleDefinition(new BazelJavaRuleClasses.IjarBaseRule()); + builder.addRuleDefinition(new IjarBaseRule()); builder.addRuleDefinition(new BazelJavaRuleClasses.JavaBaseRule()); builder.addRuleDefinition(new ProguardLibraryRule()); builder.addRuleDefinition(new JavaImportBaseRule()); 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 281605fd48..4b9601b00d 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 @@ -21,14 +21,13 @@ import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; -import com.google.devtools.build.lib.bazel.rules.java.BazelJavaRuleClasses.IjarBaseRule; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; 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. */ diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java index 5a83434e06..95ff1d00b7 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java @@ -30,7 +30,6 @@ import com.google.common.collect.ImmutableSet; 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.analysis.platform.ToolchainInfo; import com.google.devtools.build.lib.bazel.rules.cpp.BazelCppRuleClasses; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.Attribute; @@ -46,6 +45,7 @@ import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; import com.google.devtools.build.lib.packages.TriState; import com.google.devtools.build.lib.rules.cpp.CcLinkParamsInfo; import com.google.devtools.build.lib.rules.java.JavaInfo; +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.syntax.Type; import com.google.devtools.build.lib.util.FileTypeSet; @@ -93,33 +93,6 @@ public class BazelJavaRuleClasses { public static final ImmutableList> MANDATORY_JAVA_PROVIDER_ONLY = ImmutableList.of(CONTAINS_JAVA_PROVIDER); - - /** - * Common attributes for rules that depend on ijar. - */ - public static final class IjarBaseRule implements RuleDefinition { - @Override - public RuleClass build(Builder builder, RuleDefinitionEnvironment env) { - return builder - .add( - attr(":java_toolchain", LABEL) - .useOutputLicenses() - .mandatoryProviders(ToolchainInfo.PROVIDER.id()) - .value(JavaSemantics.JAVA_TOOLCHAIN)) - .setPreferredDependencyPredicate(JavaSemantics.JAVA_SOURCE) - .build(); - } - - @Override - public Metadata getMetadata() { - return RuleDefinition.Metadata.builder() - .name("$ijar_base_rule") - .type(RuleClassType.ABSTRACT) - .build(); - } - } - - /** * Common attributes for Java rules. */ diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java new file mode 100644 index 0000000000..834865a987 --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java @@ -0,0 +1,55 @@ +// 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.LABEL; + +import com.google.devtools.build.lib.analysis.RuleDefinition; +import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; +import com.google.devtools.build.lib.analysis.platform.ToolchainInfo; +import com.google.devtools.build.lib.packages.RuleClass; +import com.google.devtools.build.lib.packages.RuleClass.Builder; +import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; + +/** + * Common rule class definitions for Java rules. + */ +public class JavaRuleClasses { + /** + * Common attributes for rules that depend on ijar. + */ + public static final class IjarBaseRule implements RuleDefinition { + @Override + public RuleClass build(Builder builder, RuleDefinitionEnvironment env) { + return builder + .add( + attr(":java_toolchain", LABEL) + .useOutputLicenses() + .mandatoryProviders(ToolchainInfo.PROVIDER.id()) + .value(JavaSemantics.JAVA_TOOLCHAIN)) + .setPreferredDependencyPredicate(JavaSemantics.JAVA_SOURCE) + .build(); + } + + @Override + public Metadata getMetadata() { + return RuleDefinition.Metadata.builder() + .name("$ijar_base_rule") + .type(RuleClassType.ABSTRACT) + .build(); + } + } +} -- cgit v1.2.3