pom.xml
Rama master · réplica de lectura del repositorio original.
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.openolat</groupId>
<artifactId>openolat-lms</artifactId>
<version>21.2-SNAPSHOT</version>
<packaging>war</packaging>
<name>OpenOLAT LMS</name>
<url>https://www.openolat.com</url>
<description>
Welcome to the OpenOLAT (Open Online Learning And Training) Developer Project Site. This site
contains materials chiefly of concern to developers (e.g., unit testing and SCA output etc.)
and is rebuilt periodically on a regular basis. The site structure is divided between
project information (e.g., infrastructure, mailing lists, repositories etc.) and reports
(e.g., unit testing, SCAs etc.)
</description>
<organization>
<name>OpenOLAT</name>
<url>https://www.openolat.com</url>
</organization>
<licenses>
<license>
<name>Apache 2.0 Open Source L6icense</name>
<url>http://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>manual</distribution>
<comments>OpenOLAT 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.</comments>
</license>
</licenses>
<distributionManagement>
<repository>
<id>nexus.openolat</id>
<name>OpenOLAT Internal Nexus Release Repository</name>
<url>https://nexus.openolat.org/nexus/content/repositories/openolat</url>
</repository>
<snapshotRepository>
<id>nexus.openolat</id>
<name>OpenOLAT Internal Nexus Snapshot Repository</name>
<url>https://nexus.openolat.org/nexus/content/repositories/openolat-snapshots</url>
</snapshotRepository>
</distributionManagement>
<issueManagement>
<system>YouTrack</system>
<url>https://track.frentix.com</url>
</issueManagement>
<scm>
<url>https://github.com/OpenOLAT/OpenOLAT</url>
<connection>scm:git:git://github.com/OpenOLAT/OpenOLAT.git</connection>
<developerConnection>scm:git:git@github.com:OpenOLAT/OpenOLAT.git</developerConnection>
</scm>
<mailingLists>
<mailingList>
<name>openolat</name>
<subscribe>https://groups.google.com/forum/#!forum/openolat</subscribe>
<post>openolat@googlegroups.com</post>
<archive>https://groups.google.com/forum/#!forum/openolat</archive>
</mailingList>
</mailingLists>
<!-- Unless otherwise explicitly stated the character encoding for all resources
(e.g., source, test etc.) will be UTF-8. This can be overriden at the plugin
level if necessary. -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<targetJdk>25</targetJdk>
<archive>true</archive>
<attach.classes>false</attach.classes>
<!-- Dependency versions -->
<org.springframework.version>7.0.10</org.springframework.version>
<org.hibernate.version>7.4.14.Final</org.hibernate.version>
<org.hibernate.validator.version>9.1.6.Final</org.hibernate.validator.version>
<org.glassfish.jaxb.runtime>4.0.9</org.glassfish.jaxb.runtime>
<apache.cxf>4.2.4</apache.cxf>
<apache.pdfbox>3.0.8</apache.pdfbox>
<apache.poi>6.0.0</apache.poi>
<apache.log4j>2.26.1</apache.log4j>
<org.slf4j>2.0.20</org.slf4j>
<org.bouncycastle>1.86</org.bouncycastle>
<io.jsonwebtoken>0.13.0</io.jsonwebtoken>
<io.undertow>2.4.4.Final</io.undertow>
<io.undertow.ee>2.0.3.Final</io.undertow.ee>
<jackson.version>2.23.0</jackson.version>
<jackson.annotations.version>2.23</jackson.annotations.version>
<swagger.ui.version>5.34.1</swagger.ui.version>
<org.postgresql.version>42.7.14</org.postgresql.version>
<org.infinispan.version>16.3.1</org.infinispan.version>
<lucene.version>7.7.0</lucene.version>
<version.selenium>4.52.0</version.selenium>
<activemq.artemis.version>2.57.0</activemq.artemis.version>
<jakarta.jms.api>3.1.0</jakarta.jms.api>
<jakarta.xml.bind-api>4.0.5</jakarta.xml.bind-api>
<jakarta.xml.ws-api>4.0.3</jakarta.xml.ws-api>
<qtiworks.version>1.0.37</qtiworks.version>
<org.commonmark>0.32.0</org.commonmark>
<dev.langchain4j>1.23.0</dev.langchain4j>
<mcp.sdk.version>2.1.0</mcp.sdk.version>
<!-- properties for testing and Q&A -->
<!-- by default no tests are executed so far (April 2011). Use appropriate profiles and properties on the command line -->
<!-- properties to define the testing environment -->
<test.env>postgresql</test.env>
<!-- olat.local.properties to distinguish multiple single and cluster olat instances on a single machine-->
<test.env.db.name>olattest</test.env.db.name>
<test.env.db.postgresql.user>postgres</test.env.db.postgresql.user>
<test.env.db.postgresql.pass>postgres</test.env.db.postgresql.pass>
<test.env.db.postgresql.host>localhost</test.env.db.postgresql.host>
<test.env.db.postgresql.host.port>5432</test.env.db.postgresql.host.port>
<test.env.db.oracle.name>orcl</test.env.db.oracle.name>
<test.env.db.oracle.user>OLATTEST</test.env.db.oracle.user>
<test.env.db.oracle.pass>olat00002</test.env.db.oracle.pass>
<test.env.db.oracle.host>localhost</test.env.db.oracle.host>
<test.env.db.oracle.host.port>1521</test.env.db.oracle.host.port>
<test.env.azure.adfs.enabled>false</test.env.azure.adfs.enabled>
<test.env.azure.adfs.client.id></test.env.azure.adfs.client.id>
<test.env.azure.adfs.client.secret></test.env.azure.adfs.client.secret>
<test.env.azure.adfs.tenant></test.env.azure.adfs.tenant>
<test.env.azure.adfs.refresh.token></test.env.azure.adfs.refresh.token>
<test.env.instance.id>myolat</test.env.instance.id>
<test.env.webdriver.browser>chrome</test.env.webdriver.browser>
<skipTests>true</skipTests>
<skipSeleniumTests>false</skipSeleniumTests>
</properties>
<profiles>
<profile>
<id>compressjs</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/generated-webapp/static</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/webapp/static</directory>
<filtering>true</filtering>
<includes>
<include>**/*.css</include>
<include>**/*.js</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.primefaces.extensions</groupId>
<artifactId>resources-optimizer-maven-plugin</artifactId>
<version>2.6.2</version>
<executions>
<execution>
<id>optimize</id>
<phase>prepare-package</phase>
<goals>
<goal>optimize</goal>
</goals>
</execution>
</executions>
<configuration>
<compilationLevel>SIMPLE_OPTIMIZATIONS</compilationLevel>
<warningLevel>DEFAULT</warningLevel>
<failOnWarning>false</failOnWarning>
<suffix>.min</suffix>
<useDataUri>false</useDataUri>
<languageIn>ECMASCRIPT_2015</languageIn>
<languageOut>ECMASCRIPT_2015</languageOut>
<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
<resourcesSets>
<!-- Movie player -->
<resourceSet>
<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
<includes>
<include>movie/player.js</include>
</includes>
<aggregations>
<aggregation>
<withoutCompress>false</withoutCompress>
<outputFile>${project.basedir}/src/main/webapp/static/movie/player.min.js</outputFile>
</aggregation>
</aggregations>
</resourceSet>
<!-- Plugins -->
<resourceSet>
<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
<includes>
<include>bootstrap/javascripts/bootstrap/alert.js</include>
<include>bootstrap/javascripts/bootstrap/button.js</include>
<include>bootstrap/javascripts/bootstrap/collapse.js</include>
<include>bootstrap/javascripts/bootstrap/dropdown.js</include>
<include>bootstrap/javascripts/bootstrap/tab.js</include>
<include>bootstrap/javascripts/bootstrap/transition.js</include>
<include>bootstrap/javascripts/bootstrap/modal.js</include>
<include>bootstrap/javascripts/bootstrap/tooltip.js</include>
<include>bootstrap/javascripts/bootstrap/popover.js</include>
<include>js/jquery/periodic/jquery.periodic.js</include>
<include>js/jshashtable-2.1_src.js</include>
<include>js/jquery/openolat/jquery.translator.js</include>
<include>js/jquery/openolat/jquery.navbar.js</include>
<include>js/jquery/openolat/jquery.bgcarrousel.js</include>
<include>js/jquery/transit/jquery.transit.js</include>
<include>js/openolat/textarea.js</include>
<include>js/openolat/resize.js</include>
<include>js/edusharing/edusharing.js</include>
<include>js/tinymce4/tinymce/jquery.tinymce.min.js</include>
<include>js/functions.js</include>
</includes>
<aggregations>
<aggregation>
<withoutCompress>false</withoutCompress>
<outputFile>${project.basedir}/src/main/webapp/static/js/js.plugins.min.js</outputFile>
</aggregation>
</aggregations>
</resourceSet>
<resourceSet>
<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
<includes>
<include>js/datepicker/datepicker.css</include>
<include>js/jquery/cropper/cropper.min.css</include>
<include>js/jquery/sliderpips/jquery-ui-slider-pips.css</include>
<include>js/jquery/ui/jquery-ui-1.13.2.custom.min.css</include>
<include>js/dragula/dragula.min.css</include>
<include>js/swiper/swiper-bundle.min.css</include>
</includes>
<aggregations>
<aggregation>
<withoutCompress>false</withoutCompress>
<outputFile>${project.basedir}/src/main/webapp/static/js/js.plugins.min.css</outputFile>
</aggregation>
</aggregations>
</resourceSet>
<!-- QTI 2.1 qtiAutosave, qtiTimer are loaded separately -->
<resourceSet>
<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
<includes>
<include>js/jquery/qti/jquery.associate.js</include>
<include>js/jquery/qti/jquery.choice.js</include>
<include>js/jquery/qti/jquery.gapMatch.js</include>
<include>js/jquery/qti/jquery.graphicAssociate.js</include>
<include>js/jquery/qti/jquery.graphicGap.js</include>
<include>js/jquery/qti/jquery.graphicOrder.js</include>
<include>js/jquery/qti/jquery.hotspot.js</include>
<include>js/jquery/qti/jquery.hotspot.responsive.js</include>
<include>js/jquery/qti/jquery.match.js</include>
<include>js/jquery/qti/jquery.match_dnd.js</include>
<include>js/jquery/qti/jquery.order.js</include>
<include>js/jquery/qti/jquery.positionObject.js</include>
<include>js/jquery/qti/jquery.selectPoint.js</include>
<include>js/jquery/qti/jquery.slider.js</include>
<include>js/jquery/qti/jquery.qtiCopyPaste.js</include>
<include>js/jquery/qti/jquery.countWords.js</include>
<include>js/jquery/openolat/jquery.paint.v2.js</include>
</includes>
<aggregations>
<aggregation>
<withoutCompress>false</withoutCompress>
<outputFile>${project.basedir}/src/main/webapp/static/js/jquery/qti/jquery.qti.min.js</outputFile>
</aggregation>
</aggregations>
</resourceSet>
<!-- Statistics -->
<resourceSet>
<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
<includes>
<include>js/jquery/openolat/jquery.statistics.chart.js</include>
</includes>
<aggregations>
<aggregation>
<withoutCompress>false</withoutCompress>
<outputFile>${project.basedir}/src/main/webapp/static/js/jquery/openolat/jquery.statistics.chart.min.js</outputFile>
</aggregation>
</aggregations>
</resourceSet>
<!-- Portfolio timeline -->
<resourceSet>
<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
<includes>
<include>js/jquery/openolat/jquery.timeline.js</include>
</includes>
<aggregations>
<aggregation>
<withoutCompress>false</withoutCompress>
<outputFile>${project.basedir}/src/main/webapp/static/js/jquery/openolat/jquery.timeline.min.js</outputFile>
</aggregation>
</aggregations>
</resourceSet>
</resourcesSets>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- This is the default build which had all dependencies needed by tomcat -->
<profile>
<id>tomcat</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
<version>${apache.log4j}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-layout-template-json</artifactId>
<version>${apache.log4j}</version>
</dependency> <!-- Apache CXF for tomcat -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${apache.cxf}</version>
<exclusions>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${apache.cxf}</version>
<exclusions>
<exclusion>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${apache.cxf}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-http-sci</artifactId>
<version>${apache.cxf}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-service-description-openapi-v3</artifactId>
<version>${apache.cxf}</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>swagger-ui</artifactId>
<version>${swagger.ui.version}</version>
</dependency>
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>${jakarta.xml.ws-api}</version>
</dependency>
<dependency>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
<version>3.0.6</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-core</artifactId>
<version>${org.hibernate.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${org.hibernate.validator.version}</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-hibernate-cache-v66</artifactId>
<version>${org.infinispan.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-hikaricp</artifactId>
<version>${org.hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
<version>${org.infinispan.version}</version>
<exclusions>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${org.postgresql.version}</version>
<exclusions>
<exclusion>
<groupId>com.github.dblock.waffle</groupId>
<artifactId>waffle-jna</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>${jakarta.jms.api}</version>
</dependency>
<dependency>
<groupId>org.apache.artemis</groupId>
<artifactId>artemis-jakarta-client</artifactId>
<version>${activemq.artemis.version}</version>
</dependency>
<dependency>
<groupId>org.apache.artemis</groupId>
<artifactId>artemis-jakarta-server</artifactId>
<version>${activemq.artemis.version}</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>${jakarta.xml.bind-api}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${org.glassfish.jaxb.runtime}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp-tomcat</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources/org/infinispan/hibernate/cache/commons/builder/</directory>
<targetPath>WEB-INF/classes/org/infinispan/hibernate/cache/commons/builder/</targetPath>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources/</directory>
<targetPath>WEB-INF/classes/</targetPath>
<filtering>false</filtering>
<includes>
<include>broker-oo.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- This is a build which deliver a WAR for JBoss EAP, simple installation -->
<profile>
<id>jbosseap</id>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>${apache.log4j}</version>
</dependency>
<!-- Apache CXF for tomcat -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${apache.cxf}</version>
<exclusions>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${apache.cxf}</version>
<exclusions>
<exclusion>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${apache.cxf}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-service-description-openapi-v3</artifactId>
<version>${apache.cxf}</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>swagger-ui</artifactId>
<version>${swagger.ui.version}</version>
</dependency>
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>${jakarta.xml.ws-api}</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-core</artifactId>
<version>${org.hibernate.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${org.hibernate.validator.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${org.hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-hibernate-cache-v66</artifactId>
<version>${org.infinispan.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-hikaricp</artifactId>
<version>${org.hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core-jakarta</artifactId>
<version>${org.infinispan.version}</version>
<exclusions>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>${jakarta.jms.api}</version>
</dependency>
<dependency>
<groupId>org.apache.artemis</groupId>
<artifactId>artemis-jakarta-client</artifactId>
<version>${activemq.artemis.version}</version>
</dependency>
<dependency>
<groupId>org.apache.artemis</groupId>
<artifactId>artemis-jakarta-server</artifactId>
<version>${activemq.artemis.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp-jbosseap</directory>
<filtering>false</filtering>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- This is only to play with an optimized WAR to cluster OpenOlat, highly experimental, never used in production -->
<profile>
<id>wildfly</id>
<dependencies>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>${jakarta.jms.api}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-core</artifactId>
<version>${org.hibernate.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${org.hibernate.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-hibernate-cache-v66</artifactId>
<version>${org.infinispan.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
<version>${org.infinispan.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${org.postgresql.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp-wildfly</directory>
<filtering>false</filtering>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>postgresqlunittests</id>
<activation>
<property>
<name>with-postgresql</name>
</property>
</activation>
<properties>
<testFailureIgnore>false</testFailureIgnore>
<test.env>postgresql</test.env>
<skipTests>false</skipTests>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources-4-postgresqlunittests</id>
<phase>generate-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/test-classes</outputDirectory>
<resources>
<resource>
<!-- place resources you like to get filtered an copied -->
<directory>src/test/profile/${test.env}</directory>
<includes>
<include>olat.local.properties</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<!-- place resources you like to get filtered an copied -->
<directory>src/main/resources/database/postgresql</directory>
<includes>
<include>setupDatabase.sql</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.5</version>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${org.postgresql.version}</version>
<exclusions>
<exclusion>
<groupId>com.github.dblock.waffle</groupId>
<artifactId>waffle-jna</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!-- common configuration shared by all executions -->
<configuration>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/${test.env.db.name}</url>
<username>${test.env.db.postgresql.user}</username>
<password>${test.env.db.postgresql.pass}</password>
</configuration>
<executions>
<execution>
<id>drop-postgresql-db-before-test</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<!-- need another database to drop the targeted one -->
<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
<autocommit>true</autocommit>
<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
<!-- ignore error when database is not avaiable -->
<onError>continue</onError>
</configuration>
</execution>
<execution>
<id>create-postgresql-db</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
<!-- no transaction -->
<autocommit>true</autocommit>
<sqlCommand>create database ${test.env.db.name}</sqlCommand>
</configuration>
</execution>
<execution>
<id>create-postgresql-schema</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<srcFiles>
<srcFile>target/test-classes/setupDatabase.sql</srcFile>
</srcFiles>
</configuration>
</execution>
<!-- drop db after test -->
<execution>
<id>drop-postgresql-db-after-test</id>
<!-- there is no post-test phase, the next phase after "test" is "prepare-package"
for integration tests running against PostgreSQL generated via setupDatabase.sql
there is need to bind a similar drop/create/schema/drop to pre-integration-test
and post-integration-test -->
<phase>prepare-package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
<autocommit>true</autocommit>
<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
</configuration>
</execution>
<!-- Same for integration tests -->
<execution>
<id>drop-postgresql-db-before-integtration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<!-- need another database to drop the targeted one -->
<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
<autocommit>true</autocommit>
<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
<!-- ignore error when database is not avaiable -->
<onError>continue</onError>
</configuration>
</execution>
<execution>
<id>create-postgresql-db-before-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
<!-- no transaction -->
<autocommit>true</autocommit>
<sqlCommand>create database ${test.env.db.name}</sqlCommand>
</configuration>
</execution>
<execution>
<id>create-postgresql-schema-before-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<srcFiles>
<srcFile>target/test-classes/setupDatabase.sql</srcFile>
</srcFiles>
</configuration>
</execution>
<!-- drop db after test -->
<execution>
<id>drop-postgresql-db-after-integration-test</id>
<phase>post-integration-test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
<autocommit>true</autocommit>
<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>oracleunittests</id>
<activation>
<property>
<name>with-oracle</name>
</property>
</activation>
<properties>
<testFailureIgnore>false</testFailureIgnore>
<test.env>oracle</test.env>
<skipTests>false</skipTests>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources-4-oracleunittests</id>
<phase>generate-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/test-classes</outputDirectory>
<resources>
<resource>
<!-- place resources you like to get filtered an copied -->
<directory>src/test/profile/${test.env}</directory>
<includes>
<include>olat.local.properties</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<!-- place resources you like to get filtered an copied -->
<directory>src/main/resources/database/oracle</directory>
<includes>
<include>setupDatabase.sql</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
</dependencies>
</profile>
</profiles>
<repositories>
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>https://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>openolat-repo</id>
<name>OpenOLAT Public Maven Repository Group</name>
<url>https://nexus.openolat.org/nexus/content/groups/public</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</repository>
<repository>
<id>sonatype-snapshot</id>
<name>Sonatype Snapshot</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</repository>
</repositories>
<build>
<!-- Useful maven commands: o mvn dependency:tree - check to see what other
dependencies get downloaded by an artifact o Maven lifecycle: Each phase
of the lifecycle can also be called independent - e.g. mvn process-resources
- http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
o mvn versions:display-plugin-updates (find updates to maven plugins) o mvn
versions:use-latest-versions (automatically update dependencies. WARNING!!!)
o mvn versions:display-dependency-updates (shows updates for dependencies)
o mvn help:effective-pom - displays the computed pom, where you will see
what is getting executed after expanding vars and plugin settings -->
<resources>
<!-- as long as we have resources like html, css, js in the src/main/java
tree we need these two entries. the first tells maven to treat the java folder
as the resource folder but not to copy the java files. The later tell maven
that we have an other resource folder which is normally the default -->
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
<exclude>**/*.vsd</exclude>
<exclude>**/*.odg</exclude>
<exclude>**/*.odt</exclude>
<exclude>**/*.pdf</exclude>
<exclude>**/*.graffle</exclude>
<exclude>**/doc-files/**</exclude>
<exclude>**/propertyHandlers.jpg</exclude>
<exclude>**/package.html</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<!-- when enabled resources will be searched and variables replaces with
values -->
<filtering>false</filtering>
<excludes>
<exclude>log4j2.xml</exclude>
</excludes>
</resource>
</resources>
<testResources>
<!-- Same comment as for src/main/java also applies to src/test/java -->
<testResource>
<directory>src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
<testResource>
<directory>src/test/resources</directory>
<!-- when enabled resources will be searched and variables replaces with values -->
<filtering>true</filtering>
</testResource>
</testResources>
<plugins>
<!-- Set the build number from git -->
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.2.5</version>
<executions>
<execution>
<id>get-the-git-infos</id>
<goals>
<goal>revision</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
<configuration>
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<!-- Copy the notice.txt file -->
<execution>
<id>copy-notices-txt</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target name="copy notice.txt to web project">
<copy file="${project.basedir}/NOTICE.TXT"
tofile="${project.build.outputDirectory}/NOTICE.TXT"/>
</target>
</configuration>
</execution>
<!-- Download tomcat for integration test -->
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<mkdir dir="${project.build.directory}/downloads" />
<get src="https://nexus.openolat.org/nexus/content/repositories/openolat/org/apache/tomcat/apache-tomcat-arq/11.0.27/apache-tomcat-arq-11.0.27.zip" dest="${project.build.directory}/downloads" verbose="true" skipexisting="true" />
<unzip src="${project.build.directory}/downloads/apache-tomcat-arq-11.0.27.zip" dest="${project.build.directory}/arq-apache-tomcat-11.0.27" />
</target>
</configuration>
</execution>
</executions>
</plugin>
<!-- Unit tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.4</version>
<configuration>
<encoding>UTF-8</encoding>
<skipTests>${skipTests}</skipTests>
<argLine>-Xmx2048m -Xms256m -Djava.awt.headless=true -Djava.security.egd=file:/dev/urandom</argLine>
<systemPropertyVariables>
<java.io.tmpdir>${project.build.directory}/olatdata</java.io.tmpdir>
</systemPropertyVariables>
<trimStackTrace>false</trimStackTrace>
<testNGArtifactName>none:none</testNGArtifactName>
<includes>
<include>org/olat/test/AllTestsJunit4.java</include>
<include>org/olat/test/QtiWorksTests.java</include>
</includes>
</configuration>
</plugin>
<!-- Selenium tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.5.4</version>
<configuration>
<encoding>UTF-8</encoding>
<skipITs>${skipSeleniumTests}</skipITs>
<skipTests>${skipSeleniumTests}</skipTests>
<reuseForks>true</reuseForks>
<argLine>-Xmx2048m -Xms256m -Djava.awt.headless=true -Djava.security.egd=file:/dev/urandom</argLine>
<trimStackTrace>false</trimStackTrace>
<systemPropertyVariables>
<profile>${test.env}</profile>
<test.env.db.name>${test.env.db.name}</test.env.db.name>
<test.env.db.postgresql.user>${test.env.db.postgresql.user}</test.env.db.postgresql.user>
<test.env.db.postgresql.pass>${test.env.db.postgresql.pass}</test.env.db.postgresql.pass>
<test.env.db.postgresql.host.port>${test.env.db.postgresql.host.port}</test.env.db.postgresql.host.port>
<test.env.instance.id>${test.env.instance.id}</test.env.instance.id>
<test.env.azure.adfs.enabled>${test.env.azure.adfs.enabled}</test.env.azure.adfs.enabled>
<test.env.azure.adfs.client.id>${test.env.azure.adfs.client.id}</test.env.azure.adfs.client.id>
<test.env.azure.adfs.client.secret>${test.env.azure.adfs.client.secret}</test.env.azure.adfs.client.secret>
<test.env.azure.adfs.tenant>${test.env.azure.adfs.tenant}</test.env.azure.adfs.tenant>
<test.env.azure.adfs.refresh.token>${test.env.azure.adfs.refresh.token}</test.env.azure.adfs.refresh.token>
<arquillian.launch>tomcat-10-managed</arquillian.launch>
<webdriver.browser>${test.env.webdriver.browser}</webdriver.browser>
</systemPropertyVariables>
<testNGArtifactName>none:none</testNGArtifactName>
<includes>
<include>org/olat/selenium/*Test.java</include>
</includes>
</configuration>
<executions>
<execution>
<id>selenium-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>selenium-verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- OLAT requires JDK 1.8 or later ! -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.1</version>
<configuration>
<release>${targetJdk}</release>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.4.0</version>
<configuration>
<attachClasses>${attach.classes}</attachClasses>
<archiveClasses>${archive}</archiveClasses>
<directory>src/main/java</directory>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Build-Change-Set>${git.commit.id}</Build-Change-Set>
<Build-Change-Set-Date>${git.commit.time}</Build-Change-Set-Date>
<Build-Revision-Number>${git.commit.id.abbrev}</Build-Revision-Number>
<Implementation-Build>${buildNumber}</Implementation-Build>
</manifestEntries>
</archive>
<warSourceExcludes>**/*.pxm, **/*.psd, **/*.sh, **/*.README</warSourceExcludes>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<filtering>false</filtering>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.8,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<versionRange>[1.5,)</versionRange>
<goals>
<goal>execute</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<!-- The Eclipse plugin is only of interest to developers and requires
that WTP be installed. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<linkedResources>
<linkedResource>
<name>/src/main/java/olat.local.properties</name>
<type>1</type>
<location>${basedir}/olat.local.properties</location>
</linkedResource>
<linkedResource>
<name>/src/test/java/olat.local.properties</name>
<type>1</type>
<location>${basedir}/src/test/profile/postgresql/olat.local.properties</location>
</linkedResource>
</linkedResources>
<wtpversion>2.0</wtpversion>
<!-- context name for servlet container e.g. localhost:8080/olat -->
<wtpContextName>olat</wtpContextName>
<downloadSources>true</downloadSources>
<additionalConfig>
<file>
<name>.settings/org.eclipse.core.resources.prefs</name>
<content>
<![CDATA[eclipse.preferences.version=1
encoding/<project>=UTF-8]]>
</content>
</file>
</additionalConfig>
</configuration>
</plugin>
<!-- reporting i.e., the site goal requires a more recent plugin version -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.6.1</version>
<executions>
<execution>
<id>show-versions</id>
<phase>validate</phase>
<goals>
<goal>display-info</goal>
</goals>
</execution>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.0.5</version>
</requireMavenVersion>
<requireJavaVersion>
<version>25+</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- Dependency checks -->
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>12.1.6</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<rulesUri>file://${basedir}/scripts/version-rules.xml</rulesUri>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- check with mvn dependency:tree to see what other dep. get downloaded -->
<dependencies>
<dependency>
<groupId>org.apache.artemis</groupId>
<artifactId>artemis-jakarta-client</artifactId>
<version>${activemq.artemis.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.artemis</groupId>
<artifactId>artemis-jakarta-server</artifactId>
<version>${activemq.artemis.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Used by SCORM implementation -->
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
<version>2.12</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis-ext</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<!-- Used by at least commons-validator -->
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<!-- Used by email address validator -->
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.11.0</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
</exclusion>
<exclusion>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!-- Used by at least commons-fileupload, webdriver -->
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.22.0</version>
</dependency>
<dependency>
<groupId>org.openolat</groupId>
<artifactId>jcodec</artifactId>
<version>0.2.5.1</version>
</dependency>
<dependency>
<groupId>org.openolat</groupId>
<artifactId>jcodec-javase</artifactId>
<version>0.2.5.1</version>
</dependency>
<dependency>
<groupId>org.mnode.ical4j</groupId>
<artifactId>ical4j-zoneinfo-outlook</artifactId>
<version>2.2.0</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mnode.ical4j</groupId>
<artifactId>ical4j</artifactId>
<version>4.3.0</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.openolat.jamwiki</groupId>
<artifactId>jamwiki-core</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>org.openolat</groupId>
<artifactId>openmeetingws</artifactId>
<version>3.0.8.jee9</version>
</dependency>
<dependency>
<groupId>org.openolat</groupId>
<artifactId>viterows</artifactId>
<version>10.3.1</version>
</dependency>
<dependency>
<groupId>org.dhatim</groupId>
<artifactId>fastexcel-reader</artifactId>
<version>0.20.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${apache.poi}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>${apache.poi}</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>${apache.pdfbox}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>xmpbox</artifactId>
<version>${apache.pdfbox}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark</artifactId>
<version>${org.commonmark}</version>
</dependency>
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark-ext-gfm-tables</artifactId>
<version>${org.commonmark}</version>
</dependency>
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark-ext-gfm-strikethrough</artifactId>
<version>${org.commonmark}</version>
</dependency>
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark-ext-task-list-items</artifactId>
<version>${org.commonmark}</version>
</dependency>
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark-ext-autolink</artifactId>
<version>${org.commonmark}</version>
</dependency>
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark-ext-footnotes</artifactId>
<version>${org.commonmark}</version>
</dependency>
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark-ext-image-attributes</artifactId>
<version>${org.commonmark}</version>
</dependency>
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark-ext-yaml-front-matter</artifactId>
<version>${org.commonmark}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcjmail-jdk18on</artifactId>
<version>${org.bouncycastle}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>${org.bouncycastle}</version>
</dependency>
<dependency>
<groupId>com.github.scribejava</groupId>
<artifactId>scribejava-apis</artifactId>
<version>8.3.3</version>
</dependency>
<dependency>
<groupId>com.webauthn4j</groupId>
<artifactId>webauthn4j-core</artifactId>
<version>0.30.3.RELEASE</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>${io.jsonwebtoken}</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>${io.jsonwebtoken}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>${io.jsonwebtoken}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>2.0.6</version>
<exclusions>
<exclusion>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
</exclusion>
<exclusion>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</exclusion>
<exclusion>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>fmath</groupId>
<artifactId>fmath-latex-mathml</artifactId>
<version>3.1</version>
<!-- need org.jdom2 2.0.6 -->
</dependency>
<dependency>
<groupId>jgrapht</groupId>
<artifactId>jgrapht</artifactId>
<version>0.6.0</version>
</dependency>
<!-- Start dependency to qtiworks -->
<dependency>
<groupId>org.openolat.qtiworks</groupId>
<artifactId>qtiworks-jqtiplus</artifactId>
<version>${qtiworks.version}</version>
</dependency>
<dependency>
<groupId>org.openolat.qtiworks</groupId>
<artifactId>qtiworks-jqtiplus</artifactId>
<version>${qtiworks.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openolat.qtiworks</groupId>
<artifactId>qtiworks-samples</artifactId>
<version>${qtiworks.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openolat.qtiworks</groupId>
<artifactId>qtiworks-samples</artifactId>
<version>${qtiworks.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<!-- End dependency to qtiworks -->
<dependency>
<groupId>org.openolat.imscp</groupId>
<artifactId>manifest</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome</artifactId>
<version>2.1.0</version>
<exclusions>
<exclusion>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- logging stuff -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${apache.log4j}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
<version>${apache.log4j}</version>
</dependency>
<!-- Replace commons-logging -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>${apache.log4j}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${apache.log4j}</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>4.0.0</version><!-- Log4j2 is not compatible with 4.0 -->
</dependency>
<!-- basic LTI stuff for lti demo: http://www.imsglobal.org/toolsinteroperability2.cfm -->
<dependency>
<groupId>org.sakaiproject.basiclti</groupId>
<artifactId>basiclti-util</artifactId>
<version>2.10.3</version>
</dependency>
<!-- J2EE dependencies but provided -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.websocket</groupId>
<artifactId>jakarta.websocket-api</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.websocket</groupId>
<artifactId>jakarta.websocket-client-api</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>${jakarta.jms.api}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
<version>2.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>${jakarta.xml.ws-api}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
<version>6.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.el</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>${jakarta.xml.bind-api}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${org.glassfish.jaxb.runtime}</version>
<scope>test</scope>
</dependency>
<!-- core dependencies -->
<dependency>
<groupId>nu.validator</groupId>
<artifactId>htmlparser</artifactId>
<version>1.4.16</version>
</dependency>
<dependency>
<groupId>com.googlecode.owasp-java-html-sanitizer</groupId>
<artifactId>owasp-java-html-sanitizer</artifactId>
<version>20261107.1</version>
</dependency>
<dependency>
<groupId>org.w3c.css</groupId>
<artifactId>sac</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-css</artifactId>
<version>1.20</version>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis-ext</artifactId>
</exclusion>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-util</artifactId>
<version>1.20</version>
</dependency>
<dependency>
<groupId>de.java2html</groupId>
<artifactId>java2html</artifactId>
<version>5.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.16</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.14</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.21.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.15.0</version>
</dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.12.0</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
<version>${org.infinispan.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-core</artifactId>
<version>${org.hibernate.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${org.hibernate.validator.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-hibernate-cache-v66</artifactId>
<version>${org.infinispan.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-component-annotations</artifactId>
<version>${org.infinispan.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-hikaricp</artifactId>
<version>${org.hibernate.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20260814</version>
</dependency>
<dependency>
<groupId>jazzlib</groupId>
<artifactId>jazzlib</artifactId>
<version>0.0.6</version> <!-- do not replace with 0.0.7 as this version is highly patched. -->
<classifier>patched</classifier>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.5.2</version>
<exclusions>
<exclusion>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
</exclusion>
<exclusion>
<groupId>com.mchange</groupId>
<artifactId>mchange-commons-java</artifactId>
</exclusion>
<exclusion>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP-java7</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.21</version>
</dependency>
<dependency>
<groupId>org.eclipse.angus</groupId>
<artifactId>angus-mail</artifactId>
<version>2.0.5</version>
</dependency>
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<version>10.10</version>
</dependency>
<dependency>
<groupId>com.neemsoft</groupId>
<artifactId>jmep</artifactId>
<version>unknown</version>
<classifier>patched</classifier> <!-- unknown patched version of jmep (java mathematical expression parser)[http://jmep.tigris.org/],
do not replace unless you know what you do! -->
</dependency>
<!-- Microsoft Graph -->
<dependency>
<groupId>com.microsoft.graph</groupId>
<artifactId>microsoft-graph</artifactId>
<version>6.72.0</version>
<exclusions>
<exclusion>
<groupId>javax.xml.stream</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.26.0</version>
<exclusions>
<exclusion>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.19.0</version>
</dependency>
<!-- End Microsoft Graph -->
<!-- Lucene dependencies -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-highlighter</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-suggest</artifactId>
<version>${lucene.version}</version>
</dependency>
<!-- End lucene dependencies -->
<!-- Spring dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
<exclusions>
<exclusion><!-- use jlc-over-slfj because we still use log4j version 1.2 -->
<groupId>org.springframework</groupId>
<artifactId>spring-jcl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
<exclusions>
<exclusion>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- end Spring dependencies -->
<!-- Start Apache CXF dependency and Active MQ Broker -->
<dependency>
<groupId>com.fasterxml.jackson.jakarta.rs</groupId>
<artifactId>jackson-jakarta-rs-base</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jakarta.rs</groupId>
<artifactId>jackson-jakarta-rs-json-provider</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.annotations.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-cbor</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- end Apache CXF dependency and Active MQ Broker -->
<!-- paypal -->
<dependency>
<groupId>com.paypal.sdk</groupId>
<artifactId>checkout-sdk</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.paypal.sdk</groupId>
<artifactId>rest-api-sdk</artifactId>
<version>1.14.0</version>
</dependency>
<!-- end Paypal -->
<!-- AI API -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>${dev.langchain4j}</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>${dev.langchain4j}</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-anthropic</artifactId>
<version>${dev.langchain4j}</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-embeddings</artifactId>
<version>${dev.langchain4j}-beta33</version>
</dependency>
<!-- end AI API -->
<!-- MCP server (spike S1, 2026-10-02): official MCP Java SDK, Jackson 2 binding -->
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp-core</artifactId>
<version>${mcp.sdk.version}</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp-json-jackson2</artifactId>
<version>${mcp.sdk.version}</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- end MCP server -->
<!-- Start test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.27.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.24.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>xmlunit</groupId>
<artifactId>xmlunit</artifactId>
<version>1.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.undertow</groupId>
<artifactId>undertow-core</artifactId>
<version>${io.undertow}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.undertow.ee</groupId>
<artifactId>undertow-servlet</artifactId>
<version>${io.undertow.ee}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.zapodot</groupId>
<artifactId>embedded-ldap-junit</artifactId>
<version>0.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.kirviq</groupId>
<artifactId>dumbster</artifactId>
<version>1.7.1</version>
<scope>test</scope>
</dependency>
<!-- Start test dependencies for Arquillian and Selenium -->
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-tomcat-managed-10</artifactId>
<version>1.2.5.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eu.ingwar.tools</groupId>
<artifactId>arquillian-suite-extension</artifactId>
<version>1.2.2</version>
<scope>test</scope>
</dependency>
<dependency><!-- Ingwar needs org.reflection which needs javassist but has scope compile, Protostream from Infinispan too -->
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.33.0-GA</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.15.0</version>
</dependency>
<!-- Used by LDAP zapdots -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.8.0-jre</version>
<scope>test</scope>
</dependency>
<!-- selenium first -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<!-- End test dependencies -->
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.10.2.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.4.1</version>
<configuration>
<!-- disable checking of url's im pom's -->
<dependencyDetailsEnabled>false</dependencyDetailsEnabled>
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>3.5.4</version>
</plugin>
</plugins>
</reporting>
<ciManagement>
<system>Jenkins</system>
<url>https://jenkins.frentix.com</url>
</ciManagement>
</project>