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 bae621a6f97ab1..d40417e625342d 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 @@ -47,7 +47,7 @@ import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidLocalTestRule; import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidSdkRule; import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidSemantics; -import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidToolsDefaultsJar; +import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidToolsDefaultsJarRule; import com.google.devtools.build.lib.bazel.rules.android.BazelDexArchiveAspect; import com.google.devtools.build.lib.bazel.rules.android.BazelSdkToolchainRule; import com.google.devtools.build.lib.bazel.rules.java.proto.BazelJavaLiteProtoLibraryRule; @@ -93,7 +93,7 @@ import com.google.devtools.build.lib.rules.android.AndroidProguardInfo; import com.google.devtools.build.lib.rules.android.AndroidResourcesInfo; import com.google.devtools.build.lib.rules.android.AndroidRuleClasses; -import com.google.devtools.build.lib.rules.android.AndroidRuleClasses.AndroidToolsDefaultsJarRule; +import com.google.devtools.build.lib.rules.android.AndroidRuleClasses.AndroidBaseToolsDefaultsJarRule; import com.google.devtools.build.lib.rules.android.AndroidSdkBaseRule; import com.google.devtools.build.lib.rules.android.AndroidSdkProvider; import com.google.devtools.build.lib.rules.android.AndroidStarlarkCommon; @@ -388,8 +388,8 @@ public void init(ConfiguredRuleClassProvider.Builder builder) { builder.addRuleDefinition(new AndroidSdkBaseRule()); builder.addRuleDefinition(new BazelAndroidSdkRule()); - builder.addRuleDefinition( - new AndroidToolsDefaultsJarRule(BazelAndroidToolsDefaultsJar.class)); + builder.addRuleDefinition(new AndroidBaseToolsDefaultsJarRule()); + builder.addRuleDefinition(new BazelAndroidToolsDefaultsJarRule()); builder.addRuleDefinition(new AndroidRuleClasses.AndroidBaseRule()); builder.addRuleDefinition(new AndroidRuleClasses.AndroidResourceSupportRule()); builder.addRuleDefinition( diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidToolsDefaultsJarRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidToolsDefaultsJarRule.java new file mode 100644 index 00000000000000..84a6ba8fe9a3aa --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidToolsDefaultsJarRule.java @@ -0,0 +1,37 @@ +// Copyright 2023 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.bazel.rules.android; + +import com.google.devtools.build.lib.analysis.RuleDefinition; +import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; +import com.google.devtools.build.lib.packages.RuleClass; +import com.google.devtools.build.lib.rules.android.AndroidRuleClasses; + +/** Rule class definition for {@code android_tools_defaults_jar}. */ +public class BazelAndroidToolsDefaultsJarRule implements RuleDefinition { + @Override + public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment environment) { + return builder.build(); + } + + @Override + public Metadata getMetadata() { + return RuleDefinition.Metadata.builder() + .name("android_tools_defaults_jar") + .ancestors( + AndroidRuleClasses.AndroidBaseToolsDefaultsJarRule.class, BazelSdkToolchainRule.class) + .factoryClass(BazelAndroidToolsDefaultsJar.class) + .build(); + } +} diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java index b320cd233fd6db..e5eaba200f3b7a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java @@ -975,13 +975,7 @@ public static List getValidValues() { } /** Definition of the {@code android_tools_defaults_jar} rule. */ - public static final class AndroidToolsDefaultsJarRule implements RuleDefinition { - - private final Class factoryClass; - - public AndroidToolsDefaultsJarRule(Class factoryClass) { - this.factoryClass = factoryClass; - } + public static final class AndroidBaseToolsDefaultsJarRule implements RuleDefinition { @Override public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment environment) { @@ -997,9 +991,9 @@ public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment envi @Override public Metadata getMetadata() { return Metadata.builder() - .name("android_tools_defaults_jar") + .name("$android_base_tools_defaults_jar") + .type(RuleClassType.ABSTRACT) .ancestors(BaseRuleClasses.NativeBuildRule.class) - .factoryClass(factoryClass) .build(); } }