cleanup
[cdmlib.git] / pom.xml
diff --git a/pom.xml b/pom.xml
index 9688aaafb91aa76cd17595b1f3dc6b6b62f65dc9..a70aac7aeb99e268f9fae5f014581c5b8ee08401 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>eu.etaxonomy</groupId>
   <artifactId>cdmlib-parent</artifactId>
-  <version>5.32.0-SNAPSHOT</version>
+  <version>5.43.0-SNAPSHOT</version>
   <name>CDM Library</name>
   <description>The Java implementation of the Common Data Model (CDM), the data model for EDIT's internet platform for cybertaxonomy.</description>
   <url>https://cybertaxonomy.org/cdmlib/</url>
     <module>cdmlib-test</module>
     <module>cdmlib-persistence</module>
     <module>cdmlib-services</module>
+    <module>cdmlib-cache</module>
     <module>cdmlib-ext</module>
     <module>cdmlib-io</module>
     <module>cdmlib-remote</module>
     <module>cdmlib-print</module>
     <module>cdmlib-remote-webapp</module>
-    <module>cdmlib-cache</module>
   </modules>
   <properties>    
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <java.codelevel>1.8</java.codelevel>
     <spring.version>4.3.30.RELEASE</spring.version>                                 <!-- checked 2020-08, further upgrade possible -->
     <spring-security.version>4.2.20.RELEASE</spring-security.version>               <!-- checked 2020-08, further upgrade possible -->
-    <spring-security-oauth2.version>2.5.1.RELEASE</spring-security-oauth2.version>  <!-- checked 2020-08 -->
+    <spring-security-oauth2.version>2.5.2.RELEASE</spring-security-oauth2.version>  <!-- checked 2020-08 -->
     <spring-cloud.version>1.1.3.RELEASE</spring-cloud.version>
        <hibernate.version>5.4.33.Final</hibernate.version>
        <hibernate-validator.version>6.2.3.Final</hibernate-validator.version>          <!-- checked 2020-08 -->
     <hibernate-search.version>5.11.10.Final</hibernate-search.version>
     <lucene.version>5.5.5</lucene.version>
        <unitils.version>3.4.6</unitils.version>
-    <hsqldb.version>2.5.1</hsqldb.version>  <!-- upgrade to 2.6.1 "cannot access Server" in LocalHsqldb during compile time -->
     <httpcomponents.version>4.5.13</httpcomponents.version>
     <doxia.version>1.11.1</doxia.version>                <!-- checked 2021-12 -->
-    <poi.version>5.2.2</poi.version>                    <!-- checked 2020-08 -->
+    <poi.version>5.2.2</poi.version>                    <!-- checked 2022-06 -->
     <jackson.version>2.13.3</jackson.version>           <!-- checked 2022-05 -->
-       <commons-logging.version>1.2</commons-logging.version> <!-- checked 2022-06 -->
-       <slf4j.version>1.7.36</slf4j.version>               <!-- checked 2022-06 -->
+       <!-- CAUTION when upgrading, 1.8x requires another log4j binding: https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/index.html -->
+    <slf4j.version>1.7.36</slf4j.version>               <!-- checked 2022-06 -->
+       <log4j.version>2.19.0</log4j.version>
        <jaxb.version>2.3.3</jaxb.version>                 <!-- checked 2020-08, there is a newer version 3.0.0-MX, not checked if compatible -->
        <cglib.version>3.3.0</cglib.version>
        <aspectj.version>1.9.7</aspectj.version>            <!-- checked 2022-05 -->
        <geotools.version>23.2</geotools.version>           <!-- checked 2020-08 -->
     <dozer.version>6.5.2</dozer.version>                <!-- checked 2021-02 -->
-    <javax.mail.version>1.5.6</javax.mail.version>      <!-- compatible to the one in spring-context-support/4.3.28.RELEASE -->
-    <doclint>none</doclint>   
+    <jakarta.mail.version>1.5.6</jakarta.mail.version>      <!-- compatible to the one in spring-context-support/4.3.28.RELEASE -->
+    <doclint>none</doclint>
   </properties>
   
   <scm>
       <name>JBoss Repository</name>
       <url>https://repository.jboss.org</url>
     </repository>  -->
+    <!-- required for org.geotools:gt-opengis/gt-referencing/gt-epsg-wkt/gt-main -->    
     <repository>
        <id>OSGeo Repository</id>
        <url>https://repo.osgeo.org/repository/release/</url>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
-               <!-- TODO #9919 upgrading to 3.x leads to test failures in model etc. -->
-               <version>2.5.1</version> 
+               <!-- TODO #6407#9919 upgrading to 3.x leads to test failures in model etc. -->
+    <!--   <version>3.10.1</version>  --> 
+        <version>2.5.1</version> 
         <configuration>
           <source>${java.codelevel}</source>
           <target>${java.codelevel}</target>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <version>3.0.0</version>
+        <version>3.1.0</version>
         <executions>
           <execution>
             <id>enforce</id>
           <artifactId>jakarta.activation-api</artifactId>
           <version>1.2.2</version>
       </dependency>
-      <!--  JAB END -->
+      <!--  JAXB END -->
       
          <dependency>
            <!-- only for version management org.apache.ant:ant depends in different versions from 
         <version>${slf4j.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-log4j12</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-         <dependency>
-        <!-- try to generally exclude -nop as we try to use log4j12, this is done already for unitils -->
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-nop</artifactId>
-        <version>${slf4j.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>${log4j.version}</version>
       </dependency>
       <!-- dozer depends on jcl-over-slf4j -->
       <dependency>
         <artifactId>jcl-over-slf4j</artifactId>
         <version>${slf4j.version}</version>
       </dependency>
+      
       <!-- ******* testing ******* -->
       <dependency>
         <groupId>junit</groupId>
         <version>${unitils.version}</version>
         <!-- <scope>test</scope> unscoped since we need this dependency at 
           compile time in persistence for H2DbSupport.java -->
+        <exclusions>
+          <exclusion>
+            <!-- we use jcl-over-slf4j instead -->
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.unitils</groupId>
         <artifactId>unitils-database</artifactId>
         <version>${unitils.version}</version>
-     <!--    <scope>test</scope>  -->
+        <scope>test</scope>
         <exclusions>
           <exclusion>
             <groupId>org.springframework</groupId>
             <artifactId>hibernate</artifactId>
           </exclusion>
           <exclusion>
+            <!-- we use log4j-slf4j-impl -->
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-nop</artifactId>
           </exclusion>
         higher number needed for compatibility with current hibernate and Java 1.6 
         PreparedStatement -->
       <dependency>
+        <!-- currently still needed by cdmlib-persistence, once removed, scope should be set to test -->
         <groupId>commons-dbcp</groupId>
         <artifactId>commons-dbcp</artifactId>
         <version>1.4</version>
         <!-- <scope>test</scope> -->
+      </dependency>
+      <dependency>
+        <!-- currently still needed by cdmlib-persistence commons-dbcp dependency, once removed, scope should be set to test -->
+        <groupId>commons-pool</groupId>
+        <artifactId>commons-pool</artifactId>
+        <version>1.6</version>
+        <!-- <scope>test</scope> -->
       </dependency>
          <dependency>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>cdmlib-test</artifactId>
-     <!--    <scope>test</scope>  -->
+        <scope>test</scope>
                <version>${project.version}</version>
          </dependency>
       <dependency>
       </dependency>
       
       <dependency>
+        <!-- should not be in use anymore -->
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>1.2.17</version>
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-core</artifactId>
-        <version>2.17.2</version>
+        <version>${log4j.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-api</artifactId>
-        <version>2.17.2</version>
+        <version>${log4j.version}</version>
       </dependency>
       
       <dependency>
         <groupId>org.apache.httpcomponents</groupId>
         <artifactId>httpclient</artifactId>
         <version>${httpcomponents.version}</version>
+        <exclusions>
+          <exclusion>
+            <!-- we use jcl-over-slf4j instead -->
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.httpcomponents</groupId>
         <artifactId>commons-codec</artifactId>
         <version>1.15</version>
       </dependency>
-      <!-- only for version management, httpcore:4.2.4, commons-beanutils:1.8.3, 
-        httpclient:4.2.3, spring-modules-cache 
-        require 1.1 and batik-ext requires 1.0.4, so we update here to the latest 
-        version 1.1.2, poi and springframework require 1.1.3 -->
-      <dependency>
-        <groupId>commons-logging</groupId>
-        <artifactId>commons-logging</artifactId>
-        <version>${commons-logging.version}</version>
-      </dependency>
       <!-- only for version management, hibernate-commons-annotations:4.0.1.Final 
         requires 3.1.0.CR2 , so we update 
         here to the latest version 3.4.1.Final -->
         <groupId>commons-beanutils</groupId>
         <artifactId>commons-beanutils</artifactId>
         <version>1.9.4</version>
+        <exclusions>
+          <exclusion>
+            <!-- we use jcl-over-slf4j instead -->
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>net.sf.json-lib</groupId>
         <version>2.4</version>
         <!-- classifier required as json-lib exists on maven central as json-lib-2.4-jdk15.jar and xxx-jdk13.jar, see #9887 -->
         <classifier>jdk15</classifier>
+        <exclusions>
+          <exclusion>
+            <!-- we use jcl-over-slf4j instead -->
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <!-- media  -->
       <dependency>
         <artifactId>iiif-apis</artifactId>
         <version>0.3.9</version>
       </dependency>
-<!--       <dependency> -->
-<!--         only for version management iterators depends in different versions from -->
-<!--               de.digitalcollections.iiif:iiif-apis:0.3.9 -->
-<!--           <groupId>org.dmfs</groupId> -->
-<!--           <artifactId>iterators</artifactId> -->
-<!--           <version>1.5</version> -->
-<!--       </dependency> -->
-      <!--         -->
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-jsr310</artifactId>
+        <version>${jackson.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-parameter-names</artifactId>
+        <version>${jackson.version}</version>
+    </dependency>
       <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi</artifactId>
       </dependency>
       <dependency>
         <groupId>org.apache.poi</groupId>
-        <artifactId>poi-ooxml-schemas</artifactId>
-        <version>4.1.2</version>
+        <artifactId>poi-ooxml</artifactId>
+        <version>${poi.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.poi</groupId>
-        <artifactId>poi-ooxml</artifactId>
+        <artifactId>poi-ooxml-lite</artifactId>
         <version>${poi.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.poi</groupId>
-        <artifactId>ooxml-schemas</artifactId>
-        <version>1.4</version>
+        <artifactId>poi-ooxml-full</artifactId>
+        <version>${poi.version}</version>
+      </dependency>
+      <dependency>
+        <!-- indirect poi-schema and doxia dependency -->
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-classworlds</artifactId>
+        <version>2.6.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-component-annotations</artifactId>
+        <version>2.1.1</version>
       </dependency>
       <!--       <dependency> -->
 <!-- maybe needed in cdmlib-io, see https://poi.apache.org/help/faq.html  question 3 on when to use ooxml-schemas and when poi-ooxml-schemas  -->
       </dependency>
       <dependency>
         <groupId>org.docx4j</groupId>
-        <artifactId>docx4j</artifactId>
-        <version>6.1.2</version>
+        <artifactId>docx4j-JAXB-Internal</artifactId>
+        <version>8.3.7</version>
+      </dependency>
+      <dependency>
+        <!-- dependency of guava and docx4j -->
+        <groupId>com.google.errorprone</groupId>
+        <artifactId>error_prone_annotations</artifactId>
+        <version>2.14.0</version>
       </dependency>
       <dependency>
         <!-- only for version management xalan depends in different versions from 
         <version>2.12.2</version>
         <!-- checked 2022-06 -->
       </dependency>
-      <!-- >batik-ext required by Xerces 2.11.0 for class ElementTraversal, 
-        as this is not included anymore in xml-apis 2.x -->
-<!--       <dependency> -->
-<!--         <groupId>org.apache.xmlgraphics</groupId> -->
-<!--         <artifactId>batik-ext</artifactId> -->
-<!--         <version>1.13</version> -->
-<!--       </dependency> -->
       <dependency> <!-- required by cdmlib-print -->
         <groupId>org.apache.xmlgraphics</groupId>
         <artifactId>fop</artifactId>
         <version>2.7</version>
+        <exclusions>
+          <exclusion>
+            <!-- we use jcl-over-slf4j instead -->
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.odftoolkit</groupId>
       <dependency>
         <groupId>net.sf.saxon</groupId>
         <artifactId>Saxon-HE</artifactId>
-        <version>10.6</version>
+        <version>11.3</version>
       </dependency>
       <!-- ******* http components (ViBRANT)******* -->
       <dependency>
         <artifactId>hibernate-search-engine</artifactId>
         <version>${hibernate-search.version}</version>
       </dependency>
+
       <dependency>
-        <!-- TODO can be removed, not used anymore by hibernate, but still a dependency in 5.4.x -->
-        <groupId>org.javassist</groupId>
-        <artifactId>javassist</artifactId>
-        <version>3.29.0-GA</version>
-      </dependency>
-      <dependency>
+        <!-- used by hibernate as bytecode provider framework -->
         <groupId>net.bytebuddy</groupId>
         <artifactId>byte-buddy</artifactId>
         <version>1.12.10</version>
         <artifactId>jboss-transaction-api_1.2_spec</artifactId>
         <version>1.1.1.Final</version>
       </dependency>
+      <dependency>
+        <!-- dependency of iiif-apis (and still by hibernate but will be removed in v5.6 as hibernate uses bytebuddy)  -->
+        <groupId>org.javassist</groupId>
+        <artifactId>javassist</artifactId>
+        <version>3.29.0-GA</version>
+      </dependency>
 
       <!-- ******* SPRING ******* -->
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-core</artifactId>
         <version>${spring.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <!-- managing version of plexus-utils to avoid multiple versions (3.0.15, 1.4.5) of the artifact -->
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-utils</artifactId>
-       <version>3.4.1</version>
-        <!-- checked 2022-01 -->
+       <version>3.4.2</version>
+        <!-- checked 2022-06 -->
       </dependency>
       <!-- swagger (rest service doc) -->
       <dependency>
       <dependency>
         <groupId>org.mariadb.jdbc</groupId>
         <artifactId>mariadb-java-client</artifactId>
-        <version>3.0.5</version>
+        <version>3.0.6</version>
       </dependency>
       <dependency>
          <groupId>org.postgresql</groupId>
          <artifactId>postgresql</artifactId>
-         <version>42.3.6</version>
+         <version>42.5.1</version>
       </dependency>
          <dependency>
         <groupId>com.h2database</groupId>
         <groupId>com.microsoft.sqlserver</groupId>
         <artifactId>mssql-jdbc</artifactId>
         <version>9.4.1.jre8</version>
-      </dependency>
-         <dependency>
-        <groupId>org.hsqldb</groupId>
-        <artifactId>hsqldb</artifactId>
-        <version>${hsqldb.version}</version>
       </dependency>
       <dependency>
         <!-- SQL Server and Sybase -->
         <!-- Email functionality (used in cdmlib-services) -->
           <groupId>com.sun.mail</groupId>
           <artifactId>javax.mail</artifactId>
-          <version>${javax.mail.version}</version>
+          <version>${jakarta.mail.version}</version>
       </dependency>
       <dependency>
         <!-- only needed for PasswordResetService, may be replaced by Thymeleaf, but also needed in TaxEditor cdmlib modul -->
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-text</artifactId>
-        <version>1.9</version>
+        <version>1.10.0</version>
       </dependency>
       <dependency>
         <groupId>org.passay</groupId>