/**
 * 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.
 */
plugins {
    id 'io.spring.dependency-management' version '1.0.12.RELEASE'
    id 'groovy'
    id 'java-gradle-plugin'
    id 'groovy-gradle-plugin'
}

apply from: "${projectDir}/src/main/groovy/org.apache.fineract.dependencies.gradle"

description = 'Fineract Gradle Plugin'

repositories {
    gradlePluginPortal()
    mavenCentral()
}

dependencies {
    implementation 'com.sun.activation:jakarta.activation'
    implementation 'com.sun.mail:jakarta.mail'
    implementation 'org.freemarker:freemarker'
    implementation 'org.tmatesoft.svnkit:svnkit'
    implementation 'org.bouncycastle:bcprov-jdk15on'
    implementation 'org.bouncycastle:bcpg-jdk15on'
    implementation 'org.eclipse.jgit:org.eclipse.jgit'
    implementation 'org.eclipse.jgit:org.eclipse.jgit.ssh.apache'
    implementation 'com.vdurmont:semver4j'
    implementation 'org.beryx:text-io'
    implementation 'commons-io:commons-io'
    implementation 'com.squareup.okhttp3:okhttp'
    implementation 'com.squareup.okhttp3:logging-interceptor'
    implementation 'com.squareup.retrofit2:retrofit'
    implementation 'com.squareup.retrofit2:converter-jackson'
    implementation 'com.fasterxml.jackson.core:jackson-databind'
}
