<?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.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 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>1.8</targetJdk> <org.springframework.version>5.2.8.RELEASE</org.springframework.version> <org.hibernate.version>5.4.20.Final</org.hibernate.version> <apache.cxf>3.3.7</apache.cxf> <apache.pdfbox>2.0.20</apache.pdfbox> <apache.poi>4.1.2</apache.poi> <apache.log4j>2.13.3</apache.log4j> <io.jsonwebtoken>0.10.7</io.jsonwebtoken> <io.undertow>2.1.3.Final</io.undertow> <jackson.version>2.11.2</jackson.version> <org.mysql.version>8.0.21</org.mysql.version> <org.postgresql.version>42.2.14</org.postgresql.version> <org.infinispan.version>11.0.3.Final</org.infinispan.version> <lucene.version>7.7.0</lucene.version> <version.selenium>3.141.59</version.selenium> <version.drone>2.5.1</version.drone> <activemq.version>5.16.0</activemq.version> <qtiworks.version>1.0.19</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.instance.id>myolat</test.env.instance.id> <test.env.webdriver.browser>chrome</test.env.webdriver.browser> <test.env.webdriver.firefox.version>v0.27.0</test.env.webdriver.firefox.version> <test.env.webdriver.chrome.version>84.0.4147.30</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> </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> </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> </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> </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> </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}/target/jquery/jquery/tagsinput/bootstrap-tagsinput.min.css</include> <include>${basedir}/target/jquery/jquery/fullcalendar/fullcalendar.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> </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.apache.logging.log4j</groupId> <artifactId>log4j-core</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.31.1</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> <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> </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/8.5.45/apache-tomcat-arq-8.5.45.zip" dest="${project.build.directory}/downloads" verbose="true" skipexisting="true" /> <unzip src="${project.build.directory}/downloads/apache-tomcat-arq-8.5.45.zip" dest="${project.build.directory}/arq-apache-tomcat-8.5.45" /> </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> <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> <arquillian.launch>tomcat-7-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>1.8+</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.14</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.7</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>9.1.2</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.66</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.66</version> </dependency> <dependency> <groupId>com.github.scribejava</groupId> <artifactId>scribejava-apis</artifactId> <version>6.5.1</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> <!-- used by reload-jdom (SCORM) --> </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> <dependency> <groupId>reload-diva</groupId> <artifactId>reload-diva</artifactId> <version>reload_dist255-diva.jar</version> </dependency> <dependency> <groupId>reload-dweezil</groupId> <artifactId>reload-dweezil</artifactId> <version>reload_dist255-dweezil.jar</version> </dependency> <dependency> <groupId>reload-jdom</groupId> <artifactId>reload-jdom</artifactId> <version>reload_dist255-jdom.jar</version> </dependency> <dependency> <groupId>reload-moonunit</groupId> <artifactId>reload-moonunit</artifactId> <version>reload_dist255-moonunit.jar</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> <dependency> <groupId>ch.ethz</groupId> <artifactId>pfplms-scorm</artifactId> <version>unknown</version> <classifier>patched</classifier><!-- patched version of scorm adapter: contact: matthai.kurian@gmail.com --> </dependency> <dependency><!-- used by SCORM --> <groupId>gnu-regexp</groupId> <artifactId>gnu-regexp</artifactId> <version>1.1.4</version> </dependency> <!-- logging stuff --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.30</version> </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> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</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> <scope>test</scope> </dependency> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.4.2</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>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</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.13</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.13</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.13</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.12</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.12</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.2</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20200518</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.12</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> <!-- 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-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.dataformat</groupId> <artifactId>jackson-dataformat-yaml</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.2</version> </dependency> <!-- end Paypal --> <!-- Start test dependencies --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>3.16.1</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-7</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.0</version> <scope>test</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> <scope>test</scope> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>29.0-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>