# ***** This file was auto-generated at Fri, 12 Oct 2018 17:49:17 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 = "4d6c72efa8e42908dbb3e6594fde5f5aef7a7c5c981da67a624ba2cbf2959b71",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix/3.0.7/atomix-3.0.7.jar"],        )
    if "atomix_cluster" not in native.existing_rules():
        java_import_external(
            name = "atomix_cluster",
            jar_sha256 = "2415ca61a697593eaacf7afb5884b999fdd77600ba21b5edda5a3af50a8fcb10",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-cluster/3.0.7/atomix-cluster-3.0.7.jar"],        )
    if "atomix_gossip" not in native.existing_rules():
        java_import_external(
            name = "atomix_gossip",
            jar_sha256 = "ebc82fe9dc396ab03c7dd8e8db1507b90238d1d426c585390ea5fcc0696675fd",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-gossip/3.0.7/atomix-gossip-3.0.7.jar"],        )
    if "atomix_primary_backup" not in native.existing_rules():
        java_import_external(
            name = "atomix_primary_backup",
            jar_sha256 = "0205ffef779bcb55144355679a34f1adeba6644f8949bed0cd8f80ffb48aa014",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-primary-backup/3.0.7/atomix-primary-backup-3.0.7.jar"],        )
    if "atomix_primitive" not in native.existing_rules():
        java_import_external(
            name = "atomix_primitive",
            jar_sha256 = "8f37e8e73c168e48b7fd45c40514b447eb319a78bdb0a3af5520d0546b9551f1",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-primitive/3.0.7/atomix-primitive-3.0.7.jar"],        )
    if "atomix_raft" not in native.existing_rules():
        java_import_external(
            name = "atomix_raft",
            jar_sha256 = "76c3d624e4f384cb9bc43430f5a57fca4eb7b9ec1394a67020b5a5bb7c0f1988",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-raft/3.0.7/atomix-raft-3.0.7.jar"],        )
    if "atomix_storage" not in native.existing_rules():
        java_import_external(
            name = "atomix_storage",
            jar_sha256 = "f190f17969c4c31fee50af99034c6a569505a7d7afd3b034661373d455377dd6",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-storage/3.0.7/atomix-storage-3.0.7.jar"],        )
    if "atomix_utils" not in native.existing_rules():
        java_import_external(
            name = "atomix_utils",
            jar_sha256 = "d13840f8bc55385167ca18637b955fd554d6b3ee0fe1c20c8ba1c87f0cc68cde",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/atomix/atomix-utils/3.0.7/atomix-utils-3.0.7.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 "simpleclient" not in native.existing_rules():
        java_import_external(
            name = "simpleclient",
            jar_sha256 = "68e20a01ec974f382553b763f58594416c3c652b7067d8aeccf1a5ea6c8b1d0d",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/prometheus/simpleclient/0.5.0/simpleclient-0.5.0.jar"],        )
    if "simpleclient_common" not in native.existing_rules():
        java_import_external(
            name = "simpleclient_common",
            jar_sha256 = "41d881034a44639d5717d71c61d207b8580bc755e0c0a6f4a1ec7137a7274366",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/prometheus/simpleclient_common/0.5.0/simpleclient_common-0.5.0.jar"],        )
    if "simpleclient_hotspot" not in native.existing_rules():
        java_import_external(
            name = "simpleclient_hotspot",
            jar_sha256 = "93f4f9e43948599ce42e38b3899194a130989d967eba47233abe16177fef1d06",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/prometheus/simpleclient_hotspot/0.5.0/simpleclient_hotspot-0.5.0.jar"],        )
    if "simpleclient_servlet" not in native.existing_rules():
        java_import_external(
            name = "simpleclient_servlet",
            jar_sha256 = "f8c1d2879588475a4a2600f286347203ef71fdde68ebac0006498c821e6d0de3",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/io/prometheus/simpleclient_servlet/0.5.0/simpleclient_servlet-0.5.0.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_servlet" not in native.existing_rules():
        java_import_external(
            name = "jetty_servlet",
            jar_sha256 = "84843dd91905a6e12242f41efe4b58d7009f5714b602b380d2c8e3b0513f0eb8",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/eclipse/jetty/jetty-servlet/9.2.26.v20180806/jetty-servlet-9.2.26.v20180806.jar"],        )
    if "jetty_security" not in native.existing_rules():
        java_import_external(
            name = "jetty_security",
            jar_sha256 = "397d7bb721e51060cb62f01814b9cabbe6700080f2e39143544cc78fddc23f3f",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/org/eclipse/jetty/jetty-security/9.2.21.v20170120/jetty-security-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_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 = "d1a328c8f63aea4f7ce6028a49255137664a7138fadc4af9d25461192b71e098",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/biz/aQute/bnd/biz.aQute.bndlib/4.0.0/biz.aQute.bndlib-4.0.0.jar"],        )
    if "bndexe" not in native.existing_rules():
        java_import_external(
            name = "bndexe",
            jar_sha256 = "b18d88ae15db4bf7af53c396feb45a64f27403d7e7d7cd50a68bf8915ca7b6c0",
            licenses = ["notice"],
            jar_urls = ["http://repo1.maven.org/maven2/biz/aQute/bnd/biz.aQute.bnd/4.0.0/biz.aQute.bnd-4.0.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.7"
artifact_map["@atomix_cluster//:atomix_cluster"] = "mvn:io.atomix:atomix-cluster:jar:3.0.7"
artifact_map["@atomix_gossip//:atomix_gossip"] = "mvn:io.atomix:atomix-gossip:jar:3.0.7"
artifact_map["@atomix_primary_backup//:atomix_primary_backup"] = "mvn:io.atomix:atomix-primary-backup:jar:3.0.7"
artifact_map["@atomix_primitive//:atomix_primitive"] = "mvn:io.atomix:atomix-primitive:jar:3.0.7"
artifact_map["@atomix_raft//:atomix_raft"] = "mvn:io.atomix:atomix-raft:jar:3.0.7"
artifact_map["@atomix_storage//:atomix_storage"] = "mvn:io.atomix:atomix-storage:jar:3.0.7"
artifact_map["@atomix_utils//:atomix_utils"] = "mvn:io.atomix:atomix-utils:jar:3.0.7"
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["@simpleclient//:simpleclient"] = "mvn:io.prometheus:simpleclient:jar:0.5.0"
artifact_map["@simpleclient_common//:simpleclient_common"] = "mvn:io.prometheus:simpleclient_common:jar:0.5.0"
artifact_map["@simpleclient_hotspot//:simpleclient_hotspot"] = "mvn:io.prometheus:simpleclient_hotspot:jar:0.5.0"
artifact_map["@simpleclient_servlet//:simpleclient_servlet"] = "mvn:io.prometheus:simpleclient_servlet:jar:0.5.0"
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_servlet//:jetty_servlet"] = "mvn:org.eclipse.jetty:jetty-servlet:jar:9.2.26.v20180806"
artifact_map["@jetty_security//:jetty_security"] = "mvn:org.eclipse.jetty:jetty-security: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_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:4.0.0"
artifact_map["@bndexe//:bndexe"] = "mvn:biz.aQute.bnd:biz.aQute.bnd:jar:4.0.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)
