blob: 4f7e68760908334710512542a3ad03e8808e7180 [file] [log] [blame]
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
load("//tools/rules:build_defs.bzl", "DOCLINT_HTML_AND_SYNTAX")
load("//tools/rules:javadoc.bzl", "java_doc")
package(default_visibility = ["//visibility:public"])
java_doc(
name = "heron-spi-javadoc",
libs = [":heron-spi"],
pkgs = ["org/apache/heron/spi"],
title = "Heron Spi Documentation",
)
java_library(
name = "heron-spi",
srcs = glob([
"**/spi/common/**/*.java",
"**/spi/packing/**/*.java",
"**/spi/scheduler/**/*.java",
"**/spi/statefulstorage/**/*.java",
"**/spi/uploader/**/*.java",
"**/spi/utils/**/*.java",
"**/spi/statemgr/**/*.java",
"**/spi/metricsmgr/**/*.java",
]),
javacopts = DOCLINT_HTML_AND_SYNTAX,
resources = ["//:disclaimers"],
deps = [
"//heron/api/src/java:api-java-low-level",
"//heron/api/src/java:classification",
"//heron/common/src/java:basics-java",
"//heron/common/src/java:config-java",
"//heron/common/src/java:utils-java",
"//heron/proto:proto_ckptmgr_java",
"//heron/proto:proto_common_java",
"//heron/proto:proto_execution_state_java",
"//heron/proto:proto_packing_plan_java",
"//heron/proto:proto_physical_plan_java",
"//heron/proto:proto_scheduler_java",
"//heron/proto:proto_tmanager_java",
"//heron/proto:proto_topology_java",
"@com_google_protobuf//:protobuf_java",
"@maven//:com_google_guava_guava",
"@maven//:org_yaml_snakeyaml",
],
)
utils_deps_files = \
heron_java_proto_files() + [
":common-spi-java",
":statemgr-spi-java",
":scheduler-spi-java",
":statefulstorage-spi-java",
":packing-spi-java",
":metricsmgr-spi-java",
"//heron/common/src/java:basics-java",
"//heron/common/src/java:config-java",
"//heron/common/src/java:utils-java",
"//heron/api/src/java:api-java-low-level",
"@maven//:com_google_guava_guava",
]
scheduler_deps_files = \
heron_java_proto_files() + [
":common-spi-java",
":packing-spi-java",
"//heron/api/src/java:classification",
"//heron/common/src/java:config-java",
"@maven//:com_google_guava_guava",
]
statefulstorage_deps_files = \
heron_java_proto_files() + [
":common-spi-java",
"//heron/common/src/java:config-java",
]
packing_deps_files = [
"//heron/api/src/java:api-java-low-level",
":common-spi-java",
"//heron/api/src/java:classification",
"//heron/common/src/java:basics-java",
"//heron/common/src/java:config-java",
"//heron/proto:proto_packing_plan_java",
"//heron/proto:proto_topology_java",
"@maven//:com_google_guava_guava",
]
uploader_deps_files = [
":common-spi-java",
"//heron/common/src/java:config-java",
]
statemgr_deps_files = \
heron_java_proto_files() + [
":common-spi-java",
"//heron/api/src/java:classification",
"//heron/common/src/java:config-java",
"@maven//:com_google_guava_guava",
]
java_library(
name = "common-spi-java",
srcs = glob([
"**/spi/common/**/*.java",
]),
deps = [
"//heron/common/src/java:basics-java",
"//heron/common/src/java:config-java",
"@maven//:com_google_guava_guava",
],
)
java_library(
name = "utils-spi-java",
srcs = glob([
"**/spi/utils/**/*.java",
]),
deps = utils_deps_files,
)
java_library(
name = "packing-spi-java",
srcs = glob([
"**/spi/packing/**/*.java",
]),
deps = packing_deps_files,
)
java_library(
name = "scheduler-spi-java",
srcs = glob([
"**/spi/scheduler/**/*.java",
]),
deps = scheduler_deps_files,
)
java_library(
name = "statefulstorage-spi-java",
srcs = glob([
"**/spi/statefulstorage/**/*.java",
]),
deps = statefulstorage_deps_files,
)
java_library(
name = "shell-utils-java",
srcs = glob([
"**/spi/utils/ShellUtils.java",
]),
deps = ["@maven//:com_google_guava_guava"],
)
java_library(
name = "network-utils-java",
srcs = glob([
"**/spi/utils/NetworkUtils.java",
]),
deps = [
":common-spi-java",
":shell-utils-java",
"//heron/common/src/java:basics-java",
],
)
java_library(
name = "uploader-spi-java",
srcs = glob([
"**/spi/uploader/**/*.java",
]),
deps = uploader_deps_files,
)
java_library(
name = "uploader-utils-java",
srcs = glob([
"**/spi/utils/UploaderUtils.java",
]),
deps = uploader_deps_files,
)
java_library(
name = "metricsmgr-spi-java",
srcs = glob(
["**/spi/metricsmgr/**/*.java"],
),
)
java_library(
name = "statemgr-spi-java",
srcs = glob(
["**/spi/statemgr/**/*.java"],
),
deps = statemgr_deps_files,
)
java_binary(
name = "spi-unshaded",
srcs = glob([
"**/spi/common/**/*.java",
"**/spi/metricsmgr/**/*.java",
"**/spi/packing/**/*.java",
"**/spi/scheduler/**/*.java",
"**/spi/statefulstorage/**/*.java",
"**/spi/statemgr/**/*.java",
"**/spi/uploader/**/*.java",
"**/spi/utils/**/*.java",
]),
deps = [
"//heron/api/src/java:classification",
] + utils_deps_files,
)
genrule(
name = "heron-spi-jar",
srcs = [":spi-unshaded_deploy.jar"],
outs = ["heron-spi.jar"],
cmd = "cp $< $@",
)