/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

dependencies {
    implementation(
            'org.springframework.boot:spring-boot-starter',
            'org.springframework.boot:spring-boot-starter-validation',
            'org.springframework.boot:spring-boot-starter-data-jpa',
            'io.github.resilience4j:resilience4j-spring-boot3',

            'org.liquibase:liquibase-core',

            'com.mysql:mysql-connector-j',
            'org.postgresql:postgresql',

            'com.fasterxml.jackson.core:jackson-databind',

            'com.google.guava:guava',

            'org.apache.commons:commons-lang3',

            'com.github.spotbugs:spotbugs-annotations',
            'org.mapstruct:mapstruct',
            'com.lmax:disruptor',
            )
    implementation('org.eclipse.persistence:org.eclipse.persistence.jpa') {
        exclude group: 'org.eclipse.persistence', module: 'jakarta.persistence'
    }
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    annotationProcessor 'org.mapstruct:mapstruct-processor'
    jmh 'org.openjdk.jmh:jmh-core'
    jmh 'org.openjdk.jmh:jmh-generator-annprocess'
    annotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess'
    jmhAnnotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess'

    asciidoctorExtensions 'org.springframework.restdocs:spring-restdocs-asciidoctor'

    testImplementation ('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'com.jayway.jsonpath', module: 'json-path'
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
        exclude group: 'jakarta.activation'
        exclude group: 'javax.activation'
        exclude group: 'org.skyscreamer'
    }
    testImplementation (
            project(':fineract-validation'),
            'org.springframework.boot:spring-boot-starter-web',
            'org.mockito:mockito-inline',
            'org.openjdk.jmh:jmh-core',
            'org.testcontainers:junit-jupiter',
            'org.testcontainers:postgresql',
            'org.testcontainers:mysql',
            'org.springframework.restdocs:spring-restdocs-mockmvc',
            'org.springframework.restdocs:spring-restdocs-webtestclient',
            'org.springframework.restdocs:spring-restdocs-restassured',
            )
}
