Ctrl K
ComunidadGuías…

pom.xml

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.openolat</groupId>
	<artifactId>openolat-lms</artifactId>
	<version>21.2-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>OpenOLAT LMS</name>
	<url>https://www.openolat.com</url>
	<description>
  Welcome to the OpenOLAT (Open Online Learning And Training) Developer Project Site. This site
  contains materials chiefly of concern to developers (e.g., unit testing and SCA output etc.)
  and is rebuilt periodically on a regular basis. The site structure is divided between
  project information (e.g., infrastructure, mailing lists, repositories etc.) and reports
  (e.g., unit testing, SCAs etc.)
  </description>
	<organization>
		<name>OpenOLAT</name>
		<url>https://www.openolat.com</url>
	</organization>
	<licenses>
		<license>
			<name>Apache 2.0 Open Source L6icense</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0</url>
			<distribution>manual</distribution>
			<comments>OpenOLAT is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</comments>
		</license>
	</licenses>
	<distributionManagement>
		<repository>
			<id>nexus.openolat</id>
			<name>OpenOLAT Internal Nexus Release Repository</name>
			<url>https://nexus.openolat.org/nexus/content/repositories/openolat</url>
		</repository>
		<snapshotRepository>
			<id>nexus.openolat</id>
			<name>OpenOLAT Internal Nexus Snapshot Repository</name>
			<url>https://nexus.openolat.org/nexus/content/repositories/openolat-snapshots</url>
		</snapshotRepository>
	</distributionManagement>
	<issueManagement>
		<system>YouTrack</system>
		<url>https://track.frentix.com</url>
	</issueManagement>
	<scm>
		<url>https://github.com/OpenOLAT/OpenOLAT</url>
		<connection>scm:git:git://github.com/OpenOLAT/OpenOLAT.git</connection>
		<developerConnection>scm:git:git@github.com:OpenOLAT/OpenOLAT.git</developerConnection>
	</scm>
	<mailingLists>
		<mailingList>
			<name>openolat</name>
			<subscribe>https://groups.google.com/forum/#!forum/openolat</subscribe>
			<post>openolat@googlegroups.com</post>
			<archive>https://groups.google.com/forum/#!forum/openolat</archive>
		</mailingList>
	</mailingLists>
	<!-- Unless otherwise explicitly stated the character encoding for all resources 
		(e.g., source, test etc.) will be UTF-8. This can be overriden at the plugin 
		level if necessary. -->
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<targetJdk>25</targetJdk>
		<archive>true</archive>
		<attach.classes>false</attach.classes>
		
		<!-- Dependency versions -->
		<org.springframework.version>7.0.10</org.springframework.version>
		<org.hibernate.version>7.4.14.Final</org.hibernate.version>
		<org.hibernate.validator.version>9.1.6.Final</org.hibernate.validator.version>
		<org.glassfish.jaxb.runtime>4.0.9</org.glassfish.jaxb.runtime>
		<apache.cxf>4.2.4</apache.cxf>
		<apache.pdfbox>3.0.8</apache.pdfbox>
		<apache.poi>6.0.0</apache.poi>
		<apache.log4j>2.26.1</apache.log4j>
		<org.slf4j>2.0.20</org.slf4j>
		<org.bouncycastle>1.86</org.bouncycastle>
		<io.jsonwebtoken>0.13.0</io.jsonwebtoken>
		<io.undertow>2.4.4.Final</io.undertow>
		<io.undertow.ee>2.0.3.Final</io.undertow.ee>
		<jackson.version>2.23.0</jackson.version>
		<jackson.annotations.version>2.23</jackson.annotations.version>
		<swagger.ui.version>5.34.1</swagger.ui.version>
		<org.postgresql.version>42.7.14</org.postgresql.version>
		<org.infinispan.version>16.3.1</org.infinispan.version>
		<lucene.version>7.7.0</lucene.version>
		<version.selenium>4.52.0</version.selenium>
		<activemq.artemis.version>2.57.0</activemq.artemis.version>
		<jakarta.jms.api>3.1.0</jakarta.jms.api>
		<jakarta.xml.bind-api>4.0.5</jakarta.xml.bind-api>
		<jakarta.xml.ws-api>4.0.3</jakarta.xml.ws-api>
		<qtiworks.version>1.0.37</qtiworks.version>
		<org.commonmark>0.32.0</org.commonmark>
		<dev.langchain4j>1.23.0</dev.langchain4j>
		<mcp.sdk.version>2.1.0</mcp.sdk.version>

	    <!-- properties for testing and Q&A -->
	    <!-- by default no tests are executed so far (April 2011). Use appropriate profiles and properties on the command line -->
	    <!-- properties to define the testing environment -->
	    <test.env>postgresql</test.env>
	    <!-- olat.local.properties to distinguish multiple single and cluster olat instances on a single machine-->
	    <test.env.db.name>olattest</test.env.db.name>
	    <test.env.db.postgresql.user>postgres</test.env.db.postgresql.user>
	    <test.env.db.postgresql.pass>postgres</test.env.db.postgresql.pass>
	    <test.env.db.postgresql.host>localhost</test.env.db.postgresql.host>
	    <test.env.db.postgresql.host.port>5432</test.env.db.postgresql.host.port>
	    <test.env.db.oracle.name>orcl</test.env.db.oracle.name>
	    <test.env.db.oracle.user>OLATTEST</test.env.db.oracle.user>
	    <test.env.db.oracle.pass>olat00002</test.env.db.oracle.pass>
	    <test.env.db.oracle.host>localhost</test.env.db.oracle.host>
	    <test.env.db.oracle.host.port>1521</test.env.db.oracle.host.port>
	    <test.env.azure.adfs.enabled>false</test.env.azure.adfs.enabled>
	    <test.env.azure.adfs.client.id></test.env.azure.adfs.client.id>
	    <test.env.azure.adfs.client.secret></test.env.azure.adfs.client.secret>
	    <test.env.azure.adfs.tenant></test.env.azure.adfs.tenant>
	    <test.env.azure.adfs.refresh.token></test.env.azure.adfs.refresh.token>
	    <test.env.instance.id>myolat</test.env.instance.id>
	    <test.env.webdriver.browser>chrome</test.env.webdriver.browser>
	    <skipTests>true</skipTests>
		<skipSeleniumTests>false</skipSeleniumTests>
	</properties>
	<profiles>
		<profile>
			<id>compressjs</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-resources-plugin</artifactId>
						<version>2.4.3</version>
						<executions>
							<execution>
								<id>copy-resources</id>
								<phase>generate-resources</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${project.build.directory}/generated-webapp/static</outputDirectory>
									<resources>
										<resource>
											<directory>${project.basedir}/src/main/webapp/static</directory>
											<filtering>true</filtering>
											<includes>
												<include>**/*.css</include>
												<include>**/*.js</include>
											</includes>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin> 
					<plugin>
						<groupId>org.primefaces.extensions</groupId>
						<artifactId>resources-optimizer-maven-plugin</artifactId>
						<version>2.6.2</version>
						<executions>
							<execution>
								<id>optimize</id>
								<phase>prepare-package</phase>
								<goals>
									<goal>optimize</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<compilationLevel>SIMPLE_OPTIMIZATIONS</compilationLevel>
							<warningLevel>DEFAULT</warningLevel>
							<failOnWarning>false</failOnWarning>
							<suffix>.min</suffix>
							<useDataUri>false</useDataUri>
							<languageIn>ECMASCRIPT_2015</languageIn>
							<languageOut>ECMASCRIPT_2015</languageOut>
            				<inputDir>${project.build.directory}/generated-webapp/static</inputDir>

							<resourcesSets>
								<!-- Movie player -->
								<resourceSet>
	            					<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
									<includes>
										<include>movie/player.js</include>
									</includes>
									<aggregations>
										<aggregation>
											<withoutCompress>false</withoutCompress>
											<outputFile>${project.basedir}/src/main/webapp/static/movie/player.min.js</outputFile>
										</aggregation>
									</aggregations>
								</resourceSet>
								
								<!-- Plugins -->
								<resourceSet>
	            					<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
									<includes>
										<include>bootstrap/javascripts/bootstrap/alert.js</include>
										<include>bootstrap/javascripts/bootstrap/button.js</include>
										<include>bootstrap/javascripts/bootstrap/collapse.js</include>
										<include>bootstrap/javascripts/bootstrap/dropdown.js</include>
										<include>bootstrap/javascripts/bootstrap/tab.js</include>
										<include>bootstrap/javascripts/bootstrap/transition.js</include>
										<include>bootstrap/javascripts/bootstrap/modal.js</include>
										<include>bootstrap/javascripts/bootstrap/tooltip.js</include>
										<include>bootstrap/javascripts/bootstrap/popover.js</include>
										<include>js/jquery/periodic/jquery.periodic.js</include>
										<include>js/jshashtable-2.1_src.js</include>
										<include>js/jquery/openolat/jquery.translator.js</include>
										<include>js/jquery/openolat/jquery.navbar.js</include>
										<include>js/jquery/openolat/jquery.bgcarrousel.js</include>
										<include>js/jquery/transit/jquery.transit.js</include>
										<include>js/openolat/textarea.js</include>
										<include>js/openolat/resize.js</include>
										<include>js/edusharing/edusharing.js</include>
										<include>js/tinymce4/tinymce/jquery.tinymce.min.js</include>
										<include>js/functions.js</include>
									</includes>
									<aggregations>
										<aggregation>
											<withoutCompress>false</withoutCompress>
											<outputFile>${project.basedir}/src/main/webapp/static/js/js.plugins.min.js</outputFile>
										</aggregation>
									</aggregations>
								</resourceSet>
								<resourceSet>
	            					<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
									<includes>
										<include>js/datepicker/datepicker.css</include>
										<include>js/jquery/cropper/cropper.min.css</include>
										<include>js/jquery/sliderpips/jquery-ui-slider-pips.css</include>
										<include>js/jquery/ui/jquery-ui-1.13.2.custom.min.css</include>
										<include>js/dragula/dragula.min.css</include>
										<include>js/swiper/swiper-bundle.min.css</include>
									</includes>
									<aggregations>
										<aggregation>
											<withoutCompress>false</withoutCompress>
											<outputFile>${project.basedir}/src/main/webapp/static/js/js.plugins.min.css</outputFile>
										</aggregation>
									</aggregations>			
								</resourceSet>
								
								<!-- QTI 2.1  qtiAutosave, qtiTimer are loaded separately -->
								<resourceSet>
	            					<inputDir>${project.build.directory}/generated-webapp/static</inputDir>	
									<includes>
										<include>js/jquery/qti/jquery.associate.js</include>
										<include>js/jquery/qti/jquery.choice.js</include>
										<include>js/jquery/qti/jquery.gapMatch.js</include>
										<include>js/jquery/qti/jquery.graphicAssociate.js</include>
										<include>js/jquery/qti/jquery.graphicGap.js</include>
										<include>js/jquery/qti/jquery.graphicOrder.js</include>
										<include>js/jquery/qti/jquery.hotspot.js</include>
										<include>js/jquery/qti/jquery.hotspot.responsive.js</include>
										<include>js/jquery/qti/jquery.match.js</include>
										<include>js/jquery/qti/jquery.match_dnd.js</include>
										<include>js/jquery/qti/jquery.order.js</include>
										<include>js/jquery/qti/jquery.positionObject.js</include>
										<include>js/jquery/qti/jquery.selectPoint.js</include>
										<include>js/jquery/qti/jquery.slider.js</include>
										<include>js/jquery/qti/jquery.qtiCopyPaste.js</include>
										<include>js/jquery/qti/jquery.countWords.js</include>
										<include>js/jquery/openolat/jquery.paint.v2.js</include>
									</includes>
									<aggregations>
										<aggregation>
											<withoutCompress>false</withoutCompress>
											<outputFile>${project.basedir}/src/main/webapp/static/js/jquery/qti/jquery.qti.min.js</outputFile>
										</aggregation>
									</aggregations>	
								</resourceSet>
								
								<!-- Statistics -->	
								<resourceSet>
	            					<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
									<includes>
										<include>js/jquery/openolat/jquery.statistics.chart.js</include>
									</includes>
									<aggregations>
										<aggregation>
											<withoutCompress>false</withoutCompress>
											<outputFile>${project.basedir}/src/main/webapp/static/js/jquery/openolat/jquery.statistics.chart.min.js</outputFile>
										</aggregation>
									</aggregations>
								</resourceSet>
								
								<!-- Portfolio timeline -->
								<resourceSet>
	            					<inputDir>${project.build.directory}/generated-webapp/static</inputDir>
									<includes>
										<include>js/jquery/openolat/jquery.timeline.js</include>
									</includes>
									<aggregations>
										<aggregation>
											<withoutCompress>false</withoutCompress>
											<outputFile>${project.basedir}/src/main/webapp/static/js/jquery/openolat/jquery.timeline.min.js</outputFile>
										</aggregation>
									</aggregations>	
								</resourceSet>
							</resourcesSets>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		
		<!-- This is the default build which had all dependencies needed by tomcat -->
		<profile>
			<id>tomcat</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
					<version>${org.slf4j}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-slf4j2-impl</artifactId>
					<version>${apache.log4j}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-layout-template-json</artifactId>
					<version>${apache.log4j}</version>
				</dependency>				<!-- Apache CXF for tomcat -->
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-frontend-jaxws</artifactId>
					<version>${apache.cxf}</version>
					<exclusions>
						<exclusion>
							<groupId>org.apache.ant</groupId>
							<artifactId>ant</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-frontend-jaxrs</artifactId>
					<version>${apache.cxf}</version>
					<exclusions>
						<exclusion>
							<groupId>javax.annotation</groupId>
							<artifactId>javax.annotation-api</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-transports-http</artifactId>
					<version>${apache.cxf}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-rs-http-sci</artifactId>
					<version>${apache.cxf}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
				    <artifactId>cxf-rt-rs-service-description-openapi-v3</artifactId>
				    <version>${apache.cxf}</version>
				</dependency>
				<dependency>
				    <groupId>org.webjars</groupId>
				    <artifactId>swagger-ui</artifactId>
				    <version>${swagger.ui.version}</version>
				</dependency>
				<dependency>
				    <groupId>jakarta.xml.ws</groupId>
				    <artifactId>jakarta.xml.ws-api</artifactId>
				    <version>${jakarta.xml.ws-api}</version>
				</dependency>
				<dependency>
				    <groupId>jakarta.transaction</groupId>
				    <artifactId>jakarta.transaction-api</artifactId>
				    <version>2.0.1</version>
				</dependency>
				<dependency>
				    <groupId>com.sun.xml.messaging.saaj</groupId>
				    <artifactId>saaj-impl</artifactId>
				    <version>3.0.6</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate.orm</groupId>
					<artifactId>hibernate-core</artifactId>
					<version>${org.hibernate.version}</version>
					<exclusions>
						<exclusion>
							<groupId>org.slf4j</groupId>
							<artifactId>slf4j-log4j12</artifactId>
						</exclusion>
						<exclusion>
							<groupId>com.sun.activation</groupId>
							<artifactId>jakarta.activation</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.hibernate.validator</groupId>
					<artifactId>hibernate-validator</artifactId>
					<version>${org.hibernate.validator.version}</version>
				</dependency>
				<dependency>
					<groupId>org.infinispan</groupId>
					<artifactId>infinispan-hibernate-cache-v66</artifactId>
					<version>${org.infinispan.version}</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate.orm</groupId>
					<artifactId>hibernate-hikaricp</artifactId>
					<version>${org.hibernate.version}</version>
				</dependency>
				
				<dependency>
					<groupId>org.infinispan</groupId>
					<artifactId>infinispan-core</artifactId>
					<version>${org.infinispan.version}</version>
					<exclusions>
						<exclusion>
							<groupId>org.jboss.logging</groupId>
							<artifactId>jboss-logging</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
		
				<dependency>
					<groupId>org.postgresql</groupId>
					<artifactId>postgresql</artifactId>
					<version>${org.postgresql.version}</version>
					<exclusions>
						<exclusion>
							<groupId>com.github.dblock.waffle</groupId>
							<artifactId>waffle-jna</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.slf4j</groupId>
							<artifactId>slf4j-simple</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
		
				<dependency>
					<groupId>jakarta.jms</groupId>
					<artifactId>jakarta.jms-api</artifactId>
					<version>${jakarta.jms.api}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.artemis</groupId>
					<artifactId>artemis-jakarta-client</artifactId>
					<version>${activemq.artemis.version}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.artemis</groupId>
					<artifactId>artemis-jakarta-server</artifactId>
					<version>${activemq.artemis.version}</version>
				</dependency>
				<dependency>
				    <groupId>jakarta.xml.bind</groupId>
				    <artifactId>jakarta.xml.bind-api</artifactId>
				    <version>${jakarta.xml.bind-api}</version>
				</dependency>
				<dependency>
				    <groupId>org.glassfish.jaxb</groupId>
				    <artifactId>jaxb-runtime</artifactId>
				    <version>${org.glassfish.jaxb.runtime}</version>
				</dependency>
			</dependencies>
			
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>src/main/webapp-tomcat</directory>
									<filtering>false</filtering>
								</resource>
								<resource>
									<directory>src/main/resources/org/infinispan/hibernate/cache/commons/builder/</directory>
									<targetPath>WEB-INF/classes/org/infinispan/hibernate/cache/commons/builder/</targetPath>
									<filtering>false</filtering>
								</resource>
								<resource>
									<directory>src/main/resources/</directory>
									<targetPath>WEB-INF/classes/</targetPath>
									<filtering>false</filtering>
									<includes>
										<include>broker-oo.xml</include>	
									</includes>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		
		<!-- This is a build which deliver a WAR for JBoss EAP, simple installation -->
		<profile>
			<id>jbosseap</id>
			<dependencies>
				<dependency>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-to-slf4j</artifactId>
					<version>${apache.log4j}</version>
				</dependency>
				<!-- Apache CXF for tomcat -->
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-frontend-jaxws</artifactId>
					<version>${apache.cxf}</version>
					<exclusions>
						<exclusion>
							<groupId>org.apache.ant</groupId>
							<artifactId>ant</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-frontend-jaxrs</artifactId>
					<version>${apache.cxf}</version>
					<exclusions>
						<exclusion>
							<groupId>javax.annotation</groupId>
							<artifactId>javax.annotation-api</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-transports-http</artifactId>
					<version>${apache.cxf}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
				    <artifactId>cxf-rt-rs-service-description-openapi-v3</artifactId>
				    <version>${apache.cxf}</version>
				</dependency>
				<dependency>
				    <groupId>org.webjars</groupId>
				    <artifactId>swagger-ui</artifactId>
				    <version>${swagger.ui.version}</version>
				</dependency>
				<dependency>
				    <groupId>jakarta.xml.ws</groupId>
				    <artifactId>jakarta.xml.ws-api</artifactId>
				    <version>${jakarta.xml.ws-api}</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate.orm</groupId>
					<artifactId>hibernate-core</artifactId>
					<version>${org.hibernate.version}</version>
					<exclusions>
						<exclusion>
							<groupId>org.slf4j</groupId>
							<artifactId>slf4j-log4j12</artifactId>
						</exclusion>
						<exclusion>
							<groupId>com.sun.activation</groupId>
							<artifactId>jakarta.activation</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.hibernate.validator</groupId>
					<artifactId>hibernate-validator</artifactId>
					<version>${org.hibernate.validator.version}</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-entitymanager</artifactId>
					<version>${org.hibernate.version}</version>
				</dependency>
				<dependency>
					<groupId>org.infinispan</groupId>
					<artifactId>infinispan-hibernate-cache-v66</artifactId>
					<version>${org.infinispan.version}</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate.orm</groupId>
					<artifactId>hibernate-hikaricp</artifactId>
					<version>${org.hibernate.version}</version>
				</dependency>
				
				<dependency>
					<groupId>org.infinispan</groupId>
					<artifactId>infinispan-core-jakarta</artifactId>
					<version>${org.infinispan.version}</version>
					<exclusions>
						<exclusion>
							<groupId>org.jboss.logging</groupId>
							<artifactId>jboss-logging</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
		
				<dependency>
					<groupId>jakarta.jms</groupId>
					<artifactId>jakarta.jms-api</artifactId>
					<version>${jakarta.jms.api}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.artemis</groupId>
					<artifactId>artemis-jakarta-client</artifactId>
					<version>${activemq.artemis.version}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.artemis</groupId>
					<artifactId>artemis-jakarta-server</artifactId>
					<version>${activemq.artemis.version}</version>
				</dependency>
			</dependencies>
			
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>src/main/webapp-jbosseap</directory>
									<filtering>false</filtering>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- This is only to play with an optimized WAR to cluster OpenOlat, highly experimental, never used in production -->
		<profile>
			<id>wildfly</id>
			<dependencies>
				<dependency>
					<groupId>javax.ws.rs</groupId>
					<artifactId>jsr311-api</artifactId>
					<version>1.1.1</version>
					<scope>provided</scope>
				</dependency>
				<dependency>
					<groupId>jakarta.jms</groupId>
					<artifactId>jakarta.jms-api</artifactId>
					<version>${jakarta.jms.api}</version>
					<scope>provided</scope>
				</dependency>
				
				<dependency>
					<groupId>org.hibernate.orm</groupId>
					<artifactId>hibernate-core</artifactId>
					<version>${org.hibernate.version}</version>
					<scope>provided</scope>
					<exclusions>
						<exclusion>
							<groupId>org.slf4j</groupId>
							<artifactId>slf4j-log4j12</artifactId>
						</exclusion>
						<exclusion>
							<groupId>com.sun.activation</groupId>
							<artifactId>jakarta.activation</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-entitymanager</artifactId>
					<version>${org.hibernate.version}</version>
					<scope>provided</scope>
				</dependency>
				<dependency>
					<groupId>org.infinispan</groupId>
					<artifactId>infinispan-hibernate-cache-v66</artifactId>
					<version>${org.infinispan.version}</version>
					<scope>provided</scope>
				</dependency>
				
				<dependency>
					<groupId>org.infinispan</groupId>
					<artifactId>infinispan-core</artifactId>
					<version>${org.infinispan.version}</version>
					<scope>provided</scope>
					<exclusions>
						<exclusion>
							<groupId>org.jboss.logging</groupId>
							<artifactId>jboss-logging</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
		
				<dependency>
					<groupId>org.postgresql</groupId>
					<artifactId>postgresql</artifactId>
					<version>${org.postgresql.version}</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>src/main/webapp-wildfly</directory>
									<filtering>false</filtering>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>postgresqlunittests</id>
			<activation>
				<property>
					<name>with-postgresql</name>
				</property>
			</activation>
			<properties>
				<testFailureIgnore>false</testFailureIgnore>
				<test.env>postgresql</test.env>
				<skipTests>false</skipTests>
			</properties>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-resources-plugin</artifactId>
						<version>2.4.3</version>
						<executions>
							<execution>
								<id>copy-resources-4-postgresqlunittests</id>
								<phase>generate-test-resources</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target/test-classes</outputDirectory>
									<resources>
										<resource>
											<!-- place resources you like to get filtered an copied -->
											<directory>src/test/profile/${test.env}</directory>
											<includes>
												<include>olat.local.properties</include>
											</includes>
											<filtering>true</filtering>
										</resource>
										<resource>
											<!-- place resources you like to get filtered an copied -->
											<directory>src/main/resources/database/postgresql</directory>
											<includes>
												<include>setupDatabase.sql</include>
											</includes>
											<filtering>true</filtering>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>sql-maven-plugin</artifactId>
						<version>1.5</version>
	
						<dependencies>
							<dependency>
								<groupId>org.postgresql</groupId>
								<artifactId>postgresql</artifactId>
								<version>${org.postgresql.version}</version>
								<exclusions>
									<exclusion>
										<groupId>com.github.dblock.waffle</groupId>
										<artifactId>waffle-jna</artifactId>
									</exclusion>
									<exclusion>
										<groupId>org.slf4j</groupId>
										<artifactId>slf4j-simple</artifactId>
									</exclusion>
								</exclusions>
							</dependency>
						</dependencies>
	
						<!-- common configuration shared by all executions -->
						<configuration>
							<driver>org.postgresql.Driver</driver>
							<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/${test.env.db.name}</url>
							<username>${test.env.db.postgresql.user}</username>
							<password>${test.env.db.postgresql.pass}</password>
						</configuration>
	
						<executions>
							<execution>
								<id>drop-postgresql-db-before-test</id>
								<phase>process-test-resources</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<!-- need another database to drop the targeted one -->
									<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
									<autocommit>true</autocommit>
									<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
									<!-- ignore error when database is not avaiable -->
									<onError>continue</onError>
								</configuration>
							</execution>
	
							<execution>
								<id>create-postgresql-db</id>
								<phase>process-test-resources</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
									<!-- no transaction -->
									<autocommit>true</autocommit>
									<sqlCommand>create database ${test.env.db.name}</sqlCommand>
								</configuration>
							</execution>
	
							<execution>
								<id>create-postgresql-schema</id>
								<phase>process-test-resources</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<autocommit>true</autocommit>
									<srcFiles>
										<srcFile>target/test-classes/setupDatabase.sql</srcFile>
									</srcFiles>
								</configuration>
							</execution>
	
							<!-- drop db after test -->
							<execution>
								<id>drop-postgresql-db-after-test</id>
								<!-- there is no post-test phase, the next phase after "test" is "prepare-package" 
									for integration tests running against PostgreSQL generated via setupDatabase.sql 
									there is need to bind a similar drop/create/schema/drop to pre-integration-test 
									and post-integration-test -->
								<phase>prepare-package</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
									<autocommit>true</autocommit>
									<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
								</configuration>
							</execution>
	
							<!-- Same for integration tests -->
							<execution>
								<id>drop-postgresql-db-before-integtration-test</id>
								<phase>pre-integration-test</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<!-- need another database to drop the targeted one -->
									<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
									<autocommit>true</autocommit>
									<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
									<!-- ignore error when database is not avaiable -->
									<onError>continue</onError>
								</configuration>
							</execution>
	
							<execution>
								<id>create-postgresql-db-before-integration-test</id>
								<phase>pre-integration-test</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
									<!-- no transaction -->
									<autocommit>true</autocommit>
									<sqlCommand>create database ${test.env.db.name}</sqlCommand>
								</configuration>
							</execution>
	
							<execution>
								<id>create-postgresql-schema-before-integration-test</id>
								<phase>pre-integration-test</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<autocommit>true</autocommit>
									<srcFiles>
										<srcFile>target/test-classes/setupDatabase.sql</srcFile>
									</srcFiles>
								</configuration>
							</execution>
	
							<!-- drop db after test -->
							<execution>
								<id>drop-postgresql-db-after-integration-test</id>
								<phase>post-integration-test</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<url>jdbc:postgresql://${test.env.db.postgresql.host}:${test.env.db.postgresql.host.port}/postgres</url>
									<autocommit>true</autocommit>
									<sqlCommand>drop database if exists ${test.env.db.name}</sqlCommand>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	
		<profile>
			<id>oracleunittests</id>
			<activation>
				<property>
					<name>with-oracle</name>
				</property>
			</activation>
			<properties>
				<testFailureIgnore>false</testFailureIgnore>
				<test.env>oracle</test.env>
				<skipTests>false</skipTests>
			</properties>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-resources-plugin</artifactId>
						<version>2.4.3</version>
						<executions>
							<execution>
								<id>copy-resources-4-oracleunittests</id>
								<phase>generate-test-resources</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target/test-classes</outputDirectory>
									<resources>
										<resource>
											<!-- place resources you like to get filtered an copied -->
											<directory>src/test/profile/${test.env}</directory>
											<includes>
												<include>olat.local.properties</include>
											</includes>
											<filtering>true</filtering>
										</resource>
										<resource>
											<!-- place resources you like to get filtered an copied -->
											<directory>src/main/resources/database/oracle</directory>
											<includes>
												<include>setupDatabase.sql</include>
											</includes>
											<filtering>true</filtering>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
			<dependencies>
				<dependency>
					<groupId>com.oracle.ojdbc</groupId>
					<artifactId>ojdbc8</artifactId>
					<version>19.3.0.0</version>
				</dependency>
			</dependencies>
		</profile>
	</profiles>
	<repositories>
		<repository>
			<id>central</id>
			<name>Maven Repository Switchboard</name>
			<layout>default</layout>
			<url>https://repo1.maven.org/maven2</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>openolat-repo</id>
			<name>OpenOLAT Public Maven Repository Group</name>
			<url>https://nexus.openolat.org/nexus/content/groups/public</url>
			<layout>default</layout>
			<releases>
				<enabled>true</enabled>
				<updatePolicy>never</updatePolicy>
			</releases>
			<snapshots>
				<enabled>true</enabled>
				<updatePolicy>daily</updatePolicy>
			</snapshots>
		</repository>
		<repository>
			<id>sonatype-snapshot</id>
			<name>Sonatype Snapshot</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
			<releases>
				<enabled>true</enabled>
				<updatePolicy>never</updatePolicy>
			</releases>
			<snapshots>
				<enabled>true</enabled>
				<updatePolicy>daily</updatePolicy>
			</snapshots>
		</repository>
	</repositories>
	<build>
		<!-- Useful maven commands: o mvn dependency:tree - check to see what other 
			dependencies get downloaded by an artifact o Maven lifecycle: Each phase 
			of the lifecycle can also be called independent - e.g. mvn process-resources 
			- http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference 
			o mvn versions:display-plugin-updates (find updates to maven plugins) o mvn 
			versions:use-latest-versions (automatically update dependencies. WARNING!!!) 
			o mvn versions:display-dependency-updates (shows updates for dependencies) 
			o mvn help:effective-pom - displays the computed pom, where you will see 
			what is getting executed after expanding vars and plugin settings -->

		<resources>
			<!-- as long as we have resources like html, css, js in the src/main/java 
				tree we need these two entries. the first tells maven to treat the java folder 
				as the resource folder but not to copy the java files. The later tell maven 
				that we have an other resource folder which is normally the default -->
			<resource>
				<directory>src/main/java</directory>
				<excludes>
					<exclude>**/*.java</exclude>
					<exclude>**/*.vsd</exclude>
					<exclude>**/*.odg</exclude>
					<exclude>**/*.odt</exclude>
					<exclude>**/*.pdf</exclude>
					<exclude>**/*.graffle</exclude>
					<exclude>**/doc-files/**</exclude>
					<exclude>**/propertyHandlers.jpg</exclude>
					<exclude>**/package.html</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<!-- when enabled resources will be searched and variables replaces with 
					values -->
				<filtering>false</filtering>
				<excludes>
					<exclude>log4j2.xml</exclude>
				</excludes>
			</resource>
		</resources>
		<testResources>
			<!-- Same comment as for src/main/java also applies to src/test/java -->
			<testResource>
				<directory>src/test/java</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</testResource>
			<testResource>
				<directory>src/test/resources</directory>
				<!-- when enabled resources will be searched and variables replaces with values -->
				<filtering>true</filtering>
			</testResource>
		</testResources>
		<plugins>
			<!-- Set the build number from git -->
			<plugin>
				<groupId>pl.project13.maven</groupId>
				<artifactId>git-commit-id-plugin</artifactId>
				<version>2.2.5</version>
				<executions>
					<execution>
						<id>get-the-git-infos</id>
						<goals>
							<goal>revision</goal>
						</goals>
						<phase>validate</phase>
					</execution>
				</executions>
				<configuration>
					<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.8</version>
				<executions>
					<!-- Copy the notice.txt file -->
					<execution>
						<id>copy-notices-txt</id>
						<phase>compile</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target name="copy notice.txt to web project">      
								<copy file="${project.basedir}/NOTICE.TXT"
									tofile="${project.build.outputDirectory}/NOTICE.TXT"/>
							</target>
						</configuration>                       
					</execution>
					<!-- Download tomcat for integration test -->
					<execution>
						<phase>pre-integration-test</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target>
								<mkdir dir="${project.build.directory}/downloads" />
								<get src="https://nexus.openolat.org/nexus/content/repositories/openolat/org/apache/tomcat/apache-tomcat-arq/11.0.27/apache-tomcat-arq-11.0.27.zip" dest="${project.build.directory}/downloads" verbose="true" skipexisting="true" />
								<unzip src="${project.build.directory}/downloads/apache-tomcat-arq-11.0.27.zip" dest="${project.build.directory}/arq-apache-tomcat-11.0.27" />
							</target>
						</configuration>
					</execution> 
				</executions>
			</plugin>
            <!-- Unit tests -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.5.4</version>
				<configuration>
					<encoding>UTF-8</encoding>
					<skipTests>${skipTests}</skipTests>
					<argLine>-Xmx2048m -Xms256m -Djava.awt.headless=true -Djava.security.egd=file:/dev/urandom</argLine>
					<systemPropertyVariables>
						<java.io.tmpdir>${project.build.directory}/olatdata</java.io.tmpdir>
					</systemPropertyVariables>
					<trimStackTrace>false</trimStackTrace>
					<testNGArtifactName>none:none</testNGArtifactName>
					<includes>
						<include>org/olat/test/AllTestsJunit4.java</include>
						<include>org/olat/test/QtiWorksTests.java</include>
					</includes>
				</configuration>
			</plugin>
			<!-- Selenium tests -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-failsafe-plugin</artifactId>
				<version>3.5.4</version>
				<configuration>
					<encoding>UTF-8</encoding>
					<skipITs>${skipSeleniumTests}</skipITs>
					<skipTests>${skipSeleniumTests}</skipTests>
					<reuseForks>true</reuseForks>
					<argLine>-Xmx2048m -Xms256m -Djava.awt.headless=true -Djava.security.egd=file:/dev/urandom</argLine>
					<trimStackTrace>false</trimStackTrace>
					<systemPropertyVariables>
						<profile>${test.env}</profile>
						<test.env.db.name>${test.env.db.name}</test.env.db.name>
						<test.env.db.postgresql.user>${test.env.db.postgresql.user}</test.env.db.postgresql.user>
						<test.env.db.postgresql.pass>${test.env.db.postgresql.pass}</test.env.db.postgresql.pass>
						<test.env.db.postgresql.host.port>${test.env.db.postgresql.host.port}</test.env.db.postgresql.host.port>
						<test.env.instance.id>${test.env.instance.id}</test.env.instance.id>
	    				<test.env.azure.adfs.enabled>${test.env.azure.adfs.enabled}</test.env.azure.adfs.enabled>
	    				<test.env.azure.adfs.client.id>${test.env.azure.adfs.client.id}</test.env.azure.adfs.client.id>
						<test.env.azure.adfs.client.secret>${test.env.azure.adfs.client.secret}</test.env.azure.adfs.client.secret>
						<test.env.azure.adfs.tenant>${test.env.azure.adfs.tenant}</test.env.azure.adfs.tenant>
						<test.env.azure.adfs.refresh.token>${test.env.azure.adfs.refresh.token}</test.env.azure.adfs.refresh.token>
						<arquillian.launch>tomcat-10-managed</arquillian.launch>
						<webdriver.browser>${test.env.webdriver.browser}</webdriver.browser>
					</systemPropertyVariables>
					<testNGArtifactName>none:none</testNGArtifactName>
					<includes>
						<include>org/olat/selenium/*Test.java</include>
					</includes>
				</configuration>
				<executions>
					<execution>
						<id>selenium-test</id>
						<goals>
							<goal>integration-test</goal>
						</goals>
					</execution>
					<execution>
						<id>selenium-verify</id>
						<goals>
							<goal>verify</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
        </plugins>
		<pluginManagement>
			<plugins>
				<!-- OLAT requires JDK 1.8 or later ! -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.14.1</version>
					<configuration>
						<release>${targetJdk}</release>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>3.4.0</version>
					<configuration>
						<attachClasses>${attach.classes}</attachClasses>
						<archiveClasses>${archive}</archiveClasses>
						<directory>src/main/java</directory>
						<archive>
							<manifest>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							</manifest>
							<manifestEntries>
								<Build-Change-Set>${git.commit.id}</Build-Change-Set>
								<Build-Change-Set-Date>${git.commit.time}</Build-Change-Set-Date>
								<Build-Revision-Number>${git.commit.id.abbrev}</Build-Revision-Number>
								<Implementation-Build>${buildNumber}</Implementation-Build>
							</manifestEntries>
						</archive>
						<warSourceExcludes>**/*.pxm, **/*.psd, **/*.sh, **/*.README</warSourceExcludes>
						<webResources>
							<resource>
								<directory>src/main/webapp</directory>
								<filtering>false</filtering>
							</resource>
						</webResources>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-antrun-plugin</artifactId>
										<versionRange>[1.8,)</versionRange>
										<goals>
											<goal>run</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.codehaus.mojo</groupId>
										<artifactId>sql-maven-plugin</artifactId>
										<versionRange>[1.5,)</versionRange>
										<goals>
											<goal>execute</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>

				<!-- The Eclipse plugin is only of interest to developers and requires 
					that WTP be installed. -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-eclipse-plugin</artifactId>
					<version>2.9</version>
					<configuration>
				        <linkedResources>
			               	<linkedResource>
		                        <name>/src/main/java/olat.local.properties</name>
		                        <type>1</type>
		                        <location>${basedir}/olat.local.properties</location>
                			</linkedResource>
                			<linkedResource>
		                        <name>/src/test/java/olat.local.properties</name>
		                        <type>1</type>
		                        <location>${basedir}/src/test/profile/postgresql/olat.local.properties</location>
                			</linkedResource>
				        </linkedResources>				        
						<wtpversion>2.0</wtpversion>
						<!-- context name for servlet container e.g. localhost:8080/olat -->
						<wtpContextName>olat</wtpContextName>
						<downloadSources>true</downloadSources>
								<additionalConfig>
									<file>
										<name>.settings/org.eclipse.core.resources.prefs</name>
										<content>
											<![CDATA[eclipse.preferences.version=1
											encoding/<project>=UTF-8]]>
										</content>
									</file>
								</additionalConfig>
					</configuration>
				</plugin>

				<!-- reporting i.e., the site goal requires a more recent plugin version -->
				<plugin>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.1</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>3.6.1</version>
					<executions>
						<execution>
							<id>show-versions</id>
							<phase>validate</phase>
							<goals>
								<goal>display-info</goal>
							</goals>
						</execution>
						<execution>
							<id>enforce-versions</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<requireMavenVersion>
										<version>3.0.5</version>
									</requireMavenVersion>
									<requireJavaVersion>
										<version>25+</version>
									</requireJavaVersion>
								</rules>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<!-- Dependency checks -->
				<plugin>
					<groupId>org.owasp</groupId>
					<artifactId>dependency-check-maven</artifactId>
					<version>12.1.6</version>
					<executions>
						<execution>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>versions-maven-plugin</artifactId>
					<version>2.19.1</version>
					<configuration>
						<rulesUri>file://${basedir}/scripts/version-rules.xml</rulesUri>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<!-- check with mvn dependency:tree to see what other dep. get downloaded -->
	<dependencies>
		<dependency>
			<groupId>org.apache.artemis</groupId>
			<artifactId>artemis-jakarta-client</artifactId>
			<version>${activemq.artemis.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.artemis</groupId>
			<artifactId>artemis-jakarta-server</artifactId>
			<version>${activemq.artemis.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<!-- Used by SCORM implementation -->
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>fop</artifactId>
			<version>2.12</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xalan</groupId>
					<artifactId>xalan</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis-ext</artifactId>
				</exclusion>
				<exclusion>
					<groupId>javax.servlet</groupId>
					<artifactId>servlet-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.23.0</version>
		</dependency>
		<dependency>
			<!-- Used by at least commons-validator -->
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.2</version>
		</dependency>
		<dependency>
			<!-- Used by email address validator -->
			<groupId>commons-validator</groupId>
			<artifactId>commons-validator</artifactId>
			<version>1.11.0</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-digester</groupId>
					<artifactId>commons-digester</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-beanutils</groupId>
					<artifactId>commons-beanutils</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<!-- Used by at least commons-fileupload, webdriver -->
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.22.0</version>
		</dependency>
		<dependency>
			<groupId>org.openolat</groupId>
			<artifactId>jcodec</artifactId>
			<version>0.2.5.1</version>
		</dependency>
		<dependency>
			<groupId>org.openolat</groupId>
			<artifactId>jcodec-javase</artifactId>
			<version>0.2.5.1</version>
		</dependency>
		<dependency>
			<groupId>org.mnode.ical4j</groupId>
			<artifactId>ical4j-zoneinfo-outlook</artifactId>
			<version>2.2.0</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.mnode.ical4j</groupId>
			<artifactId>ical4j</artifactId>
			<version>4.3.0</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.mail</groupId>
					<artifactId>javax.mail</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.openolat.jamwiki</groupId>
			<artifactId>jamwiki-core</artifactId>
			<version>1.0.5</version>
		</dependency>
		<dependency>
			<groupId>org.openolat</groupId>
			<artifactId>openmeetingws</artifactId>
			<version>3.0.8.jee9</version>
		</dependency>
		<dependency>
			<groupId>org.openolat</groupId>
			<artifactId>viterows</artifactId>
			<version>10.3.1</version>
		</dependency>
		<dependency>
			<groupId>org.dhatim</groupId>
			<artifactId>fastexcel-reader</artifactId>
			<version>0.20.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>${apache.poi}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-scratchpad</artifactId>
			<version>${apache.poi}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.pdfbox</groupId>
			<artifactId>pdfbox</artifactId>
			<version>${apache.pdfbox}</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.junit.jupiter</groupId>
					<artifactId>junit-jupiter</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.pdfbox</groupId>
			<artifactId>xmpbox</artifactId>
			<version>${apache.pdfbox}</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.junit.jupiter</groupId>
					<artifactId>junit-jupiter</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.commonmark</groupId>
			<artifactId>commonmark</artifactId>
			<version>${org.commonmark}</version>
		</dependency>
		<dependency>
			<groupId>org.commonmark</groupId>
			<artifactId>commonmark-ext-gfm-tables</artifactId>
			<version>${org.commonmark}</version>
		</dependency>
		<dependency>
			<groupId>org.commonmark</groupId>
			<artifactId>commonmark-ext-gfm-strikethrough</artifactId>
			<version>${org.commonmark}</version>
		</dependency>
		<dependency>
			<groupId>org.commonmark</groupId>
			<artifactId>commonmark-ext-task-list-items</artifactId>
			<version>${org.commonmark}</version>
		</dependency>
		<dependency>
			<groupId>org.commonmark</groupId>
			<artifactId>commonmark-ext-autolink</artifactId>
			<version>${org.commonmark}</version>
		</dependency>
		<dependency>
			<groupId>org.commonmark</groupId>
			<artifactId>commonmark-ext-footnotes</artifactId>
			<version>${org.commonmark}</version>
		</dependency>
		<dependency>
			<groupId>org.commonmark</groupId>
			<artifactId>commonmark-ext-image-attributes</artifactId>
			<version>${org.commonmark}</version>
		</dependency>
		<dependency>
			<groupId>org.commonmark</groupId>
			<artifactId>commonmark-ext-yaml-front-matter</artifactId>
			<version>${org.commonmark}</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcjmail-jdk18on</artifactId>
			<version>${org.bouncycastle}</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcprov-jdk18on</artifactId>
			<version>${org.bouncycastle}</version>
		</dependency>
		<dependency>
		    <groupId>com.github.scribejava</groupId>
		    <artifactId>scribejava-apis</artifactId>
		    <version>8.3.3</version>
		</dependency>
		<dependency>
			<groupId>com.webauthn4j</groupId>
			<artifactId>webauthn4j-core</artifactId>
			<version>0.30.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>io.jsonwebtoken</groupId>
			<artifactId>jjwt-api</artifactId>
			<version>${io.jsonwebtoken}</version>
		</dependency>
		<dependency>
			<groupId>io.jsonwebtoken</groupId>
			<artifactId>jjwt-impl</artifactId>
			<version>${io.jsonwebtoken}</version>
			 <scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>io.jsonwebtoken</groupId>
			<artifactId>jjwt-jackson</artifactId>
			<version>${io.jsonwebtoken}</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>jaxen</groupId>
			<artifactId>jaxen</artifactId>
			<version>2.0.6</version>
			<exclusions>
				<exclusion>
					<groupId>com.ibm.icu</groupId>
					<artifactId>icu4j</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xalan</groupId>
					<artifactId>xalan</artifactId>
				</exclusion>
				<exclusion>
					<groupId>jdom</groupId>
					<artifactId>jdom</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>2.2.0</version>
		</dependency>
		<dependency>
			<groupId>fmath</groupId>
			<artifactId>fmath-latex-mathml</artifactId>
			<version>3.1</version>
			<!-- need org.jdom2 2.0.6 -->
		</dependency>
		<dependency>
			<groupId>jgrapht</groupId>
			<artifactId>jgrapht</artifactId>
			<version>0.6.0</version>
		</dependency>
		<!-- Start dependency to qtiworks -->
		<dependency>
			<groupId>org.openolat.qtiworks</groupId>
			<artifactId>qtiworks-jqtiplus</artifactId>
			<version>${qtiworks.version}</version>
		</dependency>
		<dependency>
			<groupId>org.openolat.qtiworks</groupId>
			<artifactId>qtiworks-jqtiplus</artifactId>
			<version>${qtiworks.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.openolat.qtiworks</groupId>
			<artifactId>qtiworks-samples</artifactId>
			<version>${qtiworks.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.openolat.qtiworks</groupId>
			<artifactId>qtiworks-samples</artifactId>
			<version>${qtiworks.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
		<!-- End dependency to qtiworks -->
		<dependency>
			<groupId>org.openolat.imscp</groupId>
			<artifactId>manifest</artifactId>
			<version>3.1.1</version>
		</dependency>
		<dependency>
			<groupId>com.rometools</groupId>
			<artifactId>rome</artifactId>
			<version>2.1.0</version>
			<exclusions>
				<exclusion>
					<groupId>jdom</groupId>
					<artifactId>jdom</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- logging stuff -->	
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${org.slf4j}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
    		<artifactId>log4j-api</artifactId>
			<version>${apache.log4j}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-jul</artifactId>
			<version>${apache.log4j}</version>
		</dependency>

		<!-- Replace commons-logging -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-jcl</artifactId>
			<version>${apache.log4j}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>${apache.log4j}</version>
		</dependency>
		<dependency>
			<groupId>com.lmax</groupId>
			<artifactId>disruptor</artifactId>
			<version>4.0.0</version><!-- Log4j2 is not compatible with 4.0 -->
		</dependency>

		<!-- basic LTI stuff for lti demo: http://www.imsglobal.org/toolsinteroperability2.cfm -->
		<dependency>
			<groupId>org.sakaiproject.basiclti</groupId>
			<artifactId>basiclti-util</artifactId>
			<version>2.10.3</version>
		</dependency>
		<!-- J2EE dependencies but provided -->
		<dependency>
			<groupId>jakarta.servlet</groupId>
			<artifactId>jakarta.servlet-api</artifactId>
			<version>6.1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>jakarta.websocket</groupId>
			<artifactId>jakarta.websocket-api</artifactId>
			<version>2.2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>jakarta.websocket</groupId>
			<artifactId>jakarta.websocket-client-api</artifactId>
			<version>2.2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>jakarta.jms</groupId>
			<artifactId>jakarta.jms-api</artifactId>
			<version>${jakarta.jms.api}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>jakarta.transaction</groupId>
		    <artifactId>jakarta.transaction-api</artifactId>
		    <version>2.0.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>jakarta.xml.ws</groupId>
		    <artifactId>jakarta.xml.ws-api</artifactId>
		    <version>${jakarta.xml.ws-api}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>jakarta.el</groupId>
		    <artifactId>jakarta.el-api</artifactId>
		    <version>6.0.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.glassfish</groupId>
			<artifactId>jakarta.el</artifactId>
			<version>4.0.2</version>
		</dependency>
		<dependency>
		    <groupId>jakarta.xml.bind</groupId>
		    <artifactId>jakarta.xml.bind-api</artifactId>
		    <version>${jakarta.xml.bind-api}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>org.glassfish.jaxb</groupId>
		    <artifactId>jaxb-runtime</artifactId>
		    <version>${org.glassfish.jaxb.runtime}</version>
			<scope>test</scope>
		</dependency>

		<!-- core dependencies -->
		<dependency>
			<groupId>nu.validator</groupId>
			<artifactId>htmlparser</artifactId>
			<version>1.4.16</version>
		</dependency>
		<dependency>
			<groupId>com.googlecode.owasp-java-html-sanitizer</groupId>
			<artifactId>owasp-java-html-sanitizer</artifactId>
			<version>20261107.1</version>
		</dependency>
		<dependency>
			<groupId>org.w3c.css</groupId>
			<artifactId>sac</artifactId>
			<version>1.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-css</artifactId>
			<version>1.20</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis-ext</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-util</artifactId>
			<version>1.20</version>
		</dependency>
		<dependency>
			<groupId>de.java2html</groupId>
			<artifactId>java2html</artifactId>
			<version>5.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
			<version>4.4.16</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.5.14</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpmime</artifactId>
			<version>4.5.14</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.21.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-text</artifactId>
			<version>1.15.0</version>
		</dependency>
		<dependency>
			<groupId>com.opencsv</groupId>
			<artifactId>opencsv</artifactId>
			<version>5.12.0</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-beanutils</groupId>
					<artifactId>commons-beanutils</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.infinispan</groupId>
			<artifactId>infinispan-core</artifactId>
			<version>${org.infinispan.version}</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.jboss.logging</groupId>
					<artifactId>jboss-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.hibernate.orm</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>${org.hibernate.version}</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.activation</groupId>
					<artifactId>jakarta.activation</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.hibernate.validator</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>${org.hibernate.validator.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.infinispan</groupId>
			<artifactId>infinispan-hibernate-cache-v66</artifactId>
			<version>${org.infinispan.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.infinispan</groupId>
			<artifactId>infinispan-component-annotations</artifactId>
			<version>${org.infinispan.version}</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.hibernate.orm</groupId>
			<artifactId>hibernate-hikaricp</artifactId>
			<version>${org.hibernate.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.velocity</groupId>
			<artifactId>velocity-engine-core</artifactId>
			<version>2.4.1</version>
		</dependency>
		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20260814</version>
		</dependency>
		<dependency>
			<groupId>jazzlib</groupId>
			<artifactId>jazzlib</artifactId>
			<version>0.0.6</version> <!-- do not replace with 0.0.7 as this version is highly patched. -->
			<classifier>patched</classifier>
		</dependency>
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.5.2</version>
			<exclusions>
				<exclusion>
					<groupId>com.mchange</groupId>
					<artifactId>c3p0</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.mchange</groupId>
					<artifactId>mchange-commons-java</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.zaxxer</groupId>
					<artifactId>HikariCP-java7</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.thoughtworks.xstream</groupId>
			<artifactId>xstream</artifactId>
			<version>1.4.21</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.angus</groupId>
			<artifactId>angus-mail</artifactId>
			<version>2.0.5</version>		
		</dependency>
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>nimbus-jose-jwt</artifactId>
			<version>10.10</version>		
		</dependency>
		<dependency>
			<groupId>com.neemsoft</groupId>
			<artifactId>jmep</artifactId>
			<version>unknown</version>
			<classifier>patched</classifier> <!-- unknown patched version of jmep (java mathematical expression parser)[http://jmep.tigris.org/], 
				do not replace unless you know what you do! -->
		</dependency>
		<!-- Microsoft Graph -->
		<dependency>
			<groupId>com.microsoft.graph</groupId>
			<artifactId>microsoft-graph</artifactId>
			<version>6.72.0</version>
			<exclusions>
				<exclusion>
					<groupId>javax.xml.stream</groupId>
					<artifactId>stax-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.microsoft.azure</groupId>
			<artifactId>msal4j</artifactId>
			<version>1.26.0</version>
			<exclusions>
				<exclusion>
					<groupId>com.sun.mail</groupId>
					<artifactId>javax.mail</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.azure</groupId>
			<artifactId>azure-identity</artifactId>
			<version>1.19.0</version>
		</dependency>
		<!-- End Microsoft Graph -->
		<!-- Lucene dependencies -->
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-core</artifactId>
			<version>${lucene.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-highlighter</artifactId>
			<version>${lucene.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-queryparser</artifactId>
			<version>${lucene.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-analyzers-common</artifactId>
			<version>${lucene.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-suggest</artifactId>
			<version>${lucene.version}</version>
		</dependency>
		
		<!-- End lucene dependencies -->
		<!-- Spring dependencies -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${org.springframework.version}</version>
			<exclusions>
				<exclusion><!-- use jlc-over-slfj because we still use log4j version 1.2 -->
					<groupId>org.springframework</groupId>
					<artifactId>spring-jcl</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-expression</artifactId>
			<version>${org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>${org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${org.springframework.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${org.springframework.version}</version>
			<exclusions>
				<exclusion>
					<groupId>commons-fileupload</groupId>
					<artifactId>commons-fileupload</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- end Spring dependencies -->
		<!-- Start Apache CXF dependency and Active MQ Broker -->
		<dependency>
            <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
            <artifactId>jackson-jakarta-rs-base</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
            <artifactId>jackson-jakarta-rs-json-provider</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.annotations.version}</version>
        </dependency>
        <dependency>
        	<groupId>com.fasterxml.jackson.core</groupId>
        	<artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
        	<groupId>com.fasterxml.jackson.datatype</groupId>
        	<artifactId>jackson-datatype-jsr310</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
        	<groupId>com.fasterxml.jackson.datatype</groupId>
        	<artifactId>jackson-datatype-jdk8</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
        	<groupId>com.fasterxml.jackson.dataformat</groupId>
        	<artifactId>jackson-dataformat-yaml</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
        	<groupId>com.fasterxml.jackson.dataformat</groupId>
        	<artifactId>jackson-dataformat-xml</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
        	<groupId>com.fasterxml.jackson.dataformat</groupId>
        	<artifactId>jackson-dataformat-cbor</artifactId>
            <version>${jackson.version}</version>
        </dependency>
		<!-- end Apache CXF dependency and Active MQ Broker -->
		
		<!-- paypal -->
		<dependency>
			<groupId>com.paypal.sdk</groupId>
			<artifactId>checkout-sdk</artifactId>
			<version>2.0.0</version>
		</dependency>
		<dependency>
			<groupId>com.paypal.sdk</groupId>
			<artifactId>rest-api-sdk</artifactId>
			<version>1.14.0</version>
		</dependency>
		<!-- end Paypal -->

		<!-- AI API -->
		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j</artifactId>
			<version>${dev.langchain4j}</version>
		</dependency>
		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-open-ai</artifactId>
			<version>${dev.langchain4j}</version>
		</dependency>
		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-anthropic</artifactId>
			<version>${dev.langchain4j}</version>
		</dependency>
		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-embeddings</artifactId>
			<version>${dev.langchain4j}-beta33</version>
		</dependency>
		<!-- end AI API -->

		<!-- MCP server (spike S1, 2026-10-02): official MCP Java SDK, Jackson 2 binding -->
		<dependency>
			<groupId>io.modelcontextprotocol.sdk</groupId>
			<artifactId>mcp-core</artifactId>
			<version>${mcp.sdk.version}</version>
			<exclusions>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-annotations</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>io.modelcontextprotocol.sdk</groupId>
			<artifactId>mcp-json-jackson2</artifactId>
			<version>${mcp.sdk.version}</version>
			<exclusions>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-databind</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.fasterxml.jackson.dataformat</groupId>
					<artifactId>jackson-dataformat-yaml</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- end MCP server -->

		<!-- Start test dependencies -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13.2</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>3.27.7</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>5.24.0</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>xmlunit</groupId>
			<artifactId>xmlunit</artifactId>
			<version>1.6</version>
			<scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>io.undertow</groupId>
		    <artifactId>undertow-core</artifactId>
		    <version>${io.undertow}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>io.undertow.ee</groupId>
		    <artifactId>undertow-servlet</artifactId>
		    <version>${io.undertow.ee}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.zapodot</groupId>
			<artifactId>embedded-ldap-junit</artifactId>
			<version>0.9.0</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.github.kirviq</groupId>
			<artifactId>dumbster</artifactId>
			<version>1.7.1</version>
			<scope>test</scope>
		</dependency>
    
		<!-- Start test dependencies for Arquillian and Selenium -->
		<dependency>
			<groupId>org.jboss.arquillian.junit</groupId>
			<artifactId>arquillian-junit-container</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.jboss.arquillian.container</groupId>
			<artifactId>arquillian-tomcat-managed-10</artifactId>
			<version>1.2.5.Final</version>
		<scope>test</scope>
      	</dependency>
		<dependency>
			<groupId>org.eu.ingwar.tools</groupId>
			<artifactId>arquillian-suite-extension</artifactId>
			<version>1.2.2</version>
			<scope>test</scope>
		</dependency>
		<dependency><!-- Ingwar needs org.reflection which needs javassist but has scope compile, Protostream from Infinispan too -->
			<groupId>org.javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.33.0-GA</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.15.0</version>
		</dependency>
		<!-- Used by LDAP zapdots -->
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>33.8.0-jre</version>
			<scope>test</scope>
		</dependency>
		<!--  selenium first -->
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-api</artifactId>
			<version>${version.selenium}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<version>${version.selenium}</version>
			<scope>test</scope>
		</dependency>
		<!-- End test dependencies -->
	</dependencies>
	
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.jboss.arquillian</groupId>
				<artifactId>arquillian-bom</artifactId>
				<version>1.10.2.Final</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>
		</dependencies>
	</dependencyManagement>
	
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>3.4.1</version>
				<configuration>
					<!-- disable checking of url's im pom's -->
					<dependencyDetailsEnabled>false</dependencyDetailsEnabled>
					<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>3.5.4</version>
			</plugin>
		</plugins>
	</reporting>
	
	<ciManagement>
		<system>Jenkins</system>
		<url>https://jenkins.frentix.com</url>
	</ciManagement>
</project>