diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 000000000..9b59fdf83 --- /dev/null +++ b/.bazelrc @@ -0,0 +1,2 @@ +build --java_language_version=17 +build --java_runtime_version=17 \ No newline at end of file diff --git a/WORKSPACE b/WORKSPACE index c7b0fa56d..c483b5e5f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -41,6 +41,18 @@ rules_jvm_external_deps() load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") rules_jvm_external_setup() +# For additional rulesets like java_test_suite +http_archive( + name = "contrib_rules_jvm", + sha256 = "2412e22bc1eb9d3a5eae15180f304140f1aad3f8184dbd99c845fafde0964559", + strip_prefix = "rules_jvm-0.24.0", + urls = ["https://github.com/bazel-contrib/rules_jvm/releases/download/v0.24.0/rules_jvm-v0.24.0.tar.gz"], +) +load("@contrib_rules_jvm//:repositories.bzl", "contrib_rules_jvm_deps") +contrib_rules_jvm_deps() +load("@contrib_rules_jvm//:setup.bzl", "contrib_rules_jvm_setup") +contrib_rules_jvm_setup() + # For Scala support http_archive( name = "io_bazel_rules_scala", diff --git a/service_commons/BUILD.bazel b/service_commons/BUILD.bazel new file mode 100644 index 000000000..481f9552f --- /dev/null +++ b/service_commons/BUILD.bazel @@ -0,0 +1,63 @@ +java_library( + name = "lib", + srcs = glob(["src/main/**/*.java"]), + visibility = ["//visibility:public"], + deps = SCALA_DEPS + [ + "//api:lib", + "//online:lib", + maven_artifact("io.vertx:vertx-core"), + maven_artifact("io.vertx:vertx-web"), + maven_artifact("io.vertx:vertx-web-client"), + maven_artifact("io.vertx:vertx-config"), + maven_artifact("io.vertx:vertx-micrometer-metrics"), + maven_artifact("ch.qos.logback:logback-classic"), + maven_artifact("com.typesafe:config"), + maven_artifact("io.netty:netty-all"), + maven_artifact("io.micrometer:micrometer-registry-statsd"), + maven_artifact("io.micrometer:micrometer-core"), + maven_artifact("com.fasterxml.jackson.core:jackson-databind"), + maven_artifact("org.slf4j:slf4j-api"), + ], +) + +java_library( + name = "test-lib", + srcs = glob(["src/test/**/*.java"]), + visibility = ["//visibility:public"], + deps = [ + ":lib", + "//api:lib", + "//api:thrift", + "//online:lib", + # Libraries + maven_artifact("io.vertx:vertx-core"), + maven_artifact("io.vertx:vertx-web"), + maven_artifact("io.vertx:vertx-web-client"), + # Testing + maven_artifact("io.vertx:vertx-junit5"), + maven_artifact("org.junit.jupiter:junit-jupiter-api"), + ], +) + +java_test_suite( + name = "test", + srcs = glob(["src/test/**/*.java"]), + visibility = ["//visibility:public"], + runner = "junit5", + deps = [ + ":lib", + ":test-lib", + "//api:lib", + "//api:thrift", + "//online:lib", + # Libraries + maven_artifact("io.vertx:vertx-core"), + maven_artifact("io.vertx:vertx-web"), + maven_artifact("io.vertx:vertx-web-client"), + # Testing + maven_artifact("io.vertx:vertx-junit5"), + maven_artifact("org.junit.jupiter:junit-jupiter-api"), + maven_artifact("org.junit.platform:junit-platform-launcher"), + maven_artifact("org.junit.platform:junit-platform-reporting"), + ], +) \ No newline at end of file diff --git a/service_commons/src/main/java/ai/chronon/service/ChrononServiceLauncher.java b/service_commons/src/main/java/ai/chronon/service/ChrononServiceLauncher.java index 1ea4e2aac..e4a42c51d 100644 --- a/service_commons/src/main/java/ai/chronon/service/ChrononServiceLauncher.java +++ b/service_commons/src/main/java/ai/chronon/service/ChrononServiceLauncher.java @@ -30,11 +30,11 @@ public void beforeStartingVertx(VertxOptions options) { private final String statsdHost = Metrics.Context$.MODULE$.statsHost(); private final String statsdPort = String.valueOf(Metrics.Context$.MODULE$.statsPort()); - final Map statsProps = new HashMap() {{ - put(prefix() + "." + "port", statsdPort); - put(prefix() + "." + "host", statsdHost); - put(prefix() + "." + "protocol", Integer.parseInt(statsdPort) == 0 ? "UDS_DATAGRAM" : "UDP"); - }}; + final Map statsProps = new HashMap<>(Map.of( + prefix() + "." + "port", statsdPort, + prefix() + "." + "host", statsdHost, + prefix() + "." + "protocol", Integer.parseInt(statsdPort) == 0 ? "UDS_DATAGRAM" : "UDP" + )); @Override public String get(String key) { diff --git a/tools/build_rules/dependencies/maven_repository.bzl b/tools/build_rules/dependencies/maven_repository.bzl index 1c57ee61d..1fd9bea0c 100644 --- a/tools/build_rules/dependencies/maven_repository.bzl +++ b/tools/build_rules/dependencies/maven_repository.bzl @@ -13,6 +13,9 @@ maven_repository = repository( # JUnit "junit:junit:4.13.2", + "org.junit.jupiter:junit-jupiter-api:5.10.5", + "org.junit.platform:junit-platform-launcher:1.10.5", + "org.junit.platform:junit-platform-reporting:1.10.5", "com.novocode:junit-interface:0.11", "org.scalatestplus:mockito-3-4_2.12:3.2.10.0", "org.mockito:mockito-core:4.6.1", @@ -45,11 +48,22 @@ maven_repository = repository( "org.yaml:snakeyaml:2.3", "commons-io:commons-io:2.9.0", "commons-lang:commons-lang:2.6", - "io.netty:netty-all:4.1.99.Final", + "io.netty:netty-all:4.1.111.Final", "io.delta:delta-spark_2.12:3.2.0", + "ch.qos.logback:logback-classic:1.5.6", + "com.typesafe:config:1.4.3", + "io.micrometer:micrometer-registry-statsd:1.13.6", # Kafka "org.apache.kafka:kafka-clients:3.9.0", + + # Vertx + "io.vertx:vertx-core:4.5.10", + "io.vertx:vertx-web:4.5.10", + "io.vertx:vertx-web-client:4.5.10", + "io.vertx:vertx-config:4.5.10", + "io.vertx:vertx-micrometer-metrics:4.5.10", + "io.vertx:vertx-junit5:4.5.10", ], overrides = { }, diff --git a/tools/build_rules/prelude_bazel b/tools/build_rules/prelude_bazel index 41c2dffa4..ae397b59c 100644 --- a/tools/build_rules/prelude_bazel +++ b/tools/build_rules/prelude_bazel @@ -3,5 +3,12 @@ load("//tools/build_rules:common.bzl", "jar", "scala_jar") load("//tools/build_rules:jvm_binary.bzl", "jvm_binary") +load("@rules_java//java:defs.bzl", "java_library") +load("@contrib_rules_jvm//docs:stardoc-input.bzl", "java_test_suite") load("@io_bazel_rules_scala//scala:scala.bzl", "scala_library", "scala_test_suite") -load("//tools/build_rules:maven_artifact.bzl", "maven_artifact", "scala_artifact") \ No newline at end of file +load("//tools/build_rules:maven_artifact.bzl", "maven_artifact", "scala_artifact") + +SCALA_DEPS = [ + "@io_bazel_rules_scala_scala_library_2_12_18//:io_bazel_rules_scala_scala_library_2_12_18", + # other scala related deps... +] \ No newline at end of file