/** * 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 { // 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'. // Core module dependency implementation(project(path: ':fineract-core')) // PostgreSQL driver for SQL injection prevention utilities implementation 'org.postgresql:postgresql' // Spring Boot Security dependencies implementation( 'org.springframework.boot:spring-boot-starter-web', 'org.springframework.boot:spring-boot-starter-security', 'org.springframework.boot:spring-boot-starter-oauth2-authorization-server', 'org.springframework.boot:spring-boot-starter-oauth2-resource-server', 'org.springframework.boot:spring-boot-starter-oauth2-client', 'org.springframework.boot:spring-boot-starter-cache', 'jakarta.ws.rs:jakarta.ws.rs-api', 'org.glassfish.jersey.media:jersey-media-multipart', 'com.google.guava:guava', 'com.google.code.gson:gson', 'org.apache.commons:commons-lang3', 'com.jayway.jsonpath:json-path', 'com.github.spotbugs:spotbugs-annotations', 'io.swagger.core.v3:swagger-annotations-jakarta', 'org.springdoc:springdoc-openapi-starter-webmvc-ui', 'org.mapstruct:mapstruct', ) // JPA for security entities implementation ('org.springframework.boot:spring-boot-starter-data-jpa') { exclude group: 'org.hibernate' } implementation('org.eclipse.persistence:org.eclipse.persistence.jpa') { exclude group: 'org.eclipse.persistence', module: 'jakarta.persistence' } // OWASP ESAPI for security utilities implementation('org.owasp.esapi:esapi') { exclude group: 'org.slf4j' exclude group: 'log4j' exclude group: 'commons-logging' exclude group: 'commons-collections' exclude group: 'commons-lang' exclude group: 'spotbugs-annotations' exclude group: 'xml-apis' } // Email support for OTP delivery implementation ('org.apache.commons:commons-email') { exclude group: 'com.sun.mail', module: 'javax.mail' exclude group: 'javax.activation', module: 'activation' } implementation 'com.sun.mail:jakarta.mail' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' annotationProcessor 'org.mapstruct:mapstruct-processor' // Test dependencies testImplementation( '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' exclude group: 'org.skyscreamer' } testImplementation ('org.mockito:mockito-inline') testImplementation 'org.springframework.security:spring-security-test' }