load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "4.2"
RULES_JVM_EXTERNAL_SHA = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca"

http_archive(
    name = "rules_jvm_external",
    strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
    sha256 = RULES_JVM_EXTERNAL_SHA,
    url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)



local_repository(
    name = "ext_jars",
    path = "ext.jars"
)

load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

load("@rules_jvm_external//private/rules:jvm_import.bzl", "jvm_import")


rules_jvm_external_deps()

load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

load("@rules_jvm_external//:defs.bzl", "maven_install")

load("@rules_jvm_external//:specs.bzl", "maven")

maven_install(
    artifacts = [
        "com.fasterxml.jackson.core:jackson-core:2.10.3",
        "com.fasterxml.jackson.core:jackson-databind:2.10.3",
        "com.fasterxml.jackson.core:jackson-annotations:2.10.3",
        "com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.12.1",
	"com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.12.1",
	"com.vladsch.flexmark:flexmark:0.64.8",
	"com.vladsch.flexmark:flexmark-ext-tables:0.64.8",
	"com.vladsch.flexmark:flexmark-util-data:0.64.8",
	"com.vladsch.flexmark:flexmark-util-ast:0.64.8",
	"com.vladsch.flexmark:flexmark-ext-gfm-tasklist:0.64.8",
        "commons-codec:commons-codec:1.6",
	"org.apache.sling:org.apache.sling.testing.osgi-mock.junit5:3.3.8",
	"org.apache.sling:org.apache.sling.testing.osgi-mock.core:3.3.8",
        "org.eclipse.jdt:org.eclipse.jdt.core:3.22.0",
        "org.eclipse.jdt:org.eclipse.jdt.annotation:2.2.600",
        "javax.ws.rs:javax.ws.rs-api:2.1",
        "javax.activation:activation:1.1",
        "jakarta.xml.bind:jakarta.xml.bind-api:3.0.1",
        "org.slf4j:slf4j-api:1.7.2",
        "org.osgi:org.osgi.service.log:1.5.0",
        "org.osgi:org.osgi.service.component:1.5.0",
        "org.osgi:org.osgi.framework:1.10.0",
        "org.eclipse.core:org.eclipse.core.resources:3.7.100",
        "javax.mail:mail:1.4.1",
        "org.antlr:antlr-runtime:3.2",
        "com.google.guava:guava:27.1-jre",
	"org.apache.poi:poi:4.1.1",
        "org.apache.poi:poi-ooxml:4.1.1",
        "org.mockito:mockito-core:2.23.0",
       	"org.hamcrest:hamcrest-core:1.3",
        "org.junit:junit5-api:5.0.0-ALPHA",
        "org.apache.cxf:cxf-core:3.3.12",
	"org.apache.cxf:cxf-rt-frontend-jaxrs:3.3.12",
	"org.apache.cxf:cxf-rt-rs-client:3.3.12",
	"org.apache.cxf:cxf-rt-rs-security-oauth:3.3.12",        
 	"org.apache.cxf:cxf-rt-rs-security-oauth2:3.3.12",
	"org.apache.cxf:cxf-rt-security:3.3.12",
	"org.apache.cxf:cxf-rt-transports-http:3.3.12",
	"org.apache.cxf:cxf-rt-rs-service-description:3.3.12",
	"org.apache.cxf:cxf-tools-wadlto-jaxrs:2.6.17",
	"org.hsqldb:hsqldb:2.6.1",
	"javax.servlet:javax.servlet-api:3.1.0",
	"org.osgi:org.osgi.service.log:1.5.0",
        "org.osgi:org.osgi.service.component:1.5.0",
        "org.osgi:org.osgi.service.event:1.4.1",
	"org.osgi:org.osgi.framework:1.10.0",
	"org.eclipse.core:runtime:3.10.0-v20140318-2214",
	"io.swagger.core.v3:swagger-core:2.2.7",
        "io.swagger.core.v3:swagger-jaxrs2:2.2.7",
        "io.swagger.core.v3:swagger-models:2.2.7",
        "org.eclipse.jgit:org.eclipse.jgit:5.8.0.202006091008-r",
        "org.jsoup:jsoup:1.8.3",
        "com.jcraft:jsch:0.1.55",
        "com.google.guava:guava:27.1-jre",
        "org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1",
        "org.apache.activemq:activemq-all:5.14.0",
	"org.glassfish.jaxb:jaxb-runtime:3.0.1"
        ],

    repositories = [
        # Private repositories are supported through HTTP Basic auth
        "https://repo1.maven.org/maven2",
        
        "https://download.eclipse.org/tools/orbit/downloads/drops/R20201130205003/",
        "https://download.eclipse.org/releases/2020-06/202006171000/"
    ],
)
