This is an automated email from the ASF dual-hosted git repository. vorburger pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/fineract.git
commit 83cdb17d8f46288b0a53ab84f64ae080c1f7362c Author: Michael Vorburger <[email protected]> AuthorDate: Sun May 3 02:25:54 2020 +0200 exclude dependencies causing classpath duplicates (FINERACT-919) --- fineract-provider/build.gradle | 1 - fineract-provider/dependencies.gradle | 48 +++++++++++++--------- .../integrationtests/common/CenterHelper.java | 20 +++++---- .../integrationtests/common/GroupHelper.java | 6 +-- .../classdupes/ClasspathHellDuplicatesChecker.java | 13 +++++- 5 files changed, 54 insertions(+), 34 deletions(-) diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle index 30393de..0293682 100644 --- a/fineract-provider/build.gradle +++ b/fineract-provider/build.gradle @@ -102,7 +102,6 @@ dependencyManagement { dependency 'io.swagger:swagger-jersey-jaxrs:1.5.15' dependency 'org.springframework:spring-jms:4.0.7.RELEASE' dependency 'org.apache.activemq:activemq-broker:+' - dependency 'javax.validation:validation-api:+' dependency 'org.apache.bval:org.apache.bval.bundle:2.0.2' dependencySet(group: 'io.rest-assured', version: '3.3.0'){ entry 'rest-assured' diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle index e701658..e653ea7 100644 --- a/fineract-provider/dependencies.gradle +++ b/fineract-provider/dependencies.gradle @@ -23,16 +23,16 @@ dependencies { exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj' } - providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") + providedRuntime('org.springframework.boot:spring-boot-starter-tomcat') - spotbugsPlugins "jp.skypencil.findbugs.slf4j:bug-pattern:1.4.2@jar" + spotbugsPlugins 'jp.skypencil.findbugs.slf4j:bug-pattern:1.4.2@jar' - compile ("org.springframework.boot:spring-boot-starter-data-jpa") + compile ('org.springframework.boot:spring-boot-starter-data-jpa') { + exclude group: 'org.hibernate' + } api( 'com.google.code.gson:gson', - 'org.quartz-scheduler:quartz', - 'org.apache.openjpa:openjpa', 'org.springframework:spring-jms', 'joda-time:joda-time', 'org.mnode.ical4j:ical4j', @@ -42,6 +42,14 @@ dependencies { 'com.sun.jersey:jersey-core', 'com.squareup.retrofit:retrofit' ) + api ('org.apache.openjpa:openjpa') { + exclude group: 'org.eclipse.persistence' + exclude group: 'org.apache.geronimo.specs' + } + api('org.quartz-scheduler:quartz') { + exclude group: 'com.zaxxer', module: 'HikariCP-java7' + } + implementation( //'ch.vorburger.mariaDB4j:mariaDB4j:2.4.0', @@ -51,10 +59,8 @@ dependencies { //'org.eclipse.persistence:javax.persistence', - 'org.springframework.security.oauth:spring-security-oauth2', - //'javax.ws.rs:jsr311-api', 'com.sun.jersey:jersey-servlet', @@ -96,20 +102,17 @@ dependencies { // Once we've switched to Java 8 this dep can be removed. //'com.google.code.findbugs:jsr305', - 'io.swagger:swagger-jersey-jaxrs', 'org.apache.activemq:activemq-broker', - 'javax.validation:validation-api', + 'org.apache.bval:org.apache.bval.bundle' ) + implementation ('io.swagger:swagger-jersey-jaxrs') { + exclude group: 'javax.validation' + } - implementation 'org.apache.bval:org.apache.bval.bundle' - - testCompile 'io.rest-assured:rest-assured', - 'junit:junit', + testCompile 'junit:junit', //'junit:junit-dep', 'org.mockito:mockito-core', 'io.github.classgraph:classgraph:4.8.43', - 'org.slf4j:slf4j-simple', - 'com.mockrunner:mockrunner-jms', 'com.google.code.gson:gson', 'org.springframework:spring-jms', 'joda-time:joda-time', @@ -117,10 +120,17 @@ dependencies { 'com.google.guava:guava', 'org.apache.poi:poi-ooxml', 'org.springframework:spring-context-support', - 'com.sun.jersey:jersey-core', - 'com.mockrunner:mockrunner-jdbc' - - testCompile ("org.springframework.boot:spring-boot-starter-test") { + 'com.sun.jersey:jersey-core' + testCompile ('com.mockrunner:mockrunner-jdbc' ) { + exclude group: 'regexp' + } + testCompile ('com.mockrunner:mockrunner-jms') { + exclude group: 'regexp' + } + testCompile ('io.rest-assured:rest-assured') { + exclude group: 'org.apache.sling' + } + testCompile ('org.springframework.boot:spring-boot-starter-test') { exclude group: 'com.jayway.jsonpath', module: 'json-path' } } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterHelper.java index 9b415e1..0dd2586 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterHelper.java @@ -20,13 +20,13 @@ package org.apache.fineract.integrationtests.common; import static org.junit.Assert.assertEquals; +import com.google.common.base.Strings; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import io.restassured.specification.RequestSpecification; import io.restassured.specification.ResponseSpecification; import java.util.ArrayList; import java.util.HashMap; -import org.apache.commons.lang3.StringUtils; @SuppressWarnings({ "rawtypes", "unchecked" }) public class CenterHelper { @@ -85,9 +85,15 @@ public class CenterHelper { hm.put("officeId", officeId); hm.put("active", false); - if (externalId != null) hm.put("externalId", externalId); - if (staffId != -1) hm.put("staffId", staffId); - if (groupMembers != null) hm.put("groupMembers", groupMembers); + if (externalId != null) { + hm.put("externalId", externalId); + } + if (staffId != -1) { + hm.put("staffId", staffId); + } + if (groupMembers != null) { + hm.put("groupMembers", groupMembers); + } if (activationDate != null) { hm.put("active", true); hm.put("locale", "en"); @@ -235,7 +241,7 @@ public class CenterHelper { final HashMap<String, String> map = new HashMap<>(); map.put("dateFormat", "dd MMMM yyyy"); map.put("locale", "en"); - if (StringUtils.isNotEmpty(activationDate)) { + if (!Strings.isNullOrEmpty(activationDate)) { map.put("activationDate", activationDate); } else { map.put("activationDate", "CREATED_DATE"); @@ -249,10 +255,6 @@ public class CenterHelper { return Utils.randomStringGenerator(prefix, lenOfRandomSuffix); } - private static String randomIDGenerator(final String prefix, final int lenOfRandomSuffix) { - return Utils.randomStringGenerator(prefix, lenOfRandomSuffix, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - } - public static Object assignStaff(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final String groupId, final Long staffId) { final String GROUP_ASSIGN_STAFF_URL = "/fineract-provider/api/v1/groups/" + groupId + "?" + Utils.TENANT_IDENTIFIER diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/GroupHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/GroupHelper.java index 255540d..b092006 100755 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/GroupHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/GroupHelper.java @@ -22,13 +22,13 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import com.google.common.base.Strings; import com.google.gson.Gson; import io.restassured.specification.RequestSpecification; import io.restassured.specification.ResponseSpecification; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import org.apache.commons.lang3.StringUtils; public class GroupHelper { @@ -144,7 +144,7 @@ public class GroupHelper { } public static String associateClientAsJSON(final String clientMember) { - final HashMap<String, List<String>> map = new HashMap<String, List<String>>(); + final HashMap<String, List<String>> map = new HashMap<>(); final List<String> list = new ArrayList<>(); list.add(clientMember); map.put("clientMembers", list); @@ -156,7 +156,7 @@ public class GroupHelper { final HashMap<String, String> map = new HashMap<>(); map.put("dateFormat", "dd MMMM yyyy"); map.put("locale", "en"); - if (StringUtils.isNotEmpty(activationDate)) { + if (!Strings.isNullOrEmpty(activationDate)) { map.put("activationDate", activationDate); } else { map.put("activationDate", "04 March 2011"); diff --git a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classdupes/ClasspathHellDuplicatesChecker.java b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classdupes/ClasspathHellDuplicatesChecker.java index d25ed42..01eaa73 100644 --- a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classdupes/ClasspathHellDuplicatesChecker.java +++ b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classdupes/ClasspathHellDuplicatesChecker.java @@ -87,7 +87,8 @@ public class ClasspathHellDuplicatesChecker { private boolean skipJAR(String jarPath) { // ./gradlew test finds classes from the Gradle Wrapper (which don't show up in-IDE), exclude those - return jarPath.contains("/.gradle/wrapper/dists/"); + return jarPath.contains("/.gradle/wrapper/dists/") + || jarPath.contains("/io.rest-assured/"); // TODO FINERACT-884 remove when RestAssured was bumped from 3.3.0 to 4.3.0 in Spring BOM } protected boolean isHarmlessDuplicate(String resourcePath) { @@ -95,6 +96,7 @@ public class ClasspathHellDuplicatesChecker { return resourcePath.equals("META-INF/MANIFEST.MF") || resourcePath.equals("META-INF/INDEX.LIST") || resourcePath.equals("META-INF/ORACLE_J.SF") + || resourcePath.toUpperCase().startsWith("META-INF/ASL") || resourcePath.toUpperCase().startsWith("META-INF/NOTICE") || resourcePath.toUpperCase().startsWith("META-INF/LICENSE") || resourcePath.toUpperCase().startsWith("LICENSE") @@ -112,8 +114,9 @@ public class ClasspathHellDuplicatesChecker { || resourcePath.equals("META-INF/jersey-module-version") || resourcePath.startsWith("OSGI-INF/blueprint/") || resourcePath.startsWith("org/opendaylight/blueprint/") - || resourcePath.equals("WEB-INF/web.xml") || resourcePath.endsWith("reference.conf") // in Akka's JARs + || resourcePath.equals("WEB-INF/web.xml") + || resourcePath.equals("META-INF/web-fragment.xml") || resourcePath.equals("META-INF/eclipse.inf") || resourcePath.equals("META-INF/ECLIPSE_.SF") || resourcePath.equals("META-INF/ECLIPSE_.RSA") @@ -121,6 +124,12 @@ public class ClasspathHellDuplicatesChecker { || resourcePath.equals("META-INF/BC2048KE.SF") || resourcePath.equals("META-INF/BC1024KE.SF") || resourcePath.equals("OSGI-INF/bundle.info") + // Spring Framework knows what they are do.. + || resourcePath.startsWith("META-INF/spring") + || resourcePath.startsWith("META-INF/additional-spring") + || resourcePath.startsWith("META-INF/terracotta") + // Groovy is groovy + || resourcePath.startsWith("META-INF/groovy-release-info.properties") // Something doesn't to be a perfectly clean in Maven Surefire: || resourcePath.startsWith("META-INF/maven/") || resourcePath.contains("surefire")
