# ***** This file was auto-generated at Thu, 6 Sep 2018 17:55:22 GMT. Do not edit this file manually. *****
# ***** Use onos-lib-gen *****

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

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():
        native.maven_jar(
            name = "aopalliance_repackaged",
            artifact = "org.glassfish.hk2.external:aopalliance-repackaged:2.5.0-b42",
            sha1 = "e74beab6ca12e9e745eb47ca61729d9452b96f0c",
        )

    if "amqp_client" not in native.existing_rules():
        native.maven_jar(
            name = "amqp_client",
            artifact = "com.rabbitmq:amqp-client:3.6.1",
            sha1 = "089be4acfa8a0fa48a775a82d20632f90aecf10b",
        )

    if "asm" not in native.existing_rules():
        native.maven_jar(
            name = "asm",
            artifact = "org.ow2.asm:asm:5.0.4",
            sha1 = "0da08b8cce7bbf903602a25a3a163ae252435795",
        )

    if "atomix" not in native.existing_rules():
        native.maven_jar(
            name = "atomix",
            artifact = "io.atomix:atomix:3.0.5",
            sha1 = "758df25aed743d625930654d2e589cc0084efdbc",
        )

    if "atomix_cluster" not in native.existing_rules():
        native.maven_jar(
            name = "atomix_cluster",
            artifact = "io.atomix:atomix-cluster:3.0.5",
            sha1 = "3ac50436eaf47fa5ba7553b37628aea7fa8b8deb",
        )

    if "atomix_gossip" not in native.existing_rules():
        native.maven_jar(
            name = "atomix_gossip",
            artifact = "io.atomix:atomix-gossip:3.0.5",
            sha1 = "63c365b00b0164aa067e55febca9a4df253e8ab2",
        )

    if "atomix_primary_backup" not in native.existing_rules():
        native.maven_jar(
            name = "atomix_primary_backup",
            artifact = "io.atomix:atomix-primary-backup:3.0.5",
            sha1 = "f444f8f733457182a096786dd2b6a4369d1feebc",
        )

    if "atomix_primitive" not in native.existing_rules():
        native.maven_jar(
            name = "atomix_primitive",
            artifact = "io.atomix:atomix-primitive:3.0.5",
            sha1 = "e383b171c202df84af7e8510034714bc52831115",
        )

    if "atomix_raft" not in native.existing_rules():
        native.maven_jar(
            name = "atomix_raft",
            artifact = "io.atomix:atomix-raft:3.0.5",
            sha1 = "0e7345cd475adb6e1f5af8ec48fd6faeb1261f84",
        )

    if "atomix_storage" not in native.existing_rules():
        native.maven_jar(
            name = "atomix_storage",
            artifact = "io.atomix:atomix-storage:3.0.5",
            sha1 = "2967037f437ce85c191795baeb65535d76b027fe",
        )

    if "atomix_utils" not in native.existing_rules():
        native.maven_jar(
            name = "atomix_utils",
            artifact = "io.atomix:atomix-utils:3.0.5",
            sha1 = "63afb65deccb9631b8017d6aa779b337f920cef0",
        )

    if "classgraph" not in native.existing_rules():
        native.maven_jar(
            name = "classgraph",
            artifact = "io.github.classgraph:classgraph:4.0.6",
            sha1 = "7fe1e7464ffd40c7333b8bbf53c4d73a7cbd7b4c",
        )

    if "commons_codec" not in native.existing_rules():
        native.maven_jar(
            name = "commons_codec",
            artifact = "commons-codec:commons-codec:1.10",
            sha1 = "4b95f4897fa13f2cd904aee711aeafc0c5295cd8",
        )

    if "commons_cli" not in native.existing_rules():
        native.maven_jar(
            name = "commons_cli",
            artifact = "commons-cli:commons-cli:1.3",
            sha1 = "a48653b6bcd06b5e61ed63739ca601701fcb6a6c",
        )

    if "commons_collections" not in native.existing_rules():
        native.maven_jar(
            name = "commons_collections",
            artifact = "commons-collections:commons-collections:3.2.2",
            sha1 = "8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5",
        )

    if "commons_configuration" not in native.existing_rules():
        native.maven_jar(
            name = "commons_configuration",
            artifact = "commons-configuration:commons-configuration:1.10",
            sha1 = "2b36e4adfb66d966c5aef2d73deb6be716389dc9",
        )

    if "commons_io" not in native.existing_rules():
        native.maven_jar(
            name = "commons_io",
            artifact = "commons-io:commons-io:2.6",
            sha1 = "815893df5f31da2ece4040fe0a12fd44b577afaf",
        )

    if "commons_jxpath" not in native.existing_rules():
        native.maven_jar(
            name = "commons_jxpath",
            artifact = "commons-jxpath:commons-jxpath:1.3",
            sha1 = "c22d7d0f0f40eb7059a23cfa61773a416768b137",
        )

    if "commons_beanutils" not in native.existing_rules():
        native.maven_jar(
            name = "commons_beanutils",
            artifact = "commons-beanutils:commons-beanutils:1.9.3",
            sha1 = "c845703de334ddc6b4b3cd26835458cb1cba1f3d",
        )

    if "fast_classpath_scanner" not in native.existing_rules():
        native.maven_jar(
            name = "fast_classpath_scanner",
            artifact = "io.github.lukehutch:fast-classpath-scanner:2.21",
            sha1 = "0cc8e22b412521480c89ac79194e82bd4471dd75",
        )

    if "jdom" not in native.existing_rules():
        native.maven_jar(
            name = "jdom",
            artifact = "jdom:jdom:1.0",
            sha1 = "a2ac1cd690ab4c80defe7f9bce14d35934c35cec",
        )

    if "commons_lang" not in native.existing_rules():
        native.maven_jar(
            name = "commons_lang",
            artifact = "commons-lang:commons-lang:2.6",
            sha1 = "0ce1edb914c94ebc388f086c6827e8bdeec71ac2",
        )

    if "commons_lang3" not in native.existing_rules():
        native.maven_jar(
            name = "commons_lang3",
            artifact = "org.apache.commons:commons-lang3:3.7",
            sha1 = "557edd918fd41f9260963583ebf5a61a43a6b423",
        )

    if "commons_logging" not in native.existing_rules():
        native.maven_jar(
            name = "commons_logging",
            artifact = "commons-logging:commons-logging:1.2",
            sha1 = "4bfc12adfe4842bf07b657f0369c4cb522955686",
        )

    if "commons_math3" not in native.existing_rules():
        native.maven_jar(
            name = "commons_math3",
            artifact = "org.apache.commons:commons-math3:3.6.1",
            sha1 = "e4ba98f1d4b3c80ec46392f25e094a6a2e58fcbf",
        )

    if "commons_net" not in native.existing_rules():
        native.maven_jar(
            name = "commons_net",
            artifact = "commons-net:commons-net:3.5",
            sha1 = "342fc284019f590e1308056990fdb24a08f06318",
        )

    if "commons_pool" not in native.existing_rules():
        native.maven_jar(
            name = "commons_pool",
            artifact = "commons-pool:commons-pool:1.6",
            sha1 = "4572d589699f09d866a226a14b7f4323c6d8f040",
        )

    if "commons_text" not in native.existing_rules():
        native.maven_jar(
            name = "commons_text",
            artifact = "org.apache.commons:commons-text:1.3",
            sha1 = "9abf61708a66ab5e55f6169a200dbfc584b546d9",
        )

    if "concurrent_trees" not in native.existing_rules():
        native.maven_jar(
            name = "concurrent_trees",
            artifact = "com.googlecode.concurrent-trees:concurrent-trees:2.6.1",
            sha1 = "9b647240522ab67c003de9b6702ca81ac0c15efc",
        )

    if "easymock" not in native.existing_rules():
        native.maven_jar(
            name = "easymock",
            artifact = "org.easymock:easymock:3.6",
            sha1 = "276883daaf2230e6f1e07c78ad695d2a18c7170b",
        )

    if "antlr" not in native.existing_rules():
        native.maven_jar(
            name = "antlr",
            artifact = "antlr:antlr:2.7.7",
            sha1 = "83cd2cd674a217ade95a4bb83a8a14f351f48bd0",
        )

    if "ganymed_ssh2" not in native.existing_rules():
        native.maven_jar(
            name = "ganymed_ssh2",
            artifact = "ch.ethz.ganymed:ganymed-ssh2:262",
            sha1 = "7761dc665d0f6993dc846d914214fb93291e2bdf",
        )

    if "gmetric4j" not in native.existing_rules():
        native.maven_jar(
            name = "gmetric4j",
            artifact = "info.ganglia.gmetric4j:gmetric4j:1.0.10",
            sha1 = "3d62003123b586adb86cb028cc0f8a8c3a701d81",
        )

    if "com_google_code_gson_gson" not in native.existing_rules():
        native.maven_jar(
            name = "com_google_code_gson_gson",
            artifact = "com.google.code.gson:gson:2.7",
            sha1 = "751f548c85fa49f330cecbb1875893f971b33c4e",
        )

    if "com_google_guava_guava" not in native.existing_rules():
        native.maven_jar(
            name = "com_google_guava_guava",
            artifact = "com.google.guava:guava:22.0",
            sha1 = "3564ef3803de51fb0530a8377ec6100b33b0d073",
        )

    if "com_google_guava_guava_testlib" not in native.existing_rules():
        native.maven_jar(
            name = "com_google_guava_guava_testlib",
            artifact = "com.google.guava:guava-testlib:22.0",
            sha1 = "3be1b88f1cfc6592acbcbfe1f3a420f79eb2b146",
        )

    if "hamcrest_all" not in native.existing_rules():
        native.maven_jar(
            name = "hamcrest_all",
            artifact = "org.hamcrest:hamcrest-all:1.3",
            sha1 = "63a21ebc981131004ad02e0434e799fd7f3a8d5a",
        )

    if "hk2_api" not in native.existing_rules():
        native.maven_jar(
            name = "hk2_api",
            artifact = "org.glassfish.hk2:hk2-api:2.5.0-b42",
            sha1 = "7fd4e3d0f2cb37c80ad0dedee3f5ee69503eaf52",
        )

    if "hk2_locator" not in native.existing_rules():
        native.maven_jar(
            name = "hk2_locator",
            artifact = "org.glassfish.hk2:hk2-locator:2.5.0-b42",
            sha1 = "9d6edc0cb226401a8316e67d81bfc37cb626ef91",
        )

    if "hk2_osgi_resource_locator" not in native.existing_rules():
        native.maven_jar(
            name = "hk2_osgi_resource_locator",
            artifact = "org.glassfish.hk2:osgi-resource-locator:1.0.1",
            sha1 = "4ed2b2d4738aed5786cfa64cba5a332779c4c708",
        )

    if "hk2_utils" not in native.existing_rules():
        native.maven_jar(
            name = "hk2_utils",
            artifact = "org.glassfish.hk2:hk2-utils:2.5.0-b42",
            sha1 = "102a344e1728825e865a8986d7605602aba3c3b6",
        )

    if "httpclient_osgi" not in native.existing_rules():
        native.maven_jar(
            name = "httpclient_osgi",
            artifact = "org.apache.httpcomponents:httpclient-osgi:4.5.1",
            sha1 = "0220a68ff36e5b0fa71b5dc0b1dc1d4ad2dcf524",
        )

    if "httpcore_osgi" not in native.existing_rules():
        native.maven_jar(
            name = "httpcore_osgi",
            artifact = "org.apache.httpcomponents:httpcore-osgi:4.4.4",
            sha1 = "d5c14055e569afca96f4603d6f9d467bc72ccba8",
        )

    if "influxdb_java" not in native.existing_rules():
        native.maven_jar(
            name = "influxdb_java",
            artifact = "org.influxdb:influxdb-java:2.9",
            sha1 = "3c1c2b9b977d4ee67b2877eb89943add248a50db",
        )

    if "retrofit" not in native.existing_rules():
        native.maven_jar(
            name = "retrofit",
            artifact = "com.squareup.retrofit2:retrofit:2.3.0",
            sha1 = "bcacde6a8ccedcc56c127403d26b76072fe6214d",
        )

    if "converter_moshi" not in native.existing_rules():
        native.maven_jar(
            name = "converter_moshi",
            artifact = "com.squareup.retrofit2:converter-moshi:2.3.0",
            sha1 = "6ad87c2038269d2574fcd90765ce15c74d6bb993",
        )

    if "okhttp" not in native.existing_rules():
        native.maven_jar(
            name = "okhttp",
            artifact = "com.squareup.okhttp3:okhttp:3.9.1",
            sha1 = "84b4b7d1c4a238e7899972b7446c250691e65f1f",
        )

    if "logging_interceptor" not in native.existing_rules():
        native.maven_jar(
            name = "logging_interceptor",
            artifact = "com.squareup.okhttp3:logging-interceptor:3.9.1",
            sha1 = "36e71ab9e903fc4d1b4a58d80572a91d9fd60caf",
        )

    if "moshi" not in native.existing_rules():
        native.maven_jar(
            name = "moshi",
            artifact = "com.squareup.moshi:moshi:1.4.0",
            sha1 = "d67ad038adfd55dc276488a54f4944dfae5ff8ec",
        )

    if "okio" not in native.existing_rules():
        native.maven_jar(
            name = "okio",
            artifact = "com.squareup.okio:okio:1.14.0",
            sha1 = "102d7be47241d781ef95f1581d414b0943053130",
        )

    if "jackson_annotations" not in native.existing_rules():
        native.maven_jar(
            name = "jackson_annotations",
            artifact = "com.fasterxml.jackson.core:jackson-annotations:2.9.5",
            sha1 = "9056ec9db21c57d43219a84bb18c129ae51c6a5d",
        )

    if "jackson_core" not in native.existing_rules():
        native.maven_jar(
            name = "jackson_core",
            artifact = "com.fasterxml.jackson.core:jackson-core:2.9.5",
            sha1 = "a22ac51016944b06fd9ffbc9541c6e7ce5eea117",
        )

    if "jackson_databind" not in native.existing_rules():
        native.maven_jar(
            name = "jackson_databind",
            artifact = "com.fasterxml.jackson.core:jackson-databind:2.9.5",
            sha1 = "3490508379d065fe3fcb80042b62f630f7588606",
        )

    if "javax_annotation_api_mvn" not in native.existing_rules():
        native.maven_jar(
            name = "javax_annotation_api_mvn",
            artifact = "javax.annotation:javax.annotation-api:1.2",
            sha1 = "479c1e06db31c432330183f5cae684163f186146",
        )

    if "javax_inject" not in native.existing_rules():
        native.maven_jar(
            name = "javax_inject",
            artifact = "org.glassfish.hk2.external:javax.inject:2.5.0-b42",
            sha1 = "98e0b7dcef77dc04809f0603868140a1c60bea71",
        )

    if "javax_ws_rs_api" not in native.existing_rules():
        native.maven_jar(
            name = "javax_ws_rs_api",
            artifact = "javax.ws.rs:javax.ws.rs-api:2.1",
            sha1 = "426a0862406536e690c7caa8bb6ed32191986fac",
        )

    if "jersey_client" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_client",
            artifact = "org.glassfish.jersey.core:jersey-client:2.26",
            sha1 = "125b8d1040d121a5dc4ce6858e21a6160bed7afa",
        )

    if "jersey_security" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_security",
            artifact = "org.glassfish.jersey.security:oauth2-client:2.26",
            sha1 = "968e1d99c9460e29bdb447114fa8440c3dbafb14",
        )

    if "jersey_common" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_common",
            artifact = "org.glassfish.jersey.core:jersey-common:2.26",
            sha1 = "d96475745c5e72cafcbc4dc9e2e725f4d9683f21",
        )

    if "jersey_container_jetty_http" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_container_jetty_http",
            artifact = "org.glassfish.jersey.containers:jersey-container-jetty-http:2.26",
            sha1 = "c20d58ceb1a5d98aad2b2032ca200403622fe9d6",
        )

    if "jersey_container_servlet" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_container_servlet",
            artifact = "org.glassfish.jersey.containers:jersey-container-servlet:2.26",
            sha1 = "8723d05d1fe2fdda54d0921836ea5daa5abe5f00",
        )

    if "jersey_container_servlet_core" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_container_servlet_core",
            artifact = "org.glassfish.jersey.containers:jersey-container-servlet-core:2.26",
            sha1 = "66a0d51facf1e49e2353ff0d2a2d4a9e2fa3f836",
        )

    if "jersey_media_multipart" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_media_multipart",
            artifact = "org.glassfish.jersey.media:jersey-media-multipart:2.26",
            sha1 = "c7ea0a5819e4688317024c9f4b6e3de54f9d0f3d",
        )

    if "jersey_media_sse" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_media_sse",
            artifact = "org.glassfish.jersey.media:jersey-media-sse:2.26",
            sha1 = "61cfeb0df911585140f64f3369eb524e0e02f534",
        )

    if "jersey_server" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_server",
            artifact = "org.glassfish.jersey.core:jersey-server:2.26",
            sha1 = "aa8eff3d591641dadd7c9880bb73b59bf46d4c82",
        )

    if "jersey_hk2" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_hk2",
            artifact = "org.glassfish.jersey.inject:jersey-hk2:2.26",
            sha1 = "df27f7d7577acf4b532684448021632098924dab",
        )

    if "jersey_test_framework_core" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_test_framework_core",
            artifact = "org.glassfish.jersey.test-framework:jersey-test-framework-core:2.26",
            sha1 = "92698666ae89db58074001a34f09b8233ef5effa",
        )

    if "jersey_test_framework_jetty" not in native.existing_rules():
        native.maven_jar(
            name = "jersey_test_framework_jetty",
            artifact = "org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:2.26",
            sha1 = "6be06684283e7c90036d9e24f7793fd8bbb04f6a",
        )

    if "jetty_util" not in native.existing_rules():
        native.maven_jar(
            name = "jetty_util",
            artifact = "org.eclipse.jetty:jetty-util:9.2.21.v20170120",
            sha1 = "58d9c3a134dc6d6d84b555758015ab3585b88464",
        )

    if "jetty_websocket" not in native.existing_rules():
        native.maven_jar(
            name = "jetty_websocket",
            artifact = "org.eclipse.jetty:jetty-websocket:8.1.19.v20160209",
            sha1 = "a423ddda13e52a65d604320472af598ca7122a60",
        )

    if "jetty_server" not in native.existing_rules():
        native.maven_jar(
            name = "jetty_server",
            artifact = "org.eclipse.jetty:jetty-server:9.2.21.v20170120",
            sha1 = "bdf6a2d58f878652e4b8c3af913e9c56b995e87d",
        )

    if "jetty_continuation" not in native.existing_rules():
        native.maven_jar(
            name = "jetty_continuation",
            artifact = "org.eclipse.jetty:jetty-continuation:9.2.21.v20170120",
            sha1 = "38c35ef850d508aa0fae450eee72d784a5dd2d06",
        )

    if "jetty_http" not in native.existing_rules():
        native.maven_jar(
            name = "jetty_http",
            artifact = "org.eclipse.jetty:jetty-http:9.2.21.v20170120",
            sha1 = "24c5a91c48cfd73b863962ec36ba4dc2bb6552ea",
        )

    if "jetty_io" not in native.existing_rules():
        native.maven_jar(
            name = "jetty_io",
            artifact = "org.eclipse.jetty:jetty-io:9.2.21.v20170120",
            sha1 = "a25222b557823b59a7b6d121f951926be20cff85",
        )

    if "javax_servlet_api" not in native.existing_rules():
        native.maven_jar(
            name = "javax_servlet_api",
            artifact = "javax.servlet:javax.servlet-api:3.1.0",
            sha1 = "3cd63d075497751784b2fa84be59432f4905bf7c",
        )

    if "joda_time" not in native.existing_rules():
        native.maven_jar(
            name = "joda_time",
            artifact = "joda-time:joda-time:2.9.3",
            sha1 = "9e46be514a4ed60bcfbaaba88a3c668cf30476ab",
        )

    if "jsch" not in native.existing_rules():
        native.maven_jar(
            name = "jsch",
            artifact = "com.jcraft:jsch:0.1.53",
            sha1 = "658b682d5c817b27ae795637dfec047c63d29935",
        )

    if "com_google_code_findbugs_jsr305" not in native.existing_rules():
        native.maven_jar(
            name = "com_google_code_findbugs_jsr305",
            artifact = "com.google.code.findbugs:jsr305:3.0.1",
            sha1 = "f7be08ec23c21485b9b5a1cf1654c2ec8c58168d",
        )

    if "junit" not in native.existing_rules():
        native.maven_jar(
            name = "junit",
            artifact = "junit:junit:4.12",
            sha1 = "2973d150c0dc1fefe998f834810d68f278ea58ec",
        )

    if "junit_dep" not in native.existing_rules():
        native.maven_jar(
            name = "junit_dep",
            artifact = "junit:junit:4.10",
            sha1 = "e4f1766ce7404a08f45d859fb9c226fc9e41a861",
        )

    if "kryo" not in native.existing_rules():
        native.maven_jar(
            name = "kryo",
            artifact = "com.esotericsoftware:kryo:4.0.1",
            sha1 = "5053899c213a6ce50a800d4902c5a9de49fe0098",
        )

    if "mapdb" not in native.existing_rules():
        native.maven_jar(
            name = "mapdb",
            artifact = "org.mapdb:mapdb:1.0.9",
            sha1 = "f8df5e15778eb3e88c03b77aca70c318c6b7c9d0",
        )

    if "metrics_core" not in native.existing_rules():
        native.maven_jar(
            name = "metrics_core",
            artifact = "io.dropwizard.metrics:metrics-core:3.2.2",
            sha1 = "cd9886f498ee2ab2d994f0c779e5553b2c450416",
        )

    if "metrics_ganglia" not in native.existing_rules():
        native.maven_jar(
            name = "metrics_ganglia",
            artifact = "io.dropwizard.metrics:metrics-ganglia:3.2.2",
            sha1 = "d5bb1883e9b0daf0e4187e558746f5058f4585c1",
        )

    if "metrics_graphite" not in native.existing_rules():
        native.maven_jar(
            name = "metrics_graphite",
            artifact = "io.dropwizard.metrics:metrics-graphite:3.2.2",
            sha1 = "908e8cbec1bbdb2f4023334e424c7de2832a95af",
        )

    if "metrics_influxdb" not in native.existing_rules():
        native.maven_jar(
            name = "metrics_influxdb",
            artifact = "com.izettle:metrics-influxdb:1.1.1",
            sha1 = "a911d778c2f8607dd4e7a4cdb9b0cd97adcd0343",
        )

    if "metrics_json" not in native.existing_rules():
        native.maven_jar(
            name = "metrics_json",
            artifact = "io.dropwizard.metrics:metrics-json:3.2.2",
            sha1 = "234612b9739a651eb2b71a8f9e9c4d11d7ccf849",
        )

    if "minimal_json" not in native.existing_rules():
        native.maven_jar(
            name = "minimal_json",
            artifact = "com.eclipsesource.minimal-json:minimal-json:0.9.4",
            sha1 = "d6e7dd22569de97c2697a4af301a623f35028972",
        )

    if "minlog" not in native.existing_rules():
        native.maven_jar(
            name = "minlog",
            artifact = "com.esotericsoftware:minlog:1.3.0",
            sha1 = "ff07b5f1b01d2f92bb00a337f9a94873712f0827",
        )

    if "io_netty_netty" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty",
            artifact = "io.netty:netty:3.10.5.Final",
            sha1 = "9ca7d55d246092bddd29b867706e2f6c7db701a0",
        )

    if "io_netty_netty_buffer" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_buffer",
            artifact = "io.netty:netty-buffer:4.1.27.Final",
            sha1 = "aafe2b9fb0d8f3b200cf10b9fd6486c6a722d7a1",
        )

    if "io_netty_netty_codec" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_codec",
            artifact = "io.netty:netty-codec:4.1.27.Final",
            sha1 = "d2653d78ebaa650064768fb26b10051f5c8efb2c",
        )

    if "io_netty_netty_common" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_common",
            artifact = "io.netty:netty-common:4.1.27.Final",
            sha1 = "6a12a969c27fb37b230c4bde5a67bd822fa6b7a4",
        )

    if "io_netty_netty_handler" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_handler",
            artifact = "io.netty:netty-handler:4.1.27.Final",
            sha1 = "21bd9cf565390a8d72579b8664303e3c175dfc6a",
        )

    if "io_netty_netty_handler_proxy" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_handler_proxy",
            artifact = "io.netty:netty-handler-proxy:4.1.27.Final",
            sha1 = "1a822ce7760bc6eb4937b7e448c9e081fedcc807",
        )

    if "io_netty_netty_transport" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_transport",
            artifact = "io.netty:netty-transport:4.1.27.Final",
            sha1 = "b5c2da3ea89dd67320925f1504c9eb3615241b7c",
        )

    if "io_netty_netty_transport_native_unix_common" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_transport_native_unix_common",
            artifact = "io.netty:netty-transport-native-unix-common:4.1.27.Final",
            sha1 = "2b0667fe5c1df78c6cfbf9d53ad8b1fb533fb8e8",
        )

    if "io_netty_netty_transport_native_epoll" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_transport_native_epoll",
            artifact = "io.netty:netty-transport-native-epoll:4.1.27.Final",
            sha1 = "addbd481940a3cce57cb5736ecef5db909b7b5d0",
        )

    if "io_netty_netty_resolver" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_resolver",
            artifact = "io.netty:netty-resolver:4.1.27.Final",
            sha1 = "2536447ef9605ccb2b5203aa22392c6514484ea9",
        )

    if "io_netty_netty_codec_http2" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_codec_http2",
            artifact = "io.netty:netty-codec-http2:4.1.27.Final",
            sha1 = "3769790a2033667d663f9a526d5b63cfecdbdf4e",
        )

    if "io_netty_netty_codec_http" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_codec_http",
            artifact = "io.netty:netty-codec-http:4.1.27.Final",
            sha1 = "a1722d6bcbbef1c4c7877e8bf38b07a3db5ed07f",
        )

    if "io_netty_netty_codec_socks" not in native.existing_rules():
        native.maven_jar(
            name = "io_netty_netty_codec_socks",
            artifact = "io.netty:netty-codec-socks:4.1.27.Final",
            sha1 = "285b09af98764cf02e4b77b3d95af188469a7133",
        )

    if "objenesis" not in native.existing_rules():
        native.maven_jar(
            name = "objenesis",
            artifact = "org.objenesis:objenesis:2.6",
            sha1 = "639033469776fd37c08358c6b92a4761feb2af4b",
        )

    if "openflowj" not in native.existing_rules():
        native.maven_jar(
            name = "openflowj",
            artifact = "org.onosproject:openflowj:3.2.1.onos",
            sha1 = "66544b285cddc8d53485107310f07b7bc90ac63b",
        )

    if "org_apache_felix_framework_security" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_felix_framework_security",
            artifact = "org.onosproject:org.apache.felix.framework.security:2.2.0.onos",
            sha1 = "5d39a4ff4a5d3daec8c404789d398c780151de8c",
        )

    if "org_apache_felix_scr" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_felix_scr",
            artifact = "org.apache.felix:org.apache.felix.scr:1.8.2",
            sha1 = "c3047d56ee57de0752821fd9c3894dda664f2e37",
        )

    if "org_apache_felix_scr_annotations" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_felix_scr_annotations",
            artifact = "org.apache.felix:org.apache.felix.scr.annotations:1.9.12",
            sha1 = "5fdc34da641dda8b9165c2be93211479a186da9c",
        )

    if "org_apache_karaf_features_core" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_karaf_features_core",
            artifact = "org.apache.karaf.features:org.apache.karaf.features.core:3.0.8",
            sha1 = "4a8bf5dbe10e120158cb69295388274f834ae37a",
        )

    if "org_apache_karaf_shell_console" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_karaf_shell_console",
            artifact = "org.apache.karaf.shell:org.apache.karaf.shell.console:3.0.8",
            sha1 = "5bf3e409d2e73bef560face9740b8c1234909b83",
        )

    if "org_apache_httpcomponents_httpasyncclient_osgi" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_httpcomponents_httpasyncclient_osgi",
            artifact = "org.apache.httpcomponents:httpasyncclient-osgi:4.1.2",
            sha1 = "17eccd8d9f2803ee95e80ee8283155432600e17b",
        )

    if "org_apache_httpcomponents_httpcore_nio" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_httpcomponents_httpcore_nio",
            artifact = "org.apache.httpcomponents:httpcore-nio:4.4.4",
            sha1 = "16badfc2d99db264c486ba8c57ae577301a58bd9",
        )

    if "org_apache_karaf_jaas" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_karaf_jaas",
            artifact = "org.apache.karaf.jaas:org.apache.karaf.jaas.modules:3.0.8",
            sha1 = "e4c97dac488898af1dda2b2cbf5b66318339cd29",
        )

    if "org_apache_karaf_system_core" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_karaf_system_core",
            artifact = "org.apache.karaf.system:org.apache.karaf.system.core:3.0.8",
            sha1 = "80378de4aeae603889d3408489ff5b9918e6064c",
        )

    if "org_apache_servicemix_bundles_snmp4j" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_servicemix_bundles_snmp4j",
            artifact = "org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:2.3.4_1",
            sha1 = "5134e0b60a6d88b26fe4dec03488efe4f2463e65",
        )

    if "org_osgi_compendium" not in native.existing_rules():
        native.maven_jar(
            name = "org_osgi_compendium",
            artifact = "org.osgi:org.osgi.compendium:5.0.0",
            sha1 = "9d7a9c35591f6fa1c98ac85af32775c12361aee4",
        )

    if "osgi_core" not in native.existing_rules():
        native.maven_jar(
            name = "osgi_core",
            artifact = "org.osgi:org.osgi.core:5.0.0",
            sha1 = "6e5e8cd3c9059c08e1085540442a490b59a7783c",
        )

    if "reflectasm" not in native.existing_rules():
        native.maven_jar(
            name = "reflectasm",
            artifact = "com.esotericsoftware:reflectasm:1.11.0",
            sha1 = "f747d8b017a26bac575f8da14e8c1df6aecd3154",
        )

    if "remotetea_oncrpc" not in native.existing_rules():
        native.maven_jar(
            name = "remotetea_oncrpc",
            artifact = "org.acplt.remotetea:remotetea-oncrpc:1.1.3",
            sha1 = "2f7d94c5179b0267a882259a03a83eaa320cbcce",
        )

    if "rrd4j" not in native.existing_rules():
        native.maven_jar(
            name = "rrd4j",
            artifact = "org.rrd4j:rrd4j:3.1",
            sha1 = "e533553fbf52f241dcb0c468b2052a3814dd6722",
        )

    if "javassist" not in native.existing_rules():
        native.maven_jar(
            name = "javassist",
            artifact = "org.javassist:javassist:3.22.0-GA",
            sha1 = "3e83394258ae2089be7219b971ec21a8288528ad",
        )

    if "mimepull" not in native.existing_rules():
        native.maven_jar(
            name = "mimepull",
            artifact = "org.jvnet.mimepull:mimepull:1.9.6",
            sha1 = "41c913d791e16f93bc712a8c8a30bb64daa2e9bd",
        )

    if "servlet_api" not in native.existing_rules():
        native.maven_jar(
            name = "servlet_api",
            artifact = "javax.servlet:servlet-api:2.5",
            sha1 = "5959582d97d8b61f4d154ca9e495aafd16726e34",
        )

    if "slf4j_api" not in native.existing_rules():
        native.maven_jar(
            name = "slf4j_api",
            artifact = "org.slf4j:slf4j-api:1.7.25",
            sha1 = "da76ca59f6a57ee3102f8f9bd9cee742973efa8a",
        )

    if "slf4j_jdk14" not in native.existing_rules():
        native.maven_jar(
            name = "slf4j_jdk14",
            artifact = "org.slf4j:slf4j-jdk14:1.7.25",
            sha1 = "bccda40ebc8067491b32a88f49615a747d20082d",
        )

    if "slf4j_nop" not in native.existing_rules():
        native.maven_jar(
            name = "slf4j_nop",
            artifact = "org.slf4j:slf4j-nop:1.7.25",
            sha1 = "8c7708c79afec923de8957b7d4f90177628b9fcd",
        )

    if "typesafe_config" not in native.existing_rules():
        native.maven_jar(
            name = "typesafe_config",
            artifact = "com.typesafe:config:1.3.2",
            sha1 = "d6ac0ce079f114adce620f2360c92a70b2cb36dc",
        )

    if "validation_api" not in native.existing_rules():
        native.maven_jar(
            name = "validation_api",
            artifact = "javax.validation:validation-api:1.1.0.Final",
            sha1 = "8613ae82954779d518631e05daa73a6a954817d5",
        )

    if "checkstyle" not in native.existing_rules():
        native.maven_jar(
            name = "checkstyle",
            artifact = "com.puppycrawl.tools:checkstyle:8.10",
            sha1 = "d7cd09c4d1240b3acc3041fcb47fd74ae351698b",
        )

    if "apache_karaf" not in native.existing_rules():
        native.http_file(
            name = "apache_karaf",
            url = "http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/3.0.8/apache-karaf-offline-3.0.8.tar.gz",
            sha256 = "2f20bb25ded39f1e9e4148bb840473c89249bbb592106f5451b5a829a5ec8603",
        )

    if "apache_karaf_patches" not in native.existing_rules():
        native.http_file(
            name = "apache_karaf_patches",
            url = "http://repo1.maven.org/maven2/org/onosproject/onos-apache-karaf-patches/3.0.8/onos-apache-karaf-patches-3.0.8.tar.gz",
            sha256 = "1f9e3e8a53a462f776a931fe851819a43dfe7728b31fbde339b98d04908e702b",
        )

    if "bndlib" not in native.existing_rules():
        native.maven_jar(
            name = "bndlib",
            artifact = "biz.aQute.bnd:biz.aQute.bndlib:3.1.0",
            sha1 = "8e45564ca80bf089276a35f916e8702e7b798cbb",
        )

    if "bndexe" not in native.existing_rules():
        native.maven_jar(
            name = "bndexe",
            artifact = "biz.aQute.bnd:biz.aQute.bnd:3.1.0",
            sha1 = "ebd6c2af025b66ea94a9fcb217c2699ba23d3ca2",
        )

    if "libthrift" not in native.existing_rules():
        native.maven_jar(
            name = "libthrift",
            artifact = "org.apache.thrift:libthrift:0.9.3",
            sha1 = "8625e8f9b6f49b881fa5fd143172c2833df1ce47",
        )

    if "qdox" not in native.existing_rules():
        native.maven_jar(
            name = "qdox",
            artifact = "com.thoughtworks.qdox:qdox:2.0-M3",
            sha1 = "f1e9ac82735dc3f2afc38cc051ae0e405f367434",
        )

    if "org_apache_felix_scr_bnd" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_felix_scr_bnd",
            artifact = "org.onosproject:org.apache.felix.scr.bnd:1.4.1-SNAPSHOT",
            sha1 = "607cac6eaba5b0eb0787a343b83fe535c42c09aa",
            repository = "https://oss.sonatype.org/content/repositories/snapshots/",
        )

    if "snmp_core" not in native.existing_rules():
        native.maven_jar(
            name = "snmp_core",
            artifact = "org.onosproject:snmp-core:1.3-20161021.1",
            sha1 = "65e1b71d9d0e2fc60c45f631decdb41da3253778",
        )

    if "mibs_net_snmp" not in native.existing_rules():
        native.maven_jar(
            name = "mibs_net_snmp",
            artifact = "org.onosproject:mibbler-mibs-net-snmp:1.0-20151221.1",
            sha1 = "d2cb918e46f06d4ee764d4a96b2b6fb0ba9bc60c",
        )

    if "mibs_rfc" not in native.existing_rules():
        native.maven_jar(
            name = "mibs_rfc",
            artifact = "org.onosproject:mibbler-mibs-rfc:1.0-20151221.1",
            sha1 = "06ac2a3bf48c79ab444a9deede9d554ccd355a16",
        )

    if "io_socket_client" not in native.existing_rules():
        native.maven_jar(
            name = "io_socket_client",
            artifact = "io.socket:socket.io-client:0.8.3",
            sha1 = "b30500232ff0668a47c9f91f02e6935457a52fb5",
        )

    if "json" not in native.existing_rules():
        native.maven_jar(
            name = "json",
            artifact = "org.json:json:20090211",
            sha1 = "c183aa3a2a6250293808bba12262c8920ce5a51c",
        )

    if "engine_io_client" not in native.existing_rules():
        native.maven_jar(
            name = "engine_io_client",
            artifact = "io.socket:engine.io-client:0.8.3",
            sha1 = "854b49396e1e9f9bb0ab025062ddb49c4ed65ca1",
        )

    if "com_google_api_grpc_proto_google_common_protos" not in native.existing_rules():
        native.maven_jar(
            name = "com_google_api_grpc_proto_google_common_protos",
            artifact = "com.google.api.grpc:proto-google-common-protos:1.0.0",
            sha1 = "86f070507e28b930e50d218ee5b6788ef0dd05e6",
        )

    if "com_google_errorprone_error_prone_annotations" not in native.existing_rules():
        native.maven_jar(
            name = "com_google_errorprone_error_prone_annotations",
            artifact = "com.google.errorprone:error_prone_annotations:2.1.2",
            sha1 = "6dcc08f90f678ac33e5ef78c3c752b6f59e63e0c",
        )

    if "com_google_auth_google_auth_library_credentials" not in native.existing_rules():
        native.maven_jar(
            name = "com_google_auth_google_auth_library_credentials",
            artifact = "com.google.auth:google-auth-library-credentials:0.9.0",
            sha1 = "8e2b181feff6005c9cbc6f5c1c1e2d3ec9138d46",
        )

    if "io_opencensus_opencensus_api" not in native.existing_rules():
        native.maven_jar(
            name = "io_opencensus_opencensus_api",
            artifact = "io.opencensus:opencensus-api:0.12.3",
            sha1 = "743f074095f29aa985517299545e72cc99c87de0",
        )

    if "io_opencensus_opencensus_contrib_grpc_metrics" not in native.existing_rules():
        native.maven_jar(
            name = "io_opencensus_opencensus_contrib_grpc_metrics",
            artifact = "io.opencensus:opencensus-contrib-grpc-metrics:0.12.3",
            sha1 = "a4c7ff238a91b901c8b459889b6d0d7a9d889b4d",
        )

    if "openstack4j_core" not in native.existing_rules():
        native.maven_jar(
            name = "openstack4j_core",
            artifact = "org.pacesys:openstack4j-core:3.1.0",
            sha1 = "634c2ad6728bb6e4cd91c950dd654aacb6f107a6",
        )

    if "openstack4j_http_connector" not in native.existing_rules():
        native.maven_jar(
            name = "openstack4j_http_connector",
            artifact = "org.pacesys.openstack4j.connectors:openstack4j-http-connector:3.1.0",
            sha1 = "5bbd558313f13daac819bbbe56ae8432e64409d9",
        )

    if "openstack4j_httpclient" not in native.existing_rules():
        native.maven_jar(
            name = "openstack4j_httpclient",
            artifact = "org.pacesys.openstack4j.connectors:openstack4j-httpclient:3.1.0",
            sha1 = "acb413e27cc43f4bbcee99300befffcf667de579",
        )

    if "json_patch" not in native.existing_rules():
        native.maven_jar(
            name = "json_patch",
            artifact = "com.github.fge:json-patch:1.9",
            sha1 = "0a4c3c97a0f5965dec15795acf40d3fbc897af4b",
        )

    if "jackson_coreutils" not in native.existing_rules():
        native.maven_jar(
            name = "jackson_coreutils",
            artifact = "com.github.fge:jackson-coreutils:1.6",
            sha1 = "9e6af56eb7cc2a65700b289abc7ee2bd170fd231",
        )

    if "btf" not in native.existing_rules():
        native.maven_jar(
            name = "btf",
            artifact = "com.github.fge:btf:1.2",
            sha1 = "9e66651022eb86301b348d57e6f59459effc343b",
        )

    if "msg_simple" not in native.existing_rules():
        native.maven_jar(
            name = "msg_simple",
            artifact = "com.github.fge:msg-simple:1.1",
            sha1 = "f261263e13dd4cfa93cc6b83f1f58f619097a2c4",
        )

    if "snakeyaml" not in native.existing_rules():
        native.maven_jar(
            name = "snakeyaml",
            artifact = "org.yaml:snakeyaml:1.15",
            sha1 = "3b132bea69e8ee099f416044970997bde80f4ea6",
        )

    if "onos_yang_model" not in native.existing_rules():
        native.maven_jar(
            name = "onos_yang_model",
            artifact = "org.onosproject:onos-yang-model:2.5",
            sha1 = "61339921f42354e499e550c15283e4aa75a03ef7",
        )

    if "onos_yang_compiler_api" not in native.existing_rules():
        native.maven_jar(
            name = "onos_yang_compiler_api",
            artifact = "org.onosproject:onos-yang-compiler-api:2.5",
            sha1 = "c504df941d1a1b49e4dd8045c935120f3483504e",
        )

    if "onos_yang_compiler_main" not in native.existing_rules():
        native.maven_jar(
            name = "onos_yang_compiler_main",
            artifact = "org.onosproject:onos-yang-compiler-main:2.5",
            sha1 = "8048db59dab2c813cfbc3f7c176eb12b1c8b2548",
        )

    if "onos_yang_runtime" not in native.existing_rules():
        native.maven_jar(
            name = "onos_yang_runtime",
            artifact = "org.onosproject:onos-yang-runtime:2.5",
            sha1 = "9d621709f34fd7da4d1954d868ac0eddeba725d2",
        )

    if "onos_yang_serializers_json" not in native.existing_rules():
        native.maven_jar(
            name = "onos_yang_serializers_json",
            artifact = "org.onosproject:onos-yang-serializers-json:2.5",
            sha1 = "cf442f226b9423c22eb5ec9409e99fe3a0f63a37",
        )

    if "onos_yang_serializers_xml" not in native.existing_rules():
        native.maven_jar(
            name = "onos_yang_serializers_xml",
            artifact = "org.onosproject:onos-yang-serializers-xml:2.5",
            sha1 = "7f7231237da9571f79700d2ee0a218cd6253409c",
        )

    if "onos_yang_serializers_utils" not in native.existing_rules():
        native.maven_jar(
            name = "onos_yang_serializers_utils",
            artifact = "org.onosproject:onos-yang-serializers-utils:2.5",
            sha1 = "13f804292e42635fcf28bbadffca8bb72c00b327",
        )

    if "org_apache_servicemix_bundles_dom4j" not in native.existing_rules():
        native.maven_jar(
            name = "org_apache_servicemix_bundles_dom4j",
            artifact = "org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j:1.6.1_5",
            sha1 = "f5da21ae9508008f7b28001983adc143cb310ad7",
        )

    if "plexus_utils" not in native.existing_rules():
        native.maven_jar(
            name = "plexus_utils",
            artifact = "org.codehaus.plexus:plexus-utils:3.0.24",
            sha1 = "b4ac9780b37cb1b736eae9fbcef27609b7c911ef",
        )

    if "sshd_core" not in native.existing_rules():
        native.maven_jar(
            name = "sshd_core",
            artifact = "org.apache.sshd:sshd-core:1.4.0",
            sha1 = "c8f3d7457fc9979d1b9ec319f0229b89793c8e56",
        )

    if "bcpkix_jdk15on" not in native.existing_rules():
        native.maven_jar(
            name = "bcpkix_jdk15on",
            artifact = "org.bouncycastle:bcpkix-jdk15on:1.59",
            sha1 = "9cef0aab8a4bb849a8476c058ce3ff302aba3fff",
        )

    if "bcprov_jdk15on" not in native.existing_rules():
        native.maven_jar(
            name = "bcprov_jdk15on",
            artifact = "org.bouncycastle:bcprov-jdk15on:1.59",
            sha1 = "2507204241ab450456bdb8e8c0a8f986e418bd99",
        )

    if "hamcrest_optional" not in native.existing_rules():
        native.maven_jar(
            name = "hamcrest_optional",
            artifact = "com.spotify:hamcrest-optional:1.1.0",
            sha1 = "c2dfe3a43794b15fb4c28de0027fe6e249855b3b",
        )

    if "swagger_annotations" not in native.existing_rules():
        native.maven_jar(
            name = "swagger_annotations",
            artifact = "io.swagger:swagger-annotations:1.5.16",
            sha1 = "935f1f2fed2cbdd7a0513981d6c53201e21155f4",
        )

    if "kafka_clients" not in native.existing_rules():
        native.maven_jar(
            name = "kafka_clients",
            artifact = "org.apache.servicemix.bundles:org.apache.servicemix.bundles.kafka-clients:0.8.2.2_1",
            sha1 = "19ba66200cc3617fad12843788dff818b9882008",
        )

    if "tinder_xmpp" not in native.existing_rules():
        native.maven_jar(
            name = "tinder_xmpp",
            artifact = "org.igniterealtime:tinder:1.3.0",
            sha1 = "46353ded2a1d1a87d17600206d61814eb0b8a711",
        )

    if "aalto_xml" not in native.existing_rules():
        native.maven_jar(
            name = "aalto_xml",
            artifact = "com.fasterxml:aalto-xml:1.0.0",
            sha1 = "aeae9e8a71914e7f5efc8a69d2f5cb1f2224f2c6",
        )

    if "stax2_api" not in native.existing_rules():
        native.maven_jar(
            name = "stax2_api",
            artifact = "org.codehaus.woodstox:stax2-api:4.0.0",
            sha1 = "6fa8b05f7587a3cb819d223ee0b0de0c126e3dd1",
        )

    if "concurrent_hashmap" not in native.existing_rules():
        native.maven_jar(
            name = "concurrent_hashmap",
            artifact = "com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.0",
            sha1 = "db7b7a28b835db4717d4aaf31f5d4441887a6d46",
        )

    if "gnu_idn" not in native.existing_rules():
        native.maven_jar(
            name = "gnu_idn",
            artifact = "org.gnu.inet:libidn:1.15",
            sha1 = "b5bede3c1c031a827b604da31768ddaf833495c6",
        )

    if "sigar" not in native.existing_rules():
        native.maven_jar(
            name = "sigar",
            artifact = "org.knowhowlab.osgi:sigar:1.6.5_01",
            sha1 = "58eb4af0dc4a1d331cd7620767216494e2984dea",
        )

    if "runtime_grpc_core" not in native.existing_rules():
        native.maven_jar(
            name = "runtime_grpc_core",
            artifact = "io.grpc:grpc-core:1.14.0",
            sha1 = "526e5be291c96e248789d769c108a084febda07f",
        )

    if "runtime_grpc_context" not in native.existing_rules():
        native.maven_jar(
            name = "runtime_grpc_context",
            artifact = "io.grpc:grpc-context:1.14.0",
            sha1 = "77252b5f926875891aaae5629e6ab2ef968cd6c6",
        )

    if "runtime_grpc_stub" not in native.existing_rules():
        native.maven_jar(
            name = "runtime_grpc_stub",
            artifact = "io.grpc:grpc-stub:1.14.0",
            sha1 = "74bfe83c0dc69bf903fff8df3568cbeb8b387d35",
        )

    if "runtime_grpc_netty" not in native.existing_rules():
        native.maven_jar(
            name = "runtime_grpc_netty",
            artifact = "io.grpc:grpc-netty:1.14.0",
            sha1 = "21c6edadd45b6869384f8aa0df1663d62c503617",
        )

    if "runtime_grpc_auth" not in native.existing_rules():
        native.maven_jar(
            name = "runtime_grpc_auth",
            artifact = "io.grpc:grpc-auth:1.14.0",
            sha1 = "3b88d51b52da96d574f4dfd50ad6d2bc8904a858",
        )

    if "runtime_grpc_protobuf" not in native.existing_rules():
        native.maven_jar(
            name = "runtime_grpc_protobuf",
            artifact = "io.grpc:grpc-protobuf:1.14.0",
            sha1 = "d429fdc2e0d288b34ea7588bb762eb458f385bd5",
        )

    if "runtime_grpc_protobuf_lite" not in native.existing_rules():
        native.maven_jar(
            name = "runtime_grpc_protobuf_lite",
            artifact = "io.grpc:grpc-protobuf-lite:1.14.0",
            sha1 = "2ac8c28ca927f954eaa228a931d9c163cf3d860f",
        )

    if "runtime_protobuf" not in native.existing_rules():
        native.maven_jar(
            name = "runtime_protobuf",
            artifact = "com.google.protobuf:protobuf-java:3.6.1",
            sha1 = "0d06d46ecfd92ec6d0f3b423b4cd81cb38d8b924",
        )

    if "grpc_core_1_3_1" not in native.existing_rules():
        native.maven_jar(
            name = "grpc_core_1_3_1",
            artifact = "io.grpc:grpc-core:1.3.1",
            sha1 = "a9b38b4a19af3ef208f4f6bf7871876d959c5eb1",
        )

    if "grpc_protobuf_1_3_1" not in native.existing_rules():
        native.maven_jar(
            name = "grpc_protobuf_1_3_1",
            artifact = "io.grpc:grpc-protobuf:1.3.1",
            sha1 = "9562e977cacd6e128a31686c3e6948d61873c496",
        )

    if "grpc_protobuf_lite_1_3_1" not in native.existing_rules():
        native.maven_jar(
            name = "grpc_protobuf_lite_1_3_1",
            artifact = "io.grpc:grpc-protobuf-lite:1.3.1",
            sha1 = "98d1d3d100fdcf92c4331999a504a1a72a5f6e52",
        )

    if "grpc_stub_1_3_1" not in native.existing_rules():
        native.maven_jar(
            name = "grpc_stub_1_3_1",
            artifact = "io.grpc:grpc-stub:1.3.1",
            sha1 = "60bdfa9d8c664a9d87ae461106eff6eed8da6c54",
        )

    if "grpc_netty_1_3_1" not in native.existing_rules():
        native.maven_jar(
            name = "grpc_netty_1_3_1",
            artifact = "io.grpc:grpc-netty:1.3.1",
            sha1 = "cc3831fccb76cfe21445f75cc055b5ffd979dc54",
        )

    if "grpc_auth_1_3_1" not in native.existing_rules():
        native.maven_jar(
            name = "grpc_auth_1_3_1",
            artifact = "io.grpc:grpc-auth:1.3.1",
            sha1 = "57a0e0b9e474842801521fae76f955dd28ad3ae0",
        )

    if "protobuf_java_3_3_0" not in native.existing_rules():
        native.maven_jar(
            name = "protobuf_java_3_3_0",
            artifact = "com.google.protobuf:protobuf-java:3.3.0",
            sha1 = "9f301d1a27501b1afcb2ed16aad428337dabf9e4",
        )

    if "protobuf_java_3_2_0" not in native.existing_rules():
        native.maven_jar(
            name = "protobuf_java_3_2_0",
            artifact = "com.google.protobuf:protobuf-java:3.2.0",
            sha1 = "62ccf171a106ff6791507f2d5364c275f9a3131d",
        )

    if "grpc_testing_1_3_1" not in native.existing_rules():
        native.maven_jar(
            name = "grpc_testing_1_3_1",
            artifact = "io.grpc:grpc-testing:1.3.1",
            sha1 = "fd6c4081cd3415684a0b655327e210aa10153eec",
        )

    if "grpc_testing_proto_1_3_1" not in native.existing_rules():
        native.maven_jar(
            name = "grpc_testing_proto_1_3_1",
            artifact = "io.grpc:grpc-testing-proto:1.3.1",
            sha1 = "170f0406457b44695562ccd5ec8d0da9cb762643",
        )

    if "grpc_context_1_3_1" not in native.existing_rules():
        native.maven_jar(
            name = "grpc_context_1_3_1",
            artifact = "io.grpc:grpc-context:1.3.1",
            sha1 = "28accd419b18d59055b8999f78f5cb7767c7bde8",
        )

    if "google_truth_0_28" not in native.existing_rules():
        native.maven_jar(
            name = "google_truth_0_28",
            artifact = "com.google.truth:truth:0.28",
            sha1 = "0a388c7877c845ff4b8e19689dda5ac9d34622c4",
        )

    if "google_code_findbugs_3_0_0" not in native.existing_rules():
        native.maven_jar(
            name = "google_code_findbugs_3_0_0",
            artifact = "com.google.code.findbugs:jsr305:3.0.0",
            sha1 = "5871fb60dc68d67da54a663c3fd636a10a532948",
        )

    if "google_errorprone_2_0_19" not in native.existing_rules():
        native.maven_jar(
            name = "google_errorprone_2_0_19",
            artifact = "com.google.errorprone:error_prone_annotations:2.0.19",
            sha1 = "c3754a0bdd545b00ddc26884f9e7624f8b6a14de",
        )

    if "google_instrumentation_0_3_0" not in native.existing_rules():
        native.maven_jar(
            name = "google_instrumentation_0_3_0",
            artifact = "com.google.instrumentation:instrumentation-api:0.3.0",
            sha1 = "a2e145e7a7567c6372738f5c5a6f3ba6407ac354",
        )

artifact_map = {}
artifact_map["@aopalliance_repackaged//jar"] = "mvn:org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b42"
artifact_map["@amqp_client//jar"] = "mvn:com.rabbitmq:amqp-client:jar:3.6.1"
artifact_map["@asm//jar"] = "mvn:org.ow2.asm:asm:jar:5.0.4"
artifact_map["@atomix//jar"] = "mvn:io.atomix:atomix:jar:3.0.5"
artifact_map["@atomix_cluster//jar"] = "mvn:io.atomix:atomix-cluster:jar:3.0.5"
artifact_map["@atomix_gossip//jar"] = "mvn:io.atomix:atomix-gossip:jar:3.0.5"
artifact_map["@atomix_primary_backup//jar"] = "mvn:io.atomix:atomix-primary-backup:jar:3.0.5"
artifact_map["@atomix_primitive//jar"] = "mvn:io.atomix:atomix-primitive:jar:3.0.5"
artifact_map["@atomix_raft//jar"] = "mvn:io.atomix:atomix-raft:jar:3.0.5"
artifact_map["@atomix_storage//jar"] = "mvn:io.atomix:atomix-storage:jar:3.0.5"
artifact_map["@atomix_utils//jar"] = "mvn:io.atomix:atomix-utils:jar:3.0.5"
artifact_map["@classgraph//jar"] = "mvn:io.github.classgraph:classgraph:jar:4.0.6"
artifact_map["@commons_codec//jar"] = "mvn:commons-codec:commons-codec:jar:1.10"
artifact_map["@commons_cli//jar"] = "mvn:commons-cli:commons-cli:jar:1.3"
artifact_map["@commons_collections//jar"] = "mvn:commons-collections:commons-collections:jar:3.2.2"
artifact_map["@commons_configuration//jar"] = "mvn:commons-configuration:commons-configuration:jar:1.10"
artifact_map["@commons_io//jar"] = "mvn:commons-io:commons-io:jar:2.6"
artifact_map["@commons_jxpath//jar"] = "mvn:commons-jxpath:commons-jxpath:jar:1.3"
artifact_map["@commons_beanutils//jar"] = "mvn:commons-beanutils:commons-beanutils:jar:1.9.3"
artifact_map["@fast_classpath_scanner//jar"] = "mvn:io.github.lukehutch:fast-classpath-scanner:jar:2.21"
artifact_map["@jdom//jar"] = "mvn:jdom:jdom:jar:NON-OSGI:1.0"
artifact_map["@commons_lang//jar"] = "mvn:commons-lang:commons-lang:jar:2.6"
artifact_map["@commons_lang3//jar"] = "mvn:org.apache.commons:commons-lang3:jar:3.7"
artifact_map["@commons_logging//jar"] = "mvn:commons-logging:commons-logging:jar:1.2"
artifact_map["@commons_math3//jar"] = "mvn:org.apache.commons:commons-math3:jar:3.6.1"
artifact_map["@commons_net//jar"] = "mvn:commons-net:commons-net:jar:3.5"
artifact_map["@commons_pool//jar"] = "mvn:commons-pool:commons-pool:jar:1.6"
artifact_map["@commons_text//jar"] = "mvn:org.apache.commons:commons-text:jar:1.3"
artifact_map["@concurrent_trees//jar"] = "mvn:com.googlecode.concurrent-trees:concurrent-trees:jar:2.6.1"
artifact_map["@easymock//jar"] = "mvn:org.easymock:easymock:jar:3.6"
artifact_map["@antlr//jar"] = "mvn:antlr:antlr:jar:NON-OSGI:2.7.7"
artifact_map["@ganymed_ssh2//jar"] = "mvn:ch.ethz.ganymed:ganymed-ssh2:jar:NON-OSGI:262"
artifact_map["@gmetric4j//jar"] = "mvn:info.ganglia.gmetric4j:gmetric4j:jar:1.0.10"
artifact_map["@com_google_code_gson_gson//jar"] = "mvn:com.google.code.gson:gson:jar:2.7"
artifact_map["@com_google_guava_guava//jar"] = "mvn:com.google.guava:guava:jar:22.0"
artifact_map["@com_google_guava_guava_testlib//jar"] = "mvn:com.google.guava:guava-testlib:jar:NON-OSGI:22.0"
artifact_map["@hamcrest_all//jar"] = "mvn:org.hamcrest:hamcrest-all:jar:NON-OSGI:1.3"
artifact_map["@hk2_api//jar"] = "mvn:org.glassfish.hk2:hk2-api:jar:2.5.0-b42"
artifact_map["@hk2_locator//jar"] = "mvn:org.glassfish.hk2:hk2-locator:jar:2.5.0-b42"
artifact_map["@hk2_osgi_resource_locator//jar"] = "mvn:org.glassfish.hk2:osgi-resource-locator:jar:1.0.1"
artifact_map["@hk2_utils//jar"] = "mvn:org.glassfish.hk2:hk2-utils:jar:2.5.0-b42"
artifact_map["@httpclient_osgi//jar"] = "mvn:org.apache.httpcomponents:httpclient-osgi:jar:4.5.1"
artifact_map["@httpcore_osgi//jar"] = "mvn:org.apache.httpcomponents:httpcore-osgi:jar:4.4.4"
artifact_map["@influxdb_java//jar"] = "mvn:org.influxdb:influxdb-java:jar:NON-OSGI:2.9"
artifact_map["@retrofit//jar"] = "mvn:com.squareup.retrofit2:retrofit:jar:NON-OSGI:2.3.0"
artifact_map["@converter_moshi//jar"] = "mvn:com.squareup.retrofit2:converter-moshi:jar:NON-OSGI:2.3.0"
artifact_map["@okhttp//jar"] = "mvn:com.squareup.okhttp3:okhttp:jar:NON-OSGI:3.9.1"
artifact_map["@logging_interceptor//jar"] = "mvn:com.squareup.okhttp3:logging-interceptor:jar:NON-OSGI:3.9.1"
artifact_map["@moshi//jar"] = "mvn:com.squareup.moshi:moshi:jar:NON-OSGI:1.4.0"
artifact_map["@okio//jar"] = "mvn:com.squareup.okio:okio:jar:NON-OSGI:1.14.0"
artifact_map["@jackson_annotations//jar"] = "mvn:com.fasterxml.jackson.core:jackson-annotations:jar:2.9.5"
artifact_map["@jackson_core//jar"] = "mvn:com.fasterxml.jackson.core:jackson-core:jar:2.9.5"
artifact_map["@jackson_databind//jar"] = "mvn:com.fasterxml.jackson.core:jackson-databind:jar:2.9.5"
artifact_map["@javax_annotation_api_mvn//jar"] = "mvn:javax.annotation:javax.annotation-api:jar:1.2"
artifact_map["@javax_inject//jar"] = "mvn:org.glassfish.hk2.external:javax.inject:jar:2.5.0-b42"
artifact_map["@javax_ws_rs_api//jar"] = "mvn:javax.ws.rs:javax.ws.rs-api:jar:2.1"
artifact_map["@jersey_client//jar"] = "mvn:org.glassfish.jersey.core:jersey-client:jar:2.26"
artifact_map["@jersey_security//jar"] = "mvn:org.glassfish.jersey.security:oauth2-client:jar:NON-OSGI:2.26"
artifact_map["@jersey_common//jar"] = "mvn:org.glassfish.jersey.core:jersey-common:jar:2.26"
artifact_map["@jersey_container_jetty_http//jar"] = "mvn:org.glassfish.jersey.containers:jersey-container-jetty-http:jar:2.26"
artifact_map["@jersey_container_servlet//jar"] = "mvn:org.glassfish.jersey.containers:jersey-container-servlet:jar:2.26"
artifact_map["@jersey_container_servlet_core//jar"] = "mvn:org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.26"
artifact_map["@jersey_media_multipart//jar"] = "mvn:org.glassfish.jersey.media:jersey-media-multipart:jar:2.26"
artifact_map["@jersey_media_sse//jar"] = "mvn:org.glassfish.jersey.media:jersey-media-sse:jar:2.26"
artifact_map["@jersey_server//jar"] = "mvn:org.glassfish.jersey.core:jersey-server:jar:2.26"
artifact_map["@jersey_hk2//jar"] = "mvn:org.glassfish.jersey.inject:jersey-hk2:jar:2.26"
artifact_map["@jersey_test_framework_core//jar"] = "mvn:org.glassfish.jersey.test-framework:jersey-test-framework-core:jar:NON-OSGI:2.26"
artifact_map["@jersey_test_framework_jetty//jar"] = "mvn:org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:jar:NON-OSGI:2.26"
artifact_map["@jetty_util//jar"] = "mvn:org.eclipse.jetty:jetty-util:jar:9.2.21.v20170120"
artifact_map["@jetty_websocket//jar"] = "mvn:org.eclipse.jetty:jetty-websocket:jar:8.1.19.v20160209"
artifact_map["@jetty_server//jar"] = "mvn:org.eclipse.jetty:jetty-server:jar:9.2.21.v20170120"
artifact_map["@jetty_continuation//jar"] = "mvn:org.eclipse.jetty:jetty-continuation:jar:9.2.21.v20170120"
artifact_map["@jetty_http//jar"] = "mvn:org.eclipse.jetty:jetty-http:jar:9.2.21.v20170120"
artifact_map["@jetty_io//jar"] = "mvn:org.eclipse.jetty:jetty-io:jar:9.2.21.v20170120"
artifact_map["@javax_servlet_api//jar"] = "mvn:javax.servlet:javax.servlet-api:jar:3.1.0"
artifact_map["@joda_time//jar"] = "mvn:joda-time:joda-time:jar:2.9.3"
artifact_map["@jsch//jar"] = "mvn:com.jcraft:jsch:jar:NON-OSGI:0.1.53"
artifact_map["@com_google_code_findbugs_jsr305//jar"] = "mvn:com.google.code.findbugs:jsr305:jar:3.0.1"
artifact_map["@junit//jar"] = "mvn:junit:junit:jar:NON-OSGI:4.12"
artifact_map["@junit_dep//jar"] = "mvn:junit:junit:jar:NON-OSGI:4.10"
artifact_map["@kryo//jar"] = "mvn:com.esotericsoftware:kryo:jar:4.0.1"
artifact_map["@mapdb//jar"] = "mvn:org.mapdb:mapdb:jar:1.0.9"
artifact_map["@metrics_core//jar"] = "mvn:io.dropwizard.metrics:metrics-core:jar:3.2.2"
artifact_map["@metrics_ganglia//jar"] = "mvn:io.dropwizard.metrics:metrics-ganglia:jar:3.2.2"
artifact_map["@metrics_graphite//jar"] = "mvn:io.dropwizard.metrics:metrics-graphite:jar:3.2.2"
artifact_map["@metrics_influxdb//jar"] = "mvn:com.izettle:metrics-influxdb:jar:NON-OSGI:1.1.1"
artifact_map["@metrics_json//jar"] = "mvn:io.dropwizard.metrics:metrics-json:jar:3.2.2"
artifact_map["@minimal_json//jar"] = "mvn:com.eclipsesource.minimal-json:minimal-json:jar:0.9.4"
artifact_map["@minlog//jar"] = "mvn:com.esotericsoftware:minlog:jar:1.3.0"
artifact_map["@io_netty_netty//jar"] = "mvn:io.netty:netty:jar:3.10.5.Final"
artifact_map["@io_netty_netty_buffer//jar"] = "mvn:io.netty:netty-buffer:jar:4.1.27.Final"
artifact_map["@io_netty_netty_codec//jar"] = "mvn:io.netty:netty-codec:jar:4.1.27.Final"
artifact_map["@io_netty_netty_common//jar"] = "mvn:io.netty:netty-common:jar:4.1.27.Final"
artifact_map["@io_netty_netty_handler//jar"] = "mvn:io.netty:netty-handler:jar:4.1.27.Final"
artifact_map["@io_netty_netty_handler_proxy//jar"] = "mvn:io.netty:netty-handler-proxy:jar:4.1.27.Final"
artifact_map["@io_netty_netty_transport//jar"] = "mvn:io.netty:netty-transport:jar:4.1.27.Final"
artifact_map["@io_netty_netty_transport_native_unix_common//jar"] = "mvn:io.netty:netty-transport-native-unix-common:jar:4.1.27.Final"
artifact_map["@io_netty_netty_transport_native_epoll//jar"] = "mvn:io.netty:netty-transport-native-epoll:jar:4.1.27.Final"
artifact_map["@io_netty_netty_resolver//jar"] = "mvn:io.netty:netty-resolver:jar:4.1.27.Final"
artifact_map["@io_netty_netty_codec_http2//jar"] = "mvn:io.netty:netty-codec-http2:jar:4.1.27.Final"
artifact_map["@io_netty_netty_codec_http//jar"] = "mvn:io.netty:netty-codec-http:jar:4.1.27.Final"
artifact_map["@io_netty_netty_codec_socks//jar"] = "mvn:io.netty:netty-codec-socks:jar:4.1.27.Final"
artifact_map["@objenesis//jar"] = "mvn:org.objenesis:objenesis:jar:2.6"
artifact_map["@openflowj//jar"] = "mvn:org.onosproject:openflowj:jar:3.2.1.onos"
artifact_map["@org_apache_felix_framework_security//jar"] = "mvn:org.onosproject:org.apache.felix.framework.security:jar:2.2.0.onos"
artifact_map["@org_apache_felix_scr//jar"] = "mvn:org.apache.felix:org.apache.felix.scr:jar:1.8.2"
artifact_map["@org_apache_felix_scr_annotations//jar"] = "mvn:org.apache.felix:org.apache.felix.scr.annotations:jar:NON-OSGI:1.9.12"
artifact_map["@org_apache_karaf_features_core//jar"] = "mvn:org.apache.karaf.features:org.apache.karaf.features.core:jar:3.0.8"
artifact_map["@org_apache_karaf_shell_console//jar"] = "mvn:org.apache.karaf.shell:org.apache.karaf.shell.console:jar:3.0.8"
artifact_map["@org_apache_httpcomponents_httpasyncclient_osgi//jar"] = "mvn:org.apache.httpcomponents:httpasyncclient-osgi:jar:4.1.2"
artifact_map["@org_apache_httpcomponents_httpcore_nio//jar"] = "mvn:org.apache.httpcomponents:httpcore-nio:jar:NON-OSGI:4.4.4"
artifact_map["@org_apache_karaf_jaas//jar"] = "mvn:org.apache.karaf.jaas:org.apache.karaf.jaas.modules:jar:3.0.8"
artifact_map["@org_apache_karaf_system_core//jar"] = "mvn:org.apache.karaf.system:org.apache.karaf.system.core:jar:3.0.8"
artifact_map["@org_apache_servicemix_bundles_snmp4j//jar"] = "mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:jar:2.3.4_1"
artifact_map["@org_osgi_compendium//jar"] = "mvn:org.osgi:org.osgi.compendium:jar:5.0.0"
artifact_map["@osgi_core//jar"] = "mvn:org.osgi:org.osgi.core:jar:5.0.0"
artifact_map["@reflectasm//jar"] = "mvn:com.esotericsoftware:reflectasm:jar:1.11.0"
artifact_map["@remotetea_oncrpc//jar"] = "mvn:org.acplt.remotetea:remotetea-oncrpc:jar:1.1.3"
artifact_map["@rrd4j//jar"] = "mvn:org.rrd4j:rrd4j:jar:NON-OSGI:3.1"
artifact_map["@javassist//jar"] = "mvn:org.javassist:javassist:jar:3.22.0-GA"
artifact_map["@mimepull//jar"] = "mvn:org.jvnet.mimepull:mimepull:jar:1.9.6"
artifact_map["@servlet_api//jar"] = "mvn:javax.servlet:servlet-api:jar:NON-OSGI:2.5"
artifact_map["@slf4j_api//jar"] = "mvn:org.slf4j:slf4j-api:jar:1.7.25"
artifact_map["@slf4j_jdk14//jar"] = "mvn:org.slf4j:slf4j-jdk14:jar:1.7.25"
artifact_map["@slf4j_nop//jar"] = "mvn:org.slf4j:slf4j-nop:jar:1.7.25"
artifact_map["@typesafe_config//jar"] = "mvn:com.typesafe:config:jar:1.3.2"
artifact_map["@validation_api//jar"] = "mvn:javax.validation:validation-api:jar:1.1.0.Final"
artifact_map["@checkstyle//jar"] = "mvn:com.puppycrawl.tools:checkstyle:jar:NON-OSGI:8.10"
artifact_map["@apache_karaf//jar"] = "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//jar"] = "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//jar"] = "mvn:biz.aQute.bnd:biz.aQute.bndlib:jar:3.1.0"
artifact_map["@bndexe//jar"] = "mvn:biz.aQute.bnd:biz.aQute.bnd:jar:3.1.0"
artifact_map["@libthrift//jar"] = "mvn:org.apache.thrift:libthrift:jar:0.9.3"
artifact_map["@qdox//jar"] = "mvn:com.thoughtworks.qdox:qdox:jar:NON-OSGI:2.0-M3"
artifact_map["@org_apache_felix_scr_bnd//jar"] = "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//jar"] = "mvn:org.onosproject:snmp-core:jar:1.3-20161021.1"
artifact_map["@mibs_net_snmp//jar"] = "mvn:org.onosproject:mibbler-mibs-net-snmp:jar:1.0-20151221.1"
artifact_map["@mibs_rfc//jar"] = "mvn:org.onosproject:mibbler-mibs-rfc:jar:1.0-20151221.1"
artifact_map["@io_socket_client//jar"] = "mvn:io.socket:socket.io-client:jar:NON-OSGI:0.8.3"
artifact_map["@json//jar"] = "mvn:org.json:json:jar:NON-OSGI:20090211"
artifact_map["@engine_io_client//jar"] = "mvn:io.socket:engine.io-client:jar:NON-OSGI:0.8.3"
artifact_map["@com_google_api_grpc_proto_google_common_protos//jar"] = "mvn:com.google.api.grpc:proto-google-common-protos:jar:NON-OSGI:1.0.0"
artifact_map["@com_google_errorprone_error_prone_annotations//jar"] = "mvn:com.google.errorprone:error_prone_annotations:jar:NON-OSGI:2.1.2"
artifact_map["@com_google_auth_google_auth_library_credentials//jar"] = "mvn:com.google.auth:google-auth-library-credentials:jar:NON-OSGI:0.9.0"
artifact_map["@io_opencensus_opencensus_api//jar"] = "mvn:io.opencensus:opencensus-api:jar:NON-OSGI:0.12.3"
artifact_map["@io_opencensus_opencensus_contrib_grpc_metrics//jar"] = "mvn:io.opencensus:opencensus-contrib-grpc-metrics:jar:NON-OSGI:0.12.3"
artifact_map["@openstack4j_core//jar"] = "mvn:org.pacesys:openstack4j-core:jar:3.1.0"
artifact_map["@openstack4j_http_connector//jar"] = "mvn:org.pacesys.openstack4j.connectors:openstack4j-http-connector:jar:3.1.0"
artifact_map["@openstack4j_httpclient//jar"] = "mvn:org.pacesys.openstack4j.connectors:openstack4j-httpclient:jar:3.1.0"
artifact_map["@json_patch//jar"] = "mvn:com.github.fge:json-patch:jar:1.9"
artifact_map["@jackson_coreutils//jar"] = "mvn:com.github.fge:jackson-coreutils:jar:1.6"
artifact_map["@btf//jar"] = "mvn:com.github.fge:btf:jar:1.2"
artifact_map["@msg_simple//jar"] = "mvn:com.github.fge:msg-simple:jar:1.1"
artifact_map["@snakeyaml//jar"] = "mvn:org.yaml:snakeyaml:jar:1.15"
artifact_map["@onos_yang_model//jar"] = "mvn:org.onosproject:onos-yang-model:jar:2.5"
artifact_map["@onos_yang_compiler_api//jar"] = "mvn:org.onosproject:onos-yang-compiler-api:jar:2.5"
artifact_map["@onos_yang_compiler_main//jar"] = "mvn:org.onosproject:onos-yang-compiler-main:jar:2.5"
artifact_map["@onos_yang_runtime//jar"] = "mvn:org.onosproject:onos-yang-runtime:jar:2.5"
artifact_map["@onos_yang_serializers_json//jar"] = "mvn:org.onosproject:onos-yang-serializers-json:jar:2.5"
artifact_map["@onos_yang_serializers_xml//jar"] = "mvn:org.onosproject:onos-yang-serializers-xml:jar:2.5"
artifact_map["@onos_yang_serializers_utils//jar"] = "mvn:org.onosproject:onos-yang-serializers-utils:jar:2.5"
artifact_map["@org_apache_servicemix_bundles_dom4j//jar"] = "mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j:jar:1.6.1_5"
artifact_map["@plexus_utils//jar"] = "mvn:org.codehaus.plexus:plexus-utils:jar:NON-OSGI:3.0.24"
artifact_map["@sshd_core//jar"] = "mvn:org.apache.sshd:sshd-core:jar:1.4.0"
artifact_map["@bcpkix_jdk15on//jar"] = "mvn:org.bouncycastle:bcpkix-jdk15on:jar:1.59"
artifact_map["@bcprov_jdk15on//jar"] = "mvn:org.bouncycastle:bcprov-jdk15on:jar:1.59"
artifact_map["@hamcrest_optional//jar"] = "mvn:com.spotify:hamcrest-optional:jar:NON-OSGI:1.1.0"
artifact_map["@swagger_annotations//jar"] = "mvn:io.swagger:swagger-annotations:jar:1.5.16"
artifact_map["@kafka_clients//jar"] = "mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.kafka-clients:jar:0.8.2.2_1"
artifact_map["@tinder_xmpp//jar"] = "mvn:org.igniterealtime:tinder:jar:NON-OSGI:1.3.0"
artifact_map["@aalto_xml//jar"] = "mvn:com.fasterxml:aalto-xml:jar:1.0.0"
artifact_map["@stax2_api//jar"] = "mvn:org.codehaus.woodstox:stax2-api:jar:4.0.0"
artifact_map["@concurrent_hashmap//jar"] = "mvn:com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:NON-OSGI:1.0"
artifact_map["@gnu_idn//jar"] = "mvn:org.gnu.inet:libidn:jar:NON-OSGI:1.15"
artifact_map["@sigar//jar"] = "mvn:org.knowhowlab.osgi:sigar:jar:1.6.5_01"
artifact_map["@runtime_grpc_core//jar"] = "mvn:io.grpc:grpc-core:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_context//jar"] = "mvn:io.grpc:grpc-context:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_stub//jar"] = "mvn:io.grpc:grpc-stub:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_netty//jar"] = "mvn:io.grpc:grpc-netty:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_auth//jar"] = "mvn:io.grpc:grpc-auth:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_protobuf//jar"] = "mvn:io.grpc:grpc-protobuf:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_grpc_protobuf_lite//jar"] = "mvn:io.grpc:grpc-protobuf-lite:jar:NON-OSGI:1.14.0"
artifact_map["@runtime_protobuf//jar"] = "mvn:com.google.protobuf:protobuf-java:jar:3.6.1"
artifact_map["@grpc_core_1_3_1//jar"] = "mvn:io.grpc:grpc-core:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_protobuf_1_3_1//jar"] = "mvn:io.grpc:grpc-protobuf:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_protobuf_lite_1_3_1//jar"] = "mvn:io.grpc:grpc-protobuf-lite:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_stub_1_3_1//jar"] = "mvn:io.grpc:grpc-stub:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_netty_1_3_1//jar"] = "mvn:io.grpc:grpc-netty:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_auth_1_3_1//jar"] = "mvn:io.grpc:grpc-auth:jar:NON-OSGI:1.3.1"
artifact_map["@protobuf_java_3_3_0//jar"] = "mvn:com.google.protobuf:protobuf-java:jar:3.3.0"
artifact_map["@protobuf_java_3_2_0//jar"] = "mvn:com.google.protobuf:protobuf-java:jar:3.2.0"
artifact_map["@grpc_testing_1_3_1//jar"] = "mvn:io.grpc:grpc-testing:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_testing_proto_1_3_1//jar"] = "mvn:io.grpc:grpc-testing-proto:jar:NON-OSGI:1.3.1"
artifact_map["@grpc_context_1_3_1//jar"] = "mvn:io.grpc:grpc-context:jar:NON-OSGI:1.3.1"
artifact_map["@google_truth_0_28//jar"] = "mvn:com.google.truth:truth:jar:NON-OSGI:0.28"
artifact_map["@google_code_findbugs_3_0_0//jar"] = "mvn:com.google.code.findbugs:jsr305:jar:NON-OSGI:3.0.0"
artifact_map["@google_errorprone_2_0_19//jar"] = "mvn:com.google.errorprone:error_prone_annotations:jar:NON-OSGI:2.0.19"
artifact_map["@google_instrumentation_0_3_0//jar"] = "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)
