# ***** This file was auto-generated at Tue, 21 Aug 2018 03: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.0",
            sha1 = "13cb1df38cd31cab14de0b5137f68564aba01fa8",
        )

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

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

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

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

    if "atomix_raft" not in native.existing_rules():
        native.maven_jar(
            name = "atomix_raft",
            artifact = "io.atomix:atomix-raft:3.0.0",
            sha1 = "846cd7f2077159bd5acb8d5e78ec03b276668d96",
        )

    if "atomix_storage" not in native.existing_rules():
        native.maven_jar(
            name = "atomix_storage",
            artifact = "io.atomix:atomix-storage:3.0.0",
            sha1 = "4a5ffed3199541ccf1de3318ced3a6edeb22ddd1",
        )

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

    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.0"
artifact_map["@atomix_cluster//jar"] = "mvn:io.atomix:atomix-cluster:jar:3.0.0"
artifact_map["@atomix_gossip//jar"] = "mvn:io.atomix:atomix-gossip:jar:3.0.0"
artifact_map["@atomix_primary_backup//jar"] = "mvn:io.atomix:atomix-primary-backup:jar:3.0.0"
artifact_map["@atomix_primitive//jar"] = "mvn:io.atomix:atomix-primitive:jar:3.0.0"
artifact_map["@atomix_raft//jar"] = "mvn:io.atomix:atomix-raft:jar:3.0.0"
artifact_map["@atomix_storage//jar"] = "mvn:io.atomix:atomix-storage:jar:3.0.0"
artifact_map["@atomix_utils//jar"] = "mvn:io.atomix:atomix-utils:jar:3.0.0"
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)
