diff --git a/tools/build/bazel/BUILD b/tools/build/bazel/BUILD
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/tools/build/bazel/BUILD
@@ -0,0 +1 @@
+
diff --git a/tools/build/bazel/generate_test_rules.bzl b/tools/build/bazel/generate_test_rules.bzl
new file mode 100644
index 0000000..c8c3976
--- /dev/null
+++ b/tools/build/bazel/generate_test_rules.bzl
@@ -0,0 +1,113 @@
+# -*- mode:python; -*-
+#
+# Copyright 2016 The Bazel Authors. All rights reserved.
+#
+# Licensed 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.
+
+"""Generate java test rules from given test_files.
+Instead of having to create one test rule per test in the BUILD file, this rule
+provides a handy way to create a bunch of test rules for the specified test
+files.
+"""
+
+def testIsExcluded(exclude_tests, test):
+  for excluded_test in exclude_tests:
+    normalized_excluded_test = excluded_test.replace('.', '/')
+    if test.endswith(normalized_excluded_test):
+      return True;
+  return False
+
+def generate_test_rules(name,
+                 test_files,
+                 deps,
+                 exclude_tests=[],
+                 default_test_size="small",
+                 small_tests=[],
+                 medium_tests=[],
+                 large_tests=[],
+                 enormous_tests=[],
+                 resources=[],
+                 flaky_tests=[],
+                 tags=[],
+                 prefix="",
+                 jvm_flags=["-XX:MaxPermSize=128m"],
+                 args=[],
+                 visibility=None,
+                 shard_count=1):
+  for test in _get_test_names(test_files):
+    if testIsExcluded(exclude_tests, test):
+      continue
+    test_size = default_test_size
+    if test in small_tests:
+      test_size = "small"
+    if test in medium_tests:
+      test_size = "medium"
+    if test in large_tests:
+      test_size = "large"
+    if test in enormous_tests:
+      test_size = "enormous"
+    flaky = 0
+    if (test in flaky_tests) or ("flaky" in tags):
+      flaky = 1
+    java_class = _package_from_path(
+        PACKAGE_NAME + "/" + _strip_right(test, ".java"))
+    package = java_class[:java_class.rfind(".")]
+    native.java_test(name = prefix + test,
+                     runtime_deps = deps,
+                     resources = resources,
+                     size = test_size,
+                     jvm_flags = jvm_flags,
+                     args = args,
+                     flaky = flaky,
+                     tags = tags,
+                     test_class = java_class,
+                     visibility = visibility,
+                     shard_count = shard_count)
+
+
+def _get_test_names(test_files):
+  test_names = []
+  for test_file in test_files:
+    if not test_file.endswith("Test.java"):
+      continue
+    test_names += [test_file[:-5]]
+  return test_names
+
+
+def _package_from_path(package_path, src_impls=None):
+  src_impls = src_impls or ['javatests/', 'java/']
+  for src_impl in src_impls:
+    if not src_impl.endswith('/'):
+      src_impl += '/'
+    index = _index_of_end(package_path, src_impl)
+    if index >= 0:
+      package_path = package_path[index:]
+      break
+  return package_path.replace('/', '.')
+
+
+def _strip_right(str, suffix):
+  """Returns str without the suffix if it ends with suffix."""
+  if str.endswith(suffix):
+    return str[0: len(str) - len(suffix)]
+  else:
+    return str
+
+
+def _index_of_end(str, part):
+  """If part is in str, return the index of the first character after part.
+  Return -1 if part is not in str."""
+  index = str.find(part)
+  if index >= 0:
+    return index + len(part)
+  return -1
diff --git a/tools/build/bazel/generate_workspace.bzl b/tools/build/bazel/generate_workspace.bzl
new file mode 100644
index 0000000..8dfa931
--- /dev/null
+++ b/tools/build/bazel/generate_workspace.bzl
@@ -0,0 +1,2104 @@
+# ***** This file was auto-generated at Tue, 22 May 2018 18:04:59 GMT. Do not edit this file manually. *****
+# ***** Use onos-lib-gen *****
+COMPILE = [
+    '@commons_configuration//jar',
+    '@commons_logging//jar',
+    '@commons_collections//jar',
+    '@commons_lang//jar',
+    '@commons_lang3//jar',
+    '@commons_io//jar',
+    '@commons_pool//jar',
+    '@guava//jar',
+    '@slf4j_api//jar',
+    '@osgi_core//jar',
+    '@org_osgi_compendium//jar',
+    '@org_apache_felix_scr_annotations//jar',
+    '@org_apache_felix_scr//jar',
+    '@org_apache_karaf_features_core//jar',
+    '@org_apache_karaf_system_core//jar',
+    '@jsr305//jar',
+    '@org_apache_servicemix_bundles_dom4j//jar',
+]
+CORE_DEPS = [] + COMPILE + [
+    '//core/api:onos-api',
+    '//utils/misc:onlab-misc',
+    '//utils/osgi:onlab-osgi',
+]
+TEST = [
+    '@junit//jar',
+    '@easymock//jar',
+    '@hamcrest_all//jar',
+    '@hamcrest_optional//jar',
+    '@guava_testlib//jar',
+    '//utils/junit:onlab-junit',
+]
+TEST_ADAPTERS = [] + TEST + [
+    '//core/common:onos-core-common',
+    '//core/api:onos-api-tests',
+    '//core/common:onos-core-common-tests',
+]
+TEST_REST = [] + TEST_ADAPTERS + [
+    '@jersey_client//jar',
+    '@jersey_server//jar',
+    '@jersey_common//jar',
+    '@jersey_hk2//jar',
+    '@jersey_test_framework_core//jar',
+    '@jersey_test_framework_jetty//jar',
+    '@jersey_container_jetty_http//jar',
+    '@jetty_continuation//jar',
+    '@jetty_http//jar',
+    '@jetty_server//jar',
+    '@jetty_io//jar',
+    '@jetty_util//jar',
+    '@javax_servlet_api//jar',
+    '@hk2_api//jar',
+    '@hk2_locator//jar',
+    '@hk2_utils//jar',
+    '@javax_inject//jar',
+    '@hk2_osgi_resource_locator//jar',
+    '@javax_annotation_api//jar',
+    '@validation_api//jar',
+    '//core/common:onos-core-common',
+    '//core/api:onos-api-tests',
+    '//core/common:onos-core-common-tests',
+    '//utils/osgi:onlab-osgi-tests',
+]
+NETTY = [
+    '@netty_buffer//jar',
+    '@netty_common//jar',
+]
+GRPC_1_3 = [
+    '@grpc_protobuf_1_3_1//jar',
+    '@grpc_stub_1_3_1//jar',
+    '@grpc_netty_1_3_1//jar',
+    '@grpc_auth_1_3_1//jar',
+    '@grpc_context_1_3_1//jar',
+    '@google_truth_0_28//jar',
+]
+GRPC_TEST_1_3 = [
+    '@grpc_testing_1_3_1//jar',
+    '@grpc_testing_proto_1_3_1//jar',
+    '@google_code_findbugs_3_0_0//jar',
+    '@google_errorprone_2_0_19//jar',
+    '@google_instrumentation_0_3_0//jar',
+    '@junit_dep//jar',
+    '@objenesis//jar',
+]
+ONOS_YANG = [
+    '@onos_yang_model//jar',
+    '@onos_yang_compiler_api//jar',
+    '@onos_yang_serializers_json//jar',
+    '@onos_yang_serializers_xml//jar',
+    '@onos_yang_serializers_utils//jar',
+]
+JACKSON = [
+    '@jackson_annotations//jar',
+    '@jackson_core//jar',
+    '@jackson_databind//jar',
+]
+METRICS = [
+    '@metrics_core//jar',
+    '@metrics_json//jar',
+]
+KRYO = [
+    '@kryo//jar',
+    '@reflectasm//jar',
+    '@asm//jar',
+    '@minlog//jar',
+    '@objenesis//jar',
+]
+def generated_maven_jars():
+  native.maven_jar (
+    name = 'aopalliance_repackaged',
+    artifact = 'org.glassfish.hk2.external:aopalliance-repackaged:2.5.0-b42',
+    sha1 = 'e74beab6ca12e9e745eb47ca61729d9452b96f0c',
+  )
+
+  native.maven_jar (
+    name = 'amqp_client',
+    artifact = 'com.rabbitmq:amqp-client:3.6.1',
+    sha1 = '089be4acfa8a0fa48a775a82d20632f90aecf10b',
+  )
+
+  native.maven_jar (
+    name = 'asm',
+    artifact = 'org.ow2.asm:asm:5.0.4',
+    sha1 = '0da08b8cce7bbf903602a25a3a163ae252435795',
+  )
+
+  native.maven_jar (
+    name = 'atomix',
+    artifact = 'io.atomix:atomix:2.0.20',
+    sha1 = '7039de42423b8cd80d6a99208d61f7ee7ec52e50',
+  )
+
+  native.maven_jar (
+    name = 'commons_codec',
+    artifact = 'commons-codec:commons-codec:1.10',
+    sha1 = '4b95f4897fa13f2cd904aee711aeafc0c5295cd8',
+  )
+
+  native.maven_jar (
+    name = 'commons_collections',
+    artifact = 'commons-collections:commons-collections:3.2.2',
+    sha1 = '8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5',
+  )
+
+  native.maven_jar (
+    name = 'commons_configuration',
+    artifact = 'commons-configuration:commons-configuration:1.10',
+    sha1 = '2b36e4adfb66d966c5aef2d73deb6be716389dc9',
+  )
+
+  native.maven_jar (
+    name = 'commons_io',
+    artifact = 'commons-io:commons-io:2.6',
+    sha1 = '815893df5f31da2ece4040fe0a12fd44b577afaf',
+  )
+
+  native.maven_jar (
+    name = 'commons_jxpath',
+    artifact = 'commons-jxpath:commons-jxpath:1.3',
+    sha1 = 'c22d7d0f0f40eb7059a23cfa61773a416768b137',
+  )
+
+  native.maven_jar (
+    name = 'commons_beanutils',
+    artifact = 'commons-beanutils:commons-beanutils:1.9.2',
+    sha1 = '7a87d845ad3a155297e8f67d9008f4c1e5656b71',
+  )
+
+  native.maven_jar (
+    name = 'jdom',
+    artifact = 'jdom:jdom:1.0',
+    sha1 = 'a2ac1cd690ab4c80defe7f9bce14d35934c35cec',
+  )
+
+  native.maven_jar (
+    name = 'commons_lang',
+    artifact = 'commons-lang:commons-lang:2.6',
+    sha1 = '0ce1edb914c94ebc388f086c6827e8bdeec71ac2',
+  )
+
+  native.maven_jar (
+    name = 'commons_lang3',
+    artifact = 'org.apache.commons:commons-lang3:3.6',
+    sha1 = '9d28a6b23650e8a7e9063c04588ace6cf7012c17',
+  )
+
+  native.maven_jar (
+    name = 'commons_logging',
+    artifact = 'commons-logging:commons-logging:1.2',
+    sha1 = '4bfc12adfe4842bf07b657f0369c4cb522955686',
+  )
+
+  native.maven_jar (
+    name = 'commons_math3',
+    artifact = 'org.apache.commons:commons-math3:3.6.1',
+    sha1 = 'e4ba98f1d4b3c80ec46392f25e094a6a2e58fcbf',
+  )
+
+  native.maven_jar (
+    name = 'commons_pool',
+    artifact = 'commons-pool:commons-pool:1.6',
+    sha1 = '4572d589699f09d866a226a14b7f4323c6d8f040',
+  )
+
+  native.maven_jar (
+    name = 'commons_text',
+    artifact = 'org.apache.commons:commons-text:1.2',
+    sha1 = '74acdec7237f576c4803fff0c1008ab8a3808b2b',
+  )
+
+  native.maven_jar (
+    name = 'concurrent_trees',
+    artifact = 'com.googlecode.concurrent-trees:concurrent-trees:2.6.1',
+    sha1 = '9b647240522ab67c003de9b6702ca81ac0c15efc',
+  )
+
+  native.maven_jar (
+    name = 'easymock',
+    artifact = 'org.easymock:easymock:3.4',
+    sha1 = '9fdeea183a399f25c2469497612cad131e920fa3',
+  )
+
+  native.maven_jar (
+    name = 'antlr',
+    artifact = 'antlr:antlr:2.7.7',
+    sha1 = '83cd2cd674a217ade95a4bb83a8a14f351f48bd0',
+  )
+
+  native.maven_jar (
+    name = 'error_prone_annotations',
+    artifact = 'com.google.errorprone:error_prone_annotations:2.0.11',
+    sha1 = '3624d81fca4e93c67f43bafc222b06e1b1e3b260',
+  )
+
+  native.maven_jar (
+    name = 'ganymed_ssh2',
+    artifact = 'ch.ethz.ganymed:ganymed-ssh2:262',
+    sha1 = '7761dc665d0f6993dc846d914214fb93291e2bdf',
+  )
+
+  native.maven_jar (
+    name = 'gmetric4j',
+    artifact = 'info.ganglia.gmetric4j:gmetric4j:1.0.10',
+    sha1 = '3d62003123b586adb86cb028cc0f8a8c3a701d81',
+  )
+
+  native.maven_jar (
+    name = 'gson',
+    artifact = 'com.google.code.gson:gson:2.7',
+    sha1 = '751f548c85fa49f330cecbb1875893f971b33c4e',
+  )
+
+  native.maven_jar (
+    name = 'guava',
+    artifact = 'com.google.guava:guava:22.0',
+    sha1 = '3564ef3803de51fb0530a8377ec6100b33b0d073',
+  )
+
+  native.maven_jar (
+    name = 'guava_testlib',
+    artifact = 'com.google.guava:guava-testlib:22.0',
+    sha1 = '3be1b88f1cfc6592acbcbfe1f3a420f79eb2b146',
+  )
+
+  native.maven_jar (
+    name = 'hamcrest_all',
+    artifact = 'org.hamcrest:hamcrest-all:1.3',
+    sha1 = '63a21ebc981131004ad02e0434e799fd7f3a8d5a',
+  )
+
+  native.maven_jar (
+    name = 'hk2_api',
+    artifact = 'org.glassfish.hk2:hk2-api:2.5.0-b42',
+    sha1 = '7fd4e3d0f2cb37c80ad0dedee3f5ee69503eaf52',
+  )
+
+  native.maven_jar (
+    name = 'hk2_locator',
+    artifact = 'org.glassfish.hk2:hk2-locator:2.5.0-b42',
+    sha1 = '9d6edc0cb226401a8316e67d81bfc37cb626ef91',
+  )
+
+  native.maven_jar (
+    name = 'hk2_osgi_resource_locator',
+    artifact = 'org.glassfish.hk2:osgi-resource-locator:1.0.1',
+    sha1 = '4ed2b2d4738aed5786cfa64cba5a332779c4c708',
+  )
+
+  native.maven_jar (
+    name = 'hk2_utils',
+    artifact = 'org.glassfish.hk2:hk2-utils:2.5.0-b42',
+    sha1 = '102a344e1728825e865a8986d7605602aba3c3b6',
+  )
+
+  native.maven_jar (
+    name = 'httpclient_osgi',
+    artifact = 'org.apache.httpcomponents:httpclient-osgi:4.5.1',
+    sha1 = '0220a68ff36e5b0fa71b5dc0b1dc1d4ad2dcf524',
+  )
+
+  native.maven_jar (
+    name = 'httpcore_osgi',
+    artifact = 'org.apache.httpcomponents:httpcore-osgi:4.4.4',
+    sha1 = 'd5c14055e569afca96f4603d6f9d467bc72ccba8',
+  )
+
+  native.maven_jar (
+    name = 'influxdb_java',
+    artifact = 'org.influxdb:influxdb-java:2.9',
+    sha1 = '3c1c2b9b977d4ee67b2877eb89943add248a50db',
+  )
+
+  native.maven_jar (
+    name = 'retrofit',
+    artifact = 'com.squareup.retrofit2:retrofit:2.3.0',
+    sha1 = 'bcacde6a8ccedcc56c127403d26b76072fe6214d',
+  )
+
+  native.maven_jar (
+    name = 'converter_moshi',
+    artifact = 'com.squareup.retrofit2:converter-moshi:2.3.0',
+    sha1 = '6ad87c2038269d2574fcd90765ce15c74d6bb993',
+  )
+
+  native.maven_jar (
+    name = 'okhttp',
+    artifact = 'com.squareup.okhttp3:okhttp:3.9.1',
+    sha1 = '84b4b7d1c4a238e7899972b7446c250691e65f1f',
+  )
+
+  native.maven_jar (
+    name = 'logging_interceptor',
+    artifact = 'com.squareup.okhttp3:logging-interceptor:3.9.1',
+    sha1 = '36e71ab9e903fc4d1b4a58d80572a91d9fd60caf',
+  )
+
+  native.maven_jar (
+    name = 'moshi',
+    artifact = 'com.squareup.moshi:moshi:1.4.0',
+    sha1 = 'd67ad038adfd55dc276488a54f4944dfae5ff8ec',
+  )
+
+  native.maven_jar (
+    name = 'okio',
+    artifact = 'com.squareup.okio:okio:1.11.0',
+    sha1 = '840897fcd7223a8143f1d9b6f69714e7be34fd50',
+  )
+
+  native.maven_jar (
+    name = 'jackson_annotations',
+    artifact = 'com.fasterxml.jackson.core:jackson-annotations:2.9.5',
+    sha1 = '9056ec9db21c57d43219a84bb18c129ae51c6a5d',
+  )
+
+  native.maven_jar (
+    name = 'jackson_core',
+    artifact = 'com.fasterxml.jackson.core:jackson-core:2.9.5',
+    sha1 = 'a22ac51016944b06fd9ffbc9541c6e7ce5eea117',
+  )
+
+  native.maven_jar (
+    name = 'jackson_databind',
+    artifact = 'com.fasterxml.jackson.core:jackson-databind:2.9.5',
+    sha1 = '3490508379d065fe3fcb80042b62f630f7588606',
+  )
+
+  native.maven_jar (
+    name = 'javax_annotation_api',
+    artifact = 'javax.annotation:javax.annotation-api:1.2',
+    sha1 = '479c1e06db31c432330183f5cae684163f186146',
+  )
+
+  native.maven_jar (
+    name = 'javax_inject',
+    artifact = 'org.glassfish.hk2.external:javax.inject:2.5.0-b42',
+    sha1 = '98e0b7dcef77dc04809f0603868140a1c60bea71',
+  )
+
+  native.maven_jar (
+    name = 'javax_ws_rs_api',
+    artifact = 'javax.ws.rs:javax.ws.rs-api:2.1',
+    sha1 = '426a0862406536e690c7caa8bb6ed32191986fac',
+  )
+
+  native.maven_jar (
+    name = 'jersey_client',
+    artifact = 'org.glassfish.jersey.core:jersey-client:2.26',
+    sha1 = '125b8d1040d121a5dc4ce6858e21a6160bed7afa',
+  )
+
+  native.maven_jar (
+    name = 'jersey_security',
+    artifact = 'org.glassfish.jersey.security:oauth2-client:2.26',
+    sha1 = '968e1d99c9460e29bdb447114fa8440c3dbafb14',
+  )
+
+  native.maven_jar (
+    name = 'jersey_common',
+    artifact = 'org.glassfish.jersey.core:jersey-common:2.26',
+    sha1 = 'd96475745c5e72cafcbc4dc9e2e725f4d9683f21',
+  )
+
+  native.maven_jar (
+    name = 'jersey_container_jetty_http',
+    artifact = 'org.glassfish.jersey.containers:jersey-container-jetty-http:2.26',
+    sha1 = 'c20d58ceb1a5d98aad2b2032ca200403622fe9d6',
+  )
+
+  native.maven_jar (
+    name = 'jersey_container_servlet',
+    artifact = 'org.glassfish.jersey.containers:jersey-container-servlet:2.26',
+    sha1 = '8723d05d1fe2fdda54d0921836ea5daa5abe5f00',
+  )
+
+  native.maven_jar (
+    name = 'jersey_container_servlet_core',
+    artifact = 'org.glassfish.jersey.containers:jersey-container-servlet-core:2.26',
+    sha1 = '66a0d51facf1e49e2353ff0d2a2d4a9e2fa3f836',
+  )
+
+  native.maven_jar (
+    name = 'jersey_media_multipart',
+    artifact = 'org.glassfish.jersey.media:jersey-media-multipart:2.26',
+    sha1 = 'c7ea0a5819e4688317024c9f4b6e3de54f9d0f3d',
+  )
+
+  native.maven_jar (
+    name = 'jersey_server',
+    artifact = 'org.glassfish.jersey.core:jersey-server:2.26',
+    sha1 = 'aa8eff3d591641dadd7c9880bb73b59bf46d4c82',
+  )
+
+  native.maven_jar (
+    name = 'jersey_hk2',
+    artifact = 'org.glassfish.jersey.inject:jersey-hk2:2.26',
+    sha1 = 'df27f7d7577acf4b532684448021632098924dab',
+  )
+
+  native.maven_jar (
+    name = 'jersey_test_framework_core',
+    artifact = 'org.glassfish.jersey.test-framework:jersey-test-framework-core:2.26',
+    sha1 = '92698666ae89db58074001a34f09b8233ef5effa',
+  )
+
+  native.maven_jar (
+    name = 'jersey_test_framework_jetty',
+    artifact = 'org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:2.26',
+    sha1 = '6be06684283e7c90036d9e24f7793fd8bbb04f6a',
+  )
+
+  native.maven_jar (
+    name = 'jetty_util',
+    artifact = 'org.eclipse.jetty:jetty-util:9.2.21.v20170120',
+    sha1 = '58d9c3a134dc6d6d84b555758015ab3585b88464',
+  )
+
+  native.maven_jar (
+    name = 'jetty_websocket',
+    artifact = 'org.eclipse.jetty:jetty-websocket:8.1.19.v20160209',
+    sha1 = 'a423ddda13e52a65d604320472af598ca7122a60',
+  )
+
+  native.maven_jar (
+    name = 'jetty_server',
+    artifact = 'org.eclipse.jetty:jetty-server:9.2.21.v20170120',
+    sha1 = 'bdf6a2d58f878652e4b8c3af913e9c56b995e87d',
+  )
+
+  native.maven_jar (
+    name = 'jetty_continuation',
+    artifact = 'org.eclipse.jetty:jetty-continuation:9.2.21.v20170120',
+    sha1 = '38c35ef850d508aa0fae450eee72d784a5dd2d06',
+  )
+
+  native.maven_jar (
+    name = 'jetty_http',
+    artifact = 'org.eclipse.jetty:jetty-http:9.2.21.v20170120',
+    sha1 = '24c5a91c48cfd73b863962ec36ba4dc2bb6552ea',
+  )
+
+  native.maven_jar (
+    name = 'jetty_io',
+    artifact = 'org.eclipse.jetty:jetty-io:9.2.21.v20170120',
+    sha1 = 'a25222b557823b59a7b6d121f951926be20cff85',
+  )
+
+  native.maven_jar (
+    name = 'javax_servlet_api',
+    artifact = 'javax.servlet:javax.servlet-api:3.1.0',
+    sha1 = '3cd63d075497751784b2fa84be59432f4905bf7c',
+  )
+
+  native.maven_jar (
+    name = 'joda_time',
+    artifact = 'joda-time:joda-time:2.9.3',
+    sha1 = '9e46be514a4ed60bcfbaaba88a3c668cf30476ab',
+  )
+
+  native.maven_jar (
+    name = 'jsch',
+    artifact = 'com.jcraft:jsch:0.1.53',
+    sha1 = '658b682d5c817b27ae795637dfec047c63d29935',
+  )
+
+  native.maven_jar (
+    name = 'jsr305',
+    artifact = 'com.google.code.findbugs:jsr305:3.0.1',
+    sha1 = 'f7be08ec23c21485b9b5a1cf1654c2ec8c58168d',
+  )
+
+  native.maven_jar (
+    name = 'junit',
+    artifact = 'junit:junit:4.12',
+    sha1 = '2973d150c0dc1fefe998f834810d68f278ea58ec',
+  )
+
+  native.maven_jar (
+    name = 'junit_dep',
+    artifact = 'junit:junit:4.10',
+    sha1 = 'e4f1766ce7404a08f45d859fb9c226fc9e41a861',
+  )
+
+  native.maven_jar (
+    name = 'kryo',
+    artifact = 'com.esotericsoftware:kryo:4.0.1',
+    sha1 = '5053899c213a6ce50a800d4902c5a9de49fe0098',
+  )
+
+  native.maven_jar (
+    name = 'mapdb',
+    artifact = 'org.mapdb:mapdb:1.0.9',
+    sha1 = 'f8df5e15778eb3e88c03b77aca70c318c6b7c9d0',
+  )
+
+  native.maven_jar (
+    name = 'metrics_core',
+    artifact = 'io.dropwizard.metrics:metrics-core:3.2.2',
+    sha1 = 'cd9886f498ee2ab2d994f0c779e5553b2c450416',
+  )
+
+  native.maven_jar (
+    name = 'metrics_ganglia',
+    artifact = 'io.dropwizard.metrics:metrics-ganglia:3.2.2',
+    sha1 = 'd5bb1883e9b0daf0e4187e558746f5058f4585c1',
+  )
+
+  native.maven_jar (
+    name = 'metrics_graphite',
+    artifact = 'io.dropwizard.metrics:metrics-graphite:3.2.2',
+    sha1 = '908e8cbec1bbdb2f4023334e424c7de2832a95af',
+  )
+
+  native.maven_jar (
+    name = 'metrics_influxdb',
+    artifact = 'com.izettle:metrics-influxdb:1.1.1',
+    sha1 = 'a911d778c2f8607dd4e7a4cdb9b0cd97adcd0343',
+  )
+
+  native.maven_jar (
+    name = 'metrics_json',
+    artifact = 'io.dropwizard.metrics:metrics-json:3.2.2',
+    sha1 = '234612b9739a651eb2b71a8f9e9c4d11d7ccf849',
+  )
+
+  native.maven_jar (
+    name = 'minimal_json',
+    artifact = 'com.eclipsesource.minimal-json:minimal-json:0.9.4',
+    sha1 = 'd6e7dd22569de97c2697a4af301a623f35028972',
+  )
+
+  native.maven_jar (
+    name = 'minlog',
+    artifact = 'com.esotericsoftware:minlog:1.3.0',
+    sha1 = 'ff07b5f1b01d2f92bb00a337f9a94873712f0827',
+  )
+
+  native.maven_jar (
+    name = 'netty',
+    artifact = 'io.netty:netty:3.10.5.Final',
+    sha1 = '9ca7d55d246092bddd29b867706e2f6c7db701a0',
+  )
+
+  native.maven_jar (
+    name = 'netty_buffer',
+    artifact = 'io.netty:netty-buffer:4.1.8.Final',
+    sha1 = '43292c2622e340a0d07178c341ca3bdf3d662034',
+  )
+
+  native.maven_jar (
+    name = 'netty_codec',
+    artifact = 'io.netty:netty-codec:4.1.8.Final',
+    sha1 = '1bd0a2d032e5c7fc3f42c1b483d0f4c57eb516a3',
+  )
+
+  native.maven_jar (
+    name = 'netty_common',
+    artifact = 'io.netty:netty-common:4.1.8.Final',
+    sha1 = 'ee62c80318413d2375d145e51e48d7d35c901324',
+  )
+
+  native.maven_jar (
+    name = 'netty_handler',
+    artifact = 'io.netty:netty-handler:4.1.8.Final',
+    sha1 = 'db01139bfb11afd009a695eef55b43bbf22c4ef5',
+  )
+
+  native.maven_jar (
+    name = 'netty_transport',
+    artifact = 'io.netty:netty-transport:4.1.8.Final',
+    sha1 = '905b5dadce881c9824b3039c0df36dabbb7b6a07',
+  )
+
+  native.maven_jar (
+    name = 'netty_transport_native_epoll',
+    artifact = 'io.netty:netty-transport-native-epoll:4.1.8.Final',
+    sha1 = 'de9052874d9ff9b411bfc465869f620cab643d8d',
+  )
+
+  native.maven_jar (
+    name = 'netty_resolver',
+    artifact = 'io.netty:netty-resolver:4.1.8.Final',
+    sha1 = '2e116cdd5edc01b2305072b1dbbd17c0595dbfef',
+  )
+
+  native.maven_jar (
+    name = 'netty_codec_http2',
+    artifact = 'io.netty:netty-codec-http2:4.1.8.Final',
+    sha1 = '105a99ee5767463370ccc3d2e16800bd99f5648e',
+  )
+
+  native.maven_jar (
+    name = 'netty_codec_http',
+    artifact = 'io.netty:netty-codec-http:4.1.8.Final',
+    sha1 = '1e88617c4a6c88da7e86fdbbd9494d22a250c879',
+  )
+
+  native.maven_jar (
+    name = 'objenesis',
+    artifact = 'org.objenesis:objenesis:2.6',
+    sha1 = '639033469776fd37c08358c6b92a4761feb2af4b',
+  )
+
+  native.maven_jar (
+    name = 'openflowj',
+    artifact = 'org.onosproject:openflowj:3.2.1.onos',
+    sha1 = '66544b285cddc8d53485107310f07b7bc90ac63b',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_felix_framework_security',
+    artifact = 'org.onosproject:org.apache.felix.framework.security:2.2.0.onos',
+    sha1 = '5d39a4ff4a5d3daec8c404789d398c780151de8c',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_felix_scr',
+    artifact = 'org.apache.felix:org.apache.felix.scr:1.8.2',
+    sha1 = 'c3047d56ee57de0752821fd9c3894dda664f2e37',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_felix_scr_annotations',
+    artifact = 'org.apache.felix:org.apache.felix.scr.annotations:1.9.12',
+    sha1 = '5fdc34da641dda8b9165c2be93211479a186da9c',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_karaf_features_core',
+    artifact = 'org.apache.karaf.features:org.apache.karaf.features.core:3.0.8',
+    sha1 = '4a8bf5dbe10e120158cb69295388274f834ae37a',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_karaf_shell_console',
+    artifact = 'org.apache.karaf.shell:org.apache.karaf.shell.console:3.0.8',
+    sha1 = '5bf3e409d2e73bef560face9740b8c1234909b83',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_httpcomponents_httpasyncclient_osgi',
+    artifact = 'org.apache.httpcomponents:httpasyncclient-osgi:4.1.2',
+    sha1 = '17eccd8d9f2803ee95e80ee8283155432600e17b',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_httpcomponents_httpcore_nio',
+    artifact = 'org.apache.httpcomponents:httpcore-nio:4.4.4',
+    sha1 = '16badfc2d99db264c486ba8c57ae577301a58bd9',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_karaf_jaas',
+    artifact = 'org.apache.karaf.jaas:org.apache.karaf.jaas.modules:3.0.8',
+    sha1 = 'e4c97dac488898af1dda2b2cbf5b66318339cd29',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_karaf_system_core',
+    artifact = 'org.apache.karaf.system:org.apache.karaf.system.core:3.0.8',
+    sha1 = '80378de4aeae603889d3408489ff5b9918e6064c',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_servicemix_bundles_snmp4j',
+    artifact = 'org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:2.3.4_1',
+    sha1 = '5134e0b60a6d88b26fe4dec03488efe4f2463e65',
+  )
+
+  native.maven_jar (
+    name = 'org_osgi_compendium',
+    artifact = 'org.osgi:org.osgi.compendium:5.0.0',
+    sha1 = '9d7a9c35591f6fa1c98ac85af32775c12361aee4',
+  )
+
+  native.maven_jar (
+    name = 'osgi_core',
+    artifact = 'org.osgi:org.osgi.core:5.0.0',
+    sha1 = '6e5e8cd3c9059c08e1085540442a490b59a7783c',
+  )
+
+  native.maven_jar (
+    name = 'reflectasm',
+    artifact = 'com.esotericsoftware:reflectasm:1.11.0',
+    sha1 = 'f747d8b017a26bac575f8da14e8c1df6aecd3154',
+  )
+
+  native.maven_jar (
+    name = 'remotetea_oncrpc',
+    artifact = 'org.acplt.remotetea:remotetea-oncrpc:1.1.3',
+    sha1 = '2f7d94c5179b0267a882259a03a83eaa320cbcce',
+  )
+
+  native.maven_jar (
+    name = 'rrd4j',
+    artifact = 'org.rrd4j:rrd4j:3.1',
+    sha1 = 'e533553fbf52f241dcb0c468b2052a3814dd6722',
+  )
+
+  native.maven_jar (
+    name = 'javassist',
+    artifact = 'org.javassist:javassist:3.22.0-GA',
+    sha1 = '3e83394258ae2089be7219b971ec21a8288528ad',
+  )
+
+  native.maven_jar (
+    name = 'mimepull',
+    artifact = 'org.jvnet.mimepull:mimepull:1.9.6',
+    sha1 = '41c913d791e16f93bc712a8c8a30bb64daa2e9bd',
+  )
+
+  native.maven_jar (
+    name = 'servlet_api',
+    artifact = 'javax.servlet:servlet-api:2.5',
+    sha1 = '5959582d97d8b61f4d154ca9e495aafd16726e34',
+  )
+
+  native.maven_jar (
+    name = 'slf4j_api',
+    artifact = 'org.slf4j:slf4j-api:1.7.25',
+    sha1 = 'da76ca59f6a57ee3102f8f9bd9cee742973efa8a',
+  )
+
+  native.maven_jar (
+    name = 'slf4j_jdk14',
+    artifact = 'org.slf4j:slf4j-jdk14:1.7.25',
+    sha1 = 'bccda40ebc8067491b32a88f49615a747d20082d',
+  )
+
+  native.maven_jar (
+    name = 'typesafe_config',
+    artifact = 'com.typesafe:config:1.2.1',
+    sha1 = 'f771f71fdae3df231bcd54d5ca2d57f0bf93f467',
+  )
+
+  native.maven_jar (
+    name = 'validation_api',
+    artifact = 'javax.validation:validation-api:1.1.0.Final',
+    sha1 = '8613ae82954779d518631e05daa73a6a954817d5',
+  )
+
+  native.maven_jar (
+    name = 'checkstyle',
+    artifact = 'com.puppycrawl.tools:checkstyle:8.10',
+    sha1 = 'd7cd09c4d1240b3acc3041fcb47fd74ae351698b',
+  )
+
+  native.http_jar (
+    name = 'apache_karaf',
+    url = 'mvn:org.onosproject:apache-karaf-offline:tar.gz:3.0.8',
+    sha256 = '2503c5853285e3414da15aef8d8f3f629747c927',
+  )
+
+  native.http_jar (
+    name = 'apache_karaf_patches',
+    url = 'mvn:org.onosproject:onos-apache-karaf-patches:tar.gz:3.0.8',
+    sha256 = 'be5d620a2c4f4c5faa520d2c1b949ad0cc29c84f',
+  )
+
+  native.maven_jar (
+    name = 'bndlib',
+    artifact = 'biz.aQute.bnd:biz.aQute.bndlib:3.1.0',
+    sha1 = '8e45564ca80bf089276a35f916e8702e7b798cbb',
+  )
+
+  native.maven_jar (
+    name = 'bndexe',
+    artifact = 'biz.aQute.bnd:biz.aQute.bnd:3.1.0',
+    sha1 = 'ebd6c2af025b66ea94a9fcb217c2699ba23d3ca2',
+  )
+
+  native.maven_jar (
+    name = 'libthrift',
+    artifact = 'org.apache.thrift:libthrift:0.9.3',
+    sha1 = '8625e8f9b6f49b881fa5fd143172c2833df1ce47',
+  )
+
+  native.maven_jar (
+    name = 'qdox',
+    artifact = 'com.thoughtworks.qdox:qdox:2.0-M3',
+    sha1 = 'f1e9ac82735dc3f2afc38cc051ae0e405f367434',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_felix_scr_bnd',
+    artifact = 'org.onosproject:org.apache.felix.scr.bnd:1.4.1-SNAPSHOT',
+    sha1 = '607cac6eaba5b0eb0787a343b83fe535c42c09aa',
+    repository = 'https://oss.sonatype.org/content/repositories/snapshots/',
+  )
+
+  native.maven_jar (
+    name = 'snmp_core',
+    artifact = 'org.onosproject:snmp-core:1.3-20161021.1',
+    sha1 = '65e1b71d9d0e2fc60c45f631decdb41da3253778',
+  )
+
+  native.maven_jar (
+    name = 'bti7000',
+    artifact = 'org.onosproject:mibbler-mibs-bti7000:1.0-20151221.1',
+    sha1 = 'aebb218bd04e29d8a1ea9036de715919bb7a73e5',
+  )
+
+  native.maven_jar (
+    name = 'mibs_net_snmp',
+    artifact = 'org.onosproject:mibbler-mibs-net-snmp:1.0-20151221.1',
+    sha1 = 'd2cb918e46f06d4ee764d4a96b2b6fb0ba9bc60c',
+  )
+
+  native.maven_jar (
+    name = 'mibs_rfc',
+    artifact = 'org.onosproject:mibbler-mibs-rfc:1.0-20151221.1',
+    sha1 = '06ac2a3bf48c79ab444a9deede9d554ccd355a16',
+  )
+
+  native.maven_jar (
+    name = 'openstack4j_core',
+    artifact = 'org.pacesys:openstack4j-core:3.1.0',
+    sha1 = '634c2ad6728bb6e4cd91c950dd654aacb6f107a6',
+  )
+
+  native.maven_jar (
+    name = 'openstack4j_http_connector',
+    artifact = 'org.pacesys.openstack4j.connectors:openstack4j-http-connector:3.1.0',
+    sha1 = '5bbd558313f13daac819bbbe56ae8432e64409d9',
+  )
+
+  native.maven_jar (
+    name = 'openstack4j_httpclient',
+    artifact = 'org.pacesys.openstack4j.connectors:openstack4j-httpclient:3.1.0',
+    sha1 = 'acb413e27cc43f4bbcee99300befffcf667de579',
+  )
+
+  native.maven_jar (
+    name = 'json_patch',
+    artifact = 'com.github.fge:json-patch:1.9',
+    sha1 = '0a4c3c97a0f5965dec15795acf40d3fbc897af4b',
+  )
+
+  native.maven_jar (
+    name = 'jackson_coreutils',
+    artifact = 'com.github.fge:jackson-coreutils:1.6',
+    sha1 = '9e6af56eb7cc2a65700b289abc7ee2bd170fd231',
+  )
+
+  native.maven_jar (
+    name = 'btf',
+    artifact = 'com.github.fge:btf:1.2',
+    sha1 = '9e66651022eb86301b348d57e6f59459effc343b',
+  )
+
+  native.maven_jar (
+    name = 'msg_simple',
+    artifact = 'com.github.fge:msg-simple:1.1',
+    sha1 = 'f261263e13dd4cfa93cc6b83f1f58f619097a2c4',
+  )
+
+  native.maven_jar (
+    name = 'snakeyaml',
+    artifact = 'org.yaml:snakeyaml:1.15',
+    sha1 = '3b132bea69e8ee099f416044970997bde80f4ea6',
+  )
+
+  native.maven_jar (
+    name = 'onos_yang_model',
+    artifact = 'org.onosproject:onos-yang-model:2.4.7',
+    sha1 = 'c459be8b61650d1e8860b4d13b7ec867a6072b55',
+  )
+
+  native.maven_jar (
+    name = 'onos_yang_compiler_api',
+    artifact = 'org.onosproject:onos-yang-compiler-api:2.4.7',
+    sha1 = 'f087fa5c52b0cb3c56624519f5631b819d59dd28',
+  )
+
+  native.maven_jar (
+    name = 'onos_yang_runtime',
+    artifact = 'org.onosproject:onos-yang-runtime:2.4.7',
+    sha1 = '12e139467380f54891a5cf29f12d717d22e4cb42',
+  )
+
+  native.maven_jar (
+    name = 'onos_yang_serializers_json',
+    artifact = 'org.onosproject:onos-yang-serializers-json:2.4.7',
+    sha1 = '2784dca04f444e218667760b39ca5c74b743f168',
+  )
+
+  native.maven_jar (
+    name = 'onos_yang_serializers_xml',
+    artifact = 'org.onosproject:onos-yang-serializers-xml:2.4.7',
+    sha1 = 'fcf7b98b1bfaaab7d34a2f47eadb0a8c51e34a37',
+  )
+
+  native.maven_jar (
+    name = 'onos_yang_serializers_utils',
+    artifact = 'org.onosproject:onos-yang-serializers-utils:2.4.7',
+    sha1 = '6c6ed696ae7a23b6d0a45138ef6bc07768f4a9b5',
+  )
+
+  native.maven_jar (
+    name = 'org_apache_servicemix_bundles_dom4j',
+    artifact = 'org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j:1.6.1_5',
+    sha1 = 'f5da21ae9508008f7b28001983adc143cb310ad7',
+  )
+
+  native.maven_jar (
+    name = 'plexus_utils',
+    artifact = 'org.codehaus.plexus:plexus-utils:3.0.24',
+    sha1 = 'b4ac9780b37cb1b736eae9fbcef27609b7c911ef',
+  )
+
+  native.maven_jar (
+    name = 'sshd_core',
+    artifact = 'org.apache.sshd:sshd-core:1.4.0',
+    sha1 = 'c8f3d7457fc9979d1b9ec319f0229b89793c8e56',
+  )
+
+  native.maven_jar (
+    name = 'grpc_core_1_3_1',
+    artifact = 'io.grpc:grpc-core:1.3.1',
+    sha1 = 'a9b38b4a19af3ef208f4f6bf7871876d959c5eb1',
+  )
+
+  native.maven_jar (
+    name = 'grpc_protobuf_1_3_1',
+    artifact = 'io.grpc:grpc-protobuf:1.3.1',
+    sha1 = '9562e977cacd6e128a31686c3e6948d61873c496',
+  )
+
+  native.maven_jar (
+    name = 'grpc_protobuf_lite_1_3_1',
+    artifact = 'io.grpc:grpc-protobuf-lite:1.3.1',
+    sha1 = '98d1d3d100fdcf92c4331999a504a1a72a5f6e52',
+  )
+
+  native.maven_jar (
+    name = 'grpc_stub_1_3_1',
+    artifact = 'io.grpc:grpc-stub:1.3.1',
+    sha1 = '60bdfa9d8c664a9d87ae461106eff6eed8da6c54',
+  )
+
+  native.maven_jar (
+    name = 'grpc_netty_1_3_1',
+    artifact = 'io.grpc:grpc-netty:1.3.1',
+    sha1 = 'cc3831fccb76cfe21445f75cc055b5ffd979dc54',
+  )
+
+  native.maven_jar (
+    name = 'grpc_auth_1_3_1',
+    artifact = 'io.grpc:grpc-auth:1.3.1',
+    sha1 = '57a0e0b9e474842801521fae76f955dd28ad3ae0',
+  )
+
+  native.maven_jar (
+    name = 'protobuf_java_3_3_0',
+    artifact = 'com.google.protobuf:protobuf-java:3.3.0',
+    sha1 = '9f301d1a27501b1afcb2ed16aad428337dabf9e4',
+  )
+
+  native.maven_jar (
+    name = 'protobuf_java_3_2_0',
+    artifact = 'com.google.protobuf:protobuf-java:3.2.0',
+    sha1 = '62ccf171a106ff6791507f2d5364c275f9a3131d',
+  )
+
+  native.maven_jar (
+    name = 'grpc_testing_1_3_1',
+    artifact = 'io.grpc:grpc-testing:1.3.1',
+    sha1 = 'fd6c4081cd3415684a0b655327e210aa10153eec',
+  )
+
+  native.maven_jar (
+    name = 'grpc_testing_proto_1_3_1',
+    artifact = 'io.grpc:grpc-testing-proto:1.3.1',
+    sha1 = '170f0406457b44695562ccd5ec8d0da9cb762643',
+  )
+
+  native.maven_jar (
+    name = 'grpc_context_1_3_1',
+    artifact = 'io.grpc:grpc-context:1.3.1',
+    sha1 = '28accd419b18d59055b8999f78f5cb7767c7bde8',
+  )
+
+  native.maven_jar (
+    name = 'google_truth_0_28',
+    artifact = 'com.google.truth:truth:0.28',
+    sha1 = '0a388c7877c845ff4b8e19689dda5ac9d34622c4',
+  )
+
+  native.maven_jar (
+    name = 'google_code_findbugs_3_0_0',
+    artifact = 'com.google.code.findbugs:jsr305:3.0.0',
+    sha1 = '5871fb60dc68d67da54a663c3fd636a10a532948',
+  )
+
+  native.maven_jar (
+    name = 'google_errorprone_2_0_19',
+    artifact = 'com.google.errorprone:error_prone_annotations:2.0.19',
+    sha1 = 'c3754a0bdd545b00ddc26884f9e7624f8b6a14de',
+  )
+
+  native.maven_jar (
+    name = 'google_instrumentation_0_3_0',
+    artifact = 'com.google.instrumentation:instrumentation-api:0.3.0',
+    sha1 = 'a2e145e7a7567c6372738f5c5a6f3ba6407ac354',
+  )
+
+  native.maven_jar (
+    name = 'bcpkix_jdk15on',
+    artifact = 'org.bouncycastle:bcpkix-jdk15on:1.58',
+    sha1 = '15a760a039b040e767a75c77ffcc4ff62558f903',
+  )
+
+  native.maven_jar (
+    name = 'bcprov_jdk15on',
+    artifact = 'org.bouncycastle:bcprov-jdk15on:1.58',
+    sha1 = '2c9aa1c4e3372b447ba5daabade4adf2a2264b12',
+  )
+
+  native.maven_jar (
+    name = 'hamcrest_optional',
+    artifact = 'com.spotify:hamcrest-optional:1.1.0',
+    sha1 = 'c2dfe3a43794b15fb4c28de0027fe6e249855b3b',
+  )
+
+  native.maven_jar (
+    name = 'swagger_annotations',
+    artifact = 'io.swagger:swagger-annotations:1.5.16',
+    sha1 = '935f1f2fed2cbdd7a0513981d6c53201e21155f4',
+  )
+
+  native.maven_jar (
+    name = 'kafka_clients',
+    artifact = 'org.apache.servicemix.bundles:org.apache.servicemix.bundles.kafka-clients:0.8.2.2_1',
+    sha1 = '19ba66200cc3617fad12843788dff818b9882008',
+  )
+
+  native.maven_jar (
+    name = 'tinder_xmpp',
+    artifact = 'org.igniterealtime:tinder:1.3.0',
+    sha1 = '46353ded2a1d1a87d17600206d61814eb0b8a711',
+  )
+
+  native.maven_jar (
+    name = 'aalto_xml',
+    artifact = 'com.fasterxml:aalto-xml:1.0.0',
+    sha1 = 'aeae9e8a71914e7f5efc8a69d2f5cb1f2224f2c6',
+  )
+
+  native.maven_jar (
+    name = 'stax2_api',
+    artifact = 'org.codehaus.woodstox:stax2-api:4.0.0',
+    sha1 = '6fa8b05f7587a3cb819d223ee0b0de0c126e3dd1',
+  )
+
+  native.maven_jar (
+    name = 'concurrent_hashmap',
+    artifact = 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.0',
+    sha1 = 'db7b7a28b835db4717d4aaf31f5d4441887a6d46',
+  )
+
+  native.maven_jar (
+    name = 'gnu_idn',
+    artifact = 'org.gnu.inet:libidn:1.15',
+    sha1 = 'b5bede3c1c031a827b604da31768ddaf833495c6',
+  )
+
+  native.maven_jar (
+    name = 'sigar',
+    artifact = 'org.knowhowlab.osgi:sigar:1.6.5_01',
+    sha1 = '58eb4af0dc4a1d331cd7620767216494e2984dea',
+  )
+
+def generated_java_libraries():
+  native.java_library (
+    name = 'aopalliance_repackaged',
+    visibility = ['//visibility:public'],
+    exports = ['@aopalliance_repackaged//jar'],
+  )
+
+  native.java_library (
+    name = 'amqp_client',
+    visibility = ['//visibility:public'],
+    exports = ['@amqp_client//jar'],
+  )
+
+  native.java_library (
+    name = 'asm',
+    visibility = ['//visibility:public'],
+    exports = ['@asm//jar'],
+  )
+
+  native.java_library (
+    name = 'atomix',
+    visibility = ['//visibility:public'],
+    exports = ['@atomix//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_codec',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_codec//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_collections',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_collections//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_configuration',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_configuration//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_io',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_io//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_jxpath',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_jxpath//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_beanutils',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_beanutils//jar'],
+  )
+
+  native.java_library (
+    name = 'jdom',
+    visibility = ['//visibility:public'],
+    exports = ['@jdom//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_lang',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_lang//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_lang3',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_lang3//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_logging',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_logging//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_math3',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_math3//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_pool',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_pool//jar'],
+  )
+
+  native.java_library (
+    name = 'commons_text',
+    visibility = ['//visibility:public'],
+    exports = ['@commons_text//jar'],
+  )
+
+  native.java_library (
+    name = 'concurrent_trees',
+    visibility = ['//visibility:public'],
+    exports = ['@concurrent_trees//jar'],
+  )
+
+  native.java_library (
+    name = 'easymock',
+    visibility = ['//visibility:public'],
+    exports = ['@easymock//jar'],
+  )
+
+  native.java_library (
+    name = 'antlr',
+    visibility = ['//visibility:public'],
+    exports = ['@antlr//jar'],
+  )
+
+  native.java_library (
+    name = 'error_prone_annotations',
+    visibility = ['//visibility:public'],
+    exports = ['@error_prone_annotations//jar'],
+  )
+
+  native.java_library (
+    name = 'ganymed_ssh2',
+    visibility = ['//visibility:public'],
+    exports = ['@ganymed_ssh2//jar'],
+  )
+
+  native.java_library (
+    name = 'gmetric4j',
+    visibility = ['//visibility:public'],
+    exports = ['@gmetric4j//jar'],
+  )
+
+  native.java_library (
+    name = 'gson',
+    visibility = ['//visibility:public'],
+    exports = ['@gson//jar'],
+  )
+
+  native.java_library (
+    name = 'guava',
+    visibility = ['//visibility:public'],
+    exports = ['@guava//jar'],
+  )
+
+  native.java_library (
+    name = 'guava_testlib',
+    visibility = ['//visibility:public'],
+    exports = ['@guava_testlib//jar'],
+  )
+
+  native.java_library (
+    name = 'hamcrest_all',
+    visibility = ['//visibility:public'],
+    exports = ['@hamcrest_all//jar'],
+  )
+
+  native.java_library (
+    name = 'hk2_api',
+    visibility = ['//visibility:public'],
+    exports = ['@hk2_api//jar'],
+  )
+
+  native.java_library (
+    name = 'hk2_locator',
+    visibility = ['//visibility:public'],
+    exports = ['@hk2_locator//jar'],
+  )
+
+  native.java_library (
+    name = 'hk2_osgi_resource_locator',
+    visibility = ['//visibility:public'],
+    exports = ['@hk2_osgi_resource_locator//jar'],
+  )
+
+  native.java_library (
+    name = 'hk2_utils',
+    visibility = ['//visibility:public'],
+    exports = ['@hk2_utils//jar'],
+  )
+
+  native.java_library (
+    name = 'httpclient_osgi',
+    visibility = ['//visibility:public'],
+    exports = ['@httpclient_osgi//jar'],
+  )
+
+  native.java_library (
+    name = 'httpcore_osgi',
+    visibility = ['//visibility:public'],
+    exports = ['@httpcore_osgi//jar'],
+  )
+
+  native.java_library (
+    name = 'influxdb_java',
+    visibility = ['//visibility:public'],
+    exports = ['@influxdb_java//jar'],
+  )
+
+  native.java_library (
+    name = 'retrofit',
+    visibility = ['//visibility:public'],
+    exports = ['@retrofit//jar'],
+  )
+
+  native.java_library (
+    name = 'converter_moshi',
+    visibility = ['//visibility:public'],
+    exports = ['@converter_moshi//jar'],
+  )
+
+  native.java_library (
+    name = 'okhttp',
+    visibility = ['//visibility:public'],
+    exports = ['@okhttp//jar'],
+  )
+
+  native.java_library (
+    name = 'logging_interceptor',
+    visibility = ['//visibility:public'],
+    exports = ['@logging_interceptor//jar'],
+  )
+
+  native.java_library (
+    name = 'moshi',
+    visibility = ['//visibility:public'],
+    exports = ['@moshi//jar'],
+  )
+
+  native.java_library (
+    name = 'okio',
+    visibility = ['//visibility:public'],
+    exports = ['@okio//jar'],
+  )
+
+  native.java_library (
+    name = 'jackson_annotations',
+    visibility = ['//visibility:public'],
+    exports = ['@jackson_annotations//jar'],
+  )
+
+  native.java_library (
+    name = 'jackson_core',
+    visibility = ['//visibility:public'],
+    exports = ['@jackson_core//jar'],
+  )
+
+  native.java_library (
+    name = 'jackson_databind',
+    visibility = ['//visibility:public'],
+    exports = ['@jackson_databind//jar'],
+  )
+
+  native.java_library (
+    name = 'javax_annotation_api',
+    visibility = ['//visibility:public'],
+    exports = ['@javax_annotation_api//jar'],
+  )
+
+  native.java_library (
+    name = 'javax_inject',
+    visibility = ['//visibility:public'],
+    exports = ['@javax_inject//jar'],
+  )
+
+  native.java_library (
+    name = 'javax_ws_rs_api',
+    visibility = ['//visibility:public'],
+    exports = ['@javax_ws_rs_api//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_client',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_client//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_security',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_security//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_common',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_common//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_container_jetty_http',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_container_jetty_http//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_container_servlet',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_container_servlet//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_container_servlet_core',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_container_servlet_core//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_media_multipart',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_media_multipart//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_server',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_server//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_hk2',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_hk2//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_test_framework_core',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_test_framework_core//jar'],
+  )
+
+  native.java_library (
+    name = 'jersey_test_framework_jetty',
+    visibility = ['//visibility:public'],
+    exports = ['@jersey_test_framework_jetty//jar'],
+  )
+
+  native.java_library (
+    name = 'jetty_util',
+    visibility = ['//visibility:public'],
+    exports = ['@jetty_util//jar'],
+  )
+
+  native.java_library (
+    name = 'jetty_websocket',
+    visibility = ['//visibility:public'],
+    exports = ['@jetty_websocket//jar'],
+  )
+
+  native.java_library (
+    name = 'jetty_server',
+    visibility = ['//visibility:public'],
+    exports = ['@jetty_server//jar'],
+  )
+
+  native.java_library (
+    name = 'jetty_continuation',
+    visibility = ['//visibility:public'],
+    exports = ['@jetty_continuation//jar'],
+  )
+
+  native.java_library (
+    name = 'jetty_http',
+    visibility = ['//visibility:public'],
+    exports = ['@jetty_http//jar'],
+  )
+
+  native.java_library (
+    name = 'jetty_io',
+    visibility = ['//visibility:public'],
+    exports = ['@jetty_io//jar'],
+  )
+
+  native.java_library (
+    name = 'javax_servlet_api',
+    visibility = ['//visibility:public'],
+    exports = ['@javax_servlet_api//jar'],
+  )
+
+  native.java_library (
+    name = 'joda_time',
+    visibility = ['//visibility:public'],
+    exports = ['@joda_time//jar'],
+  )
+
+  native.java_library (
+    name = 'jsch',
+    visibility = ['//visibility:public'],
+    exports = ['@jsch//jar'],
+  )
+
+  native.java_library (
+    name = 'jsr305',
+    visibility = ['//visibility:public'],
+    exports = ['@jsr305//jar'],
+  )
+
+  native.java_library (
+    name = 'junit',
+    visibility = ['//visibility:public'],
+    exports = ['@junit//jar'],
+  )
+
+  native.java_library (
+    name = 'junit_dep',
+    visibility = ['//visibility:public'],
+    exports = ['@junit_dep//jar'],
+  )
+
+  native.java_library (
+    name = 'kryo',
+    visibility = ['//visibility:public'],
+    exports = ['@kryo//jar'],
+  )
+
+  native.java_library (
+    name = 'mapdb',
+    visibility = ['//visibility:public'],
+    exports = ['@mapdb//jar'],
+  )
+
+  native.java_library (
+    name = 'metrics_core',
+    visibility = ['//visibility:public'],
+    exports = ['@metrics_core//jar'],
+  )
+
+  native.java_library (
+    name = 'metrics_ganglia',
+    visibility = ['//visibility:public'],
+    exports = ['@metrics_ganglia//jar'],
+  )
+
+  native.java_library (
+    name = 'metrics_graphite',
+    visibility = ['//visibility:public'],
+    exports = ['@metrics_graphite//jar'],
+  )
+
+  native.java_library (
+    name = 'metrics_influxdb',
+    visibility = ['//visibility:public'],
+    exports = ['@metrics_influxdb//jar'],
+  )
+
+  native.java_library (
+    name = 'metrics_json',
+    visibility = ['//visibility:public'],
+    exports = ['@metrics_json//jar'],
+  )
+
+  native.java_library (
+    name = 'minimal_json',
+    visibility = ['//visibility:public'],
+    exports = ['@minimal_json//jar'],
+  )
+
+  native.java_library (
+    name = 'minlog',
+    visibility = ['//visibility:public'],
+    exports = ['@minlog//jar'],
+  )
+
+  native.java_library (
+    name = 'netty',
+    visibility = ['//visibility:public'],
+    exports = ['@netty//jar'],
+  )
+
+  native.java_library (
+    name = 'netty_buffer',
+    visibility = ['//visibility:public'],
+    exports = ['@netty_buffer//jar'],
+  )
+
+  native.java_library (
+    name = 'netty_codec',
+    visibility = ['//visibility:public'],
+    exports = ['@netty_codec//jar'],
+  )
+
+  native.java_library (
+    name = 'netty_common',
+    visibility = ['//visibility:public'],
+    exports = ['@netty_common//jar'],
+  )
+
+  native.java_library (
+    name = 'netty_handler',
+    visibility = ['//visibility:public'],
+    exports = ['@netty_handler//jar'],
+  )
+
+  native.java_library (
+    name = 'netty_transport',
+    visibility = ['//visibility:public'],
+    exports = ['@netty_transport//jar'],
+  )
+
+  native.java_library (
+    name = 'netty_transport_native_epoll',
+    visibility = ['//visibility:public'],
+    exports = ['@netty_transport_native_epoll//jar'],
+  )
+
+  native.java_library (
+    name = 'netty_resolver',
+    visibility = ['//visibility:public'],
+    exports = ['@netty_resolver//jar'],
+  )
+
+  native.java_library (
+    name = 'netty_codec_http2',
+    visibility = ['//visibility:public'],
+    exports = ['@netty_codec_http2//jar'],
+  )
+
+  native.java_library (
+    name = 'netty_codec_http',
+    visibility = ['//visibility:public'],
+    exports = ['@netty_codec_http//jar'],
+  )
+
+  native.java_library (
+    name = 'objenesis',
+    visibility = ['//visibility:public'],
+    exports = ['@objenesis//jar'],
+  )
+
+  native.java_library (
+    name = 'openflowj',
+    visibility = ['//visibility:public'],
+    exports = ['@openflowj//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_felix_framework_security',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_felix_framework_security//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_felix_scr',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_felix_scr//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_felix_scr_annotations',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_felix_scr_annotations//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_karaf_features_core',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_karaf_features_core//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_karaf_shell_console',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_karaf_shell_console//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_httpcomponents_httpasyncclient_osgi',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_httpcomponents_httpasyncclient_osgi//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_httpcomponents_httpcore_nio',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_httpcomponents_httpcore_nio//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_karaf_jaas',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_karaf_jaas//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_karaf_system_core',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_karaf_system_core//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_servicemix_bundles_snmp4j',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_servicemix_bundles_snmp4j//jar'],
+  )
+
+  native.java_library (
+    name = 'org_osgi_compendium',
+    visibility = ['//visibility:public'],
+    exports = ['@org_osgi_compendium//jar'],
+  )
+
+  native.java_library (
+    name = 'osgi_core',
+    visibility = ['//visibility:public'],
+    exports = ['@osgi_core//jar'],
+  )
+
+  native.java_library (
+    name = 'reflectasm',
+    visibility = ['//visibility:public'],
+    exports = ['@reflectasm//jar'],
+  )
+
+  native.java_library (
+    name = 'remotetea_oncrpc',
+    visibility = ['//visibility:public'],
+    exports = ['@remotetea_oncrpc//jar'],
+  )
+
+  native.java_library (
+    name = 'rrd4j',
+    visibility = ['//visibility:public'],
+    exports = ['@rrd4j//jar'],
+  )
+
+  native.java_library (
+    name = 'javassist',
+    visibility = ['//visibility:public'],
+    exports = ['@javassist//jar'],
+  )
+
+  native.java_library (
+    name = 'mimepull',
+    visibility = ['//visibility:public'],
+    exports = ['@mimepull//jar'],
+  )
+
+  native.java_library (
+    name = 'servlet_api',
+    visibility = ['//visibility:public'],
+    exports = ['@servlet_api//jar'],
+  )
+
+  native.java_library (
+    name = 'slf4j_api',
+    visibility = ['//visibility:public'],
+    exports = ['@slf4j_api//jar'],
+  )
+
+  native.java_library (
+    name = 'slf4j_jdk14',
+    visibility = ['//visibility:public'],
+    exports = ['@slf4j_jdk14//jar'],
+  )
+
+  native.java_library (
+    name = 'typesafe_config',
+    visibility = ['//visibility:public'],
+    exports = ['@typesafe_config//jar'],
+  )
+
+  native.java_library (
+    name = 'validation_api',
+    visibility = ['//visibility:public'],
+    exports = ['@validation_api//jar'],
+  )
+
+  native.java_library (
+    name = 'checkstyle',
+    visibility = ['//visibility:public'],
+    exports = ['@checkstyle//jar'],
+  )
+
+  native.java_library (
+    name = 'bndlib',
+    visibility = ['//visibility:public'],
+    exports = ['@bndlib//jar'],
+  )
+
+  native.java_library (
+    name = 'bndexe',
+    visibility = ['//visibility:public'],
+    exports = ['@bndexe//jar'],
+  )
+
+  native.java_library (
+    name = 'libthrift',
+    visibility = ['//visibility:public'],
+    exports = ['@libthrift//jar'],
+  )
+
+  native.java_library (
+    name = 'qdox',
+    visibility = ['//visibility:public'],
+    exports = ['@qdox//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_felix_scr_bnd',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_felix_scr_bnd//jar'],
+  )
+
+  native.java_library (
+    name = 'snmp_core',
+    visibility = ['//visibility:public'],
+    exports = ['@snmp_core//jar'],
+  )
+
+  native.java_library (
+    name = 'bti7000',
+    visibility = ['//visibility:public'],
+    exports = ['@bti7000//jar'],
+  )
+
+  native.java_library (
+    name = 'mibs_net_snmp',
+    visibility = ['//visibility:public'],
+    exports = ['@mibs_net_snmp//jar'],
+  )
+
+  native.java_library (
+    name = 'mibs_rfc',
+    visibility = ['//visibility:public'],
+    exports = ['@mibs_rfc//jar'],
+  )
+
+  native.java_library (
+    name = 'openstack4j_core',
+    visibility = ['//visibility:public'],
+    exports = ['@openstack4j_core//jar'],
+  )
+
+  native.java_library (
+    name = 'openstack4j_http_connector',
+    visibility = ['//visibility:public'],
+    exports = ['@openstack4j_http_connector//jar'],
+  )
+
+  native.java_library (
+    name = 'openstack4j_httpclient',
+    visibility = ['//visibility:public'],
+    exports = ['@openstack4j_httpclient//jar'],
+  )
+
+  native.java_library (
+    name = 'json_patch',
+    visibility = ['//visibility:public'],
+    exports = ['@json_patch//jar'],
+  )
+
+  native.java_library (
+    name = 'jackson_coreutils',
+    visibility = ['//visibility:public'],
+    exports = ['@jackson_coreutils//jar'],
+  )
+
+  native.java_library (
+    name = 'btf',
+    visibility = ['//visibility:public'],
+    exports = ['@btf//jar'],
+  )
+
+  native.java_library (
+    name = 'msg_simple',
+    visibility = ['//visibility:public'],
+    exports = ['@msg_simple//jar'],
+  )
+
+  native.java_library (
+    name = 'snakeyaml',
+    visibility = ['//visibility:public'],
+    exports = ['@snakeyaml//jar'],
+  )
+
+  native.java_library (
+    name = 'onos_yang_model',
+    visibility = ['//visibility:public'],
+    exports = ['@onos_yang_model//jar'],
+  )
+
+  native.java_library (
+    name = 'onos_yang_compiler_api',
+    visibility = ['//visibility:public'],
+    exports = ['@onos_yang_compiler_api//jar'],
+  )
+
+  native.java_library (
+    name = 'onos_yang_runtime',
+    visibility = ['//visibility:public'],
+    exports = ['@onos_yang_runtime//jar'],
+  )
+
+  native.java_library (
+    name = 'onos_yang_serializers_json',
+    visibility = ['//visibility:public'],
+    exports = ['@onos_yang_serializers_json//jar'],
+  )
+
+  native.java_library (
+    name = 'onos_yang_serializers_xml',
+    visibility = ['//visibility:public'],
+    exports = ['@onos_yang_serializers_xml//jar'],
+  )
+
+  native.java_library (
+    name = 'onos_yang_serializers_utils',
+    visibility = ['//visibility:public'],
+    exports = ['@onos_yang_serializers_utils//jar'],
+  )
+
+  native.java_library (
+    name = 'org_apache_servicemix_bundles_dom4j',
+    visibility = ['//visibility:public'],
+    exports = ['@org_apache_servicemix_bundles_dom4j//jar'],
+  )
+
+  native.java_library (
+    name = 'plexus_utils',
+    visibility = ['//visibility:public'],
+    exports = ['@plexus_utils//jar'],
+  )
+
+  native.java_library (
+    name = 'sshd_core',
+    visibility = ['//visibility:public'],
+    exports = ['@sshd_core//jar'],
+  )
+
+  native.java_library (
+    name = 'grpc_core_1_3_1',
+    visibility = ['//visibility:public'],
+    exports = ['@grpc_core_1_3_1//jar'],
+  )
+
+  native.java_library (
+    name = 'grpc_protobuf_1_3_1',
+    visibility = ['//visibility:public'],
+    exports = ['@grpc_protobuf_1_3_1//jar'],
+  )
+
+  native.java_library (
+    name = 'grpc_protobuf_lite_1_3_1',
+    visibility = ['//visibility:public'],
+    exports = ['@grpc_protobuf_lite_1_3_1//jar'],
+  )
+
+  native.java_library (
+    name = 'grpc_stub_1_3_1',
+    visibility = ['//visibility:public'],
+    exports = ['@grpc_stub_1_3_1//jar'],
+  )
+
+  native.java_library (
+    name = 'grpc_netty_1_3_1',
+    visibility = ['//visibility:public'],
+    exports = ['@grpc_netty_1_3_1//jar'],
+  )
+
+  native.java_library (
+    name = 'grpc_auth_1_3_1',
+    visibility = ['//visibility:public'],
+    exports = ['@grpc_auth_1_3_1//jar'],
+  )
+
+  native.java_library (
+    name = 'protobuf_java_3_3_0',
+    visibility = ['//visibility:public'],
+    exports = ['@protobuf_java_3_3_0//jar'],
+  )
+
+  native.java_library (
+    name = 'protobuf_java_3_2_0',
+    visibility = ['//visibility:public'],
+    exports = ['@protobuf_java_3_2_0//jar'],
+  )
+
+  native.java_library (
+    name = 'grpc_testing_1_3_1',
+    visibility = ['//visibility:public'],
+    exports = ['@grpc_testing_1_3_1//jar'],
+  )
+
+  native.java_library (
+    name = 'grpc_testing_proto_1_3_1',
+    visibility = ['//visibility:public'],
+    exports = ['@grpc_testing_proto_1_3_1//jar'],
+  )
+
+  native.java_library (
+    name = 'grpc_context_1_3_1',
+    visibility = ['//visibility:public'],
+    exports = ['@grpc_context_1_3_1//jar'],
+  )
+
+  native.java_library (
+    name = 'google_truth_0_28',
+    visibility = ['//visibility:public'],
+    exports = ['@google_truth_0_28//jar'],
+  )
+
+  native.java_library (
+    name = 'google_code_findbugs_3_0_0',
+    visibility = ['//visibility:public'],
+    exports = ['@google_code_findbugs_3_0_0//jar'],
+  )
+
+  native.java_library (
+    name = 'google_errorprone_2_0_19',
+    visibility = ['//visibility:public'],
+    exports = ['@google_errorprone_2_0_19//jar'],
+  )
+
+  native.java_library (
+    name = 'google_instrumentation_0_3_0',
+    visibility = ['//visibility:public'],
+    exports = ['@google_instrumentation_0_3_0//jar'],
+  )
+
+  native.java_library (
+    name = 'bcpkix_jdk15on',
+    visibility = ['//visibility:public'],
+    exports = ['@bcpkix_jdk15on//jar'],
+  )
+
+  native.java_library (
+    name = 'bcprov_jdk15on',
+    visibility = ['//visibility:public'],
+    exports = ['@bcprov_jdk15on//jar'],
+  )
+
+  native.java_library (
+    name = 'hamcrest_optional',
+    visibility = ['//visibility:public'],
+    exports = ['@hamcrest_optional//jar'],
+  )
+
+  native.java_library (
+    name = 'swagger_annotations',
+    visibility = ['//visibility:public'],
+    exports = ['@swagger_annotations//jar'],
+  )
+
+  native.java_library (
+    name = 'kafka_clients',
+    visibility = ['//visibility:public'],
+    exports = ['@kafka_clients//jar'],
+  )
+
+  native.java_library (
+    name = 'tinder_xmpp',
+    visibility = ['//visibility:public'],
+    exports = ['@tinder_xmpp//jar'],
+  )
+
+  native.java_library (
+    name = 'aalto_xml',
+    visibility = ['//visibility:public'],
+    exports = ['@aalto_xml//jar'],
+  )
+
+  native.java_library (
+    name = 'stax2_api',
+    visibility = ['//visibility:public'],
+    exports = ['@stax2_api//jar'],
+  )
+
+  native.java_library (
+    name = 'concurrent_hashmap',
+    visibility = ['//visibility:public'],
+    exports = ['@concurrent_hashmap//jar'],
+  )
+
+  native.java_library (
+    name = 'gnu_idn',
+    visibility = ['//visibility:public'],
+    exports = ['@gnu_idn//jar'],
+  )
+
+  native.java_library (
+    name = 'sigar',
+    visibility = ['//visibility:public'],
+    exports = ['@sigar//jar'],
+  )
+
diff --git a/tools/build/bazel/osgi-java-library.bzl b/tools/build/bazel/osgi-java-library.bzl
new file mode 100644
index 0000000..680ecc9
--- /dev/null
+++ b/tools/build/bazel/osgi-java-library.bzl
@@ -0,0 +1,182 @@
+load("//tools/build/bazel:generate_workspace.bzl", "COMPILE", "TEST")
+load("//tools/build/bazel:variables.bzl", "ONOS_VERSION")
+load("//tools/build/bazel:generate_test_rules.bzl", "generate_test_rules")
+
+def all_java_sources():
+  return native.glob(["src/main/java/**/*.java"])
+
+def all_java_test_sources():
+  return native.glob(["src/test/java/**/*.java"])
+
+def all_test_resources():
+  return native.glob(["src/test/resources/**"])
+
+def all_resources(resources_root):
+  if resources_root == None:
+    return native.glob(["src/main/resources/**"])
+  else:
+    return native.glob([resources_root + '**'])
+
+# Implementation of the rule to call bnd to make an OSGI jar file
+def _bnd_impl(ctx):
+
+  jar = ctx.file.source.path
+  output = ctx.outputs.osgi_jar.path
+  cp = ""
+  name = ctx.attr.source.label.name
+  group = ctx.attr.package_name_root
+  version = ctx.attr.version
+  license = ""
+  importPackages = "*"
+  exportPackages = "*"
+  includeResources = ""
+  webContext = "NONE"
+  dynamicimportPackages = ""
+
+  inputDependencies = [ctx.file.source]
+
+  # determine the dependencies and build the class path
+  for dep in ctx.attr.deps:
+      file = dep.java.outputs.jars[0].class_jar
+
+      if cp:
+         cp += ":"
+      cp += file.path
+      inputDependencies = inputDependencies + [file]
+
+  # extract the class files for use by bnd
+  classes = ctx.actions.declare_file("classes")
+  classesPath = classes.path
+  jarCommand = "mkdir -p %s && cp %s %s && cd %s && jar xf *.jar" % (classesPath, jar, classesPath, classesPath)
+  ctx.actions.run_shell(
+      inputs=inputDependencies,
+            outputs=[classes],
+            command=jarCommand,
+            progress_message="Expanding jar file: %s" % jar,
+        )
+  inputDependencies += [classes]
+
+  # call bnd to make the OSGI jar file
+  arguments=[
+            jar,
+            output,
+            cp,
+            name,
+            group,
+            version,
+            license,
+            importPackages,
+            exportPackages,
+            includeResources,
+            webContext,
+            dynamicimportPackages,
+            classesPath,
+        ]
+  ctx.actions.run(
+      inputs=inputDependencies,
+      outputs=[ctx.outputs.osgi_jar],
+      arguments=arguments,
+      progress_message="Running bnd wrapper on: %s" % ctx.attr.name,
+      executable=ctx.executable._bnd_exe,
+  )
+
+bnd = rule(
+    attrs = {
+        "deps": attr.label_list(),
+        "version": attr.string(),
+        "package_name_root": attr.string(),
+        "source": attr.label(allow_single_file = True),
+        "_bnd_exe": attr.label(
+            executable = True,
+            cfg = "host",
+            allow_files = True,
+            default = Label("//utils/osgiwrap:osgi-jar"),
+        ),
+    },
+    fragments = ["java"],
+    outputs = {
+        "osgi_jar": "lib%{name}.jar",
+    },
+    implementation = _bnd_impl,
+)
+
+def _fwd_bnd(name, source, deps, version, package_name_root, visibility):
+  bnd(name = name, source = source, deps = deps, version = version, package_name_root = package_name_root, visibility = visibility)
+
+def wrapped_osgi_library(name, jar, deps, version = ONOS_VERSION, package_name_root = "org.onosproject", visibility = [ "//visibility:private" ]):
+  _fwd_bnd(name, jar, deps, version, package_name_root, visibility)
+
+def osgi_jar_with_tests(name = None,
+                        deps = None,
+                        test_deps = None,
+                        package_name_root = "org.onosproject",
+                        srcs = None,
+                        resources_root = None,
+                        resources = None,
+                        test_srcs = None,
+                        exclude_tests = None,
+                        test_resources = None,
+                        visibility = [ "//visibility:public" ],
+                        version = ONOS_VERSION):
+  if name == None:
+    name = "onos-" + native.package_name().replace("/", "-")
+  if srcs == None:
+    srcs = all_java_sources()
+  if resources == None:
+    resources = all_resources(resources_root)
+  if test_srcs == None:
+    test_srcs = all_java_test_sources()
+  if test_resources == None:
+    test_resources = all_test_resources()
+  if exclude_tests == None:
+    exclude_tests = []
+  if deps == None:
+    deps = COMPILE
+  if test_deps == None:
+    test_deps = TEST
+  tests_name = name + '-tests'
+  tests_jar_deps = list(depset(deps + test_deps)) + [ name ]
+  all_test_deps = tests_jar_deps + [ tests_name ]
+
+  native.java_library(name = name, srcs = srcs, resources = resources, deps = deps, visibility = visibility)
+  _fwd_bnd(name + '-osgi', name, deps, version, package_name_root, visibility)
+  if test_srcs != []:
+    native.java_library(name = tests_name,
+                        srcs = test_srcs,
+                        resources = test_resources,
+                        deps = tests_jar_deps,
+                        visibility = visibility)
+
+    generate_test_rules(
+      name = name + "-tests-gen",
+      test_files = test_srcs,
+      exclude_tests = exclude_tests,
+      deps = all_test_deps
+    )
+
+def osgi_jar(name = None,
+             deps = None,
+             package_name_root = "org.onosproject",
+             srcs = None,
+             resources_root = None,
+             resources = None,
+             visibility = [ "//visibility:public" ],
+             version = ONOS_VERSION):
+    if srcs == None:
+      srcs = all_java_sources()
+    if deps == None:
+      deps = COMPILE
+
+    osgi_jar_with_tests(name = name,
+                        deps = deps,
+                        test_deps = [],
+                        package_name_root = package_name_root,
+                        srcs = srcs,
+                        resources = resources,
+                        resources_root = resources_root,
+                        test_srcs = [],
+                        exclude_tests = [],
+                        test_resources = [],
+                        visibility = visibility,
+                        version = version)
+
diff --git a/tools/build/bazel/rules.bzl b/tools/build/bazel/rules.bzl
new file mode 100644
index 0000000..3dd5922
--- /dev/null
+++ b/tools/build/bazel/rules.bzl
@@ -0,0 +1,9 @@
+load("//tools/build/bazel:generate_workspace.bzl",
+        "generated_java_libraries", "COMPILE", "CORE_DEPS", "JACKSON",
+        "TEST_ADAPTERS", "TEST", "TEST_REST", "METRICS", "KRYO", "NETTY")
+
+def onos_bazel_rules() :
+    return
+
+def g() :
+    generated_java_libraries()
\ No newline at end of file
diff --git a/tools/build/bazel/variables.bzl b/tools/build/bazel/variables.bzl
new file mode 100644
index 0000000..1ef7121
--- /dev/null
+++ b/tools/build/bazel/variables.bzl
@@ -0,0 +1,2 @@
+ONOS_VERSION = "1.13.0-SNAPSHOT"
+
diff --git a/tools/build/libgen/src/main/java/org/onosproject/libgen/AetherResolver.java b/tools/build/libgen/src/main/java/org/onosproject/libgen/AetherResolver.java
index 1850779..4f5dcfa 100644
--- a/tools/build/libgen/src/main/java/org/onosproject/libgen/AetherResolver.java
+++ b/tools/build/libgen/src/main/java/org/onosproject/libgen/AetherResolver.java
@@ -91,15 +91,15 @@
         AetherResolver.session = session;
     }
 
-    public static BuckArtifact getArtifact(String name, String uri, String repo) {
-        return new AetherResolver(repo).build(name, uri);
+    public static BuckArtifact getArtifact(String name, String uri, String repo, boolean generateForBazel) {
+        return new AetherResolver(repo).build(name, uri, generateForBazel);
     }
 
     private AetherResolver(String repoUrl) {
         this.repoUrl = repoUrl;
     }
 
-    private BuckArtifact build(String name, String uri) {
+    private BuckArtifact build(String name, String uri, boolean generateForBazel) {
         uri = uri.replaceFirst("mvn:", "");
         Artifact artifact = new DefaultArtifact(uri);
         String originalVersion = artifact.getVersion();
@@ -122,9 +122,9 @@
                                                    artifact.getGroupId(),
                                                    artifact.getArtifactId(),
                                                    originalVersion);
-                return BuckArtifact.getArtifact(name, url, sha, mavenCoords, osgiReady);
+                return BuckArtifact.getArtifact(name, url, sha, mavenCoords, osgiReady, generateForBazel);
             }
-            return BuckArtifact.getArtifact(name, artifact, sha, repoUrl, osgiReady);
+            return BuckArtifact.getArtifact(name, artifact, sha, repoUrl, osgiReady, generateForBazel);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
diff --git a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckArtifact.java b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckArtifact.java
index 15e14be..215b5a8 100644
--- a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckArtifact.java
+++ b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckArtifact.java
@@ -25,25 +25,33 @@
     private final String name;
     private final String sha;
     private final boolean osgiReady;
+    private final boolean generateForBazel;
 
-    public static BuckArtifact getArtifact(String name, Artifact artifact, String sha, String repo, boolean osgiReady) {
-        return new MavenArtifact(name, artifact, sha, repo, osgiReady);
+    public static BuckArtifact getArtifact(String name, Artifact artifact, String sha, String repo,
+                                           boolean osgiReady, boolean generateForBazel) {
+        return new MavenArtifact(name, artifact, sha, repo, osgiReady, generateForBazel);
     }
-    public static BuckArtifact getArtifact(String name, String url, String sha, String mavenCoords, boolean osgiReady) {
-        return new HTTPArtifact(name, url, sha, mavenCoords, osgiReady);
+    public static BuckArtifact getArtifact(String name, String url, String sha, String mavenCoords,
+                                           boolean osgiReady, boolean generateForBazel) {
+        return new HTTPArtifact(name, url, sha, mavenCoords, osgiReady, generateForBazel);
     }
-    public static BuckArtifact getArtifact(String name, String url, String sha) {
-        return new HTTPArtifact(name, url, sha, null, true);
+    public static BuckArtifact getArtifact(String name, String url, String sha, boolean generateForBazel) {
+        return new HTTPArtifact(name, url, sha, null, true, generateForBazel);
     }
 
-    public BuckArtifact(String name, String sha, boolean osgiReady) {
+    public BuckArtifact(String name, String sha, boolean osgiReady, boolean generateForBazel) {
         this.name = name;
         this.sha = sha;
         this.osgiReady = osgiReady;
+        this.generateForBazel = generateForBazel;
     }
 
     public String name() {
-        return name;
+        if (!generateForBazel) {
+            return name;
+        } else {
+            return name.replaceAll("[.-]", "_");
+        }
     }
 
     abstract String fileName();
@@ -51,7 +59,7 @@
     abstract String url();
 
     private String jarTarget() {
-        return name != null ? name : fileName();
+        return name != null ? name() : fileName();
     }
 
     private boolean isPublic() {
@@ -62,20 +70,82 @@
         return osgiReady;
     }
 
+    boolean isGenerateForBazel() {
+        return generateForBazel;
+    }
+
+
     String mavenCoords() {
         return null;
     }
 
+    private boolean isJar() {
+        return fileName().endsWith(".jar");
+    }
+
+    private boolean isHttp() {
+        return url().startsWith("http");
+    }
+
+    String getBazelJavaLibraryFragment() {
+        if (isJar()) {
+            String format =
+                    "  native.java_library (\n" +
+                            "    name = '%s',\n" +
+                            "    visibility = ['//visibility:public'],\n" +
+                            "    exports = ['@%s//jar'],\n" +
+                            "  )\n\n";
+            return String.format(format, jarTarget(), jarTarget());
+        }
+        return "";
+    }
+
+    private String extractRepo() {
+        // This is a hack because the code above us already got rid of the maven repo
+        // info for artifacts
+        String url = url();
+        if (url.startsWith("http")) {
+            return url.substring(0, url.indexOf(fileName()) - mavenCoords().length() - 1);
+        } else {
+            return "";
+        }
+    }
+
+    String getBazelMavenJarFragment() {
+        if (isJar() && mavenCoords() != null) {
+            String repo = extractRepo();
+            String repoAttribute = "";
+            if (!"".equals(repo)) {
+                repoAttribute = "    repository = '" + repo + "',\n";
+            }
+            String format =
+                    "  native.maven_jar (\n" +
+                            "    name = '%s',\n" +
+                            "    artifact = '%s',\n" +
+                            "    sha1 = '%s',\n" +
+                            "%s" +
+                            "  )\n\n";
+            return String.format(format, jarTarget(), mavenCoords(), sha, repoAttribute);
+        } else {
+            String format =
+                    "  native.http_jar (\n" +
+                            "    name = '%s',\n" +
+                            "    url = '%s',\n" +
+                            "    sha256 = '%s',\n" +
+                            "  )\n\n";
+            return String.format(format, jarTarget(), url(), sha);
+        }
+    }
+
     public String getBuckFragment() {
         String visibility = isPublic() ? "[ 'PUBLIC' ]" : "[]";
 
-        boolean isJar = fileName().endsWith(".jar");
-        String output = (isJar ? "remote_jar" : "remote_file") + " (\n" +
+        String output = (isJar() ? "remote_jar" : "remote_file") + " (\n" +
                 "  name = '%s',\n" + // jar target
                 "  out = '%s',\n" + // jar file name
                 "  url = '%s',\n" + // maven url
                 "  sha1 = '%s',\n" + // artifact sha
-                ( isJar && mavenCoords() != null ?
+                ( isJar() && mavenCoords() != null ?
                 "  maven_coords = '"+ mavenCoords()+"',\n" : "" ) +
                 "  visibility = %s,\n" +
                 ")\n\n";
@@ -87,8 +157,9 @@
         private final String url;
         private final String mavenCoords;
 
-        public HTTPArtifact(String name, String url, String sha, String mavenCoords, boolean osgiReady) {
-            super(name, sha, osgiReady);
+        public HTTPArtifact(String name, String url, String sha,
+                            String mavenCoords, boolean osgiReady, boolean generateForBazel) {
+            super(name, sha, osgiReady, generateForBazel);
             this.url = url;
             this.mavenCoords = mavenCoords;
         }
@@ -114,8 +185,9 @@
         private final Artifact artifact;
         private final String repo;
 
-        private MavenArtifact(String name, Artifact artifact, String sha, String repo, boolean osgiReady) {
-            super(name, sha, osgiReady);
+        private MavenArtifact(String name, Artifact artifact, String sha,
+                              String repo, boolean osgiReady, boolean generateForBazel) {
+            super(name, sha, osgiReady, generateForBazel);
             this.artifact = artifact;
             this.repo = repo;
         }
@@ -142,7 +214,7 @@
         @Override
         String mavenCoords() {
             String classifer = artifact.getClassifier();
-            if (!isOsgiReady()) {
+            if (!isOsgiReady() && !isGenerateForBazel()) {
                 classifer = "NON-OSGI" + classifer;
             }
 
diff --git a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
index 0fddf1b..b49c7b7 100644
--- a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
+++ b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
@@ -55,6 +55,8 @@
     private final List<BuckArtifact> artifacts = new ArrayList<>();
     private final List<BuckLibrary> libraries = new ArrayList<>();
 
+    private static boolean generateForBazel = false;
+
     /**
      * Main entry point.
      *
@@ -66,6 +68,10 @@
             System.exit(5);
         }
 
+        if (args.length == 3 && "--bazel".equals(args[2])) {
+            generateForBazel = true;
+        }
+
         // Parse args
         String jsonFilePath = args[0];
         String outputBuckPath = args[1];
@@ -107,14 +113,14 @@
         System.out.flush();
         BuckArtifact buckArtifact;
         if (uri.startsWith("http")) {
-            String sha = getHttpSha(name, uri);
-            buckArtifact = BuckArtifact.getArtifact(name, uri, sha);
+            String sha = generateForBazel ? getHttpSha256(name, uri) : getHttpSha1(name, uri);
+            buckArtifact = BuckArtifact.getArtifact(name, uri, sha, generateForBazel);
         } else if (uri.startsWith("mvn")) {
             uri = uri.replaceFirst("mvn:", "");
 //            if (repo != null) {
 //                System.out.println(name + " " + repo);
 //            }
-            buckArtifact = AetherResolver.getArtifact(name, uri, repo);
+            buckArtifact = AetherResolver.getArtifact(name, uri, repo, generateForBazel);
         } else {
             throw new RuntimeException("Unsupported artifact uri: " + uri);
         }
@@ -145,7 +151,7 @@
             libraryTargets.add(name);
         });
 
-        return BuckLibrary.getLibrary(libraryName, libraryTargets);
+        return BuckLibrary.getLibrary(libraryName, libraryTargets, generateForBazel);
     }
 
     public BuckLibGenerator resolve() {
@@ -170,6 +176,27 @@
         return this;
     }
 
+    private String generateArtifacts() {
+        StringBuilder sb = new StringBuilder();
+        if (!generateForBazel) {
+            artifacts.forEach(artifact -> sb.append(artifact.getBuckFragment()));
+        } else {
+            StringBuilder mavenJars = new StringBuilder();
+            StringBuilder javaLibraries = new StringBuilder();
+
+            mavenJars.append("def generated_maven_jars():\n");
+            javaLibraries.append("def generated_java_libraries():\n");
+
+            artifacts.forEach(artifact -> {
+                mavenJars.append(artifact.getBazelMavenJarFragment());
+                javaLibraries.append(artifact.getBazelJavaLibraryFragment());
+            });
+
+            sb.append(mavenJars).append(javaLibraries);
+        }
+        return sb.toString();
+    }
+
     void write(String outputFilePath) {
         DateTimeFormatter formatter = DateTimeFormatter.RFC_1123_DATE_TIME.withZone(ZoneId.of("UTC"));
         File outputFile = new File(outputFilePath);
@@ -182,17 +209,19 @@
                     formatter.format(Instant.now())));
             writer.write("# ***** Use onos-lib-gen *****\n");
 
-            // rule to publish the onos dependency pom
-            writer.write("\npass_thru_pom(\n" +
-                         "    name = 'onos-dependencies-pom',\n" +
-                         "    src = 'pom.xml',\n" +
-                         "    out = 'onos-dependencies.pom',\n" +
-                         "    artifactId = 'onos-dependencies',\n" +
-                         ")\n\n");
+            if (!generateForBazel) {
+                // TODO - have to do this somehow for bazel
+                // rule to publish the onos dependency pom
+                writer.write("\npass_thru_pom(\n" +
+                        "    name = 'onos-dependencies-pom',\n" +
+                        "    src = 'pom.xml',\n" +
+                        "    out = 'onos-dependencies.pom',\n" +
+                        "    artifactId = 'onos-dependencies',\n" +
+                        ")\n\n");
+            }
 
-
-            libraries.forEach(library -> writer.print(library.getBuckFragment()));
-            artifacts.forEach(artifact -> writer.print(artifact.getBuckFragment()));
+            libraries.forEach(library -> writer.print(library.getFragment()));
+            writer.print(generateArtifacts());
             writer.flush();
         } catch (FileNotFoundException e) {
             error("File not found: %s", outputFilePath);
@@ -202,10 +231,18 @@
         }
     }
 
-    String getHttpSha(String name, String urlStr) {
+    String getHttpSha1(String name, String urlStr) {
+        return getHttpSha(name, urlStr, "SHA-1");
+    }
+
+    String getHttpSha256(String name, String urlStr) {
+        return getHttpSha(name, urlStr, "SHA-256");
+    }
+
+    String getHttpSha(String name, String urlStr, String algorithm) {
         //FIXME need http download cache
         try {
-            MessageDigest md = MessageDigest.getInstance("SHA-1");
+            MessageDigest md = MessageDigest.getInstance(algorithm);
             byte[] buffer = new byte[8192];
 
             URL url = new URL(urlStr);
@@ -225,7 +262,7 @@
                 .filter(File::canRead)
                 .findAny();
 
-            if (cache.isPresent()) {
+            if (cache.isPresent() && !generateForBazel) {
                 try (FileInputStream stream = new FileInputStream(cache.get())) {
                     int read;
                     while ((read = stream.read(buffer)) >= 0) {
diff --git a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibrary.java b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibrary.java
index df33c0f..b082aa3 100644
--- a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibrary.java
+++ b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibrary.java
@@ -28,24 +28,73 @@
 
     private final String name;
     private final List<String> targets;
+    private final boolean generateForBazel;
 
     private final Set<Artifact> provided = new HashSet<>();
     private final Set<Artifact> runtime = new HashSet<>();
 
-    public static BuckLibrary getLibrary(String libraryName, List<String> libraryTargets) {
-        return new BuckLibrary(libraryName, libraryTargets);
+    public static BuckLibrary getLibrary(String libraryName, List<String> libraryTargets, boolean generateForBazel) {
+        return new BuckLibrary(libraryName, libraryTargets, generateForBazel);
     }
 
-    private BuckLibrary(String name, List<String> targets) {
+    private BuckLibrary(String name, List<String> targets, boolean generateForBazel) {
         this.name = name;
         this.targets = targets;
+        this.generateForBazel = generateForBazel;
+    }
+
+    private String normalizeName(String name) {
+        if (!name.startsWith("//")) {
+            return name.replaceAll("[.-]", "_");
+        } else {
+            return name;
+        }
+    }
+
+    private String convertBuckTargetName(String buckTargetName) {
+        return normalizeName((buckTargetName.startsWith("//") ?
+                buckTargetName : buckTargetName.replaceFirst(":", "@")));
+    }
+
+    private boolean isAllUpper(String s) {
+        return s.toUpperCase().equals(s);
     }
 
     public String name() {
-        return name;
+        if (!generateForBazel) {
+            return name;
+        } else {
+            return normalizeName(name);
+        }
     }
 
-    public String getBuckFragment() {
+    public String getFragment() {
+        if (generateForBazel) {
+            return getBazelFragment();
+        } else {
+            return getBuckFragment();
+        }
+    }
+
+    private String getBazelFragment() {
+        StringBuilder output = new StringBuilder()
+                .append(name())
+                .append(" = [");
+
+        targets.forEach(target -> {
+            if (isAllUpper(target)) {
+                output.append(String.format("] + %s + [", target.replaceFirst(":", "")));
+            } else {
+                String pathEnd = target.startsWith("//") ? "" : "//jar";
+                output.append(String.format("\n    '%s%s',", convertBuckTargetName(target), pathEnd));
+            }
+        });
+        output.append("\n]\n");
+
+        return output.toString();
+    }
+
+    private String getBuckFragment() {
         StringBuilder output = new StringBuilder()
                 .append("osgi_feature_group(\n")
                 .append(String.format("  name = '%s',\n", name))
diff --git a/tools/build_rules/BUILD b/tools/build_rules/BUILD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/build_rules/BUILD
diff --git a/tools/build_rules/prelude_bazel b/tools/build_rules/prelude_bazel
new file mode 100644
index 0000000..138126c
--- /dev/null
+++ b/tools/build_rules/prelude_bazel
@@ -0,0 +1,7 @@
+load("//tools/build/bazel:generate_workspace.bzl",
+        "generated_java_libraries", "COMPILE", "CORE_DEPS", "JACKSON",
+        "TEST_ADAPTERS", "TEST", "TEST_REST", "METRICS", "KRYO", "NETTY")
+
+load("//tools/build/bazel:osgi-java-library.bzl", "osgi_jar_with_tests", "osgi_jar")
+
+generated_java_libraries()
