#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#
load("//bazel:GenTestRules.bzl", "GenTestRules")

java_library(
    name = "acl",
    srcs = glob(["src/main/java/**/*.java"]),
    visibility = ["//visibility:public"],
    deps = [
        "//common",
        "//remoting",
        "//srvutil",
        "@maven//:com_alibaba_fastjson",
        "@maven//:com_github_luben_zstd_jni",
        "@maven//:com_google_guava_guava",
        "@maven//:com_google_protobuf_protobuf_java",
        "@maven//:commons_codec_commons_codec",
        "@maven//:commons_validator_commons_validator",
        "@maven//:io_netty_netty_all",
        "@maven//:org_apache_commons_commons_lang3",
        "@maven//:org_apache_rocketmq_rocketmq_proto",
        "@maven//:org_lz4_lz4_java",
        "@maven//:org_yaml_snakeyaml",
        "@maven//:io_github_aliyunmq_rocketmq_slf4j_api",
        "@maven//:io_github_aliyunmq_rocketmq_logback_classic",
    ],
)

java_library(
    name = "tests",
    srcs = glob(["src/test/java/**/*.java"]),
    resources = glob(["src/test/resources/**/*.yml"]),
    visibility = ["//visibility:public"],
    deps = [
        ":acl",
        "//:test_deps",
        "//common",
        "//remoting",
        "@maven//:com_alibaba_fastjson",
        "@maven//:com_google_guava_guava",
        "@maven//:commons_codec_commons_codec",
        "@maven//:io_netty_netty_all",
        "@maven//:org_apache_commons_commons_lang3",
        "@maven//:org_springframework_spring_core",
        "@maven//:org_yaml_snakeyaml",
    ],
)

GenTestRules(
    name = "GeneratedTestRules",
    # The following tests are not hermetic. Fix them later.
    exclude_tests = [
    ],
    medium_tests = [
        "src/test/java/org/apache/rocketmq/acl/plain/PlainAccessValidatorTest",
    ],
    test_files = glob(["src/test/java/**/*Test.java"]),
    deps = [
        ":tests",
    ],
)
