We *ARE* using Guava, but, unless we have a real need for a more recent specific version, it seems "safer" (and less hassle to maintain bumping) just using whatever version we transitively inherit from other libraries we use that themselves depend on Guava (currently Swagger, Mustache and activemq-broker). Currently that "whatever version" is a 28.2 (we used 28.1 before). This removes two fairly different kinds of Guava dependencies we have: One for run-time (above), and one for build time which seems to have been added due to some SpotBugs related issue (but it now works without that, so that must have been some issue in SpotBugs that meanwhile go fixed in the recent versions).
126 lines
5.1 KiB
Groovy
126 lines
5.1 KiB
Groovy
/**
|
|
* 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")
|
|
|
|
spotbugsPlugins "jp.skypencil.findbugs.slf4j:bug-pattern:1.5.0@jar"
|
|
|
|
// 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: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',
|
|
|
|
'joda-time:joda-time',
|
|
'com.google.code.gson:gson',
|
|
'com.sun.jersey:jersey-core',
|
|
'com.squareup.retrofit:retrofit',
|
|
'jakarta.jms:jakarta.jms-api',
|
|
'jakarta.management.j2ee:jakarta.management.j2ee-api',
|
|
|
|
'com.squareup.okhttp:okhttp',
|
|
'com.squareup.okhttp:okhttp-urlconnection',
|
|
|
|
'org.apache.commons:commons-email',
|
|
'org.apache.commons:commons-lang3',
|
|
'org.apache.commons: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',
|
|
|
|
'net.sf.ehcache:ehcache',
|
|
'com.lowagie:itext',
|
|
'com.github.spullara.mustache.java:compiler',
|
|
'com.jayway.jsonpath:json-path',
|
|
|
|
// JAX-B dependencies for JDK 9+
|
|
"jakarta.xml.bind:jakarta.xml.bind-api",
|
|
"org.dom4j:dom4j"
|
|
)
|
|
implementation ('io.swagger:swagger-jersey-jaxrs') {
|
|
exclude group: 'javax.validation'
|
|
}
|
|
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 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',
|
|
|
|
// 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 and/or src/integrationTest, not src/main.
|
|
// Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly!
|
|
//
|
|
testImplementation( 'junit:junit',
|
|
'org.junit.platform:junit-platform-runner', // FINERACT-943
|
|
'org.mockito:mockito-core',
|
|
'io.github.classgraph:classgraph',
|
|
'org.awaitility:awaitility'
|
|
)
|
|
testImplementation ('io.rest-assured:rest-assured') {
|
|
exclude group: 'commons-logging'
|
|
exclude group: 'org.apache.sling'
|
|
}
|
|
testImplementation ('org.springframework.boot:spring-boot-starter-test') {
|
|
exclude group: 'com.jayway.jsonpath', module: 'json-path'
|
|
}
|
|
}
|