Skip to content
Snippets Groups Projects
pom.xml 85 KiB
Newer Older
bps's avatar
bps committed
<?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">
bps's avatar
bps committed
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.openolat</groupId>
	<artifactId>openolat-lms</artifactId>
	<version>15.3.7.uibk-002</version>
bps's avatar
bps committed
	<packaging>war</packaging>
	<name>OpenOLAT LMS</name>
	<url>https://www.openolat.com</url>
bps's avatar
bps committed
	<description>
  Welcome to the OpenOLAT (Open Online Learning And Training) Developer Project Site. This site
bps's avatar
bps committed
  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
bps's avatar
bps committed
  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>
bps's avatar
bps committed
	</organization>
	<licenses>
		<license>
			<name>Apache 2.0 Open Source License</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0</url>
			<distribution>manual</distribution>
srosse's avatar
srosse committed
			<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>
bps's avatar
bps committed
		</license>
	</licenses>
	<distributionManagement>
		<repository>
			<id>nmvn-lms</id>
 			<url>https://nmvn.uibk.ac.at/artifactory/olat-release-local</url>
bps's avatar
bps committed
		</repository>
		<snapshotRepository>
 			<id>nmvn-lms</id>
 			<url>https://nmvn.uibk.ac.at/artifactory/olat-snapshot-local</url>
bps's avatar
bps committed
		</snapshotRepository>
	</distributionManagement>
	<issueManagement>
		<system>JIRA</system>
		<url>https://jira.openolat.org</url>
bps's avatar
bps committed
	</issueManagement>
	<scm>
		<connection>scm:git:git@git.uibk.ac.at:zid/dmlt/olat/openolat.git</connection>
		<developerConnection>scm:git:git@git.uibk.ac.at:zid/dmlt/olat/openolat.git</developerConnection>
		<url>https://git.uibk.ac.at/zid/dmlt/olat/openolat</url>
	  <tag>OpenOLAT_15.3.7.uibk-002</tag>
bps's avatar
bps committed
	</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>
bps's avatar
bps committed
		</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.2.9.RELEASE</org.springframework.version>
		<org.hibernate.version>5.4.24.Final</org.hibernate.version>
		<apache.cxf>3.4.0</apache.cxf>
		<apache.pdfbox>2.0.21</apache.pdfbox>
		<apache.poi>4.1.2</apache.poi>
		<apache.log4j>2.13.3</apache.log4j>
		<io.jsonwebtoken>0.11.2</io.jsonwebtoken>
		<io.undertow>2.2.2.Final</io.undertow>
		<jackson.version>2.11.3</jackson.version>
		<org.mysql.version>8.0.22</org.mysql.version>
		<org.postgresql.version>42.2.18</org.postgresql.version>
		<org.infinispan.version>11.0.5.Final</org.infinispan.version>
		<lucene.version>7.7.0</lucene.version>
srosse's avatar
srosse committed
		<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.22</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.name>localhost</test.env.db.postgresql.host.name>
	    <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>86.0.4240.22</test.env.webdriver.chrome.version>
	    <test.env.webdriver.chrome.arguments />
	    <skipTests>true</skipTests>
		<skipSeleniumTests>false</skipSeleniumTests>

		<maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>

		<sonar.language>java</sonar.language>
		<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
		<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
		<sonar.jacoco.reportPath>${project.basedir}/target/jacoco.exec</sonar.jacoco.reportPath>
bps's avatar
bps committed
	</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>
										<exclude>**/jw/*</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>
							<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>**/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>
								<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>
										<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>
										<exclude>**/jw/*</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>
							<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>
										<exclude>**/jw/*</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>
								</configuration>
							</execution>
						</executions>
					</plugin>
		<!-- This is the default build which had all dependencies needed by tomcat -->
		<profile>
			<id>tomcat</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<dependencies>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-core</artifactId>
					<version>${apache.log4j}</version>
				<!-- Apache CXF for tomcat -->
					<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>
					<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>
					<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>
					<groupId>org.apache.cxf</groupId>
				    <artifactId>cxf-rt-rs-service-description-openapi-v3</artifactId>
				    <version>${apache.cxf}</version>
				</dependency>
				<dependency>
				    <groupId>org.apache.cxf</groupId>
				    <artifactId>cxf-rt-rs-client</artifactId>
				    <version>${apache.cxf}</version>
				</dependency>
				<dependency>
				    <groupId>org.webjars</groupId>
				    <artifactId>swagger-ui</artifactId>
				    <version>3.35.2</version>
				    <groupId>jakarta.xml.ws</groupId>
				    <artifactId>jakarta.xml.ws-api</artifactId>
				    <version>2.3.3</version>
				<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>
					<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>
					<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>
							<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>
							<groupId>commons-pool</groupId>
							<artifactId>commons-pool</artifactId>
					</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>
							<webXml>src/main/webapp-tomcat/WEB-INF/web.xml</webXml>
						</configuration>
					</plugin>
				</plugins>
			</build>
				<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>dom4j</groupId>
					<artifactId>dom4j</artifactId>
					<version>1.6.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>
					<artifactId>postgresql</artifactId>
					<version>${org.postgresql.version}</version>
					<scope>provided</scope>
				</dependency>
				<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>
			<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>
						<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>
										</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 -->
							<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>
	
						<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>
					<plugin>
					    <groupId>org.jacoco</groupId>
					    <artifactId>jacoco-maven-plugin</artifactId>
					    <configuration>
							<destFile>${sonar.jacoco.reportPath}</destFile>
							<append>true</append>
						</configuration>
						<executions>
							<execution>
								<id>agent</id>
								<goals>
									<goal>prepare-agent</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
			</build>
		</profile>
	
		<profile>
			<id>postgresqlunittests</id>
			<activation>
				<property>
					<name>with-postgresql</name>
				</property>
			</activation>
			<properties>
				<testFailureIgnore>false</testFailureIgnore>
				<test.env>postgresql</test.env>
				<skipTests>false</skipTests>
			</properties>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-resources-plugin</artifactId>
						<version>2.4.3</version>
						<executions>
							<execution>
								<id>copy-resources-4-postgresqlunittests</id>
								<phase>generate-test-resources</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target/test-classes</outputDirectory>
									<resources>
										<resource>
											<!-- place resources you like to get filtered an copied -->
											<directory>src/test/profile/${test.env}</directory>
											<includes>
												<include>olat.local.properties</include>
											</includes>
											<filtering>true</filtering>
										</resource>
										<resource>
											<!-- place resources you like to get filtered an copied -->
											<directory>src/main/resources/database/postgresql</directory>
											<includes>
												<include>setupDatabase.sql</include>
											</includes>
											<filtering>true</filtering>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>sql-maven-plugin</artifactId>
						<version>1.5</version>
	
						<dependencies>
							<dependency>
								<groupId>org.postgresql</groupId>
								<artifactId>postgresql</artifactId>
								<version>${org.postgresql.version}</version>
								<exclusions>
									<exclusion>
										<groupId>com.github.dblock.waffle</groupId>
										<artifactId>waffle-jna</artifactId>
									</exclusion>
									<exclusion>
										<groupId>org.slf4j</groupId>
										<artifactId>slf4j-simple</artifactId>
									</exclusion>
								</exclusions>
							</dependency>
						</dependencies>
	
						<!-- common configuration shared by all executions -->
						<configuration>
							<driver>org.postgresql.Driver</driver>
							<url>jdbc:postgresql://${test.env.db.postgresql.host.name}:${test.env.db.postgresql.host.port}/${test.env.db.name}</url>
							<username>${test.env.db.postgresql.user}</username>
							<password>${test.env.db.postgresql.pass}</password>
						</configuration>
	
						<executions>
							<execution>
								<id>drop-postgresql-db-before-test</id>
								<phase>process-test-resources</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<!-- need another database to drop the targeted one -->
									<url>jdbc:postgresql://${test.env.db.postgresql.host.name}:${test.env.db.postgresql.host.port}/postgres</url>
									<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>