# ***** This file was auto-generated at Fri, 1 Mar 2019 22:44:06 GMT. Do not edit this file manually. *****
# ***** Use onos-lib-gen *****

load("//tools/build/bazel:variables.bzl", "ONOS_GROUP_ID", "ONOS_VERSION")


load("@bazel_tools//tools/build_defs/repo:java.bzl", "java_import_external")

COMPILE = [
    "@commons_configuration//jar",
    "@commons_logging//jar",
    "@commons_collections//jar",
    "@commons_lang//jar",
    "@commons_lang3//jar",
    "@commons_io//jar",
    "@commons_pool//jar",
    "@com_google_guava_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",
    "@com_google_code_findbugs_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",
    "@com_google_guava_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_mvn//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 = [
    "@io_netty_netty_buffer//jar",
    "@io_netty_netty_common//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",
]
CLI = [
    "@org_apache_karaf_shell_console//jar",
    "//cli:onos-cli",
]
REST = [
    "@javax_ws_rs_api//jar",
    "//utils/rest:onlab-rest",
]
ATOMIX = [
    "@atomix//jar",
    "@atomix_cluster//jar",
    "@atomix_gossip//jar",
    "@atomix_primary_backup//jar",
    "@atomix_primitive//jar",
    "@atomix_raft//jar",
    "@atomix_storage//jar",
    "@atomix_utils//jar",
    "@typesafe_config//jar",
    "@classgraph//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",
]

def generated_maven_jars():
    if "aopalliance_repackaged" not in native.existing_rules():
        java_import_external(
            name = "aopalliance_repackaged",
            jar_sha256 = "669869a9d7e98fcea34580de250db54531550487d03571f26b9592e712897423",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/hk2/external/aopalliance-repackaged/2.5.0-b42/aopalliance-repackaged-2.5.0-b42.jar"],        )
    if "amqp_client" not in native.existing_rules():
        java_import_external(
            name = "amqp_client",
            jar_sha256 = "cb6cdb7de8d37cb1b15b23867435c7dbbeaa1ca4b766f434138a8b9ef131994f",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/rabbitmq/amqp-client/3.6.1/amqp-client-3.6.1.jar"],        )
    if "asm" not in native.existing_rules():
        java_import_external(
            name = "asm",
            jar_sha256 = "896618ed8ae62702521a78bc7be42b7c491a08e6920a15f89a3ecdec31e9a220",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar"],        )
    if "atomix" not in native.existing_rules():
        java_import_external(
            name = "atomix",
            jar_sha256 = "9fcf9e2b337fc994362d2ecdae455cd066324d9d409b4ae3cae27ba12ff76748",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix/3.0.11/atomix-3.0.11.jar"],        )
    if "atomix_cluster" not in native.existing_rules():
        java_import_external(
            name = "atomix_cluster",
            jar_sha256 = "9bd9f57bbc35a94da75d0d0ebb16dd65dec6364392704a1d329aa5e585f04a16",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-cluster/3.0.11/atomix-cluster-3.0.11.jar"],        )
    if "atomix_gossip" not in native.existing_rules():
        java_import_external(
            name = "atomix_gossip",
            jar_sha256 = "3ab9e1a2a9ec960442bda42d38e31be762f0171e9757b19e60ac43e9bd4e6e5c",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-gossip/3.0.11/atomix-gossip-3.0.11.jar"],        )
    if "atomix_primary_backup" not in native.existing_rules():
        java_import_external(
            name = "atomix_primary_backup",
            jar_sha256 = "cb34b23ecad9ad3c2010c98c7ceb518b8ddee9fbeda5ca6b745a3b157363647f",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-primary-backup/3.0.11/atomix-primary-backup-3.0.11.jar"],        )
    if "atomix_primitive" not in native.existing_rules():
        java_import_external(
            name = "atomix_primitive",
            jar_sha256 = "a06549c57d153613074d70e34b8c4c45eb83b38578360071653238489b7aaa20",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-primitive/3.0.11/atomix-primitive-3.0.11.jar"],        )
    if "atomix_raft" not in native.existing_rules():
        java_import_external(
            name = "atomix_raft",
            jar_sha256 = "8b27cd46aa3504fda104307b4cf3aec232d5fe57a601a9c6ad62c4ba3596866e",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-raft/3.0.11/atomix-raft-3.0.11.jar"],        )
    if "atomix_storage" not in native.existing_rules():
        java_import_external(
            name = "atomix_storage",
            jar_sha256 = "74bdefa97b2d49ce3c7f97124f03d8ebaef991129c3810718d9efa5c40b7fe63",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-storage/3.0.11/atomix-storage-3.0.11.jar"],        )
    if "atomix_utils" not in native.existing_rules():
        java_import_external(
            name = "atomix_utils",
            jar_sha256 = "0883cff9d977d2fd302fb94bc4af1f25c4cbb188c0a9f2ec71c0d912ecff6917",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-utils/3.0.11/atomix-utils-3.0.11.jar"],        )
    if "classgraph" not in native.existing_rules():
        java_import_external(
            name = "classgraph",
            jar_sha256 = "92a75236a6a30993895916b7eea4011c54d3182c9fa6734e8c23b30cc9500023",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/github/classgraph/classgraph/4.2.3/classgraph-4.2.3.jar"],        )
    if "commons_codec" not in native.existing_rules():
        java_import_external(
            name = "commons_codec",
            jar_sha256 = "4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-codec/commons-codec/1.10/commons-codec-1.10.jar"],        )
    if "commons_cli" not in native.existing_rules():
        java_import_external(
            name = "commons_cli",
            jar_sha256 = "f8046bdc72b7ff88afb1dff5ff45451df95290c78a639ec7fa40c953ca89cb26",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-cli/commons-cli/1.3/commons-cli-1.3.jar"],        )
    if "commons_collections" not in native.existing_rules():
        java_import_external(
            name = "commons_collections",
            jar_sha256 = "eeeae917917144a68a741d4c0dff66aa5c5c5fd85593ff217bced3fc8ca783b8",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar"],        )
    if "commons_configuration" not in native.existing_rules():
        java_import_external(
            name = "commons_configuration",
            jar_sha256 = "95d4e6711e88ce78992c82c25bc03c8df9ecf5a357f0de0bec72a26db3399374",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-configuration/commons-configuration/1.10/commons-configuration-1.10.jar"],        )
    if "commons_io" not in native.existing_rules():
        java_import_external(
            name = "commons_io",
            jar_sha256 = "f877d304660ac2a142f3865badfc971dec7ed73c747c7f8d5d2f5139ca736513",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-io/commons-io/2.6/commons-io-2.6.jar"],        )
    if "commons_jxpath" not in native.existing_rules():
        java_import_external(
            name = "commons_jxpath",
            jar_sha256 = "fcbc0ad917d9d6a73c6df21fac322e00d213ef19cd94815a007c407a8a3ff449",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar"],        )
    if "commons_beanutils" not in native.existing_rules():
        java_import_external(
            name = "commons_beanutils",
            jar_sha256 = "c058e39c7c64203d3a448f3adb588cb03d6378ed808485618f26e137f29dae73",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-beanutils/commons-beanutils/1.9.3/commons-beanutils-1.9.3.jar"],        )
    if "fast_classpath_scanner" not in native.existing_rules():
        java_import_external(
            name = "fast_classpath_scanner",
            jar_sha256 = "80bd0619aa2111c26ad69808e29f649c860d30b14cbbbb080968a20518068185",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/github/lukehutch/fast-classpath-scanner/2.21/fast-classpath-scanner-2.21.jar"],        )
    if "jdom" not in native.existing_rules():
        java_import_external(
            name = "jdom",
            jar_sha256 = "3b23bc3979aec14a952a12aafc483010dc57579775f2ffcacef5256a90eeda02",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/jdom/jdom/1.0/jdom-1.0.jar"],        )
    if "commons_lang" not in native.existing_rules():
        java_import_external(
            name = "commons_lang",
            jar_sha256 = "50f11b09f877c294d56f24463f47d28f929cf5044f648661c0f0cfbae9a2f49c",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar"],        )
    if "commons_lang3" not in native.existing_rules():
        java_import_external(
            name = "commons_lang3",
            jar_sha256 = "6e8dc31e046508d9953c96534edf0c2e0bfe6f468966b5b842b3f87e43b6a847",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.7/commons-lang3-3.7.jar"],        )
    if "commons_logging" not in native.existing_rules():
        java_import_external(
            name = "commons_logging",
            jar_sha256 = "daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar"],        )
    if "commons_math3" not in native.existing_rules():
        java_import_external(
            name = "commons_math3",
            jar_sha256 = "1e56d7b058d28b65abd256b8458e3885b674c1d588fa43cd7d1cbb9c7ef2b308",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar"],        )
    if "commons_net" not in native.existing_rules():
        java_import_external(
            name = "commons_net",
            jar_sha256 = "c25b0da668b3c5649f002d504def22d1b4cb30d206f05428d2fe168fa1a901c2",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-net/commons-net/3.5/commons-net-3.5.jar"],        )
    if "commons_pool" not in native.existing_rules():
        java_import_external(
            name = "commons_pool",
            jar_sha256 = "46c42b4a38dc6b2db53a9ee5c92c63db103665d56694e2cfce2c95d51a6860cc",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/commons-pool/commons-pool/1.6/commons-pool-1.6.jar"],        )
    if "commons_text" not in native.existing_rules():
        java_import_external(
            name = "commons_text",
            jar_sha256 = "8185b3a5311092d83ed1f184c2d093b3105d726bbd76867c32b3511542bb99a8",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/commons/commons-text/1.3/commons-text-1.3.jar"],        )
    if "concurrent_trees" not in native.existing_rules():
        java_import_external(
            name = "concurrent_trees",
            jar_sha256 = "04e3724984e2a5cbf55606cfa372a5bd3d3c5d2a21533a7004e3cde539761fa5",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/googlecode/concurrent-trees/concurrent-trees/2.6.1/concurrent-trees-2.6.1.jar"],        )
    if "easymock" not in native.existing_rules():
        java_import_external(
            name = "easymock",
            jar_sha256 = "0557c9fa845c951bdbe3940b605346a212172c64328277428297ef1fc6308e8f",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/easymock/easymock/3.6/easymock-3.6.jar"],        )
    if "antlr" not in native.existing_rules():
        java_import_external(
            name = "antlr",
            jar_sha256 = "88fbda4b912596b9f56e8e12e580cc954bacfb51776ecfddd3e18fc1cf56dc4c",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/antlr/antlr/2.7.7/antlr-2.7.7.jar"],        )
    if "ganymed_ssh2" not in native.existing_rules():
        java_import_external(
            name = "ganymed_ssh2",
            jar_sha256 = "dc3c036d9d3a54742e01f50a6f4613be5a8e5647e958348932a2bdb0007fa15a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/ch/ethz/ganymed/ganymed-ssh2/262/ganymed-ssh2-262.jar"],        )
    if "gmetric4j" not in native.existing_rules():
        java_import_external(
            name = "gmetric4j",
            jar_sha256 = "a32eb2f88f7c0fbc2846535c55d6f7bd8fc5763470bc3e1142cbaef2110a6bf3",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/info/ganglia/gmetric4j/gmetric4j/1.0.10/gmetric4j-1.0.10.jar"],        )
    if "com_google_code_gson_gson" not in native.existing_rules():
        java_import_external(
            name = "com_google_code_gson_gson",
            jar_sha256 = "2d43eb5ea9e133d2ee2405cc14f5ee08951b8361302fdd93494a3a997b508d32",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.jar"],        )
    if "com_google_guava_guava" not in native.existing_rules():
        java_import_external(
            name = "com_google_guava_guava",
            jar_sha256 = "1158e94c7de4da480873f0b4ab4a1da14c0d23d4b1902cc94a58a6f0f9ab579e",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/guava/guava/22.0/guava-22.0.jar"],        )
    if "com_google_guava_guava_testlib" not in native.existing_rules():
        java_import_external(
            name = "com_google_guava_guava_testlib",
            jar_sha256 = "5a7542ddd374a6a2e1c4f55609a72f926267047acad4213585557526c36628e0",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/guava/guava-testlib/22.0/guava-testlib-22.0.jar"],        )
    if "hamcrest_all" not in native.existing_rules():
        java_import_external(
            name = "hamcrest_all",
            jar_sha256 = "4877670629ab96f34f5f90ab283125fcd9acb7e683e66319a68be6eb2cca60de",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/hamcrest/hamcrest-all/1.3/hamcrest-all-1.3.jar"],        )
    if "hk2_api" not in native.existing_rules():
        java_import_external(
            name = "hk2_api",
            jar_sha256 = "4d328e5b1cb5e8dcf3f97e1348d960f439e597009aa9d994dd5325bcef367908",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/hk2/hk2-api/2.5.0-b42/hk2-api-2.5.0-b42.jar"],        )
    if "hk2_locator" not in native.existing_rules():
        java_import_external(
            name = "hk2_locator",
            jar_sha256 = "2a3766079d1cd21e715e4fd75e8189ebd58f9bf852885f1679253f0a27039b72",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/hk2/hk2-locator/2.5.0-b42/hk2-locator-2.5.0-b42.jar"],        )
    if "hk2_osgi_resource_locator" not in native.existing_rules():
        java_import_external(
            name = "hk2_osgi_resource_locator",
            jar_sha256 = "775003be577e8806f51b6e442be1033d83be2cb2207227b349be0bf16e6c0843",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator/1.0.1/osgi-resource-locator-1.0.1.jar"],        )
    if "hk2_utils" not in native.existing_rules():
        java_import_external(
            name = "hk2_utils",
            jar_sha256 = "5edb176086ad0be1d4abbc0a1d26d519d088a01ee24f9ee064c657895a86e3ee",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/hk2/hk2-utils/2.5.0-b42/hk2-utils-2.5.0-b42.jar"],        )
    if "httpclient_osgi" not in native.existing_rules():
        java_import_external(
            name = "httpclient_osgi",
            jar_sha256 = "e0cda85f788456b0a1664713794c70fd8ce634afbc5714df2dc6181174a6edd0",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient-osgi/4.5.1/httpclient-osgi-4.5.1.jar"],        )
    if "httpcore_osgi" not in native.existing_rules():
        java_import_external(
            name = "httpcore_osgi",
            jar_sha256 = "a0bd904e00cb6788efd5cd8c180cb19569bba43e22a711e9b020ffa51b045a4c",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore-osgi/4.4.4/httpcore-osgi-4.4.4.jar"],        )
    if "influxdb_java" not in native.existing_rules():
        java_import_external(
            name = "influxdb_java",
            jar_sha256 = "c2c35eff56e5b101028a52f5fa2bc25e7b5e0f6c7b7fdf9f5c8ed503621547eb",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/influxdb/influxdb-java/2.9/influxdb-java-2.9.jar"],        )
    if "retrofit" not in native.existing_rules():
        java_import_external(
            name = "retrofit",
            jar_sha256 = "c0295f38b3c1a48bb71a8ed2ea69ddeb2e49a830b11862385a403355c6a94643",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/squareup/retrofit2/retrofit/2.3.0/retrofit-2.3.0.jar"],        )
    if "converter_moshi" not in native.existing_rules():
        java_import_external(
            name = "converter_moshi",
            jar_sha256 = "9623b53c71e7305ab1eb8b9e68a4ea57152420de9e2646e3676fbe851fc0371a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/squareup/retrofit2/converter-moshi/2.3.0/converter-moshi-2.3.0.jar"],        )
    if "okhttp" not in native.existing_rules():
        java_import_external(
            name = "okhttp",
            jar_sha256 = "a0d01017a42bba26e507fc6d448bb36e536f4b6e612f7c42de30bbdac2b7785e",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/3.9.1/okhttp-3.9.1.jar"],        )
    if "logging_interceptor" not in native.existing_rules():
        java_import_external(
            name = "logging_interceptor",
            jar_sha256 = "990d2936ff0cb8964ff0e1680424cab713e8ff932ff5a747eaf972e1bc43908f",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/squareup/okhttp3/logging-interceptor/3.9.1/logging-interceptor-3.9.1.jar"],        )
    if "moshi" not in native.existing_rules():
        java_import_external(
            name = "moshi",
            jar_sha256 = "d8ef4da48b59790d587904c4ef2245ee6f64dedec780f1250d00ab136160dcce",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/squareup/moshi/moshi/1.4.0/moshi-1.4.0.jar"],        )
    if "okio" not in native.existing_rules():
        java_import_external(
            name = "okio",
            jar_sha256 = "4633c331f50642ebe795dc089d6a5928aff43071c9d17e7840a009eea2fe95a3",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/squareup/okio/okio/1.14.0/okio-1.14.0.jar"],        )
    if "jackson_annotations" not in native.existing_rules():
        java_import_external(
            name = "jackson_annotations",
            jar_sha256 = "38a0e450049f643570adac99888aa3480ec2de385790a7096908bf43bfc085d6",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.9.5/jackson-annotations-2.9.5.jar"],        )
    if "jackson_core" not in native.existing_rules():
        java_import_external(
            name = "jackson_core",
            jar_sha256 = "a2bebaa325ad25455b02149c67e6052367a7d7fc1ce77de000eed284a5214eac",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar"],        )
    if "jackson_databind" not in native.existing_rules():
        java_import_external(
            name = "jackson_databind",
            jar_sha256 = "0fb4e079c118e752cc94c15ad22e6782b0dfc5dc09145f4813fb39d82e686047",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar"],        )
    if "javax_annotation_api_mvn" not in native.existing_rules():
        java_import_external(
            name = "javax_annotation_api_mvn",
            jar_sha256 = "5909b396ca3a2be10d0eea32c74ef78d816e1b4ead21de1d78de1f890d033e04",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar"],        )
    if "javax_inject" not in native.existing_rules():
        java_import_external(
            name = "javax_inject",
            jar_sha256 = "3bcf096beb918c9586be829190903090a21ac40513c1401e1b986e6030addc98",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/hk2/external/javax.inject/2.5.0-b42/javax.inject-2.5.0-b42.jar"],        )
    if "javax_ws_rs_api" not in native.existing_rules():
        java_import_external(
            name = "javax_ws_rs_api",
            jar_sha256 = "1a4295889416c6972addcd425dfeeee6e6ede110e8b2dc8b49044e9b400ad5db",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/javax/ws/rs/javax.ws.rs-api/2.1/javax.ws.rs-api-2.1.jar"],        )
    if "jersey_client" not in native.existing_rules():
        java_import_external(
            name = "jersey_client",
            jar_sha256 = "3e44b7db8691eb0b2a6751eda888150b9ba1092a5805f11e4727fd4904407a41",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-client/2.26/jersey-client-2.26.jar"],        )
    if "jersey_security" not in native.existing_rules():
        java_import_external(
            name = "jersey_security",
            jar_sha256 = "aa6ff06b29b6c1811ae3c7eb957ec3858976aad579990d8c2d10ee4a74c73ffa",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/security/oauth2-client/2.26/oauth2-client-2.26.jar"],        )
    if "jersey_common" not in native.existing_rules():
        java_import_external(
            name = "jersey_common",
            jar_sha256 = "bc0e95153bef81c44439d25a662168226b9adee94db27c1198f9777e382b1b17",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-common/2.26/jersey-common-2.26.jar"],        )
    if "jersey_container_jetty_http" not in native.existing_rules():
        java_import_external(
            name = "jersey_container_jetty_http",
            jar_sha256 = "ee17b37a60e9125cdddaed29256ddac4089cecc2ffb8e5e625a923cddf55bb8e",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-jetty-http/2.26/jersey-container-jetty-http-2.26.jar"],        )
    if "jersey_container_servlet" not in native.existing_rules():
        java_import_external(
            name = "jersey_container_servlet",
            jar_sha256 = "915731c814d3c13e8599e6c0d834f6a2521940764eb02023e902ecf34444c7c4",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-servlet/2.26/jersey-container-servlet-2.26.jar"],        )
    if "jersey_container_servlet_core" not in native.existing_rules():
        java_import_external(
            name = "jersey_container_servlet_core",
            jar_sha256 = "1daee2b8aaa7379a0d65856e87c74135062c54e3d4afc58760f88396612385fa",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-servlet-core/2.26/jersey-container-servlet-core-2.26.jar"],        )
    if "jersey_media_multipart" not in native.existing_rules():
        java_import_external(
            name = "jersey_media_multipart",
            jar_sha256 = "ef18cfa1426773af3e4425fc4283dcec3a2c2ea942754028b48df6e61057c907",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/media/jersey-media-multipart/2.26/jersey-media-multipart-2.26.jar"],        )
    if "jersey_media_sse" not in native.existing_rules():
        java_import_external(
            name = "jersey_media_sse",
            jar_sha256 = "aee0d8f03ec8b873da1bee960743e7749342c50f022f9744d657fa0600453f05",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/media/jersey-media-sse/2.26/jersey-media-sse-2.26.jar"],        )
    if "jersey_server" not in native.existing_rules():
        java_import_external(
            name = "jersey_server",
            jar_sha256 = "d9f7a1e0d39267eb02c87046d205f2a90e38f2d2a3be885a619263f732a47935",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-server/2.26/jersey-server-2.26.jar"],        )
    if "jersey_hk2" not in native.existing_rules():
        java_import_external(
            name = "jersey_hk2",
            jar_sha256 = "4e9ab17a051eaacae0829a45cbdb5c603876006fdc86b5d9c5005be10266dcf7",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/inject/jersey-hk2/2.26/jersey-hk2-2.26.jar"],        )
    if "jersey_test_framework_core" not in native.existing_rules():
        java_import_external(
            name = "jersey_test_framework_core",
            jar_sha256 = "1f1bc56f18fc4ef5bf5ee6575376995af5ddf980fb8d3c27b31789ef748a3500",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/test-framework/jersey-test-framework-core/2.26/jersey-test-framework-core-2.26.jar"],        )
    if "jersey_test_framework_jetty" not in native.existing_rules():
        java_import_external(
            name = "jersey_test_framework_jetty",
            jar_sha256 = "3e38fcd82a58f74e88c68dda7ff604c34a077c35debc5b67a74541d9a5047811",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/glassfish/jersey/test-framework/providers/jersey-test-framework-provider-jetty/2.26/jersey-test-framework-provider-jetty-2.26.jar"],        )
    if "jetty_util" not in native.existing_rules():
        java_import_external(
            name = "jetty_util",
            jar_sha256 = "142328025e98dbe91e89b1f0cbd747277d4121dfb0519d946b1a1d0f7fc564a9",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/eclipse/jetty/jetty-util/9.2.21.v20170120/jetty-util-9.2.21.v20170120.jar"],        )
    if "jetty_websocket" not in native.existing_rules():
        java_import_external(
            name = "jetty_websocket",
            jar_sha256 = "c8c07c9200cc8e3353efa6d9505e8ae4405107c84c282fd595ad83738570a5b8",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/eclipse/jetty/jetty-websocket/8.1.19.v20160209/jetty-websocket-8.1.19.v20160209.jar"],        )
    if "jetty_server" not in native.existing_rules():
        java_import_external(
            name = "jetty_server",
            jar_sha256 = "b47f7bdf72133e7dfd30fc8ae6f08080f2a808026102bd194b70bba98fd5fa7e",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/9.2.21.v20170120/jetty-server-9.2.21.v20170120.jar"],        )
    if "jetty_continuation" not in native.existing_rules():
        java_import_external(
            name = "jetty_continuation",
            jar_sha256 = "fb20fe3c416d1f1e24652ab47d2447e2b7a5660c9eb7df558d2d94fa57f01808",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/eclipse/jetty/jetty-continuation/9.2.21.v20170120/jetty-continuation-9.2.21.v20170120.jar"],        )
    if "jetty_http" not in native.existing_rules():
        java_import_external(
            name = "jetty_http",
            jar_sha256 = "aa6d9a264789f7f81da2267bc6472ec5ba3e42295fcab2d3e4df31ecd0afb608",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/eclipse/jetty/jetty-http/9.2.21.v20170120/jetty-http-9.2.21.v20170120.jar"],        )
    if "jetty_io" not in native.existing_rules():
        java_import_external(
            name = "jetty_io",
            jar_sha256 = "8876d060969e0ea6d761cca5fdab9be703c85b2c9310ea638e5188ab540ebaea",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/eclipse/jetty/jetty-io/9.2.21.v20170120/jetty-io-9.2.21.v20170120.jar"],        )
    if "javax_servlet_api" not in native.existing_rules():
        java_import_external(
            name = "javax_servlet_api",
            jar_sha256 = "af456b2dd41c4e82cf54f3e743bc678973d9fe35bd4d3071fa05c7e5333b8482",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar"],        )
    if "joda_time" not in native.existing_rules():
        java_import_external(
            name = "joda_time",
            jar_sha256 = "a05f5b8b021802a71919b18702aebdf286148188b3ee9d26e6ec40e8d0071487",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/joda-time/joda-time/2.9.3/joda-time-2.9.3.jar"],        )
    if "jsch" not in native.existing_rules():
        java_import_external(
            name = "jsch",
            jar_sha256 = "f00d5cb29d70a98ef6bf2000edc89b415ae6f59d25e33caf5578b20d0d400932",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/jcraft/jsch/0.1.53/jsch-0.1.53.jar"],        )
    if "com_google_code_findbugs_jsr305" not in native.existing_rules():
        java_import_external(
            name = "com_google_code_findbugs_jsr305",
            jar_sha256 = "c885ce34249682bc0236b4a7d56efcc12048e6135a5baf7a9cde8ad8cda13fcd",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar"],        )
    if "junit" not in native.existing_rules():
        java_import_external(
            name = "junit",
            jar_sha256 = "59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar"],        )
    if "junit_dep" not in native.existing_rules():
        java_import_external(
            name = "junit_dep",
            jar_sha256 = "36a747ca1e0b86f6ea88055b8723bb87030d627766da6288bf077afdeeb0f75a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/junit/junit/4.10/junit-4.10.jar"],        )
    if "kryo" not in native.existing_rules():
        java_import_external(
            name = "kryo",
            jar_sha256 = "05da64250f6e6488cd79a2609887fd3b9db46c37cdc6daaba88a178632bf48f9",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/esotericsoftware/kryo/4.0.1/kryo-4.0.1.jar"],        )
    if "mapdb" not in native.existing_rules():
        java_import_external(
            name = "mapdb",
            jar_sha256 = "fac1afd9bfd1be9f2f480fb0c1253cdb9947f334f61a07ec9a855eb2a9d6aedd",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/mapdb/mapdb/1.0.9/mapdb-1.0.9.jar"],        )
    if "metrics_core" not in native.existing_rules():
        java_import_external(
            name = "metrics_core",
            jar_sha256 = "5c6f685e41664d10c70c65837cba9e58d39ff3896811e3b5707a934b11c85ad0",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/dropwizard/metrics/metrics-core/3.2.2/metrics-core-3.2.2.jar"],        )
    if "metrics_ganglia" not in native.existing_rules():
        java_import_external(
            name = "metrics_ganglia",
            jar_sha256 = "fdae87ba15898e1754c885afab1594962b0bb24e2049ad35b853521b458f7351",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/dropwizard/metrics/metrics-ganglia/3.2.2/metrics-ganglia-3.2.2.jar"],        )
    if "metrics_graphite" not in native.existing_rules():
        java_import_external(
            name = "metrics_graphite",
            jar_sha256 = "cb967ecf5d6d88fe08322b8fe64b885ef2ce0e74ed8fc9bfea286e7aad2e6d47",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/dropwizard/metrics/metrics-graphite/3.2.2/metrics-graphite-3.2.2.jar"],        )
    if "metrics_influxdb" not in native.existing_rules():
        java_import_external(
            name = "metrics_influxdb",
            jar_sha256 = "ad5b498597f66b245ecff13396fecfc7b8a2b2616c2e3f7773050596c09fd77f",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/izettle/metrics-influxdb/1.1.1/metrics-influxdb-1.1.1.jar"],        )
    if "metrics_json" not in native.existing_rules():
        java_import_external(
            name = "metrics_json",
            jar_sha256 = "38f50ac1f211518279031919bbcc0e02f6d6659d02dcd6f4e47e90b16851c821",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/dropwizard/metrics/metrics-json/3.2.2/metrics-json-3.2.2.jar"],        )
    if "minimal_json" not in native.existing_rules():
        java_import_external(
            name = "minimal_json",
            jar_sha256 = "e1d280900c78f18ae2e00c14e7410a77ba19cf084154b386532846aa6dc81721",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/eclipsesource/minimal-json/minimal-json/0.9.4/minimal-json-0.9.4.jar"],        )
    if "minlog" not in native.existing_rules():
        java_import_external(
            name = "minlog",
            jar_sha256 = "f7b399d3a5478a4f3e0d98bd1c9f47766119c66414bc33aa0f6cde0066f24cc2",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar"],        )
    if "io_netty_netty" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty",
            jar_sha256 = "eb031acf8a00733481bcd60807925ecfc9ce3840f13823d4b96cdcb1132db1da",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty/3.10.5.Final/netty-3.10.5.Final.jar"],        )
    if "io_netty_netty_buffer" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_buffer",
            jar_sha256 = "bd086ac6143dc5a8d8c515af2bd0d4cbc5170dd82bf8f6687f85b9be1e0c5522",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.27.Final/netty-buffer-4.1.27.Final.jar"],        )
    if "io_netty_netty_codec" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_codec",
            jar_sha256 = "5b23aef8f56d10f6b4a25fd9fb0ac45a2b284ee0e1a709db167298c945e1d1fa",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec/4.1.27.Final/netty-codec-4.1.27.Final.jar"],        )
    if "io_netty_netty_common" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_common",
            jar_sha256 = "18353e652194f5e715a851a6081795b656b8a9643f30964b14fb24cd812e3408",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-common/4.1.27.Final/netty-common-4.1.27.Final.jar"],        )
    if "io_netty_netty_handler" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_handler",
            jar_sha256 = "4de8af2a851735d09fd8e7a67146241df10b1547cfa8767e98405f7fa9ddc237",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-handler/4.1.27.Final/netty-handler-4.1.27.Final.jar"],        )
    if "io_netty_netty_handler_proxy" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_handler_proxy",
            jar_sha256 = "84b00dd1cd25a99b88bd598577825b4be9ad592e2d78b08bd703e7e999fe3498",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.27.Final/netty-handler-proxy-4.1.27.Final.jar"],        )
    if "io_netty_netty_tcnative_boringssl" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_tcnative_boringssl",
            jar_sha256 = "3df756e569504137e90ff368c2fe09f1f953efeddb717d47ed391dfa6ba8b7e3",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.12.Final/netty-tcnative-boringssl-static-2.0.12.Final.jar"],        )
    if "io_netty_netty_transport" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_transport",
            jar_sha256 = "f5bbd26773f5a9b0a1947e6688a4e13566ee04bb33715904f17e9b99e567221b",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-transport/4.1.27.Final/netty-transport-4.1.27.Final.jar"],        )
    if "io_netty_netty_transport_native_unix_common" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_transport_native_unix_common",
            jar_sha256 = "b4ba0079e5bee0a71120ac1311951a39901bcf2bdb37b7b38313dbd5cc0066ae",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.27.Final/netty-transport-native-unix-common-4.1.27.Final.jar"],        )
    if "io_netty_netty_transport_native_epoll" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_transport_native_epoll",
            jar_sha256 = "14d9319cc3906cf274896a9df385fa433a2ac34cbf841183b8756ad9690fa820",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.27.Final/netty-transport-native-epoll-4.1.27.Final.jar"],        )
    if "io_netty_netty_resolver" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_resolver",
            jar_sha256 = "db45223f3b21b48cf27ae34b6fcf70428bf28b14350825c8ef226737ca8f682a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.27.Final/netty-resolver-4.1.27.Final.jar"],        )
    if "io_netty_netty_codec_http2" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_codec_http2",
            jar_sha256 = "7d10b4a6d11e277f2797812f2025159bf035a9b258c9446cf8f1658b08373dbe",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.27.Final/netty-codec-http2-4.1.27.Final.jar"],        )
    if "io_netty_netty_codec_http" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_codec_http",
            jar_sha256 = "83b843684f96386f4c881067cb3489639d0969c0e770b41b16866aa56707244a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.27.Final/netty-codec-http-4.1.27.Final.jar"],        )
    if "io_netty_netty_codec_socks" not in native.existing_rules():
        java_import_external(
            name = "io_netty_netty_codec_socks",
            jar_sha256 = "c11264b32b5298e13461327499dca26e2b2aa75159d3be3017bd4eb125b58c05",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.27.Final/netty-codec-socks-4.1.27.Final.jar"],        )
    if "objenesis" not in native.existing_rules():
        java_import_external(
            name = "objenesis",
            jar_sha256 = "5e168368fbc250af3c79aa5fef0c3467a2d64e5a7bd74005f25d8399aeb0708d",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/objenesis/objenesis/2.6/objenesis-2.6.jar"],        )
    if "openflowj" not in native.existing_rules():
        java_import_external(
            name = "openflowj",
            jar_sha256 = "b5bd490435fd6910ac9d2e0f1b2d71c68d9ff7261bfd0e70c4a0f8ea970c2785",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/openflowj/3.2.1.onos/openflowj-3.2.1.onos.jar"],        )
    if "org_apache_felix_framework_security" not in native.existing_rules():
        java_import_external(
            name = "org_apache_felix_framework_security",
            jar_sha256 = "53e1333f563b8b00dfb953802ebbc1b91e4bfe2278b79ebdc0e561d46ccb50db",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/org.apache.felix.framework.security/2.2.0.onos/org.apache.felix.framework.security-2.2.0.onos.jar"],        )
    if "org_apache_felix_scr" not in native.existing_rules():
        java_import_external(
            name = "org_apache_felix_scr",
            jar_sha256 = "19d395d8800d5546397211edc209e2e42d0ee500c93aca9d04ce69e4288f41d9",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.scr/1.8.2/org.apache.felix.scr-1.8.2.jar"],        )
    if "org_apache_felix_scr_annotations" not in native.existing_rules():
        java_import_external(
            name = "org_apache_felix_scr_annotations",
            jar_sha256 = "c1d6895b5f45351dfbc4290698aeab00ad013339067abfbe73c047b795e72c47",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.scr.annotations/1.9.12/org.apache.felix.scr.annotations-1.9.12.jar"],        )
    if "org_apache_karaf_features_core" not in native.existing_rules():
        java_import_external(
            name = "org_apache_karaf_features_core",
            jar_sha256 = "d958d6bdf747576d5a8a878196aabf75dff00d47ccd8eaaa083685ba4394e86d",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/features/org.apache.karaf.features.core/3.0.8/org.apache.karaf.features.core-3.0.8.jar"],        )
    if "org_apache_karaf_shell_console" not in native.existing_rules():
        java_import_external(
            name = "org_apache_karaf_shell_console",
            jar_sha256 = "fbaf38c8dcc5a86116c01c863f0360cab025fbc6b40a08e6823c969c959da716",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/shell/org.apache.karaf.shell.console/3.0.8/org.apache.karaf.shell.console-3.0.8.jar"],        )
    if "org_apache_httpcomponents_httpasyncclient_osgi" not in native.existing_rules():
        java_import_external(
            name = "org_apache_httpcomponents_httpasyncclient_osgi",
            jar_sha256 = "243ed2ef640565dbe6abdaec7ff8469d3a983424ae80170a3b0db246be40ddb3",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/httpcomponents/httpasyncclient-osgi/4.1.2/httpasyncclient-osgi-4.1.2.jar"],        )
    if "org_apache_httpcomponents_httpcore_nio" not in native.existing_rules():
        java_import_external(
            name = "org_apache_httpcomponents_httpcore_nio",
            jar_sha256 = "f21be11ed00a7c655204c03d3ff38c2e8ac88db0913da3598ce5f9ffd686ae1f",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore-nio/4.4.4/httpcore-nio-4.4.4.jar"],        )
    if "org_apache_karaf_jaas" not in native.existing_rules():
        java_import_external(
            name = "org_apache_karaf_jaas",
            jar_sha256 = "c9a0ceba8661947b4f16b3b5d2e9582d75678b315aabd91956d5fdfc3d83b021",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/jaas/org.apache.karaf.jaas.modules/3.0.8/org.apache.karaf.jaas.modules-3.0.8.jar"],        )
    if "org_apache_karaf_system_core" not in native.existing_rules():
        java_import_external(
            name = "org_apache_karaf_system_core",
            jar_sha256 = "3e1397c8b09a90ddb591e0815371ffd962d244747c3ddd2dc475f312610cc21b",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/system/org.apache.karaf.system.core/3.0.8/org.apache.karaf.system.core-3.0.8.jar"],        )
    if "org_apache_servicemix_bundles_snmp4j" not in native.existing_rules():
        java_import_external(
            name = "org_apache_servicemix_bundles_snmp4j",
            jar_sha256 = "68c5b7885fa9157813e01482ddbdfa1c63bb6743d98fd5dba8ce83904bfcf7f8",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.snmp4j/2.3.4_1/org.apache.servicemix.bundles.snmp4j-2.3.4_1.jar"],        )
    if "org_osgi_compendium" not in native.existing_rules():
        java_import_external(
            name = "org_osgi_compendium",
            jar_sha256 = "f1ef32cc1530f4e66aac606c24363b627ace4780a7737b045bfb3b908d801bcd",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/osgi/org.osgi.compendium/5.0.0/org.osgi.compendium-5.0.0.jar"],        )
    if "osgi_core" not in native.existing_rules():
        java_import_external(
            name = "osgi_core",
            jar_sha256 = "b440c6bff286332afcf5cae067b606962e761c0df00e5fd8a746f0b31265619b",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/osgi/org.osgi.core/5.0.0/org.osgi.core-5.0.0.jar"],        )
    if "reflectasm" not in native.existing_rules():
        java_import_external(
            name = "reflectasm",
            jar_sha256 = "eef46e43a6861cdbb3356295644341a48d9a4c1cf753eb5f03cf7bff3a07d180",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/esotericsoftware/reflectasm/1.11.0/reflectasm-1.11.0.jar"],        )
    if "remotetea_oncrpc" not in native.existing_rules():
        java_import_external(
            name = "remotetea_oncrpc",
            jar_sha256 = "68d014e83e41a958ce8c73e9b7fd0108372d9f76af7d6d5217d181cf80e2a2bf",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/acplt/remotetea/remotetea-oncrpc/1.1.3/remotetea-oncrpc-1.1.3.jar"],        )
    if "rrd4j" not in native.existing_rules():
        java_import_external(
            name = "rrd4j",
            jar_sha256 = "90748680f887412d905ee43d09da5e5167a6dec3dfa4145832652eea1ad8171e",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/rrd4j/rrd4j/3.1/rrd4j-3.1.jar"],        )
    if "javassist" not in native.existing_rules():
        java_import_external(
            name = "javassist",
            jar_sha256 = "59531c00f3e3aa1ff48b3a8cf4ead47d203ab0e2fd9e0ad401f764e05947e252",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/javassist/javassist/3.22.0-GA/javassist-3.22.0-GA.jar"],        )
    if "mimepull" not in native.existing_rules():
        java_import_external(
            name = "mimepull",
            jar_sha256 = "2d1ee56aa89837ba9ea55431542e7939fa9d425552c2e6c8ddfb3b77877721b7",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/jvnet/mimepull/mimepull/1.9.6/mimepull-1.9.6.jar"],        )
    if "servlet_api" not in native.existing_rules():
        java_import_external(
            name = "servlet_api",
            jar_sha256 = "c658ea360a70faeeadb66fb3c90a702e4142a0ab7768f9ae9828678e0d9ad4dc",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar"],        )
    if "slf4j_api" not in native.existing_rules():
        java_import_external(
            name = "slf4j_api",
            jar_sha256 = "18c4a0095d5c1da6b817592e767bb23d29dd2f560ad74df75ff3961dbde25b79",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar"],        )
    if "slf4j_jdk14" not in native.existing_rules():
        java_import_external(
            name = "slf4j_jdk14",
            jar_sha256 = "9b8b9b8279959b17e71432d40b8cf4175c761c3bc6ebc2c7ec0f2ae8ff223feb",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/slf4j/slf4j-jdk14/1.7.25/slf4j-jdk14-1.7.25.jar"],        )
    if "slf4j_nop" not in native.existing_rules():
        java_import_external(
            name = "slf4j_nop",
            jar_sha256 = "6cb127138f41b5a869f9ecdd061ad17799a0e3fe7204600797154eb0432eeb12",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/slf4j/slf4j-nop/1.7.25/slf4j-nop-1.7.25.jar"],        )
    if "typesafe_config" not in native.existing_rules():
        java_import_external(
            name = "typesafe_config",
            jar_sha256 = "6563d1723f3300bf596f41e40bc03e54986108b5c45d0ac34ebc66d48c2e25a3",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/typesafe/config/1.3.2/config-1.3.2.jar"],        )
    if "validation_api" not in native.existing_rules():
        java_import_external(
            name = "validation_api",
            jar_sha256 = "f39d7ba7253e35f5ac48081ec1bc28c5df9b32ac4b7db20853e5a8e76bf7b0ed",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar"],        )
    if "checkstyle" not in native.existing_rules():
        java_import_external(
            name = "checkstyle",
            jar_sha256 = "dad140fc7e79179deb48653ad86517a3c4df69f9e957c72b5c6476c484042a14",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/puppycrawl/tools/checkstyle/8.10/checkstyle-8.10.jar"],        )
    if "apache_karaf" not in native.existing_rules():
        java_import_external(
            name = "apache_karaf",
            jar_sha256 = "2f20bb25ded39f1e9e4148bb840473c89249bbb592106f5451b5a829a5ec8603",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/3.0.8/apache-karaf-offline-3.0.8.tar.gz"],        )
    if "apache_karaf_patches" not in native.existing_rules():
        java_import_external(
            name = "apache_karaf_patches",
            jar_sha256 = "1f9e3e8a53a462f776a931fe851819a43dfe7728b31fbde339b98d04908e702b",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/onos-apache-karaf-patches/3.0.8/onos-apache-karaf-patches-3.0.8.tar.gz"],        )
    if "bndlib" not in native.existing_rules():
        java_import_external(
            name = "bndlib",
            jar_sha256 = "a17d4b9dc4b9c6e5699e20ea0546ff1eeb1cdb7d0155947d48527d14f54e6a44",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/biz/aQute/bnd/biz.aQute.bndlib/3.1.0/biz.aQute.bndlib-3.1.0.jar"],        )
    if "bndexe" not in native.existing_rules():
        java_import_external(
            name = "bndexe",
            jar_sha256 = "ab11d1b7646b4cc0bbc87dfb873c911bbbbc7144c37c7b25164d881d46f0b0dd",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/biz/aQute/bnd/biz.aQute.bnd/3.1.0/biz.aQute.bnd-3.1.0.jar"],        )
    if "libthrift" not in native.existing_rules():
        java_import_external(
            name = "libthrift",
            jar_sha256 = "65f1d191c3c97ec79e6d82e75f8af9d5265f4fbb605df4efc5614c222109cf36",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/thrift/libthrift/0.11.0/libthrift-0.11.0.jar"],        )
    if "qdox" not in native.existing_rules():
        java_import_external(
            name = "qdox",
            jar_sha256 = "5753628390f7ac1665f813bf610b708cc489f3347b9813389e6c052346527cca",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/thoughtworks/qdox/qdox/2.0-M3/qdox-2.0-M3.jar"],        )
    if "org_apache_felix_scr_bnd" not in native.existing_rules():
        java_import_external(
            name = "org_apache_felix_scr_bnd",
            jar_sha256 = "acd4ffafbeb517774b7445c6d38a46af982bb81ae631156ce5817979950a24a6",
            licenses = ["notice"],
            jar_urls = ["https://oss.sonatype.org/content/repositories/snapshots/org/onosproject/org.apache.felix.scr.bnd/1.4.1-SNAPSHOT/org.apache.felix.scr.bnd-1.4.1-20160328.235003-2.jar"],        )
    if "snmp_core" not in native.existing_rules():
        java_import_external(
            name = "snmp_core",
            jar_sha256 = "4367a5a3e32d4f53394cd2585d7a086e20e6d8fb4317cadbacae918df7a4cd9e",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/snmp-core/1.3-20161021.1/snmp-core-1.3-20161021.1.jar"],        )
    if "mibs_net_snmp" not in native.existing_rules():
        java_import_external(
            name = "mibs_net_snmp",
            jar_sha256 = "6ac3750d3555d2cbe6ef15550856be080db562aa4a9b9519959d3f1fc19f1ae3",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/mibbler-mibs-net-snmp/1.0-20151221.1/mibbler-mibs-net-snmp-1.0-20151221.1.jar"],        )
    if "mibs_rfc" not in native.existing_rules():
        java_import_external(
            name = "mibs_rfc",
            jar_sha256 = "8f58bde90b7b24ac42b02196ce69ab6e1fa3bd009c38d8f972b24d5a1eb40f52",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/mibbler-mibs-rfc/1.0-20151221.1/mibbler-mibs-rfc-1.0-20151221.1.jar"],        )
    if "io_socket_client" not in native.existing_rules():
        java_import_external(
            name = "io_socket_client",
            jar_sha256 = "b5ccc73724f0d188ada06aff41c8bf60e0e5d4462e7980af203a20ea87bfa583",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/socket/socket.io-client/0.8.3/socket.io-client-0.8.3.jar"],        )
    if "json" not in native.existing_rules():
        java_import_external(
            name = "json",
            jar_sha256 = "055be110a570f9cda3eba8d70a006ff46c77a048bc67868524879211c48b330a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/json/json/20090211/json-20090211.jar"],        )
    if "engine_io_client" not in native.existing_rules():
        java_import_external(
            name = "engine_io_client",
            jar_sha256 = "c421ace40f0170d9c7f0155850076a68f091afa9a60fc055f703277ce92bc214",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/socket/engine.io-client/0.8.3/engine.io-client-0.8.3.jar"],        )
    if "com_google_api_grpc_proto_google_common_protos" not in native.existing_rules():
        java_import_external(
            name = "com_google_api_grpc_proto_google_common_protos",
            jar_sha256 = "cfe1da4c0e82820c32a83c4bf25b42f4d3b7113177321c437a9fff3c42e1f4c9",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.0.0/proto-google-common-protos-1.0.0.jar"],        )
    if "com_google_errorprone_error_prone_annotations" not in native.existing_rules():
        java_import_external(
            name = "com_google_errorprone_error_prone_annotations",
            jar_sha256 = "de3c873b5dc06060f7a2a4d9b872a3f4dc1955c18095ef9702d13477e437782a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.1.2/error_prone_annotations-2.1.2.jar"],        )
    if "com_google_auth_google_auth_library_credentials" not in native.existing_rules():
        java_import_external(
            name = "com_google_auth_google_auth_library_credentials",
            jar_sha256 = "ac9efdd6a930e4df906fa278576fa825d979f74315f2faf5c91fe7e6aabb2788",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/0.9.0/google-auth-library-credentials-0.9.0.jar"],        )
    if "io_opencensus_opencensus_api" not in native.existing_rules():
        java_import_external(
            name = "io_opencensus_opencensus_api",
            jar_sha256 = "8c1de62cbdaf74b01b969d1ed46c110bca1a5dd147c50a8ab8c5112f42ced802",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.12.3/opencensus-api-0.12.3.jar"],        )
    if "io_opencensus_opencensus_contrib_grpc_metrics" not in native.existing_rules():
        java_import_external(
            name = "io_opencensus_opencensus_contrib_grpc_metrics",
            jar_sha256 = "632c1e1463db471b580d35bc4be868facbfbf0a19aa6db4057215d4a68471746",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-grpc-metrics/0.12.3/opencensus-contrib-grpc-metrics-0.12.3.jar"],        )
    if "openstack4j_core" not in native.existing_rules():
        java_import_external(
            name = "openstack4j_core",
            jar_sha256 = "4f01b34bb74beaed691c97e69b62fa3cbbb99d85b3b1d2a56e4e143c58de9b5c",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/pacesys/openstack4j-core/3.1.0/openstack4j-core-3.1.0.jar"],        )
    if "openstack4j_http_connector" not in native.existing_rules():
        java_import_external(
            name = "openstack4j_http_connector",
            jar_sha256 = "52b4bc0de07038e62335a2b9f44f6cf5b289c064a944946fb7a309c38a991045",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/pacesys/openstack4j/connectors/openstack4j-http-connector/3.1.0/openstack4j-http-connector-3.1.0.jar"],        )
    if "openstack4j_httpclient" not in native.existing_rules():
        java_import_external(
            name = "openstack4j_httpclient",
            jar_sha256 = "4ca3887f7281c9cda53f47e1a1accb34cdc5cd3a682a441c7d18e9a08b5e9870",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/pacesys/openstack4j/connectors/openstack4j-httpclient/3.1.0/openstack4j-httpclient-3.1.0.jar"],        )
    if "json_patch" not in native.existing_rules():
        java_import_external(
            name = "json_patch",
            jar_sha256 = "2d6acbda3675e6f25b7b4ab338317006865a8416a69c2b5e1cfa8b8209fc10a1",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/github/fge/json-patch/1.9/json-patch-1.9.jar"],        )
    if "jackson_coreutils" not in native.existing_rules():
        java_import_external(
            name = "jackson_coreutils",
            jar_sha256 = "d84b416924fb061a26c48a5c90e98cf4d4e718179eb1df702aa8f1021163eed6",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/github/fge/jackson-coreutils/1.6/jackson-coreutils-1.6.jar"],        )
    if "btf" not in native.existing_rules():
        java_import_external(
            name = "btf",
            jar_sha256 = "38a380577a186718cb97ee8af58d4f40f7fbfdc23ff68b5f4b3c2c68a1d5c05d",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/github/fge/btf/1.2/btf-1.2.jar"],        )
    if "msg_simple" not in native.existing_rules():
        java_import_external(
            name = "msg_simple",
            jar_sha256 = "c3c5add3971a9a7f1868beb7607780d73f36bb611c7505de01f1baf49ab4ff75",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/github/fge/msg-simple/1.1/msg-simple-1.1.jar"],        )
    if "snakeyaml" not in native.existing_rules():
        java_import_external(
            name = "snakeyaml",
            jar_sha256 = "79ea8aac6590f49ee8390c2f17ed9343079e85b44158a097b301dfee42af86ec",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/yaml/snakeyaml/1.15/snakeyaml-1.15.jar"],        )
    if "onos_yang_model" not in native.existing_rules():
        java_import_external(
            name = "onos_yang_model",
            jar_sha256 = "4143c55d4eb06505d417c951304c37516777e5999efa30ca2196298d7d1dddb2",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/onos-yang-model/2.5/onos-yang-model-2.5.jar"],        )
    if "onos_yang_compiler_api" not in native.existing_rules():
        java_import_external(
            name = "onos_yang_compiler_api",
            jar_sha256 = "c84e98c65f661b309fdd5ce60b410b57ebc66c339132429cdd60fdd02062a639",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/onos-yang-compiler-api/2.5/onos-yang-compiler-api-2.5.jar"],        )
    if "onos_yang_compiler_main" not in native.existing_rules():
        java_import_external(
            name = "onos_yang_compiler_main",
            jar_sha256 = "dcab2b674f4f9013554d14ede26a0a780326a71dbdd8cbf54833db00fe3d424c",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/onos-yang-compiler-main/2.5/onos-yang-compiler-main-2.5.jar"],        )
    if "onos_yang_runtime" not in native.existing_rules():
        java_import_external(
            name = "onos_yang_runtime",
            jar_sha256 = "caf63822276c8b4e20f749121c014428d29b9a50b8b077b23c1728b6c8fa360d",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/onos-yang-runtime/2.5/onos-yang-runtime-2.5.jar"],        )
    if "onos_yang_serializers_json" not in native.existing_rules():
        java_import_external(
            name = "onos_yang_serializers_json",
            jar_sha256 = "eb3d449d6ed2f5d7db48a15ce3bb8777e5c0cfcb5a7b2de45a5a49602f627ab0",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/onos-yang-serializers-json/2.5/onos-yang-serializers-json-2.5.jar"],        )
    if "onos_yang_serializers_xml" not in native.existing_rules():
        java_import_external(
            name = "onos_yang_serializers_xml",
            jar_sha256 = "220437816161d4acbacdced72253e4b39a8c23e1ce30611a4080c9b808e1a653",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/onos-yang-serializers-xml/2.5/onos-yang-serializers-xml-2.5.jar"],        )
    if "onos_yang_serializers_utils" not in native.existing_rules():
        java_import_external(
            name = "onos_yang_serializers_utils",
            jar_sha256 = "05c78df7b4dcc75181e05a1b4a051d0bc2cd89a4ec8b1b9abdcf7298191ebc08",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/onos-yang-serializers-utils/2.5/onos-yang-serializers-utils-2.5.jar"],        )
    if "org_apache_servicemix_bundles_dom4j" not in native.existing_rules():
        java_import_external(
            name = "org_apache_servicemix_bundles_dom4j",
            jar_sha256 = "15abe1ccad24f4fd71a926959f1acd64d84878348deee12dcf4928ee4f1db3d5",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5/org.apache.servicemix.bundles.dom4j-1.6.1_5.jar"],        )
    if "plexus_utils" not in native.existing_rules():
        java_import_external(
            name = "plexus_utils",
            jar_sha256 = "83ee748b12d06afb0ad4050a591132b3e8025fbb1990f1ed002e8b73293e69b4",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.jar"],        )
    if "sshd_core" not in native.existing_rules():
        java_import_external(
            name = "sshd_core",
            jar_sha256 = "1b5a5e95cd50448cfe3b8262837facf220e29f3aee7cfa62d2529932de45c02a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/sshd/sshd-core/1.4.0/sshd-core-1.4.0.jar"],        )
    if "bcpkix_jdk15on" not in native.existing_rules():
        java_import_external(
            name = "bcpkix_jdk15on",
            jar_sha256 = "601d85cfbcef76a1cb77cbf755a6234a4ba1d4c02a98d9a81028d471f388694f",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.59/bcpkix-jdk15on-1.59.jar"],        )
    if "bcprov_jdk15on" not in native.existing_rules():
        java_import_external(
            name = "bcprov_jdk15on",
            jar_sha256 = "1c31e44e331d25e46d293b3e8ee2d07028a67db011e74cb2443285aed1d59c85",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.59/bcprov-jdk15on-1.59.jar"],        )
    if "hamcrest_optional" not in native.existing_rules():
        java_import_external(
            name = "hamcrest_optional",
            jar_sha256 = "003448296855b665d7c41c23096dbd7d880a1c58880c13c7a6aed1a0cb641eb6",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/spotify/hamcrest-optional/1.1.0/hamcrest-optional-1.1.0.jar"],        )
    if "swagger_annotations" not in native.existing_rules():
        java_import_external(
            name = "swagger_annotations",
            jar_sha256 = "bd9a46c296bacb2a135330a2518fed1ea12a7be33dbf57f148d6c766e1aa0940",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/swagger/swagger-annotations/1.5.16/swagger-annotations-1.5.16.jar"],        )
    if "kafka_clients" not in native.existing_rules():
        java_import_external(
            name = "kafka_clients",
            jar_sha256 = "c991a0db2416a065aaa52cbd2a8dad4812ddd6055dbee7b2c09e8a781e21ca6c",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.kafka-clients/0.8.2.2_1/org.apache.servicemix.bundles.kafka-clients-0.8.2.2_1.jar"],        )
    if "tinder_xmpp" not in native.existing_rules():
        java_import_external(
            name = "tinder_xmpp",
            jar_sha256 = "8eb803e80bf621fa22b421d1c7eadfc48c78e583353e13bed3b2ddbcf1ee6769",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/igniterealtime/tinder/1.3.0/tinder-1.3.0.jar"],        )
    if "aalto_xml" not in native.existing_rules():
        java_import_external(
            name = "aalto_xml",
            jar_sha256 = "7de8f7b2c640e36155b29565e68fd96f7c363c553bf65c4b5280115223820396",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/fasterxml/aalto-xml/1.0.0/aalto-xml-1.0.0.jar"],        )
    if "stax2_api" not in native.existing_rules():
        java_import_external(
            name = "stax2_api",
            jar_sha256 = "605b25fb3fa710c3ce28e46e385ba17b4f1081361ae465fefb3c9241ae4de2a6",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/codehaus/woodstox/stax2-api/4.0.0/stax2-api-4.0.0.jar"],        )
    if "concurrent_hashmap" not in native.existing_rules():
        java_import_external(
            name = "concurrent_hashmap",
            jar_sha256 = "dd624af33566e7077547862129520ab89103b1f2a8eb3db18dc72ea8de2fdd97",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/googlecode/concurrentlinkedhashmap/concurrentlinkedhashmap-lru/1.0/concurrentlinkedhashmap-lru-1.0.jar"],        )
    if "gnu_idn" not in native.existing_rules():
        java_import_external(
            name = "gnu_idn",
            jar_sha256 = "ba491f1dff9b4fb211fe495fe6c52a38f76dcd861dadfcd2c93bea0f9fd18f03",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/gnu/inet/libidn/1.15/libidn-1.15.jar"],        )
    if "sigar" not in native.existing_rules():
        java_import_external(
            name = "sigar",
            jar_sha256 = "5107e6b19b1d0ff2cfcd3baf0c25f0d444330273b1f2bec710e127c733f11455",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/knowhowlab/osgi/sigar/1.6.5_01/sigar-1.6.5_01.jar"],        )
    if "runtime_grpc_core" not in native.existing_rules():
        java_import_external(
            name = "runtime_grpc_core",
            jar_sha256 = "3b44ca22df91034dc8d2e3fc404a623e6cc662287b82d5f32d4e1cae1f30cefb",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-core/1.14.0/grpc-core-1.14.0.jar"],        )
    if "runtime_grpc_context" not in native.existing_rules():
        java_import_external(
            name = "runtime_grpc_context",
            jar_sha256 = "d70c10bdd12cd62ba4563d0b060c6db8d9d8e6593a87791a122633b0c4fd70cc",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-context/1.14.0/grpc-context-1.14.0.jar"],        )
    if "runtime_grpc_stub" not in native.existing_rules():
        java_import_external(
            name = "runtime_grpc_stub",
            jar_sha256 = "96629499c47340a16e6ddfac705b68aa90129c10dfa659a0750adf4b5f958fad",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-stub/1.14.0/grpc-stub-1.14.0.jar"],        )
    if "runtime_grpc_netty" not in native.existing_rules():
        java_import_external(
            name = "runtime_grpc_netty",
            jar_sha256 = "44fb5890b32d30079e33654d14719363e5c86ae762f8c00ae3d68ef52618291a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-netty/1.14.0/grpc-netty-1.14.0.jar"],        )
    if "runtime_grpc_auth" not in native.existing_rules():
        java_import_external(
            name = "runtime_grpc_auth",
            jar_sha256 = "854e4069110c770c483d863fc62eb3c17d776c4b9d4b1f38494b6a39ae186aaa",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-auth/1.14.0/grpc-auth-1.14.0.jar"],        )
    if "runtime_grpc_protobuf" not in native.existing_rules():
        java_import_external(
            name = "runtime_grpc_protobuf",
            jar_sha256 = "58cfe955238e854caeba371093f70252eaf151a7c82c2849970f682b3e460f4f",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.14.0/grpc-protobuf-1.14.0.jar"],        )
    if "runtime_grpc_protobuf_lite" not in native.existing_rules():
        java_import_external(
            name = "runtime_grpc_protobuf_lite",
            jar_sha256 = "083b4c678192461cdb1f46199de2ee5a6dd6c691fd8b1ae28c263de8aa219dd4",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.14.0/grpc-protobuf-lite-1.14.0.jar"],        )
    if "runtime_protobuf" not in native.existing_rules():
        java_import_external(
            name = "runtime_protobuf",
            jar_sha256 = "fb66d913ff0578553b2e28a3338cbbbe2657e6cfe0e98d939f23aea219daf508",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.6.1/protobuf-java-3.6.1.jar"],        )
    if "grpc_core_1_3_1" not in native.existing_rules():
        java_import_external(
            name = "grpc_core_1_3_1",
            jar_sha256 = "5f5988c616a56b25bf413fdf01fd63c107257fdbc4b23367a073e17552907821",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-core/1.3.1/grpc-core-1.3.1.jar"],        )
    if "grpc_protobuf_1_3_1" not in native.existing_rules():
        java_import_external(
            name = "grpc_protobuf_1_3_1",
            jar_sha256 = "36dc04e5d31ab6d6405a21eb5110f178bfa1ae481aaef8b8cb2fe8675a7344f0",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.3.1/grpc-protobuf-1.3.1.jar"],        )
    if "grpc_protobuf_lite_1_3_1" not in native.existing_rules():
        java_import_external(
            name = "grpc_protobuf_lite_1_3_1",
            jar_sha256 = "300229b1cef817a44221471c8e171b56f167226acbf74fc7776c7a421ec13792",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.3.1/grpc-protobuf-lite-1.3.1.jar"],        )
    if "grpc_stub_1_3_1" not in native.existing_rules():
        java_import_external(
            name = "grpc_stub_1_3_1",
            jar_sha256 = "ca3b1b8e68d31d3b12b2d2b7a989e7f74653de07a9465957f4840dbb55b777a7",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-stub/1.3.1/grpc-stub-1.3.1.jar"],        )
    if "grpc_netty_1_3_1" not in native.existing_rules():
        java_import_external(
            name = "grpc_netty_1_3_1",
            jar_sha256 = "6c72f0a2db9d4a10bfd24588f3c36180535f46000217addd34280fdefdf290d2",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-netty/1.3.1/grpc-netty-1.3.1.jar"],        )
    if "grpc_auth_1_3_1" not in native.existing_rules():
        java_import_external(
            name = "grpc_auth_1_3_1",
            jar_sha256 = "432360b6d5d6cb998bf1e051f1f5e12e5c70b3e633c1579ccced2f0478e528f5",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-auth/1.3.1/grpc-auth-1.3.1.jar"],        )
    if "protobuf_java_3_3_0" not in native.existing_rules():
        java_import_external(
            name = "protobuf_java_3_3_0",
            jar_sha256 = "f3411ade77523d5f0d013d4f25c36879e66f0c5e1e4310f7096d54d0d2553554",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar"],        )
    if "protobuf_java_3_2_0" not in native.existing_rules():
        java_import_external(
            name = "protobuf_java_3_2_0",
            jar_sha256 = "b1c2d420d2833429d11e405a58251e13bd7e3f22c266b49227c41e4d21361286",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.2.0/protobuf-java-3.2.0.jar"],        )
    if "grpc_testing_1_3_1" not in native.existing_rules():
        java_import_external(
            name = "grpc_testing_1_3_1",
            jar_sha256 = "d6c5a7ee5bb4d67608d7a8a01f7b8a95ab3f7d3df5d84e5aa5f61f90545f2dcd",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-testing/1.3.1/grpc-testing-1.3.1.jar"],        )
    if "grpc_testing_proto_1_3_1" not in native.existing_rules():
        java_import_external(
            name = "grpc_testing_proto_1_3_1",
            jar_sha256 = "5b52005cccdbdbf63c29e28aab13ab796509345cf306d819cd4118131dadc254",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-testing-proto/1.3.1/grpc-testing-proto-1.3.1.jar"],        )
    if "grpc_context_1_3_1" not in native.existing_rules():
        java_import_external(
            name = "grpc_context_1_3_1",
            jar_sha256 = "a644cb308edd21ebce57876052785f171735e0d04905e5ff20741d4642981e74",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/grpc/grpc-context/1.3.1/grpc-context-1.3.1.jar"],        )
    if "google_truth_0_28" not in native.existing_rules():
        java_import_external(
            name = "google_truth_0_28",
            jar_sha256 = "1037ded3a681c74ce020e306f136b24a51c09c95667d8eda9ffc8f8136294f71",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/truth/truth/0.28/truth-0.28.jar"],        )
    if "google_code_findbugs_3_0_0" not in native.existing_rules():
        java_import_external(
            name = "google_code_findbugs_3_0_0",
            jar_sha256 = "bec0b24dcb23f9670172724826584802b80ae6cbdaba03bdebdef9327b962f6a",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0.jar"],        )
    if "google_errorprone_2_0_19" not in native.existing_rules():
        java_import_external(
            name = "google_errorprone_2_0_19",
            jar_sha256 = "cde78ace21e46398299d0d9c6be9f47b7f971c7f045d40c78f95be9a638cbf7e",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.0.19/error_prone_annotations-2.0.19.jar"],        )
    if "google_instrumentation_0_3_0" not in native.existing_rules():
        java_import_external(
            name = "google_instrumentation_0_3_0",
            jar_sha256 = "671f7147487877f606af2c7e39399c8d178c492982827305d3b1c7f5b04f1145",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/com/google/instrumentation/instrumentation-api/0.3.0/instrumentation-api-0.3.0.jar"],        )
artifact_map = {}
artifact_map["@aopalliance_repackaged//:aopalliance_repackaged"] = "mvn:org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b42"
artifact_map["@amqp_client//:amqp_client"] = "mvn:com.rabbitmq:amqp-client:jar:3.6.1"
artifact_map["@asm//:asm"] = "mvn:org.ow2.asm:asm:jar:5.0.4"
artifact_map["@atomix//:atomix"] = "mvn:io.atomix:atomix:jar:3.0.11"
artifact_map["@atomix_cluster//:atomix_cluster"] = "mvn:io.atomix:atomix-cluster:jar:3.0.11"
artifact_map["@atomix_gossip//:atomix_gossip"] = "mvn:io.atomix:atomix-gossip:jar:3.0.11"
artifact_map["@atomix_primary_backup//:atomix_primary_backup"] = "mvn:io.atomix:atomix-primary-backup:jar:3.0.11"
artifact_map["@atomix_primitive//:atomix_primitive"] = "mvn:io.atomix:atomix-primitive:jar:3.0.11"
artifact_map["@atomix_raft//:atomix_raft"] = "mvn:io.atomix:atomix-raft:jar:3.0.11"
artifact_map["@atomix_storage//:atomix_storage"] = "mvn:io.atomix:atomix-storage:jar:3.0.11"
artifact_map["@atomix_utils//:atomix_utils"] = "mvn:io.atomix:atomix-utils:jar:3.0.11"
artifact_map["@classgraph//:classgraph"] = "mvn:io.github.classgraph:classgraph:jar:4.2.3"
artifact_map["@commons_codec//:commons_codec"] = "mvn:commons-codec:commons-codec:jar:1.10"
artifact_map["@commons_cli//:commons_cli"] = "mvn:commons-cli:commons-cli:jar:1.3"
artifact_map["@commons_collections//:commons_collections"] = "mvn:commons-collections:commons-collections:jar:3.2.2"
artifact_map["@commons_configuration//:commons_configuration"] = "mvn:commons-configuration:commons-configuration:jar:1.10"
artifact_map["@commons_io//:commons_io"] = "mvn:commons-io:commons-io:jar:2.6"
artifact_map["@commons_jxpath//:commons_jxpath"] = "mvn:commons-jxpath:commons-jxpath:jar:1.3"
artifact_map["@commons_beanutils//:commons_beanutils"] = "mvn:commons-beanutils:commons-beanutils:jar:1.9.3"
artifact_map["@fast_classpath_scanner//:fast_classpath_scanner"] = "mvn:io.github.lukehutch:fast-classpath-scanner:jar:2.21"
artifact_map["@jdom//:jdom"] = "mvn:jdom:jdom:jar:NON-OSGI:1.0"
artifact_map["@commons_lang//:commons_lang"] = "mvn:commons-lang:commons-lang:jar:2.6"
artifact_map["@commons_lang3//:commons_lang3"] = "mvn:org.apache.commons:commons-lang3:jar:3.7"
artifact_map["@commons_logging//:commons_logging"] = "mvn:commons-logging:commons-logging:jar:1.2"
artifact_map["@commons_math3//:commons_math3"] = "mvn:org.apache.commons:commons-math3:jar:3.6.1"
artifact_map["@commons_net//:commons_net"] = "mvn:commons-net:commons-net:jar:3.5"
artifact_map["@commons_pool//:commons_pool"] = "mvn:commons-pool:commons-pool:jar:1.6"
artifact_map["@commons_text//:commons_text"] = "mvn:org.apache.commons:commons-text:jar:1.3"
artifact_map["@concurrent_trees//:concurrent_trees"] = "mvn:com.googlecode.concurrent-trees:concurrent-trees:jar:2.6.1"
artifact_map["@easymock//:easymock"] = "mvn:org.easymock:easymock:jar:3.6"
artifact_map["@antlr//:antlr"] = "mvn:antlr:antlr:jar:NON-OSGI:2.7.7"
artifact_map["@ganymed_ssh2//:ganymed_ssh2"] = "mvn:ch.ethz.ganymed:ganymed-ssh2:jar:NON-OSGI:262"
artifact_map["@gmetric4j//:gmetric4j"] = "mvn:info.ganglia.gmetric4j:gmetric4j:jar:1.0.10"
artifact_map["@com_google_code_gson_gson//:com_google_code_gson_gson"] = "mvn:com.google.code.gson:gson:jar:2.7"
artifact_map["@com_google_guava_guava//:com_google_guava_guava"] = "mvn:com.google.guava:guava:jar:22.0"
artifact_map["@com_google_guava_guava_testlib//:com_google_guava_guava_testlib"] = "mvn:com.google.guava:guava-testlib:jar:NON-OSGI:22.0"
artifact_map["@hamcrest_all//:hamcrest_all"] = "mvn:org.hamcrest:hamcrest-all:jar:NON-OSGI:1.3"
artifact_map["@hk2_api//:hk2_api"] = "mvn:org.glassfish.hk2:hk2-api:jar:2.5.0-b42"
artifact_map["@hk2_locator//:hk2_locator"] = "mvn:org.glassfish.hk2:hk2-locator:jar:2.5.0-b42"
artifact_map["@hk2_osgi_resource_locator//:hk2_osgi_resource_locator"] = "mvn:org.glassfish.hk2:osgi-resource-locator:jar:1.0.1"
artifact_map["@hk2_utils//:hk2_utils"] = "mvn:org.glassfish.hk2:hk2-utils:jar:2.5.0-b42"
artifact_map["@httpclient_osgi//:httpclient_osgi"] = "mvn:org.apache.httpcomponents:httpclient-osgi:jar:4.5.1"
artifact_map["@httpcore_osgi//:httpcore_osgi"] = "mvn:org.apache.httpcomponents:httpcore-osgi:jar:4.4.4"
artifact_map["@influxdb_java//:influxdb_java"] = "mvn:org.influxdb:influxdb-java:jar:NON-OSGI:2.9"
artifact_map["@retrofit//:retrofit"] = "mvn:com.squareup.retrofit2:retrofit:jar:NON-OSGI:2.3.0"
artifact_map["@converter_moshi//:converter_moshi"] = "mvn:com.squareup.retrofit2:converter-moshi:jar:NON-OSGI:2.3.0"
artifact_map["@okhttp//:okhttp"] = "mvn:com.squareup.okhttp3:okhttp:jar:NON-OSGI:3.9.1"
artifact_map["@logging_interceptor//:logging_interceptor"] = "mvn:com.squareup.okhttp3:logging-interceptor:jar:NON-OSGI:3.9.1"
artifact_map["@moshi//:moshi"] = "mvn:com.squareup.moshi:moshi:jar:NON-OSGI:1.4.0"
artifact_map["@okio//:okio"] = "mvn:com.squareup.okio:okio:jar:NON-OSGI:1.14.0"
artifact_map["@jackson_annotations//:jackson_annotations"] = "mvn:com.fasterxml.jackson.core:jackson-annotations:jar:2.9.5"
artifact_map["@jackson_core//:jackson_core"] = "mvn:com.fasterxml.jackson.core:jackson-core:jar:2.9.5"
artifact_map["@jackson_databind//:jackson_databind"] = "mvn:com.fasterxml.jackson.core:jackson-databind:jar:2.9.5"
artifact_map["@javax_annotation_api_mvn//:javax_annotation_api_mvn"] = "mvn:javax.annotation:javax.annotation-api:jar:1.2"
artifact_map["@javax_inject//:javax_inject"] = "mvn:org.glassfish.hk2.external:javax.inject:jar:2.5.0-b42"
artifact_map["@javax_ws_rs_api//:javax_ws_rs_api"] = "mvn:javax.ws.rs:javax.ws.rs-api:jar:2.1"
artifact_map["@jersey_client//:jersey_client"] = "mvn:org.glassfish.jersey.core:jersey-client:jar:2.26"
artifact_map["@jersey_security//:jersey_security"] = "mvn:org.glassfish.jersey.security:oauth2-client:jar:NON-OSGI:2.26"
artifact_map["@jersey_common//:jersey_common"] = "mvn:org.glassfish.jersey.core:jersey-common:jar:2.26"
artifact_map["@jersey_container_jetty_http//:jersey_container_jetty_http"] = "mvn:org.glassfish.jersey.containers:jersey-container-jetty-http:jar:2.26"
artifact_map["@jersey_container_servlet//:jersey_container_servlet"] = "mvn:org.glassfish.jersey.containers:jersey-container-servlet:jar:2.26"
artifact_map["@jersey_container_servlet_core//:jersey_container_servlet_core"] = "mvn:org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.26"
artifact_map["@jersey_media_multipart//:jersey_media_multipart"] = "mvn:org.glassfish.jersey.media:jersey-media-multipart:jar:2.26"
artifact_map["@jersey_media_sse//:jersey_media_sse"] = "mvn:org.glassfish.jersey.media:jersey-media-sse:jar:2.26"
artifact_map["@jersey_server//:jersey_server"] = "mvn:org.glassfish.jersey.core:jersey-server:jar:2.26"
artifact_map["@jersey_hk2//:jersey_hk2"] = "mvn:org.glassfish.jersey.inject:jersey-hk2:jar:2.26"
artifact_map["@jersey_test_framework_core//:jersey_test_framework_core"] = "mvn:org.glassfish.jersey.test-framework:jersey-test-framework-core:jar:NON-OSGI:2.26"
artifact_map["@jersey_test_framework_jetty//:jersey_test_framework_jetty"] = "mvn:org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:jar:NON-OSGI:2.26"
artifact_map["@jetty_util//:jetty_util"] = "mvn:org.eclipse.jetty:jetty-util:jar:9.2.21.v20170120"
artifact_map["@jetty_websocket//:jetty_websocket"] = "mvn:org.eclipse.jetty:jetty-websocket:jar:8.1.19.v20160209"
artifact_map["@jetty_server//:jetty_server"] = "mvn:org.eclipse.jetty:jetty-server:jar:9.2.21.v20170120"
artifact_map["@jetty_continuation//:jetty_continuation"] = "mvn:org.eclipse.jetty:jetty-continuation:jar:9.2.21.v20170120"
artifact_map["@jetty_http//:jetty_http"] = "mvn:org.eclipse.jetty:jetty-http:jar:9.2.21.v20170120"
artifact_map["@jetty_io//:jetty_io"] = "mvn:org.eclipse.jetty:jetty-io:jar:9.2.21.v20170120"
artifact_map["@javax_servlet_api//:javax_servlet_api"] = "mvn:javax.servlet:javax.servlet-api:jar:3.1.0"
artifact_map["@joda_time//:joda_time"] = "mvn:joda-time:joda-time:jar:2.9.3"
artifact_map["@jsch//:jsch"] = "mvn:com.jcraft:jsch:jar:NON-OSGI:0.1.53"
artifact_map["@com_google_code_findbugs_jsr305//:com_google_code_findbugs_jsr305"] = "mvn:com.google.code.findbugs:jsr305:jar:3.0.1"
artifact_map["@junit//:junit"] = "mvn:junit:junit:jar:NON-OSGI:4.12"
artifact_map["@junit_dep//:junit_dep"] = "mvn:junit:junit:jar:NON-OSGI:4.10"
artifact_map["@kryo//:kryo"] = "mvn:com.esotericsoftware:kryo:jar:4.0.1"
artifact_map["@mapdb//:mapdb"] = "mvn:org.mapdb:mapdb:jar:1.0.9"
artifact_map["@metrics_core//:metrics_core"] = "mvn:io.dropwizard.metrics:metrics-core:jar:3.2.2"
artifact_map["@metrics_ganglia//:metrics_ganglia"] = "mvn:io.dropwizard.metrics:metrics-ganglia:jar:3.2.2"
artifact_map["@metrics_graphite//:metrics_graphite"] = "mvn:io.dropwizard.metrics:metrics-graphite:jar:3.2.2"
artifact_map["@metrics_influxdb//:metrics_influxdb"] = "mvn:com.izettle:metrics-influxdb:jar:NON-OSGI:1.1.1"
artifact_map["@metrics_json//:metrics_json"] = "mvn:io.dropwizard.metrics:metrics-json:jar:3.2.2"
artifact_map["@minimal_json//:minimal_json"] = "mvn:com.eclipsesource.minimal-json:minimal-json:jar:0.9.4"
artifact_map["@minlog//:minlog"] = "mvn:com.esotericsoftware:minlog:jar:1.3.0"
artifact_map["@io_netty_netty//:io_netty_netty"] = "mvn:io.netty:netty:jar:3.10.5.Final"
artifact_map["@io_netty_netty_buffer//:io_netty_netty_buffer"] = "mvn:io.netty:netty-buffer:jar:4.1.27.Final"
artifact_map["@io_netty_netty_codec//:io_netty_netty_codec"] = "mvn:io.netty:netty-codec:jar:4.1.27.Final"
artifact_map["@io_netty_netty_common//:io_netty_netty_common"] = "mvn:io.netty:netty-common:jar:4.1.27.Final"
artifact_map["@io_netty_netty_handler//:io_netty_netty_handler"] = "mvn:io.netty:netty-handler:jar:4.1.27.Final"
artifact_map["@io_netty_netty_handler_proxy//:io_netty_netty_handler_proxy"] = "mvn:io.netty:netty-handler-proxy:jar:4.1.27.Final"
artifact_map["@io_netty_netty_tcnative_boringssl//:io_netty_netty_tcnative_boringssl"] = "mvn:io.netty:netty-tcnative-boringssl-static:jar:2.0.12.Final"
artifact_map["@io_netty_netty_transport//:io_netty_netty_transport"] = "mvn:io.netty:netty-transport:jar:4.1.27.Final"
artifact_map["@io_netty_netty_transport_native_unix_common//:io_netty_netty_transport_native_unix_common"] = "mvn:io.netty:netty-transport-native-unix-common:jar:4.1.27.Final"
artifact_map["@io_netty_netty_transport_native_epoll//:io_netty_netty_transport_native_epoll"] = "mvn:io.netty:netty-transport-native-epoll:jar:4.1.27.Final"
artifact_map["@io_netty_netty_resolver//:io_netty_netty_resolver"] = "mvn:io.netty:netty-resolver:jar:4.1.27.Final"
artifact_map["@io_netty_netty_codec_http2//:io_netty_netty_codec_http2"] = "mvn:io.netty:netty-codec-http2:jar:4.1.27.Final"
artifact_map["@io_netty_netty_codec_http//:io_netty_netty_codec_http"] = "mvn:io.netty:netty-codec-http:jar:4.1.27.Final"
artifact_map["@io_netty_netty_codec_socks//:io_netty_netty_codec_socks"] = "mvn:io.netty:netty-codec-socks:jar:4.1.27.Final"
artifact_map["@objenesis//:objenesis"] = "mvn:org.objenesis:objenesis:jar:2.6"
artifact_map["@openflowj//:openflowj"] = "mvn:org.onosproject:openflowj:jar:3.2.1.onos"
artifact_map["@org_apache_felix_framework_security//:org_apache_felix_framework_security"] = "mvn:org.onosproject:org.apache.felix.framework.security:jar:2.2.0.onos"
artifact_map["@org_apache_felix_scr//:org_apache_felix_scr"] = "mvn:org.apache.felix:org.apache.felix.scr:jar:1.8.2"
artifact_map["@org_apache_felix_scr_annotations//:org_apache_felix_scr_annotations"] = "mvn:org.apache.felix:org.apache.felix.scr.annotations:jar:NON-OSGI:1.9.12"
artifact_map["@org_apache_karaf_features_core//:org_apache_karaf_features_core"] = "mvn:org.apache.karaf.features:org.apache.karaf.features.core:jar:3.0.8"
artifact_map["@org_apache_karaf_shell_console//:org_apache_karaf_shell_console"] = "mvn:org.apache.karaf.shell:org.apache.karaf.shell.console:jar:3.0.8"
artifact_map["@org_apache_httpcomponents_httpasyncclient_osgi//:org_apache_httpcomponents_httpasyncclient_osgi"] = "mvn:org.apache.httpcomponents:httpasyncclient-osgi:jar:4.1.2"
artifact_map["@org_apache_httpcomponents_httpcore_nio//:org_apache_httpcomponents_httpcore_nio"] = "mvn:org.apache.httpcomponents:httpcore-nio:jar:NON-OSGI:4.4.4"
artifact_map["@org_apache_karaf_jaas//:org_apache_karaf_jaas"] = "mvn:org.apache.karaf.jaas:org.apache.karaf.jaas.modules:jar:3.0.8"
artifact_map["@org_apache_karaf_system_core//:org_apache_karaf_system_core"] = "mvn:org.apache.karaf.system:org.apache.karaf.system.core:jar:3.0.8"
artifact_map["@org_apache_servicemix_bundles_snmp4j//:org_apache_servicemix_bundles_snmp4j"] = "mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:jar:2.3.4_1"
artifact_map["@org_osgi_compendium//:org_osgi_compendium"] = "mvn:org.osgi:org.osgi.compendium:jar:5.0.0"
artifact_map["@osgi_core//:osgi_core"] = "mvn:org.osgi:org.osgi.core:jar:5.0.0"
artifact_map["@reflectasm//:reflectasm"] = "mvn:com.esotericsoftware:reflectasm:jar:1.11.0"
artifact_map["@remotetea_oncrpc//:remotetea_oncrpc"] = "mvn:org.acplt.remotetea:remotetea-oncrpc:jar:1.1.3"
artifact_map["@rrd4j//:rrd4j"] = "mvn:org.rrd4j:rrd4j:jar:NON-OSGI:3.1"
artifact_map["@javassist//:javassist"] = "mvn:org.javassist:javassist:jar:3.22.0-GA"
artifact_map["@mimepull//:mimepull"] = "mvn:org.jvnet.mimepull:mimepull:jar:1.9.6"
artifact_map["@servlet_api//:servlet_api"] = "mvn:javax.servlet:servlet-api:jar:NON-OSGI:2.5"
artifact_map["@slf4j_api//:slf4j_api"] = "mvn:org.slf4j:slf4j-api:jar:1.7.25"
artifact_map["@slf4j_jdk14//:slf4j_jdk14"] = "mvn:org.slf4j:slf4j-jdk14:jar:1.7.25"
artifact_map["@slf4j_nop//:slf4j_nop"] = "mvn:org.slf4j:slf4j-nop:jar:1.7.25"
artifact_map["@typesafe_config//:typesafe_config"] = "mvn:com.typesafe:config:jar:1.3.2"
artifact_map["@validation_api//:validation_api"] = "mvn:javax.validation:validation-api:jar:1.1.0.Final"
artifact_map["@checkstyle//:checkstyle"] = "mvn:com.puppycrawl.tools:checkstyle:jar:NON-OSGI:8.10"
artifact_map["@apache_karaf//:apache_karaf"] = "http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/3.0.8/apache-karaf-offline-3.0.8.tar.gz"
artifact_map["@apache_karaf_patches//:apache_karaf_patches"] = "http://repo1.maven.org/maven2/org/onosproject/onos-apache-karaf-patches/3.0.8/onos-apache-karaf-patches-3.0.8.tar.gz"
artifact_map["@bndlib//:bndlib"] = "mvn:biz.aQute.bnd:biz.aQute.bndlib:jar:3.1.0"
artifact_map["@bndexe//:bndexe"] = "mvn:biz.aQute.bnd:biz.aQute.bnd:jar:3.1.0"
artifact_map["@libthrift//:libthrift"] = "mvn:org.apache.thrift:libthrift:jar:0.11.0"
artifact_map["@qdox//:qdox"] = "mvn:com.thoughtworks.qdox:qdox:jar:NON-OSGI:2.0-M3"
artifact_map["@org_apache_felix_scr_bnd//:org_apache_felix_scr_bnd"] = "https://oss.sonatype.org/content/repositories/snapshots/org/onosproject/org.apache.felix.scr.bnd/1.4.1-SNAPSHOT/org.apache.felix.scr.bnd-1.4.1-20160328.235003-2.jar"
artifact_map["@snmp_core//:snmp_core"] = "mvn:org.onosproject:snmp-core:jar:1.3-20161021.1"
artifact_map["@mibs_net_snmp//:mibs_net_snmp"] = "mvn:org.onosproject:mibbler-mibs-net-snmp:jar:1.0-20151221.1"
artifact_map["@mibs_rfc//:mibs_rfc"] = "mvn:org.onosproject:mibbler-mibs-rfc:jar:1.0-20151221.1"
artifact_map["@io_socket_client//:io_socket_client"] = "mvn:io.socket:socket.io-client:jar:NON-OSGI:0.8.3"
artifact_map["@json//:json"] = "mvn:org.json:json:jar:NON-OSGI:20090211"
artifact_map["@engine_io_client//:engine_io_client"] = "mvn:io.socket:engine.io-client:jar:NON-OSGI:0.8.3"
artifact_map["@com_google_api_grpc_proto_google_common_protos//:com_google_api_grpc_proto_google_common_protos"] = "mvn:com.google.api.grpc:proto-google-common-protos:jar:NON-OSGI:1.0.0"
artifact_map["@com_google_errorprone_error_prone_annotations//:com_google_errorprone_error_prone_annotations"] = "mvn:com.google.errorprone:error_prone_annotations:jar:NON-OSGI:2.1.2"
artifact_map["@com_google_auth_google_auth_library_credentials//:com_google_auth_google_auth_library_credentials"] = "mvn:com.google.auth:google-auth-library-credentials:jar:NON-OSGI:0.9.0"
artifact_map["@io_opencensus_opencensus_api//:io_opencensus_opencensus_api"] = "mvn:io.opencensus:opencensus-api:jar:NON-OSGI:0.12.3"
artifact_map["@io_opencensus_opencensus_contrib_grpc_metrics//:io_opencensus_opencensus_contrib_grpc_metrics"] = "mvn:io.opencensus:opencensus-contrib-grpc-metrics:jar:NON-OSGI:0.12.3"
artifact_map["@openstack4j_core//:openstack4j_core"] = "mvn:org.pacesys:openstack4j-core:jar:3.1.0"
artifact_map["@openstack4j_http_connector//:openstack4j_http_connector"] = "mvn:org.pacesys.openstack4j.connectors:openstack4j-http-connector:jar:3.1.0"
artifact_map["@openstack4j_httpclient//:openstack4j_httpclient"] = "mvn:org.pacesys.openstack4j.connectors:openstack4j-httpclient:jar:3.1.0"
artifact_map["@json_patch//:json_patch"] = "mvn:com.github.fge:json-patch:jar:1.9"
artifact_map["@jackson_coreutils//:jackson_coreutils"] = "mvn:com.github.fge:jackson-coreutils:jar:1.6"
artifact_map["@btf//:btf"] = "mvn:com.github.fge:btf:jar:1.2"
artifact_map["@msg_simple//:msg_simple"] = "mvn:com.github.fge:msg-simple:jar:1.1"
artifact_map["@snakeyaml//:snakeyaml"] = "mvn:org.yaml:snakeyaml:jar:1.15"
artifact_map["@onos_yang_model//:onos_yang_model"] = "mvn:org.onosproject:onos-yang-model:jar:2.5"
artifact_map["@onos_yang_compiler_api//:onos_yang_compiler_api"] = "mvn:org.onosproject:onos-yang-compiler-api:jar:2.5"
artifact_map["@onos_yang_compiler_main//:onos_yang_compiler_main"] = "mvn:org.onosproject:onos-yang-compiler-main:jar:2.5"
artifact_map["@onos_yang_runtime//:onos_yang_runtime"] = "mvn:org.onosproject:onos-yang-runtime:jar:2.5"
artifact_map["@onos_yang_serializers_json//:onos_yang_serializers_json"] = "mvn:org.onosproject:onos-yang-serializers-json:jar:2.5"
artifact_map["@onos_yang_serializers_xml//:onos_yang_serializers_xml"] = "mvn:org.onosproject:onos-yang-serializers-xml:jar:2.5"
artifact_map["@onos_yang_serializers_utils//:onos_yang_serializers_utils"] = "mvn:org.onosproject:onos-yang-serializers-utils:jar:2.5"
artifact_map["@org_apache_servicemix_bundles_dom4j//:org_apache_servicemix_bundles_dom4j"] = "mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j:jar:1.6.1_5"
artifact_map["@plexus_utils//:plexus_utils"] = "mvn:org.codehaus.plexus:plexus-utils:jar:NON-OSGI:3.0.24"
artifact_map["@sshd_core//:sshd_core"] = "mvn:org.apache.sshd:sshd-core:jar:1.4.0"
artifact_map["@bcpkix_jdk15on//:bcpkix_jdk15on"] = "mvn:org.bouncycastle:bcpkix-jdk15on:jar:1.59"
artifact_map["@bcprov_jdk15on//:bcprov_jdk15on"] = "mvn:org.bouncycastle:bcprov-jdk15on:jar:1.59"
artifact_map["@hamcrest_optional//:hamcrest_optional"] = "mvn:com.spotify:hamcrest-optional:jar:NON-OSGI:1.1.0"
artifact_map["@swagger_annotations//:swagger_annotations"] = "mvn:io.swagger:swagger-annotations:jar:1.5.16"
artifact_map["@kafka_clients//:kafka_clients"] = "mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.kafka-clients:jar:0.8.2.2_1"
artifact_map["@tinder_xmpp//:tinder_xmpp"] = "mvn:org.igniterealtime:tinder:jar:NON-OSGI:1.3.0"
artifact_map["@aalto_xml//:aalto_xml"] = "mvn:com.fasterxml:aalto-xml:jar:1.0.0"
artifact_map["@stax2_api//:stax2_api"] = "mvn:org.codehaus.woodstox:stax2-api:jar:4.0.0"
artifact_map["@concurrent_hashmap//:concurrent_hashmap"] = "mvn:com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:NON-OSGI:1.0"
artifact_map["@gnu_idn//:gnu_idn"] = "mvn:org.gnu.inet:libidn:jar:NON-OSGI:1.15"
artifact_map["@sigar//:sigar"] = "mvn:org.knowhowlab.osgi:sigar:jar:1.6.5_01"
artifact_map["@runtime_grpc_core//:runtime_grpc_core"] = "mvn:io.grpc:grpc-core:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_context//:runtime_grpc_context"] = "mvn:io.grpc:grpc-context:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_stub//:runtime_grpc_stub"] = "mvn:io.grpc:grpc-stub:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_netty//:runtime_grpc_netty"] = "mvn:io.grpc:grpc-netty:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_auth//:runtime_grpc_auth"] = "mvn:io.grpc:grpc-auth:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_protobuf//:runtime_grpc_protobuf"] = "mvn:io.grpc:grpc-protobuf:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_protobuf_lite//:runtime_grpc_protobuf_lite"] = "mvn:io.grpc:grpc-protobuf-lite:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_protobuf//:runtime_protobuf"] = "mvn:com.google.protobuf:protobuf-java:jar:3.6.1"
artifact_map["@grpc_core_1_3_1//:grpc_core_1_3_1"] = "mvn:io.grpc:grpc-core:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_protobuf_1_3_1//:grpc_protobuf_1_3_1"] = "mvn:io.grpc:grpc-protobuf:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_protobuf_lite_1_3_1//:grpc_protobuf_lite_1_3_1"] = "mvn:io.grpc:grpc-protobuf-lite:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_stub_1_3_1//:grpc_stub_1_3_1"] = "mvn:io.grpc:grpc-stub:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_netty_1_3_1//:grpc_netty_1_3_1"] = "mvn:io.grpc:grpc-netty:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_auth_1_3_1//:grpc_auth_1_3_1"] = "mvn:io.grpc:grpc-auth:jar:NON-OSGI:1.3.1"
artifact_map["@protobuf_java_3_3_0//:protobuf_java_3_3_0"] = "mvn:com.google.protobuf:protobuf-java:jar:3.3.0"
artifact_map["@protobuf_java_3_2_0//:protobuf_java_3_2_0"] = "mvn:com.google.protobuf:protobuf-java:jar:3.2.0"
artifact_map["@grpc_testing_1_3_1//:grpc_testing_1_3_1"] = "mvn:io.grpc:grpc-testing:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_testing_proto_1_3_1//:grpc_testing_proto_1_3_1"] = "mvn:io.grpc:grpc-testing-proto:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_context_1_3_1//:grpc_context_1_3_1"] = "mvn:io.grpc:grpc-context:jar:NON-OSGI:1.3.1"
artifact_map["@google_truth_0_28//:google_truth_0_28"] = "mvn:com.google.truth:truth:jar:NON-OSGI:0.28"
artifact_map["@google_code_findbugs_3_0_0//:google_code_findbugs_3_0_0"] = "mvn:com.google.code.findbugs:jsr305:jar:NON-OSGI:3.0.0"
artifact_map["@google_errorprone_2_0_19//:google_errorprone_2_0_19"] = "mvn:com.google.errorprone:error_prone_annotations:jar:NON-OSGI:2.0.19"
artifact_map["@google_instrumentation_0_3_0//:google_instrumentation_0_3_0"] = "mvn:com.google.instrumentation:instrumentation-api:jar:NON-OSGI:0.3.0"

def maven_coordinates(label):
    label_string = str(label)
    if label_string in artifact_map:
        return artifact_map[label_string]
    if (label_string.endswith(":jar")):
        label_string = label_string.replace(":jar", "")
        if label_string in artifact_map:
            return artifact_map[label_string]
    if type(label) == "string":
        return "mvn:%s:%s:%s" % (ONOS_GROUP_ID, label_string, ONOS_VERSION)
    return "mvn:%s:%s:%s" % (ONOS_GROUP_ID, label.name, ONOS_VERSION)
