ray/java/BUILD.bazel

232 lines
5.9 KiB
Text
Raw Normal View History

load("//bazel:ray.bzl", "define_java_module")
2019-11-08 15:58:28 -08:00
load("@rules_proto_grpc//java:defs.bzl", "java_proto_compile")
exports_files([
"testng.xml",
"checkstyle.xml",
"checkstyle-suppressions.xml",
"streaming/testng.xml",
])
all_modules = [
"api",
"runtime",
"test",
"tutorial",
"streaming",
]
java_import(
name = "all_modules",
jars = [
"liborg_ray_ray_" + module + ".jar" for module in all_modules
] + [
"liborg_ray_ray_" + module + "-src.jar" for module in all_modules
] + [
"all_tests_deploy.jar",
"all_tests_deploy-src.jar",
"streaming_tests_deploy.jar",
"streaming_tests_deploy-src.jar",
],
deps = [
":org_ray_ray_" + module for module in all_modules
] + [
":all_tests",
":streaming_tests",
],
)
define_java_module(
name = "api",
deps = [
"@maven//:org_slf4j_slf4j_log4j12",
"@maven//:log4j_log4j",
"@maven//:javax_xml_bind_jaxb_api",
"@maven//:com_sun_xml_bind_jaxb_core",
"@maven//:com_sun_xml_bind_jaxb_impl",
],
)
define_java_module(
name = "runtime",
additional_srcs = [
":all_java_proto",
],
exclude_srcs = [
"runtime/src/main/java/org/ray/runtime/generated/*.java",
],
additional_resources = [
":java_native_deps",
],
define_test_lib = True,
test_deps = [
":org_ray_ray_api",
":org_ray_ray_runtime",
"@maven//:org_apache_commons_commons_lang3",
"@maven//:com_beust_jcommander",
"@maven//:org_testng_testng",
"@maven//:commons_io_commons_io",
],
deps = [
":org_ray_ray_api",
"@maven//:com_google_guava_guava",
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:com_typesafe_config",
"@maven//:commons_io_commons_io",
"@maven//:de_ruedigermoeller_fst",
"@maven//:org_apache_commons_commons_lang3",
"@maven//:org_ow2_asm_asm",
"@maven//:org_slf4j_slf4j_api",
"@maven//:org_slf4j_slf4j_log4j12",
"@maven//:redis_clients_jedis",
],
)
define_java_module(
name = "tutorial",
deps = [
":org_ray_ray_api",
":org_ray_ray_runtime",
"@maven//:com_google_guava_guava",
],
)
define_java_module(
name = "test",
deps = [
":org_ray_ray_api",
":org_ray_ray_runtime",
"@maven//:com_google_guava_guava",
"@maven//:com_sun_xml_bind_jaxb_core",
"@maven//:com_sun_xml_bind_jaxb_impl",
"@maven//:commons_io_commons_io",
"@maven//:javax_xml_bind_jaxb_api",
"@maven//:org_apache_commons_commons_lang3",
"@maven//:org_slf4j_slf4j_api",
"@maven//:org_testng_testng",
],
)
define_java_module(
name = "streaming",
deps = [
":org_ray_ray_api",
":org_ray_ray_runtime",
"@maven//:com_google_guava_guava",
"@maven//:org_slf4j_slf4j_api",
"@maven//:org_slf4j_slf4j_log4j12",
],
define_test_lib = True,
test_deps = [
":org_ray_ray_api",
":org_ray_ray_runtime",
":org_ray_ray_streaming",
"@maven//:com_beust_jcommander",
"@maven//:com_google_guava_guava",
"@maven//:org_slf4j_slf4j_api",
"@maven//:org_slf4j_slf4j_log4j12",
"@maven//:org_testng_testng",
],
)
java_binary(
name = "all_tests",
main_class = "org.testng.TestNG",
data = ["testng.xml"],
args = ["java/testng.xml"],
runtime_deps = [
":org_ray_ray_test",
":org_ray_ray_runtime_test",
],
)
java_binary(
name = "streaming_tests",
main_class = "org.testng.TestNG",
data = ["streaming/testng.xml"],
args = ["java/streaming/testng.xml"],
runtime_deps = [
":org_ray_ray_streaming_test",
],
)
java_proto_compile(
name = "common_java_proto",
deps = ["@//:common_proto"],
)
java_proto_compile(
name = "gcs_java_proto",
deps = ["@//:gcs_proto"],
)
filegroup(
name = "all_java_proto",
srcs = [
":common_java_proto",
":gcs_java_proto",
],
)
filegroup(
name = "java_native_deps",
srcs = [
"//:redis-server",
"//:libray_redis_module.so",
"//:raylet",
"//:core_worker_library_java",
"@plasma//:plasma_store_server",
],
)
# Generates the depedencies needed by maven.
genrule(
name = "gen_maven_deps",
srcs = [
":all_java_proto",
":java_native_deps",
":copy_pom_file",
],
outs = ["gen_maven_deps.out"],
cmd = """
set -x
WORK_DIR=$$(pwd)
# Copy protobuf-generated files.
rm -rf $$WORK_DIR/java/runtime/src/main/java/org/ray/runtime/generated
for f in $(locations //java:all_java_proto); do
unzip $$f -x META-INF/MANIFEST.MF -d $$WORK_DIR/java/runtime/src/main/java
done
# Copy native dependecies.
NATIVE_DEPS_DIR=$$WORK_DIR/java/runtime/native_dependencies/
rm -rf $$NATIVE_DEPS_DIR
mkdir -p $$NATIVE_DEPS_DIR
for f in $(locations //java:java_native_deps); do
chmod +w $$f
cp $$f $$NATIVE_DEPS_DIR
done
echo $$(date) > $@
""",
local = 1,
tags = ["no-cache"],
)
genrule(
name = "copy_pom_file",
srcs = [
"//java:org_ray_ray_" + module + "_pom" for module in all_modules
],
outs = ["copy_pom_file.out"],
cmd = """
set -x
WORK_DIR=$$(pwd)
cp -f $(location //java:org_ray_ray_api_pom) $$WORK_DIR/java/api/pom.xml
cp -f $(location //java:org_ray_ray_runtime_pom) $$WORK_DIR/java/runtime/pom.xml
cp -f $(location //java:org_ray_ray_tutorial_pom) $$WORK_DIR/java/tutorial/pom.xml
cp -f $(location //java:org_ray_ray_test_pom) $$WORK_DIR/java/test/pom.xml
cp -f $(location //java:org_ray_ray_streaming_pom) $$WORK_DIR/java/streaming/pom.xml
echo $$(date) > $@
""",
local = 1,
tags = ["no-cache"],
)