Skip to content

Commit c719ab7

Browse files
author
Phillip Webb
committed
Exclude commons-logging from starter POMs
Update all relevant starter POMs to include a `spring-core` dependency with an exclusion on `commons-logging`. This prevents `commons-logging` and `jcl-over-slf4j` from both being on the classpath. Also add enforcer rules to ensure that commons-logging doesn't sneak back in, and that there is no dependency convergence. (some additional libraries were required in spring-boot-dependencies) Tested with a sample maven project as well as using the `spring jar` command. Fixes gh-985
1 parent 28cf21d commit c719ab7

File tree

31 files changed

+411
-19
lines changed

31 files changed

+411
-19
lines changed

spring-boot-dependencies/pom.xml

+52-6
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@
5050
<activemq.version>5.9.1</activemq.version>
5151
<aspectj.version>1.8.0</aspectj.version>
5252
<codahale-metrics.version>3.0.2</codahale-metrics.version>
53+
<commons-beanutils.version>1.9.1</commons-beanutils.version>
54+
<commons-collections.version>3.2.1</commons-collections.version>
5355
<commons-dbcp.version>1.4</commons-dbcp.version>
56+
<commons-digester.version>2.1</commons-digester.version>
5457
<commons-pool.version>1.6</commons-pool.version>
5558
<commons-pool2.version>2.2</commons-pool2.version>
5659
<crashub.version>1.3.0-beta20</crashub.version>
@@ -74,6 +77,7 @@
7477
<javassist.version>3.18.1-GA</javassist.version> <!-- Same as Hibernate -->
7578
<jedis.version>2.4.1</jedis.version>
7679
<jetty.version>8.1.14.v20131031</jetty.version>
80+
<jetty-jsp.version>2.2.0.v201112011158</jetty-jsp.version>
7781
<joda-time.version>2.3</joda-time.version>
7882
<jolokia.version>1.2.0</jolokia.version>
7983
<jstl.version>1.2</jstl.version>
@@ -335,6 +339,11 @@
335339
<artifactId>metrics-servlets</artifactId>
336340
<version>${codahale-metrics.version}</version>
337341
</dependency>
342+
<dependency>
343+
<groupId>com.fasterxml.jackson.core</groupId>
344+
<artifactId>jackson-annotations</artifactId>
345+
<version>${jackson.version}</version>
346+
</dependency>
338347
<dependency>
339348
<groupId>com.fasterxml.jackson.core</groupId>
340349
<artifactId>jackson-core</artifactId>
@@ -365,11 +374,38 @@
365374
<artifactId>HikariCP</artifactId>
366375
<version>${hikaricp.version}</version>
367376
</dependency>
377+
<dependency>
378+
<groupId>commons-beanutils</groupId>
379+
<artifactId>commons-beanutils</artifactId>
380+
<version>${commons-beanutils.version}</version>
381+
<exclusions>
382+
<exclusion>
383+
<groupId>commons-logging</groupId>
384+
<artifactId>commons-logging</artifactId>
385+
</exclusion>
386+
</exclusions>
387+
</dependency>
388+
<dependency>
389+
<groupId>commons-collections</groupId>
390+
<artifactId>commons-collections</artifactId>
391+
<version>${commons-collections.version}</version>
392+
</dependency>
368393
<dependency>
369394
<groupId>commons-dbcp</groupId>
370395
<artifactId>commons-dbcp</artifactId>
371396
<version>${commons-dbcp.version}</version>
372397
</dependency>
398+
<dependency>
399+
<groupId>commons-digester</groupId>
400+
<artifactId>commons-digester</artifactId>
401+
<version>${commons-digester.version}</version>
402+
<exclusions>
403+
<exclusion>
404+
<groupId>commons-logging</groupId>
405+
<artifactId>commons-logging</artifactId>
406+
</exclusion>
407+
</exclusions>
408+
</dependency>
373409
<dependency>
374410
<groupId>commons-pool</groupId>
375411
<artifactId>commons-pool</artifactId>
@@ -446,6 +482,11 @@
446482
</exclusion>
447483
</exclusions>
448484
</dependency>
485+
<dependency>
486+
<groupId>org.apache.httpcomponents</groupId>
487+
<artifactId>httpmime</artifactId>
488+
<version>${httpclient.version}</version>
489+
</dependency>
449490
<dependency>
450491
<groupId>org.apache.httpcomponents</groupId>
451492
<artifactId>httpasyncclient</artifactId>
@@ -668,23 +709,28 @@
668709
<groupId>org.eclipse.jetty</groupId>
669710
<artifactId>jetty-jsp</artifactId>
670711
<version>${jetty.version}</version>
671-
</dependency>
672-
<dependency>
673-
<groupId>org.eclipse.jetty</groupId>
674-
<artifactId>jetty-webapp</artifactId>
675-
<version>${jetty.version}</version>
676712
<exclusions>
677713
<exclusion>
678-
<artifactId>javax.servlet</artifactId>
679714
<groupId>org.eclipse.jetty.orbit</groupId>
715+
<artifactId>javax.servlet</artifactId>
680716
</exclusion>
681717
</exclusions>
682718
</dependency>
719+
<dependency>
720+
<groupId>org.eclipse.jetty</groupId>
721+
<artifactId>jetty-webapp</artifactId>
722+
<version>${jetty.version}</version>
723+
</dependency>
683724
<dependency>
684725
<groupId>org.eclipse.jetty</groupId>
685726
<artifactId>jetty-util</artifactId>
686727
<version>${jetty.version}</version>
687728
</dependency>
729+
<dependency>
730+
<groupId>org.eclipse.jetty.orbit</groupId>
731+
<artifactId>javax.servlet.jsp</artifactId>
732+
<version>${jetty-jsp.version}</version>
733+
</dependency>
688734
<dependency>
689735
<groupId>org.freemarker</groupId>
690736
<artifactId>freemarker</artifactId>

spring-boot-starters/pom.xml

+28
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,32 @@
5353
<module>spring-boot-starter-web</module>
5454
<module>spring-boot-starter-websocket</module>
5555
</modules>
56+
<build>
57+
<plugins>
58+
<plugin>
59+
<groupId>org.apache.maven.plugins</groupId>
60+
<artifactId>maven-enforcer-plugin</artifactId>
61+
<executions>
62+
<execution>
63+
<id>enforce-rules</id>
64+
<goals>
65+
<goal>enforce</goal>
66+
</goals>
67+
<configuration>
68+
<rules>
69+
<bannedDependencies>
70+
<excludes>
71+
<exclude>commons-logging:commons-logging:*</exclude>
72+
</excludes>
73+
<searchTransitive>true</searchTransitive>
74+
</bannedDependencies>
75+
<dependencyConvergence/>
76+
</rules>
77+
<fail>true</fail>
78+
</configuration>
79+
</execution>
80+
</executions>
81+
</plugin>
82+
</plugins>
83+
</build>
5684
</project>

spring-boot-starters/spring-boot-starter-actuator/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,15 @@
2626
<groupId>org.springframework.boot</groupId>
2727
<artifactId>spring-boot-actuator</artifactId>
2828
</dependency>
29+
<dependency>
30+
<groupId>org.springframework</groupId>
31+
<artifactId>spring-core</artifactId>
32+
<exclusions>
33+
<exclusion>
34+
<groupId>commons-logging</groupId>
35+
<artifactId>commons-logging</artifactId>
36+
</exclusion>
37+
</exclusions>
38+
</dependency>
2939
</dependencies>
3040
</project>

spring-boot-starters/spring-boot-starter-amqp/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,15 @@
2626
<groupId>org.springframework.amqp</groupId>
2727
<artifactId>spring-rabbit</artifactId>
2828
</dependency>
29+
<dependency>
30+
<groupId>org.springframework</groupId>
31+
<artifactId>spring-core</artifactId>
32+
<exclusions>
33+
<exclusion>
34+
<groupId>commons-logging</groupId>
35+
<artifactId>commons-logging</artifactId>
36+
</exclusion>
37+
</exclusions>
38+
</dependency>
2939
</dependencies>
3040
</project>

spring-boot-starters/spring-boot-starter-aop/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,16 @@
2222
<groupId>org.springframework.boot</groupId>
2323
<artifactId>spring-boot-starter</artifactId>
2424
</dependency>
25+
<dependency>
26+
<groupId>org.springframework</groupId>
27+
<artifactId>spring-core</artifactId>
28+
<exclusions>
29+
<exclusion>
30+
<groupId>commons-logging</groupId>
31+
<artifactId>commons-logging</artifactId>
32+
</exclusion>
33+
</exclusions>
34+
</dependency>
2535
<dependency>
2636
<groupId>org.springframework</groupId>
2737
<artifactId>spring-aop</artifactId>

spring-boot-starters/spring-boot-starter-batch/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@
2626
<groupId>org.hsqldb</groupId>
2727
<artifactId>hsqldb</artifactId>
2828
</dependency>
29+
<dependency>
30+
<groupId>org.springframework</groupId>
31+
<artifactId>spring-core</artifactId>
32+
<exclusions>
33+
<exclusion>
34+
<groupId>commons-logging</groupId>
35+
<artifactId>commons-logging</artifactId>
36+
</exclusion>
37+
</exclusions>
38+
</dependency>
2939
<dependency>
3040
<groupId>org.springframework</groupId>
3141
<artifactId>spring-jdbc</artifactId>

spring-boot-starters/spring-boot-starter-data-gemfire/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,16 @@
2727
<groupId>com.gemstone.gemfire</groupId>
2828
<artifactId>gemfire</artifactId>
2929
</dependency>
30+
<dependency>
31+
<groupId>org.springframework</groupId>
32+
<artifactId>spring-core</artifactId>
33+
<exclusions>
34+
<exclusion>
35+
<groupId>commons-logging</groupId>
36+
<artifactId>commons-logging</artifactId>
37+
</exclusion>
38+
</exclusions>
39+
</dependency>
3040
<dependency>
3141
<groupId>org.springframework.data</groupId>
3242
<artifactId>spring-data-gemfire</artifactId>

spring-boot-starters/spring-boot-starter-data-jpa/pom.xml

+14
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
<main.basedir>${basedir}/../..</main.basedir>
1919
</properties>
2020
<dependencies>
21+
<dependency>
22+
<groupId>org.springframework.boot</groupId>
23+
<artifactId>spring-boot-starter</artifactId>
24+
</dependency>
2125
<dependency>
2226
<groupId>org.springframework.boot</groupId>
2327
<artifactId>spring-boot-starter-aop</artifactId>
@@ -30,6 +34,16 @@
3034
<groupId>org.hibernate</groupId>
3135
<artifactId>hibernate-entitymanager</artifactId>
3236
</dependency>
37+
<dependency>
38+
<groupId>org.springframework</groupId>
39+
<artifactId>spring-core</artifactId>
40+
<exclusions>
41+
<exclusion>
42+
<groupId>commons-logging</groupId>
43+
<artifactId>commons-logging</artifactId>
44+
</exclusion>
45+
</exclusions>
46+
</dependency>
3347
<dependency>
3448
<groupId>org.springframework</groupId>
3549
<artifactId>spring-orm</artifactId>

spring-boot-starters/spring-boot-starter-data-mongodb/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@
2626
<groupId>org.mongodb</groupId>
2727
<artifactId>mongo-java-driver</artifactId>
2828
</dependency>
29+
<dependency>
30+
<groupId>org.springframework</groupId>
31+
<artifactId>spring-core</artifactId>
32+
<exclusions>
33+
<exclusion>
34+
<groupId>commons-logging</groupId>
35+
<artifactId>commons-logging</artifactId>
36+
</exclusion>
37+
</exclusions>
38+
</dependency>
2939
<dependency>
3040
<groupId>org.springframework.data</groupId>
3141
<artifactId>spring-data-mongodb</artifactId>

spring-boot-starters/spring-boot-starter-data-rest/pom.xml

+18
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,27 @@
2222
<groupId>org.springframework.boot</groupId>
2323
<artifactId>spring-boot-starter-web</artifactId>
2424
</dependency>
25+
<dependency>
26+
<groupId>org.springframework</groupId>
27+
<artifactId>spring-core</artifactId>
28+
<exclusions>
29+
<exclusion>
30+
<groupId>commons-logging</groupId>
31+
<artifactId>commons-logging</artifactId>
32+
</exclusion>
33+
</exclusions>
34+
</dependency>
2535
<dependency>
2636
<groupId>org.springframework.data</groupId>
2737
<artifactId>spring-data-rest-webmvc</artifactId>
2838
</dependency>
39+
<dependency>
40+
<groupId>com.fasterxml.jackson.core</groupId>
41+
<artifactId>jackson-annotations</artifactId>
42+
</dependency>
43+
<dependency>
44+
<groupId>com.fasterxml.jackson.core</groupId>
45+
<artifactId>jackson-databind</artifactId>
46+
</dependency>
2947
</dependencies>
3048
</project>

spring-boot-starters/spring-boot-starter-data-solr/pom.xml

+14
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,23 @@
2626
<groupId>org.apache.solr</groupId>
2727
<artifactId>solr-solrj</artifactId>
2828
</dependency>
29+
<dependency>
30+
<groupId>org.springframework</groupId>
31+
<artifactId>spring-core</artifactId>
32+
<exclusions>
33+
<exclusion>
34+
<groupId>commons-logging</groupId>
35+
<artifactId>commons-logging</artifactId>
36+
</exclusion>
37+
</exclusions>
38+
</dependency>
2939
<dependency>
3040
<groupId>org.springframework.data</groupId>
3141
<artifactId>spring-data-solr</artifactId>
3242
</dependency>
43+
<dependency>
44+
<groupId>org.apache.httpcomponents</groupId>
45+
<artifactId>httpmime</artifactId>
46+
</dependency>
3347
</dependencies>
3448
</project>

spring-boot-starters/spring-boot-starter-freemarker/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@
2626
<groupId>org.freemarker</groupId>
2727
<artifactId>freemarker</artifactId>
2828
</dependency>
29+
<dependency>
30+
<groupId>org.springframework</groupId>
31+
<artifactId>spring-core</artifactId>
32+
<exclusions>
33+
<exclusion>
34+
<groupId>commons-logging</groupId>
35+
<artifactId>commons-logging</artifactId>
36+
</exclusion>
37+
</exclusions>
38+
</dependency>
2939
<dependency>
3040
<groupId>org.springframework</groupId>
3141
<artifactId>spring-context-support</artifactId>

spring-boot-starters/spring-boot-starter-groovy-templates/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,15 @@
3030
<groupId>org.codehaus.groovy</groupId>
3131
<artifactId>groovy-templates</artifactId>
3232
</dependency>
33+
<dependency>
34+
<groupId>org.springframework</groupId>
35+
<artifactId>spring-core</artifactId>
36+
<exclusions>
37+
<exclusion>
38+
<groupId>commons-logging</groupId>
39+
<artifactId>commons-logging</artifactId>
40+
</exclusion>
41+
</exclusions>
42+
</dependency>
3343
</dependencies>
3444
</project>

spring-boot-starters/spring-boot-starter-hornetq/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,16 @@
2222
<groupId>org.springframework.boot</groupId>
2323
<artifactId>spring-boot-starter</artifactId>
2424
</dependency>
25+
<dependency>
26+
<groupId>org.springframework</groupId>
27+
<artifactId>spring-core</artifactId>
28+
<exclusions>
29+
<exclusion>
30+
<groupId>commons-logging</groupId>
31+
<artifactId>commons-logging</artifactId>
32+
</exclusion>
33+
</exclusions>
34+
</dependency>
2535
<dependency>
2636
<groupId>org.springframework</groupId>
2737
<artifactId>spring-jms</artifactId>

spring-boot-starters/spring-boot-starter-integration/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@
2626
<groupId>org.springframework.boot</groupId>
2727
<artifactId>spring-boot-starter-aop</artifactId>
2828
</dependency>
29+
<dependency>
30+
<groupId>org.springframework</groupId>
31+
<artifactId>spring-core</artifactId>
32+
<exclusions>
33+
<exclusion>
34+
<groupId>commons-logging</groupId>
35+
<artifactId>commons-logging</artifactId>
36+
</exclusion>
37+
</exclusions>
38+
</dependency>
2939
<dependency>
3040
<groupId>org.springframework</groupId>
3141
<artifactId>spring-messaging</artifactId>

0 commit comments

Comments
 (0)