Something went wrong on our end
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
pom.xml 89.52 KiB
<?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>15.5-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 License</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>JIRA</system>
<url>https://jira.openolat.org</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>11</targetJdk>
<org.springframework.version>5.3.7</org.springframework.version>
<org.hibernate.version>5.4.31.Final</org.hibernate.version>
<apache.cxf>3.4.3</apache.cxf>
<apache.pdfbox>2.0.24</apache.pdfbox>
<apache.poi>5.0.0</apache.poi>
<apache.log4j>2.14.1</apache.log4j>
<org.slf4j>1.7.30</org.slf4j>
<io.jsonwebtoken>0.11.2</io.jsonwebtoken>
<io.undertow>2.2.7.Final</io.undertow>
<jackson.version>2.12.3</jackson.version>
<org.mysql.version>8.0.25</org.mysql.version>
<org.postgresql.version>42.2.20</org.postgresql.version>
<org.infinispan.version>12.1.3.Final</org.infinispan.version>
<lucene.version>7.7.0</lucene.version>
<version.selenium>3.141.59</version.selenium>
<version.drone>2.5.2</version.drone>
<activemq.version>5.16.2</activemq.version>
<qtiworks.version>1.0.25</qtiworks.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>mysql</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.user>olat</test.env.db.user>
<test.env.db.pass>olat</test.env.db.pass>
<test.env.db.host.port>3306</test.env.db.host.port>
<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.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.msgraph.app.id></test.env.msgraph.app.id>
<test.env.msgraph.app.secret></test.env.msgraph.app.secret>
<test.env.msgraph.app.tenant></test.env.msgraph.app.tenant>
<test.env.msgraph.teams.producer></test.env.msgraph.teams.producer>
<test.env.instance.id>myolat</test.env.instance.id>
<test.env.webdriver.browser>chrome</test.env.webdriver.browser>
<test.env.webdriver.firefox.version>v0.29.0</test.env.webdriver.firefox.version>
<test.env.webdriver.chrome.version>88.0.4324.96</test.env.webdriver.chrome.version>
<test.env.webdriver.chrome.arguments></test.env.webdriver.chrome.arguments>
<skipTests>true</skipTests>
<skipSeleniumTests>false</skipSeleniumTests>
</properties>
<profiles>
<profile>
<id>compressjs</id>
<build>
<plugins>
<!-- Compress jquery plugins -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<id>compressbootstrap</id>
<phase>process-resources</phase>
<goals>
<goal>compress</goal>
</goals>
<configuration>
<suffix>.min</suffix>
<force>true</force>
<encoding>UTF-8</encoding>
<nocompress>false</nocompress>
<outputDirectory>${basedir}/target/bootstrap</outputDirectory>
<sourceDirectory>${basedir}/src/main/webapp/static/bootstrap</sourceDirectory>
<excludeResources>true</excludeResources>
<aggregations>
<aggregation>
<output>${basedir}/target/bootstrap/bootstrap-openolat.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/bootstrap/javascripts/bootstrap/alert.min.js</include>
<include>${basedir}/target/bootstrap/javascripts/bootstrap/button.min.js</include>
<include>${basedir}/target/bootstrap/javascripts/bootstrap/collapse.min.js</include>
<include>${basedir}/target/bootstrap/javascripts/bootstrap/dropdown.min.js</include>
<include>${basedir}/target/bootstrap/javascripts/bootstrap/tab.min.js</include>
<include>${basedir}/target/bootstrap/javascripts/bootstrap/transition.min.js</include>
<include>${basedir}/target/bootstrap/javascripts/bootstrap/modal.min.js</include>
<include>${basedir}/target/bootstrap/javascripts/bootstrap/tooltip.min.js</include>
<include>${basedir}/target/bootstrap/javascripts/bootstrap/popover.min.js</include>
</includes>
</aggregation>
</aggregations>
<excludes>
<exclude>**/jw/*</exclude>
<exclude>**/dragula/*</exclude>
<exclude>**/mediaelementjs/*</exclude>
<exclude>**/mediaelementjs/**/*</exclude>
<exclude>**/fullcalendar/*</exclude>
<exclude>**/paella/**/*</exclude>
<exclude>**/sliderpips/jquery-ui-slider-pips.js</exclude>
<exclude>**/openolat/jquery.contenteditor.v2.js</exclude>
<exclude>**/interactjs/*</exclude>
<exclude>**/scorm/*</exclude>
</excludes>
</configuration>
</execution>
<execution>
<!-- compress movie player in place, don't append to any other file -->
<id>compressmovieplayer</id>
<phase>process-resources</phase>
<goals>
<goal>compress</goal>
</goals>
<configuration>
<suffix>.min</suffix>
<force>true</force>
<encoding>UTF-8</encoding>
<nocompress>false</nocompress>
<outputDirectory>${basedir}/target/jsmovie</outputDirectory>
<sourceDirectory>${basedir}/src/main/webapp/static/movie</sourceDirectory>
<excludeResources>true</excludeResources>
<aggregations>
<aggregation>
<output>${basedir}/src/main/webapp/static/movie/player.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jsmovie/player.min.js</include>
</includes>
</aggregation>
</aggregations>
<excludes>
<exclude>**/*.min.js</exclude>
<exclude>**/jw/*</exclude>
<exclude>**/dragula/*</exclude>
<exclude>**/fullcalendar/*</exclude>
<exclude>**/mediaelementjs/*</exclude>
<exclude>**/mediaelementjs/**/*</exclude>
<exclude>**/paella/**/*</exclude>
<exclude>**/sliderpips/jquery-ui-slider-pips.js</exclude>
<exclude>**/openolat/jquery.contenteditor.v2.js</exclude>
<exclude>**/interactjs/*</exclude>
<exclude>**/scorm/*</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>compressjs</id>
<phase>process-resources</phase>
<goals>
<goal>compress</goal>
</goals>
<configuration>
<suffix>.min</suffix>
<force>true</force>
<encoding>UTF-8</encoding>
<nocompress>false</nocompress>
<outputDirectory>${basedir}/target/jquery</outputDirectory>
<sourceDirectory>${basedir}/src/main/webapp/static/js</sourceDirectory>
<excludeResources>true</excludeResources>
<aggregations>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/js.plugins.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/jquery/periodic/jquery.periodic.min.js</include>
<include>${basedir}/target/jquery/jshashtable-2.1_src.min.js</include>
<include>${basedir}/target/jquery/jquery/openolat/jquery.translator.min.js</include>
<include>${basedir}/target/jquery/jquery/openolat/jquery.navbar.min.js</include>
<include>${basedir}/target/jquery/jquery/openolat/jquery.bgcarrousel.min.js</include>
<include>${basedir}/src/main/webapp/static/js/tinymce4/tinymce/jquery.tinymce.min.js</include>
<include>${basedir}/target/jquery/functions.min.js</include>
<include>${basedir}/target/jquery/jquery/transit/jquery.transit.min.js</include>
<include>${basedir}/target/bootstrap/bootstrap-openolat.min.js</include>
<include>${basedir}/target/jquery/openolat/textarea.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/jquery/qti/jquery.qti.min.js</output>
<removeIncluded>false</removeIncluded>
<includes><!-- qtiAutosave, qtiTimer are loaded separately -->
<include>${basedir}/target/jquery/jquery/qti/jquery.associate.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.choice.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.gapMatch.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.graphicAssociate.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.graphicGap.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.graphicOrder.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.hotspot.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.hotspot.responsive.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.match.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.match_dnd.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.order.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.positionObject.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.selectPoint.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.slider.min.js</include>
<include>${basedir}/target/jquery/jquery/qti/jquery.countWords.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmatheditor/plugin.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/tinymce4/tinymce/plugins/olatmatheditor/plugin.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatqti/plugin.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/tinymce4/tinymce/plugins/olatqti/plugin.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmovieviewer/plugin.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/tinymce4/tinymce/plugins/olatmovieviewer/plugin.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatcharcount/plugin.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/tinymce4/tinymce/plugins/olatcharcount/plugin.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatsmileys/plugin.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/tinymce4/tinymce/plugins/olatsmileys/plugin.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/tinymce4/tinymce/plugins/quotespliter/plugin.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/tinymce4/tinymce/plugins/quotespliter/plugin.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatedusharing/plugin.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/tinymce4/tinymce/plugins/olatedusharing/plugin.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/jquery/openolat/jquery.statistics.chart.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/jquery/openolat/jquery.statistics.chart.min.js</include>
</includes>
</aggregation>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/jquery/openolat/jquery.timeline.min.js</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/target/jquery/jquery/openolat/jquery.timeline.min.js</include>
</includes>
</aggregation>
</aggregations>
<excludes>
<exclude>**/jw/*</exclude>
<exclude>**/dragula/*</exclude>
<exclude>**/fullcalendar/*</exclude>
<exclude>**/mediaelementjs/*</exclude>
<exclude>**/mediaelementjs/**/*</exclude>
<exclude>**/paella/**/*</exclude>
<exclude>**/sliderpips/jquery-ui-slider-pips.js</exclude>
<exclude>**/openolat/jquery.contenteditor.v2.js</exclude>
<exclude>**/interactjs/*</exclude>
<exclude>**/scorm/*</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>compresscss</id>
<phase>process-resources</phase>
<goals>
<goal>compress</goal>
</goals>
<configuration>
<suffix>.min</suffix>
<force>true</force>
<encoding>UTF-8</encoding>
<nocompress>false</nocompress>
<outputDirectory>${basedir}/target/jquery</outputDirectory>
<sourceDirectory>${basedir}/src/main/webapp/static/js</sourceDirectory>
<excludeResources>true</excludeResources>
<aggregations>
<aggregation>
<output>${basedir}/src/main/webapp/static/js/js.plugins.min.css</output>
<removeIncluded>false</removeIncluded>
<includes>
<include>${basedir}/src/main/webapp/static/js/fullcalendar/main.min.css</include>
<include>${basedir}/target/jquery/tagify/tagify.min.css</include>
<include>${basedir}/target/jquery/jquery/cropper/cropper.min.css</include>
<include>${basedir}/target/jquery/jquery/sliderpips/jquery-ui-slider-pips.min.css</include>
<include>${basedir}/target/jquery/jquery/ui/jquery-ui-1.11.4.custom.min.css</include>
<include>${basedir}/src/main/webapp/static/js/dragula/dragula.min.css</include>
</includes>
</aggregation>
</aggregations>
<excludes>
<exclude>**/jw/*</exclude>
<exclude>**/dragula/*</exclude>
<exclude>**/fullcalendar/fullcalendar.js</exclude>
<exclude>**/fullcalendar/fullcalendar.min.js</exclude>
<exclude>**/mediaelementjs/*</exclude>
<exclude>**/mediaelementjs/**/*</exclude>
<exclude>**/paella/**/*</exclude>
<exclude>**/sliderpips/jquery-ui-slider-pips.js</exclude>
<exclude>**/openolat/jquery.contenteditor.v2.js</exclude>
<exclude>**/interactjs/*</exclude>
<exclude>**/scorm/*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</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-slf4j-impl</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>3.48.0</version>
</dependency>
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${org.hibernate.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
</exclusions>
</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-v53</artifactId>
<version>${org.infinispan.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</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.spec.javax.transaction</groupId>
<artifactId>jboss-transaction-api_1.1_spec</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-pluginAnnotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${org.mysql.version}</version>
</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>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>${activemq.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.0.1B_spec</artifactId>
</exclusion>
<exclusion>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
</exclusion>
</exclusions>
</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>
</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>3.36.2</version>
</dependency>
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${org.hibernate.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
</exclusions>
</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-v53</artifactId>
<version>${org.infinispan.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</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.spec.javax.transaction</groupId>
<artifactId>jboss-transaction-api_1.1_spec</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-pluginAnnotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>${activemq.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.0.1B_spec</artifactId>
</exclusion>
<exclusion>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
</exclusion>
</exclusions>
</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>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</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>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</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-v53</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.spec.javax.transaction</groupId>
<artifactId>jboss-transaction-api_1.1_spec</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-pluginAnnotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${org.mysql.version}</version>
<scope>provided</scope>
</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>mysqlunittests</id>
<activation>
<property>
<name>with-mysql</name>
</property>
</activation>
<properties>
<testFailureIgnore>false</testFailureIgnore>
<test.env>mysql</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-mysqlunittests</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/mysql</directory>
<includes>
<include>setupDatabase.sql</include>
</includes>
<filtering>false</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>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${org.mysql.version}</version>
</dependency>
</dependencies>
<!-- common configuration shared by all executions -->
<configuration>
<driver>com.mysql.cj.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:${test.env.db.host.port}/${test.env.db.name}</url>
<username>${test.env.db.user}</username>
<password>${test.env.db.pass}</password>
</configuration>
<executions>
<execution>
<id>drop-mysql-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:mysql://localhost:${test.env.db.host.port}/olat</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-mysql-db</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<url>jdbc:mysql://localhost:${test.env.db.host.port}/olat</url>
<!-- no transaction -->
<autocommit>true</autocommit>
<sqlCommand>create database ${test.env.db.name} default character set utf8</sqlCommand>
</configuration>
</execution>
<execution>
<id>create-mysql-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-mysql-db-after-test</id>
<!-- there is no post-test phase, the next phase after "test" is "prepare-package"
for integration tests running against mysql 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>
<autocommit>true</autocommit>
<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
</configuration>
</execution>
<!-- Same for integration-test -->
<execution>
<id>drop-mysql-db-before-integration</id>
<phase>pre-integration-test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<!-- need another database to drop the targeted one -->
<url>jdbc:mysql://localhost:${test.env.db.host.port}/olat</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-mysql-db-before-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<url>jdbc:mysql://localhost:${test.env.db.host.port}/olat</url>
<!-- no transaction -->
<autocommit>true</autocommit>
<sqlCommand>create database ${test.env.db.name} default character set utf8</sqlCommand>
</configuration>
</execution>
<execution>
<id>create-mysql-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-mysql-db-after-integration-test</id>
<phase>post-integration-test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
</configuration>
</execution>
</executions>
</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://localhost:${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://localhost:${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://localhost:${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 mysql 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://localhost:${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://localhost:${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://localhost:${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://localhost:${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>
<pluginRepositories>
<pluginRepository>
<id>openolat-plugin-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>
</pluginRepository>
</pluginRepositories>
<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/9.0.38/apache-tomcat-arq-9.0.38.zip" dest="${project.build.directory}/downloads" verbose="true" skipexisting="true" />
<unzip src="${project.build.directory}/downloads/apache-tomcat-arq-9.0.38.zip" dest="${project.build.directory}/arq-apache-tomcat-9.0.38" />
</target>
</configuration>
</execution>
</executions>
</plugin>
<!-- Unit tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<encoding>UTF-8</encoding>
<skipTests>${skipTests}</skipTests>
<argLine>-Xmx512m -Xms256m -Djava.awt.headless=true</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>2.22.2</version>
<configuration>
<encoding>UTF-8</encoding>
<skipITs>${skipSeleniumTests}</skipITs>
<skipTests>${skipSeleniumTests}</skipTests>
<reuseForks>false</reuseForks>
<argLine>-Xmx512m -Xms256m -Djava.awt.headless=true</argLine>
<trimStackTrace>false</trimStackTrace>
<!-- Sometimes a browser cannot be started -->
<rerunFailingTestsCount>1</rerunFailingTestsCount>
<systemPropertyVariables>
<profile>${test.env}</profile>
<test.env.db.name>${test.env.db.name}</test.env.db.name>
<test.env.db.user>${test.env.db.user}</test.env.db.user>
<test.env.db.pass>${test.env.db.pass}</test.env.db.pass>
<test.env.db.host.port>${test.env.db.host.port}</test.env.db.host.port>
<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.msgraph.app.id>${test.env.msgraph.app.id}</test.env.msgraph.app.id>
<test.env.msgraph.app.secret>${test.env.msgraph.app.secret}</test.env.msgraph.app.secret>
<test.env.msgraph.app.tenant>${test.env.msgraph.app.tenant}</test.env.msgraph.app.tenant>
<test.env.msgraph.teams.producer>${test.env.msgraph.teams.producer}</test.env.msgraph.teams.producer>
<arquillian.launch>tomcat-8-managed</arquillian.launch>
<webdriver.browser>${test.env.webdriver.browser}</webdriver.browser>
<webdriver.firefox.version>${test.env.webdriver.firefox.version}</webdriver.firefox.version>
<webdriver.chrome.version>${test.env.webdriver.chrome.version}</webdriver.chrome.version>
<webdriver.chrome.arguments>${test.env.webdriver.chrome.arguments}</webdriver.chrome.arguments>
</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.8.1</version>
<configuration>
<source>${targetJdk}</source>
<target>${targetJdk}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<!--
<attachClasses>true</attachClasses>
-->
<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, static/bootstrap/**, **/*.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/mysql/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.0.0-M2</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>11+</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- Dependency checks -->
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>4.0.0</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</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.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>${activemq.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
<version>${activemq.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>${activemq.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.0.1B_spec</artifactId>
</exclusion>
<exclusion>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!-- Used by SCORM implementation -->
<groupId>org.apache-extras.beanshell</groupId>
<artifactId>bsh</artifactId>
<version>2.0b6</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</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.7</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.8.0</version>
</dependency>
<dependency>
<groupId>org.jcodec</groupId>
<artifactId>jcodec</artifactId>
<version>0.2.5</version>
</dependency>
<dependency>
<groupId>org.jcodec</groupId>
<artifactId>jcodec-javase</artifactId>
<version>0.2.5</version>
</dependency>
<dependency>
<groupId>org.mnode.ical4j</groupId>
<artifactId>ical4j</artifactId>
<version>1.0.2</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mnode.ical4j</groupId>
<artifactId>ical4j-zoneinfo-outlook</artifactId>
<version>1.0.4</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.openolat.jamwiki</groupId>
<artifactId>jamwiki-core</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.openolat</groupId>
<artifactId>openmeetingws</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>org.openolat</groupId>
<artifactId>viterows</artifactId>
<version>10.3.0</version>
</dependency>
<dependency>
<groupId>org.openolat</groupId>
<artifactId>edusharingws</artifactId>
<version>4.1.0</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>
</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>
</exclusions>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.68</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.68</version>
</dependency>
<dependency>
<groupId>com.github.scribejava</groupId>
<artifactId>scribejava-apis</artifactId>
<version>8.3.0</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>1.2.0</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.jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</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-mathassess</artifactId>
<version>${qtiworks.version}</version>
</dependency>
<dependency>
<groupId>org.openolat.qtiworks</groupId>
<artifactId>qtiworks-mathassess-glue</artifactId>
<version>${qtiworks.version}</version>
</dependency>
<dependency>
<groupId>org.openolat.qtiworks</groupId>
<artifactId>qtiworks-mathassess-glue</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>1.4.4</version>
</dependency>
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome</artifactId>
<version>1.7.2</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>3.4.4</version>
</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.SP1</version>
</dependency>
<!-- J2EE dependencies but provided -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>4.0.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.websocket</groupId>
<artifactId>jakarta.websocket-api</artifactId>
<version>1.1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>2.3.3</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>20200713.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.14</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.14</version>
</dependency>
<dependency>
<groupId>de.java2html</groupId>
<artifactId>java2html</artifactId>
<version>5.0</version>
</dependency>
<!--
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.14</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</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.13</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>4.6</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.spec.javax.transaction</groupId>
<artifactId>jboss-transaction-api_1.1_spec</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-pluginAnnotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</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>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${org.hibernate.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-hibernate-cache-v53</artifactId>
<version>${org.infinispan.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</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.3</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</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.3.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.17</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>1.6.5</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-beta</artifactId>
<version>0.19.0-SNAPSHOT</version>
</dependency>
<!-- Overwrite selenium dependency to okhttp v3 -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.1</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.10.0</version>
<exclusions>
<exclusion>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</exclusion>
</exclusions>
</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.jaxrs</groupId>
<artifactId>jackson-jaxrs-base</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.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.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>
<!-- end Apache CXF dependency and Active MQ Broker -->
<!-- paypal -->
<dependency>
<groupId>com.paypal.sdk</groupId>
<artifactId>adaptivepaymentssdk</artifactId>
<version>2.9.117</version>
</dependency>
<dependency>
<groupId>com.paypal.sdk</groupId>
<artifactId>checkout-sdk</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>com.paypal.sdk</groupId>
<artifactId>rest-api-sdk</artifactId>
<version>1.14.0</version>
</dependency>
<!-- end Paypal -->
<!-- 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.19.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.7.22</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</groupId>
<artifactId>undertow-servlet</artifactId>
<version>${io.undertow}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.zapodot</groupId>
<artifactId>embedded-ldap-junit</artifactId>
<version>0.8.1</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-8</artifactId>
<version>1.1.0.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-impl</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-webdriver</artifactId>
<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>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1.1-jre</version>
</dependency>
<!-- selenium first -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<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>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-leg-rc</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>lift</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<!-- Driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-edge-driver</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-ie-driver</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-opera-driver</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>${version.selenium}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-safari-driver</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.6.0.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-bom</artifactId>
<version>${version.drone}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.3.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>2.22.2</version>
</plugin>
</plugins>
</reporting>
<ciManagement>
<system>Jenkins</system>
<url>https://jenkins.frentix.com</url>
</ciManagement>
</project>