From cc8f8061c51bff5b4ee72518b8f1ac87ddcb8df3 Mon Sep 17 00:00:00 2001 From: Rodrigo Queiro Date: Thu, 1 Mar 2018 13:32:32 +0100 Subject: [PATCH] Add Bazel build files for the tutorial (#269) This also allows other Bazel projects to include rosjava_core as an external repository, as instructed in README.md. This uses https://github.com/johnynek/bazel-deps to describe the Maven dependencies. As a result, 3rdparty/ contains autogenerated files, and the other files contain a hand-written description of the BUILD. --- .gitignore | 2 +- 3rdparty/BUILD | 0 3rdparty/jvm/com/google/code/findbugs/BUILD | 12 +++ 3rdparty/jvm/com/google/guava/BUILD | 15 ++++ 3rdparty/jvm/commons_pool/BUILD | 12 +++ 3rdparty/jvm/dnsjava/BUILD | 15 ++++ 3rdparty/jvm/io/netty/BUILD | 12 +++ 3rdparty/jvm/junit/BUILD | 12 +++ 3rdparty/jvm/org/apache/commons/BUILD | 76 +++++++++++++++++++ 3rdparty/jvm/org/apache/ws/commons/BUILD | 16 ++++ 3rdparty/jvm/org/mockito/BUILD | 12 +++ 3rdparty/jvm/org/ros/rosjava_bootstrap/BUILD | 33 ++++++++ 3rdparty/jvm/org/ros/rosjava_messages/BUILD | 31 ++++++++ 3rdparty/jvm/xml_apis/BUILD | 12 +++ 3rdparty/workspace.bzl | 37 +++++++++ README.md | 41 ++++++++++ WORKSPACE | 9 +++ apache_xmlrpc_client/BUILD.bazel | 15 ++++ apache_xmlrpc_common/BUILD.bazel | 11 +++ apache_xmlrpc_server/BUILD.bazel | 11 +++ bazel/BUILD.bazel | 0 bazel/repositories.bzl | 19 +++++ dependencies.yaml | 80 ++++++++++++++++++++ rosjava/BUILD.bazel | 20 +++++ rosjava_tutorial_pubsub/BUILD.bazel | 13 ++++ 25 files changed, 515 insertions(+), 1 deletion(-) create mode 100644 3rdparty/BUILD create mode 100644 3rdparty/jvm/com/google/code/findbugs/BUILD create mode 100644 3rdparty/jvm/com/google/guava/BUILD create mode 100644 3rdparty/jvm/commons_pool/BUILD create mode 100644 3rdparty/jvm/dnsjava/BUILD create mode 100644 3rdparty/jvm/io/netty/BUILD create mode 100644 3rdparty/jvm/junit/BUILD create mode 100644 3rdparty/jvm/org/apache/commons/BUILD create mode 100644 3rdparty/jvm/org/apache/ws/commons/BUILD create mode 100644 3rdparty/jvm/org/mockito/BUILD create mode 100644 3rdparty/jvm/org/ros/rosjava_bootstrap/BUILD create mode 100644 3rdparty/jvm/org/ros/rosjava_messages/BUILD create mode 100644 3rdparty/jvm/xml_apis/BUILD create mode 100644 3rdparty/workspace.bzl create mode 100644 WORKSPACE create mode 100644 apache_xmlrpc_client/BUILD.bazel create mode 100644 apache_xmlrpc_common/BUILD.bazel create mode 100644 apache_xmlrpc_server/BUILD.bazel create mode 100644 bazel/BUILD.bazel create mode 100644 bazel/repositories.bzl create mode 100644 dependencies.yaml create mode 100644 rosjava/BUILD.bazel create mode 100644 rosjava_tutorial_pubsub/BUILD.bazel diff --git a/.gitignore b/.gitignore index de7bf26a8..0c6a6f929 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,4 @@ bin .settings *.iml .idea - +bazel-* diff --git a/3rdparty/BUILD b/3rdparty/BUILD new file mode 100644 index 000000000..e69de29bb diff --git a/3rdparty/jvm/com/google/code/findbugs/BUILD b/3rdparty/jvm/com/google/code/findbugs/BUILD new file mode 100644 index 000000000..2a23982e6 --- /dev/null +++ b/3rdparty/jvm/com/google/code/findbugs/BUILD @@ -0,0 +1,12 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "jsr305", + exports = [ + "//external:jar/com/google/code/findbugs/jsr305" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/com/google/guava/BUILD b/3rdparty/jvm/com/google/guava/BUILD new file mode 100644 index 000000000..3cb65a2e3 --- /dev/null +++ b/3rdparty/jvm/com/google/guava/BUILD @@ -0,0 +1,15 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "guava", + exports = [ + "//external:jar/com/google/guava/guava" + ], + runtime_deps = [ + "//3rdparty/jvm/com/google/code/findbugs:jsr305" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/commons_pool/BUILD b/3rdparty/jvm/commons_pool/BUILD new file mode 100644 index 000000000..0bbfd10c7 --- /dev/null +++ b/3rdparty/jvm/commons_pool/BUILD @@ -0,0 +1,12 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "commons_pool", + exports = [ + "//external:jar/commons_pool/commons_pool" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/dnsjava/BUILD b/3rdparty/jvm/dnsjava/BUILD new file mode 100644 index 000000000..7ac97e03d --- /dev/null +++ b/3rdparty/jvm/dnsjava/BUILD @@ -0,0 +1,15 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "dnsjava", + exports = [ + "//external:jar/dnsjava/dnsjava" + ], + runtime_deps = [ + "//3rdparty/jvm/junit:junit" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/io/netty/BUILD b/3rdparty/jvm/io/netty/BUILD new file mode 100644 index 000000000..42fed0c4a --- /dev/null +++ b/3rdparty/jvm/io/netty/BUILD @@ -0,0 +1,12 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "netty", + exports = [ + "//external:jar/io/netty/netty" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/junit/BUILD b/3rdparty/jvm/junit/BUILD new file mode 100644 index 000000000..7be4bd966 --- /dev/null +++ b/3rdparty/jvm/junit/BUILD @@ -0,0 +1,12 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "junit", + exports = [ + "//external:jar/junit/junit" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/org/apache/commons/BUILD b/3rdparty/jvm/org/apache/commons/BUILD new file mode 100644 index 000000000..3c6c77d78 --- /dev/null +++ b/3rdparty/jvm/org/apache/commons/BUILD @@ -0,0 +1,76 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "com_springsource_org_apache_commons_codec", + exports = [ + "//external:jar/org/apache/commons/com_springsource_org_apache_commons_codec" + ], + visibility = [ + "//visibility:public" + ] +) + + + +java_library( + name = "com_springsource_org_apache_commons_httpclient", + exports = [ + "//external:jar/org/apache/commons/com_springsource_org_apache_commons_httpclient" + ], + runtime_deps = [ + ":com_springsource_org_apache_commons_codec", + ":com_springsource_org_apache_commons_logging" + ], + visibility = [ + "//visibility:public" + ] +) + + + +java_library( + name = "com_springsource_org_apache_commons_io", + exports = [ + "//external:jar/org/apache/commons/com_springsource_org_apache_commons_io" + ], + visibility = [ + "//visibility:public" + ] +) + + + +java_library( + name = "com_springsource_org_apache_commons_lang", + exports = [ + "//external:jar/org/apache/commons/com_springsource_org_apache_commons_lang" + ], + visibility = [ + "//visibility:public" + ] +) + + + +java_library( + name = "com_springsource_org_apache_commons_logging", + exports = [ + "//external:jar/org/apache/commons/com_springsource_org_apache_commons_logging" + ], + visibility = [ + "//visibility:public" + ] +) + + + +java_library( + name = "com_springsource_org_apache_commons_net", + exports = [ + "//external:jar/org/apache/commons/com_springsource_org_apache_commons_net" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/org/apache/ws/commons/BUILD b/3rdparty/jvm/org/apache/ws/commons/BUILD new file mode 100644 index 000000000..c538d3b9e --- /dev/null +++ b/3rdparty/jvm/org/apache/ws/commons/BUILD @@ -0,0 +1,16 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "ws_commons_util", + exports = [ + "//external:jar/org/apache/ws/commons/ws_commons_util" + ], + runtime_deps = [ + "//3rdparty/jvm/junit:junit", + "//3rdparty/jvm/xml_apis:xml_apis" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/org/mockito/BUILD b/3rdparty/jvm/org/mockito/BUILD new file mode 100644 index 000000000..025c073b3 --- /dev/null +++ b/3rdparty/jvm/org/mockito/BUILD @@ -0,0 +1,12 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "mockito_all", + exports = [ + "//external:jar/org/mockito/mockito_all" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/org/ros/rosjava_bootstrap/BUILD b/3rdparty/jvm/org/ros/rosjava_bootstrap/BUILD new file mode 100644 index 000000000..b74ab7035 --- /dev/null +++ b/3rdparty/jvm/org/ros/rosjava_bootstrap/BUILD @@ -0,0 +1,33 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "gradle_plugins", + exports = [ + "//external:jar/org/ros/rosjava_bootstrap/gradle_plugins" + ], + visibility = [ + "//visibility:public" + ] +) + + + +java_library( + name = "message_generation", + exports = [ + "//external:jar/org/ros/rosjava_bootstrap/message_generation" + ], + runtime_deps = [ + "//3rdparty/jvm/com/google/guava:guava", + "//3rdparty/jvm/commons_pool:commons_pool", + "//3rdparty/jvm/io/netty:netty", + "//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_codec", + "//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_io", + "//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_lang", + ":gradle_plugins" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/org/ros/rosjava_messages/BUILD b/3rdparty/jvm/org/ros/rosjava_messages/BUILD new file mode 100644 index 000000000..c0c6fb5ae --- /dev/null +++ b/3rdparty/jvm/org/ros/rosjava_messages/BUILD @@ -0,0 +1,31 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "rosgraph_msgs", + exports = [ + "//external:jar/org/ros/rosjava_messages/rosgraph_msgs" + ], + runtime_deps = [ + "//3rdparty/jvm/org/ros/rosjava_bootstrap:message_generation", + ":std_msgs" + ], + visibility = [ + "//visibility:public" + ] +) + + + +java_library( + name = "std_msgs", + exports = [ + "//external:jar/org/ros/rosjava_messages/std_msgs" + ], + runtime_deps = [ + "//3rdparty/jvm/org/ros/rosjava_bootstrap:message_generation" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/jvm/xml_apis/BUILD b/3rdparty/jvm/xml_apis/BUILD new file mode 100644 index 000000000..473c5ce2f --- /dev/null +++ b/3rdparty/jvm/xml_apis/BUILD @@ -0,0 +1,12 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. +java_library( + name = "xml_apis", + exports = [ + "//external:jar/xml_apis/xml_apis" + ], + visibility = [ + "//visibility:public" + ] +) + + diff --git a/3rdparty/workspace.bzl b/3rdparty/workspace.bzl new file mode 100644 index 000000000..4fbcb05bf --- /dev/null +++ b/3rdparty/workspace.bzl @@ -0,0 +1,37 @@ +# Do not edit. bazel-deps autogenerates this file from dependencies.yaml. + +def declare_maven(hash): + native.maven_jar( + name = hash["name"], + artifact = hash["artifact"], + sha1 = hash["sha1"], + repository = hash["repository"] + ) + native.bind( + name = hash["bind"], + actual = hash["actual"] + ) + +def maven_dependencies(callback = declare_maven): + callback({"artifact": "com.google.code.findbugs:jsr305:1.3.9", "lang": "java", "sha1": "40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf", "repository": "https://jcenter.bintray.com/", "name": "com_google_code_findbugs_jsr305", "actual": "@com_google_code_findbugs_jsr305//jar", "bind": "jar/com/google/code/findbugs/jsr305"}) + callback({"artifact": "com.google.guava:guava:12.0", "lang": "java", "sha1": "5bc66dd95b79db1e437eb08adba124a3e4088dc0", "repository": "https://jcenter.bintray.com/", "name": "com_google_guava_guava", "actual": "@com_google_guava_guava//jar", "bind": "jar/com/google/guava/guava"}) + callback({"artifact": "commons-pool:commons-pool:1.6", "lang": "java", "sha1": "4572d589699f09d866a226a14b7f4323c6d8f040", "repository": "https://jcenter.bintray.com/", "name": "commons_pool_commons_pool", "actual": "@commons_pool_commons_pool//jar", "bind": "jar/commons_pool/commons_pool"}) + callback({"artifact": "dnsjava:dnsjava:2.1.1", "lang": "java", "sha1": "5708df81cf6dbff545695f0be6380b7bbc85accc", "repository": "https://jcenter.bintray.com/", "name": "dnsjava_dnsjava", "actual": "@dnsjava_dnsjava//jar", "bind": "jar/dnsjava/dnsjava"}) + callback({"artifact": "io.netty:netty:3.5.13.Final", "lang": "java", "sha1": "389edea561995909d5df3e70fb2c49954ac79a54", "repository": "https://jcenter.bintray.com/", "name": "io_netty_netty", "actual": "@io_netty_netty//jar", "bind": "jar/io/netty/netty"}) +# duplicates in junit:junit fixed to 4.8.2 +# - org.apache.ws.commons:ws-commons-util:1.0.1 wanted version 3.8.1 +# - dnsjava:dnsjava:2.1.1 wanted version 3.8.2 + callback({"artifact": "junit:junit:4.8.2", "lang": "java", "sha1": "c94f54227b08100974c36170dcb53329435fe5ad", "repository": "https://jcenter.bintray.com/", "name": "junit_junit", "actual": "@junit_junit//jar", "bind": "jar/junit/junit"}) + callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.codec:1.3.0", "lang": "java", "sha1": "f8690570eb0913d750262bb4223eed30b0d619ed", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_codec", "actual": "@org_apache_commons_com_springsource_org_apache_commons_codec//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_codec"}) + callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.httpclient:3.1.0", "lang": "java", "sha1": "c493a925a091ac3d8f449d9265fe12482dabb2a7", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_httpclient", "actual": "@org_apache_commons_com_springsource_org_apache_commons_httpclient//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_httpclient"}) + callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.io:1.4.0", "lang": "java", "sha1": "51097cd000ec88214ff181c9f059947de1cf4a35", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_io", "actual": "@org_apache_commons_com_springsource_org_apache_commons_io//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_io"}) + callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.lang:2.4.0", "lang": "java", "sha1": "686e3713650c8e3a5d98723b4d3e239586bf9822", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_lang", "actual": "@org_apache_commons_com_springsource_org_apache_commons_lang//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_lang"}) + callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.logging:1.1.1", "lang": "java", "sha1": "7657caf2c78e1d79c74d36f2ae128a115f7cc180", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_logging", "actual": "@org_apache_commons_com_springsource_org_apache_commons_logging//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_logging"}) + callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.net:2.0.0", "lang": "java", "sha1": "03e78766072ff5a5cf3f5431d973c430c94ec612", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_net", "actual": "@org_apache_commons_com_springsource_org_apache_commons_net//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_net"}) + callback({"artifact": "org.apache.ws.commons:ws-commons-util:1.0.1", "lang": "java", "sha1": "126e80ff798fece634bc94e61f8be8a8da00be60", "repository": "https://jcenter.bintray.com/", "name": "org_apache_ws_commons_ws_commons_util", "actual": "@org_apache_ws_commons_ws_commons_util//jar", "bind": "jar/org/apache/ws/commons/ws_commons_util"}) + callback({"artifact": "org.mockito:mockito-all:1.8.5", "lang": "java", "sha1": "a927d8ae3b8d22eb745a74f94e59ce3882f2b524", "repository": "https://jcenter.bintray.com/", "name": "org_mockito_mockito_all", "actual": "@org_mockito_mockito_all//jar", "bind": "jar/org/mockito/mockito_all"}) + callback({"artifact": "org.ros.rosjava_bootstrap:gradle_plugins:0.3.0", "lang": "java", "sha1": "9915d897f3b5049e99b268068978a1bca0ae7b5d", "repository": "https://github.com/rosjava/rosjava_mvn_repo/raw/master", "name": "org_ros_rosjava_bootstrap_gradle_plugins", "actual": "@org_ros_rosjava_bootstrap_gradle_plugins//jar", "bind": "jar/org/ros/rosjava_bootstrap/gradle_plugins"}) + callback({"artifact": "org.ros.rosjava_bootstrap:message_generation:0.3.0", "lang": "java", "sha1": "5141e448f0ea6a2d6f539219d4fc9b296ff07ca4", "repository": "https://github.com/rosjava/rosjava_mvn_repo/raw/master", "name": "org_ros_rosjava_bootstrap_message_generation", "actual": "@org_ros_rosjava_bootstrap_message_generation//jar", "bind": "jar/org/ros/rosjava_bootstrap/message_generation"}) + callback({"artifact": "org.ros.rosjava_messages:rosgraph_msgs:1.11.2", "lang": "java", "sha1": "adb731dd5181976b23c217872f61c724a3af70fe", "repository": "https://github.com/rosjava/rosjava_mvn_repo/raw/master", "name": "org_ros_rosjava_messages_rosgraph_msgs", "actual": "@org_ros_rosjava_messages_rosgraph_msgs//jar", "bind": "jar/org/ros/rosjava_messages/rosgraph_msgs"}) + callback({"artifact": "org.ros.rosjava_messages:std_msgs:0.5.11", "lang": "java", "sha1": "a0191f0506dfecfc471eb199a119691717801c0e", "repository": "https://github.com/rosjava/rosjava_mvn_repo/raw/master", "name": "org_ros_rosjava_messages_std_msgs", "actual": "@org_ros_rosjava_messages_std_msgs//jar", "bind": "jar/org/ros/rosjava_messages/std_msgs"}) + callback({"artifact": "xml-apis:xml-apis:1.0.b2", "lang": "java", "sha1": "3136ca936f64c9d68529f048c2618bd356bf85c9", "repository": "https://jcenter.bintray.com/", "name": "xml_apis_xml_apis", "actual": "@xml_apis_xml_apis//jar", "bind": "jar/xml_apis/xml_apis"}) diff --git a/README.md b/README.md index 163d4e982..f90106472 100644 --- a/README.md +++ b/README.md @@ -60,3 +60,44 @@ code. The CLA protects you and us. Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Damon will respond on either github or email to confirm. + +### Building with Bazel ### + +To build this project with Bazel, simply run: + +``` +bazel build //... +``` + +To depend on `rosjava_core` from another project, you'll need to use +[bazel-deps](https://github.com/johnynek/bazel-deps). + +1. Start by copying (or merging) [dependencies.yaml][dependencies.yaml] in to + your project. +1. Follow the instructions in that file to generate the BUILD files inside your + project. +1. Add the following lines to your WORKSPACE file: + +``` +load("//3rdparty:workspace.bzl", "maven_dependencies") + +maven_dependencies() + +git_repository( + name = "com_github_rosjava_rosjava_core", + commit = "{insert commit SHA for HEAD}", + remote = "https://github.com/rosjava/rosjava_core.git", +) + +load("@com_github_rosjava_rosjava_core//bazel:repositories.bzl", "rosjava_repositories") + +rosjava_repositories() +``` + +*You may want to use `http_archive` instead of `git_repository` for the reasons +described in the [Bazel docs][git-repository-docs].* + +[git-repository-docs]: https://docs.bazel.build/versions/master/be/workspace.html#git_repository + +You can now depend on rosjava targets (eg +`@com_github_rosjava_rosjava_core//rosjava`) as required by your application. diff --git a/WORKSPACE b/WORKSPACE new file mode 100644 index 000000000..d946ad272 --- /dev/null +++ b/WORKSPACE @@ -0,0 +1,9 @@ +workspace(name = "com_github_rosjava_rosjava_core") + +load("//3rdparty:workspace.bzl", "maven_dependencies") + +maven_dependencies() + +load("//bazel:repositories.bzl", "rosjava_repositories") + +rosjava_repositories() diff --git a/apache_xmlrpc_client/BUILD.bazel b/apache_xmlrpc_client/BUILD.bazel new file mode 100644 index 000000000..bcc5505cd --- /dev/null +++ b/apache_xmlrpc_client/BUILD.bazel @@ -0,0 +1,15 @@ +java_library( + name = "apache_xmlrpc_client", + srcs = glob([ + "src/main/**/*.java", + ]), + resources = glob([ + "src/main/resources/**", + ]), + visibility = ["//visibility:public"], + deps = [ + "//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_httpclient", + "//3rdparty/jvm/org/apache/ws/commons:ws_commons_util", + "//apache_xmlrpc_common", + ], +) diff --git a/apache_xmlrpc_common/BUILD.bazel b/apache_xmlrpc_common/BUILD.bazel new file mode 100644 index 000000000..2f2417a4f --- /dev/null +++ b/apache_xmlrpc_common/BUILD.bazel @@ -0,0 +1,11 @@ +java_library( + name = "apache_xmlrpc_common", + srcs = glob([ + "src/main/**/*.java", + ]), + visibility = ["//visibility:public"], + deps = [ + "//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_httpclient", + "//3rdparty/jvm/org/apache/ws/commons:ws_commons_util", + ], +) diff --git a/apache_xmlrpc_server/BUILD.bazel b/apache_xmlrpc_server/BUILD.bazel new file mode 100644 index 000000000..d0c438ce6 --- /dev/null +++ b/apache_xmlrpc_server/BUILD.bazel @@ -0,0 +1,11 @@ +java_library( + name = "apache_xmlrpc_server", + srcs = glob([ + "src/main/**/*.java", + ]), + visibility = ["//visibility:public"], + deps = [ + "//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_logging", + "//apache_xmlrpc_common", + ], +) diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel new file mode 100644 index 000000000..e69de29bb diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl new file mode 100644 index 000000000..a5a35314b --- /dev/null +++ b/bazel/repositories.bzl @@ -0,0 +1,19 @@ +"""External dependencies for rosjava_core, excluding Maven dependencies. + +Maven dependencies must be added to the workspace with bazel-deps. +""" + +def rosjava_repositories(): + _maybe(native.http_archive, + name = "com_github_rosjava_rosjava_bootstrap", + sha256 = "3c59776a8c6e22232d07f29a686c0e5f401812ec27f59405711657d54a792c08", + strip_prefix = "rosjava_bootstrap-62f865dbe8a7830b21e054dc2a5ac7d2edc6eafe", + urls = [ + "https://github.com/rosjava/rosjava_bootstrap/archive/62f865dbe8a7830b21e054dc2a5ac7d2edc6eafe.tar.gz", + ], + ) + + +def _maybe(repo_rule, name, **kwargs): + if name not in native.existing_rules(): + repo_rule(name=name, **kwargs) diff --git a/dependencies.yaml b/dependencies.yaml new file mode 100644 index 000000000..1201e5ca7 --- /dev/null +++ b/dependencies.yaml @@ -0,0 +1,80 @@ +# If you edit this file, follow these instructions to generate the output +# files: +# +# cd .. +# git clone https://github.com/johnynek/bazel-deps +# cd bazel-deps +# bazel build src/scala/com/github/johnynek/bazel_deps:parseproject_deploy.jar +# cd ../rosjava_core +# ../bazel-deps/gen_maven_deps.sh generate -r $PWD -s 3rdparty/workspace.bzl -d dependencies.yaml + +options: + languages: [ "java" ] + resolvers: + - id: "jcenter" + type: "default" + url: https://jcenter.bintray.com/ + - id: "rosjava_mvn_repo" + type: "default" + url: https://github.com/rosjava/rosjava_mvn_repo/raw/master + resolverCache: bazel_output_base + transitivity: runtime_deps + versionConflictPolicy: highest + buildHeader: + - "# Do not edit. bazel-deps autogenerates this file from dependencies.yaml." + +dependencies: + commons-pool: + commons-pool: + lang: java + version: "1.6" + com.google.guava: + guava: + lang: java + version: "12.0" + dnsjava: + dnsjava: + lang: java + version: "2.1.1" + io.netty: + netty: + lang: java + version: "3.5.13.Final" + junit: + junit: + lang: java + version: "4.8.2" + org.apache.commons: + com.springsource.org.apache.commons.codec: + lang: java + version: "1.3.0" + com.springsource.org.apache.commons.httpclient: + lang: java + version: "3.1.0" + com.springsource.org.apache.commons.io: + lang: java + version: "1.4.0" + com.springsource.org.apache.commons.lang: + lang: java + version: "2.4.0" + com.springsource.org.apache.commons.logging: + lang: java + version: "1.1.1" + com.springsource.org.apache.commons.net: + lang: java + version: "2.0.0" + org.apache.ws.commons: + ws-commons-util: + lang: java + version: "1.0.1" + org.mockito: + mockito-all: + lang: java + version: "1.8.5" + org.ros.rosjava_messages: + rosgraph_msgs: + lang: java + version: "1.11.2" + std_msgs: + lang: java + version: "0.5.11" diff --git a/rosjava/BUILD.bazel b/rosjava/BUILD.bazel new file mode 100644 index 000000000..640a2424e --- /dev/null +++ b/rosjava/BUILD.bazel @@ -0,0 +1,20 @@ +java_library( + name = "rosjava", + srcs = glob([ + "src/main/**/*.java", + ]), + visibility = ["//visibility:public"], + deps = [ + "//3rdparty/jvm/com/google/guava", + "//3rdparty/jvm/dnsjava", + "//3rdparty/jvm/io/netty", + "//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_logging", + "//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_net", + "//3rdparty/jvm/org/ros/rosjava_messages:rosgraph_msgs", + "//3rdparty/jvm/org/ros/rosjava_messages:std_msgs", + "//apache_xmlrpc_client", + "//apache_xmlrpc_common", + "//apache_xmlrpc_server", + "@com_github_rosjava_rosjava_bootstrap//message_generation", + ], +) diff --git a/rosjava_tutorial_pubsub/BUILD.bazel b/rosjava_tutorial_pubsub/BUILD.bazel new file mode 100644 index 000000000..40acec590 --- /dev/null +++ b/rosjava_tutorial_pubsub/BUILD.bazel @@ -0,0 +1,13 @@ +java_binary( + name = "rosjava_tutorial_pubsub", + srcs = glob([ + "src/main/**/*.java", + ]), + main_class = "org.ros.RosRun", + deps = [ + "//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_logging", + "//3rdparty/jvm/org/ros/rosjava_messages:std_msgs", + "//rosjava", + "@com_github_rosjava_rosjava_bootstrap//message_generation", + ], +)