/** * 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 { providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") // Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'. // Note that we never use 'api', because Fineract at least currently is a simple monolithic application ("WAR"), not a library. // We also (normally should have) no need to ever use 'compileOnly'. // implementation dependencies are directly used (compiled against) in src/main (and src/test) // implementation( //'ch.vorburger.mariaDB4j:mariaDB4j:2.4.0', 'org.springframework.boot:spring-boot-starter-web', 'org.springframework.boot:spring-boot-starter-security', 'org.springframework.boot:spring-boot-starter-cache', 'org.springframework:spring-jms', 'org.springframework:spring-context-support', 'org.springframework.security.oauth:spring-security-oauth2', 'com.sun.jersey:jersey-servlet', 'com.sun.jersey:jersey-server', 'com.sun.jersey:jersey-json', 'com.sun.jersey.contribs:jersey-spring', 'com.sun.jersey.contribs:jersey-multipart', 'com.google.guava:guava', 'com.google.code.gson:gson', 'com.sun.jersey:jersey-core', 'jakarta.jms:jakarta.jms-api', 'jakarta.management.j2ee:jakarta.management.j2ee-api', 'jakarta.validation:jakarta.validation-api', 'com.squareup.retrofit2:retrofit', 'com.squareup.okhttp3:okhttp', 'com.squareup.okhttp3:okhttp-urlconnection', 'org.apache.commons:commons-email', 'org.apache.commons:commons-lang3', 'commons-io:commons-io', 'org.apache.poi:poi', 'org.apache.poi:poi-ooxml', 'org.apache.poi:poi-ooxml-schemas', 'org.apache.tika:tika-core', 'org.drizzle.jdbc:drizzle-jdbc', 'org.flywaydb:flyway-core', 'com.github.librepdf:openpdf', 'com.github.spullara.mustache.java:compiler', 'com.jayway.jsonpath:json-path', 'org.dom4j:dom4j', 'javax.cache:cache-api', 'com.github.spotbugs:spotbugs-annotations', 'io.swagger.core.v3:swagger-annotations', 'org.webjars:webjars-locator-core', 'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.2.3', 'com.squareup.retrofit2:converter-gson', 'com.sun.activation:jakarta.activation:1.2.2' ) implementation ('jakarta.xml.bind:jakarta.xml.bind-api') { exclude group: 'jakarta.activation' } implementation ('org.apache.activemq:activemq-broker') { exclude group: 'org.apache.geronimo.specs' } implementation ('org.springframework.boot:spring-boot-starter-data-jpa') { exclude group: 'org.hibernate' } implementation ('org.apache.openjpa:openjpa') { exclude group: 'org.eclipse.persistence' exclude group: 'org.apache.geronimo.specs' } implementation ('org.quartz-scheduler:quartz') { exclude group: 'com.zaxxer', module: 'HikariCP-java7' } implementation ('com.amazonaws:aws-java-sdk-s3') { exclude group: 'commons-logging' } implementation ('org.mnode.ical4j:ical4j') { exclude group: 'commons-logging' } runtimeOnly('org.ehcache:ehcache') { exclude group: 'com.sun.activation' } // runtimeOnly dependencies are things that Fineract code has no direct compile time dependency on, but which must be present at run-time runtimeOnly( 'org.apache.bval:org.apache.bval.bundle', 'org.springframework.boot:spring-boot-starter-actuator', 'org.webjars.npm:swagger-ui-dist', 'org.glassfish.jaxb:jaxb-runtime', // Although fineract (at the time of writing) doesn't have any compile time dep. on httpclient, // it's useful to have this for the Spring Boot TestRestTemplate http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-rest-templates-test-utility 'org.apache.httpcomponents:httpclient' ) // testCompile dependencies are ONLY used in src/test, not src/main. // Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly! // testImplementation( 'org.mockito:mockito-core', 'org.mockito:mockito-junit-jupiter', 'org.junit.platform:junit-platform-runner', // required to be able to run tests directly under Eclipse, see FINERACT-943 & FINERACT-1021 'io.github.classgraph:classgraph' ) 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' } }