<?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>8.4-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>OpenOLAT LMS</name>
	<url>http://www.openolat.org</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>http://www.openolat.org</url>
	</organization>
	<licenses>
		<license>
			<name>Apache 2.0 Open Source License</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0</url>
			<distribution>manual</distribution>
			<comments>
		OpenOLAT is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
		</comments>
		</license>
	</licenses>
	<distributionManagement>
		<repository>
			<id>releases</id>
			<name>OpenOLAT Internal Nexus Release Repository</name>
			<url>http://nexus.openolat.org/nexus/content/repositories/releases</url>
		</repository>
		<snapshotRepository>
			<id>snapshots</id>
			<name>OpenOLAT Internal Nexus Snapshot Repository</name>
			<url>http://nexus.openolat.org/nexus/content/repositories/snapshots</url>
		</snapshotRepository>
	</distributionManagement>
	<issueManagement>
		<system>JIRA</system>
		<url>http://jira.openolat.org</url>
	</issueManagement>
	<scm>
		<connection>scm:hg:http://hg.openolat.org</connection>
		<developerConnection>scm:hg:http://hg.openolat.org</developerConnection>
		<url>http://hg.openolat.org</url>
	</scm>
	<mailingLists>
		<mailingList>
			<name>openolat</name>
			<subscribe>https://groups.google.com/forum/#!forum/openolat</subscribe>
			<post>openolat@googlegroups.com</post>
			<archive>https://groups.google.com/forum/#!forum/openolat</archive>
		</mailingList>
	</mailingLists>
	<!-- Unless otherwise explicitly stated the character encoding for all resources 
		(e.g., source, test etc.) will be UTF-8. This can be overriden at the plugin 
		level if necessary. -->
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<targetJdk>1.6</targetJdk>
		<org.springframework.version>3.2.1.RELEASE</org.springframework.version>
		<org.hibernate.version>4.1.10.Final</org.hibernate.version>
		<com.sun.jersey.version>1.15</com.sun.jersey.version>
		<jackson.version>1.9.2</jackson.version>
		<org.mysql.version>5.1.23</org.mysql.version>
		<org.postgresql.version>9.1-901.jdbc4</org.postgresql.version>
		<org.infinispan.version>5.2.1.Final</org.infinispan.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 -->
	    <skipTests>true</skipTests>
	    <skipITs>true</skipITs>
	    <!-- properties to define the testing environment -->
	    <test.env>mysql</test.env>
	    <!-- olat.local.properties to distinguish multiple single and cluster olat instances on a single machine-->
	    <test.env.db.name>olattest</test.env.db.name>
	    <test.env.db.user>olat</test.env.db.user>
	    <test.env.db.pass>olat</test.env.db.pass>
	    <test.env.db.host.port>3306</test.env.db.host.port>
	    <test.env.db.postgresql.user>postgres</test.env.db.postgresql.user>
	    <test.env.db.postgresql.pass>postgres</test.env.db.postgresql.pass>
	    <test.env.db.postgresql.host.port>5432</test.env.db.postgresql.host.port>
	    <test.env.instance.id>myolat</test.env.instance.id>
	    <test.env.jmx.rmi.port.0>3000</test.env.jmx.rmi.port.0>

	</properties>
	<profiles>
		<profile>
			<id>documentation</id>
			<build>
				<plugins>
					<plugin>
						<groupId>com.sun.tools.jxc.maven2</groupId>
						<artifactId>maven-jaxb-schemagen-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>com.sun.jersey.contribs</groupId>
						<artifactId>maven-wadl-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>xml-maven-plugin</artifactId>
					</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>
				<!-- Jersey for tomcat -->
				<dependency>
					<groupId>javax.ws.rs</groupId>
					<artifactId>jsr311-api</artifactId>
					<version>1.1.1</version>
				</dependency>
				<dependency>
					<groupId>com.sun.jersey</groupId>
					<artifactId>jersey-server</artifactId>
					<version>${com.sun.jersey.version}</version>
					<exclusions>
						<exclusion>
							<groupId>org.springframework</groupId>
							<artifactId>spring-core</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.springframework</groupId>
							<artifactId>spring</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.springframework</groupId>
							<artifactId>spring-beans</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.springframework</groupId>
							<artifactId>spring-context</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.springframework</groupId>
							<artifactId>spring-web</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.springframework</groupId>
							<artifactId>spring-aop</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.springframework</groupId>
							<artifactId>spring-jca</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>com.sun.jersey</groupId>
					<artifactId>jersey-servlet</artifactId>
					<version>${com.sun.jersey.version}</version>
				</dependency>
				
				<dependency>
					<groupId>dom4j</groupId>
					<artifactId>dom4j</artifactId>
					<version>1.6.1</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-core</artifactId>
					<version>${org.hibernate.version}</version>
					<exclusions>
						<exclusion>
							<groupId>org.slf4j</groupId>
							<artifactId>slf4j-log4j12</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-entitymanager</artifactId>
					<version>${org.hibernate.version}</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-infinispan</artifactId>
					<version>${org.hibernate.version}</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-c3p0</artifactId>
					<version>${org.hibernate.version}</version>
					<exclusions>
						<!-- includes an old version of c3p0 -->
						<exclusion>
							<artifactId>c3p0</artifactId>
							<groupId>c3p0</groupId>
						</exclusion>
					</exclusions>
				</dependency>
				
				<dependency>
					<groupId>org.infinispan</groupId>
					<artifactId>infinispan-core</artifactId>
					<version>${org.infinispan.version}</version>
					<exclusions>
						<exclusion>
							<groupId>org.jboss.spec.javax.transaction</groupId>
							<artifactId>jboss-transaction-api_1.1_spec</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.logging</groupId>
							<artifactId>jboss-logging</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.codehaus.woodstox</groupId>
							<artifactId>woodstox-core-asl</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.codehaus.woodstox</groupId>
							<artifactId>stax2-api</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.rhq.helpers</groupId>
							<artifactId>rhq-pluginAnnotations</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
		
				<dependency>
					<groupId>mysql</groupId>
					<artifactId>mysql-connector-java</artifactId>
					<version>${org.mysql.version}</version>
				</dependency>
				<dependency>
					<groupId>postgresql</groupId>
					<artifactId>postgresql</artifactId>
					<version>${org.postgresql.version}</version>
				</dependency>
		
				<dependency>
					<groupId>org.apache.geronimo.specs</groupId>
					<artifactId>geronimo-jms_1.1_spec</artifactId>
					<version>1.1.1</version>
				</dependency>
				<dependency>
					<groupId>org.apache.activemq</groupId>
					<artifactId>activemq-core</artifactId>
					<version>5.3.2</version>
					<exclusions>
						<exclusion>
							<groupId>backport-util-concurrent</groupId>
							<artifactId>backport-util-concurrent</artifactId>
						</exclusion>
						<exclusion>
							<groupId>javax.activation</groupId>
							<artifactId>activation</artifactId>
						</exclusion>
						<!-- fxdiff: FXOLAT-243  clean up the dependencies of ActiveMQ -->
						<exclusion>
							<groupId>org.springframework.osgi</groupId>
							<artifactId>spring-osgi-core</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.apache.activemq</groupId>
							<artifactId>kahadb</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.osgi</groupId>
							<artifactId>org.osgi.core</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.apache.geronimo.specs</groupId>
							<artifactId>geronimo-j2ee-management_1.0_spec</artifactId>
						</exclusion>
						<exclusion>
							<groupId>commons-logging</groupId>
							<artifactId>commons-logging-api</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
			</dependencies>
			
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>src/main/webapp</directory>
									<filtering>false</filtering>
								</resource>
								<resource>
									<directory>src/main/webapp-tomcat</directory>
									<filtering>false</filtering>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>jbossas7</id>
	
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>src/main/webapp-jbossas7</directory>
									<filtering>false</filtering>
								</resource>
								<resource>
									<directory>src/main/webapp</directory>
									<filtering>false</filtering>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		
		<profile>
			<id>gae</id>
			<dependencies>
				<dependency>
					<groupId>dom4j</groupId>
					<artifactId>dom4j</artifactId>
					<version>1.6.1</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-core</artifactId>
					<version>${org.hibernate.version}</version>
					<exclusions>
						<exclusion>
							<groupId>org.slf4j</groupId>
							<artifactId>slf4j-log4j12</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-entitymanager</artifactId>
					<version>${org.hibernate.version}</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-infinispan</artifactId>
					<version>${org.hibernate.version}</version>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-c3p0</artifactId>
					<version>${org.hibernate.version}</version>
					<exclusions>
						<!-- includes an old version of c3p0 -->
						<exclusion>
							<artifactId>c3p0</artifactId>
							<groupId>c3p0</groupId>
						</exclusion>
					</exclusions>
				</dependency>
		
				<dependency>
					<groupId>mysql</groupId>
					<artifactId>mysql-connector-java</artifactId>
					<version>${org.mysql.version}</version>
				</dependency>
				<dependency>
					<groupId>postgresql</groupId>
					<artifactId>postgresql</artifactId>
					<version>${org.postgresql.version}</version>
				</dependency>
		
				<dependency>
					<groupId>org.apache.activemq</groupId>
					<artifactId>activemq-core</artifactId>
					<version>5.3.2</version>
					<exclusions>
						<exclusion>
							<groupId>backport-util-concurrent</groupId>
							<artifactId>backport-util-concurrent</artifactId>
						</exclusion>
						<exclusion>
							<groupId>javax.activation</groupId>
							<artifactId>activation</artifactId>
						</exclusion>
						<!-- fxdiff: FXOLAT-243  clean up the dependencies of ActiveMQ -->
						<exclusion>
							<groupId>org.springframework.osgi</groupId>
							<artifactId>spring-osgi-core</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.apache.activemq</groupId>
							<artifactId>kahadb</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.osgi</groupId>
							<artifactId>org.osgi.core</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.apache.geronimo.specs</groupId>
							<artifactId>geronimo-j2ee-management_1.0_spec</artifactId>
						</exclusion>
						<exclusion>
							<groupId>commons-logging</groupId>
							<artifactId>commons-logging-api</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
			</dependencies>
		
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>src/main/webapp</directory>
									<filtering>false</filtering>
								</resource>
								<resource>
									<directory>src/main/webapp-gae</directory>
									<filtering>false</filtering>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

    <profile>
      <id>mysqlunittests</id>
      <activation>
        <property>
          <name>with-mysql</name>
        </property>
      </activation>
      <properties>
        <skipTests>false</skipTests>
        <skipITs>true</skipITs>
        <testFailureIgnore>false</testFailureIgnore>
        <test.env>mysql</test.env>
      </properties>
      <build>
        <plugins>
          <plugin>
            <!-- Documentation: http://maven.apache.org/plugins/maven-surefire-plugin/ -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.8.1</version>
            <configuration>
              <argLine>-XX:MaxPermSize=128m -Xmx512m -Xms256m -Djava.awt.headless=true</argLine>
            	<systemPropertyVariables>
								<java.io.tmpdir>${project.build.directory}/olatdata</java.io.tmpdir>
							</systemPropertyVariables>
              <testNGArtifactName>none:none</testNGArtifactName>
              <includes>
                <include>org/olat/test/AllTestsJunit4.java</include>
              </includes>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
              <execution>
                <id>copy-resources-4-mysqlunittests</id>
                <!-- hook in to copy maven.build.properties to allow test and integration-test phase run properly -->
                <phase>generate-test-resources</phase>
                <goals>
                  <goal>copy-resources</goal>
                </goals>
                <configuration>
                  <outputDirectory>${basedir}/target/test-classes</outputDirectory>
                  <resources>
                    <resource>
                      <!-- place resources you like to get filtered an copied -->
                      <directory>src/test/profile/${test.env}</directory>
                      <includes>
                        <include>olat.local.properties</include>
                      </includes>
                      <filtering>true</filtering>
                    </resource>
                    <resource>
                      <!-- place resources you like to get filtered an copied -->
                      <directory>src/main/resources/database/mysql</directory>
                      <includes>
                        <include>setupDatabase.sql</include>
                      </includes>
                      <filtering>true</filtering>
                    </resource>
                  </resources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>clean-mysql-dbsetup</id>
      <activation>
        <property>
          <name>with-mysql</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
              <execution>
                <id>copy-resources-4-clean-mysql-dbsetup</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/main/resources/database/mysql</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.4</version>

            <dependencies>
              <dependency>
                <!-- DO NOT UPDATE! -->
                <!-- Due to our special setup where we use the jdbc driver to convert 
				          from utf-8 to iso we cannot update this lib at the moment. -->
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${org.mysql.version}</version>
              </dependency>
            </dependencies>

            <!-- common configuration shared by all executions -->
            <configuration>
              <driver>com.mysql.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>
              <!-- You can comment out username/password configurations and
                   have maven to look them up in your settings.xml using ${settingsKey}
              
              <settingsKey>sensibleKey</settingsKey>-->
              <!--all executions are ignored if -Dmaven.test.skip=true-->
              <skip>${maven.test.skip}</skip>
            </configuration>

            <executions>
              <execution>
                <id>drop-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 ${test.env.db.name}</sqlCommand>
                  <!-- ignore error when database is not avaiable -->
                  <onError>continue</onError>
                </configuration>
              </execution>

              <execution>
                <id>create-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-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-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 ${test.env.db.name}</sqlCommand>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <profile>
      <id>postgresqlunittests</id>
      <activation>
        <property>
          <name>with-postgresql</name>
        </property>
      </activation>
      <properties>
        <skipTests>false</skipTests>
        <skipITs>true</skipITs>
        <testFailureIgnore>false</testFailureIgnore>
        <test.env>postgresql</test.env>
      </properties>
      <build>
        <plugins>
          <plugin>
            <!-- Documentation: http://maven.apache.org/plugins/maven-surefire-plugin/ -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.8.1</version>
            <configuration>
              <argLine>-XX:MaxPermSize=128m -Xmx512m -Xms256m -Djava.awt.headless=true</argLine>
            	<systemPropertyVariables>
								<java.io.tmpdir>${project.build.directory}/olatdata</java.io.tmpdir>
							</systemPropertyVariables>
              <testNGArtifactName>none:none</testNGArtifactName>
              <includes>
                <include>org/olat/test/AllTestsJunit4.java</include>
              </includes>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
              <execution>
                <id>copy-resources-4-postgresqlunittests</id>
                <!-- hook in to copy maven.build.properties to allow test and integration-test phase run properly -->
                <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>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>clean-postgresql-dbsetup</id>
      <activation>
        <property>
          <name>with-postgresql</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
              <execution>
                <id>copy-resources-4-clean-postgresql-dbsetup</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/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>postgresql</groupId>
			          <artifactId>postgresql</artifactId>
			          <version>8.4-701.jdbc4</version>
		          </dependency>
            </dependencies>

            <!-- common configuration shared by all executions -->
            <configuration>
              <driver>org.postgresql.Driver</driver>
              <url>jdbc:postgresql://localhost:${test.env.db.postgresql.host.port}/${test.env.db.name}</url>
              <username>${test.env.db.postgresql.user}</username>
              <password>${test.env.db.postgresql.pass}</password>
              <!-- You can comment out username/password configurations and
                   have maven to look them up in your settings.xml using ${settingsKey}
              
              <settingsKey>sensibleKey</settingsKey>-->
              <!--all executions are ignored if -Dmaven.test.skip=true-->
              <skip>${maven.test.skip}</skip>
            </configuration>

            <executions>
              <execution>
                <id>drop-db-before-test</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <!-- need another database to drop the targeted one -->
                  <url>jdbc:postgresql://localhost:${test.env.db.postgresql.host.port}/postgres</url>
                  <autocommit>true</autocommit>
                  <sqlCommand>drop database ${test.env.db.name}</sqlCommand>
                  <!-- ignore error when database is not avaiable -->
                  <onError>continue</onError>
                </configuration>
              </execution>

              <execution>
                <id>create-db</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <url>jdbc:postgresql://localhost:${test.env.db.postgresql.host.port}/postgres</url>
                  <!-- no transaction -->
                  <autocommit>true</autocommit>
                  <sqlCommand>create database ${test.env.db.name}</sqlCommand>
                </configuration>
              </execution>

              <execution>
                <id>create-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-db-after-test</id>
                <!-- there is no post-test phase, the next phase after "test" is "prepare-package"
                     for integration tests running against mysql generated via setupDatabase.sql there is need
                     to bind a similar drop/create/schema/drop to pre-integration-test and post-integration-test -->
                <phase>prepare-package</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <url>jdbc:postgresql://localhost:${test.env.db.postgresql.host.port}/postgres</url>
                  <autocommit>true</autocommit>
                  <sqlCommand>drop database ${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>
			<skipTests>false</skipTests>
			<skipITs>true</skipITs>
			<testFailureIgnore>false</testFailureIgnore>
			<test.env>oracle</test.env>
		</properties>
		<build>
			<plugins>
				<plugin>
					<!-- Documentation: http://maven.apache.org/plugins/maven-surefire-plugin/ -->
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.8.1</version>
					<configuration>
						<argLine>-XX:MaxPermSize=128m -Xmx512m -Xms256m -Djava.awt.headless=true</argLine>
						<systemPropertyVariables>
							<java.io.tmpdir>${project.build.directory}/olatdata</java.io.tmpdir>
						</systemPropertyVariables>
						<testNGArtifactName>none:none</testNGArtifactName>
						<includes>
							<include>org/olat/test/AllTestsJunit4.java</include>
						</includes>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<version>2.4.3</version>
					<executions>
						<execution>
							<id>copy-resources-4-postgresqlunittests</id>
							<!-- hook in to copy maven.build.properties to allow test and integration-test 
								phase run properly -->
							<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</groupId>
				<artifactId>ojdbc6</artifactId>
				<version>11.0</version>
				<optional>true</optional>
			</dependency>
		</dependencies>
	</profile>

	    <profile>
	    	<id>arquillian</id>
	    	<properties>
	    		<skipTests>false</skipTests>
	    	</properties>
	    	<build>
	    		<plugins>
		    		<plugin>
						<groupId>org.apache.maven.plugins</groupId>
		                <artifactId>maven-antrun-plugin</artifactId>
						<version>1.7</version>
		                <executions>
		                    <execution>
		                        <phase>generate-test-resources</phase>
		                        <configuration>
		                            <tasks>
		                                <mkdir dir="${project.build.directory}/downloads" />
		                                <get src="http://nexus.openolat.org/nexus/content/repositories/openolat/org/apache/tomcat/apache-tomcat-arq/7.0.27/apache-tomcat-arq-7.0.27.zip" dest="${project.build.directory}/downloads" verbose="true" skipexisting="true" />
		                                <unzip src="${project.build.directory}/downloads/apache-tomcat-arq-7.0.27.zip" dest="${project.build.directory}" />
		                            </tasks>
		                        </configuration>
		                        <goals>
		                            <goal>run</goal>
		                        </goals>
		                    </execution>
		                </executions>
		            </plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<version>2.12</version>
						<configuration>
							<forkMode>always</forkMode>
							<systemProperties>
								<arquillian.launch>tomcat-7-managed</arquillian.launch>
							</systemProperties>
							<testNGArtifactName>none:none</testNGArtifactName>
							<!-- commented out because surefire plugin doesn't understand @Suite annotation of JUnit and openolat won't undeploy.
							<includes>
               					 <include>org/olat/test/Selenium2TestsJunit4.java</include>  
              				</includes> 
              				-->
              				<test>**/Functional*Test.java</test>
						</configuration>
					</plugin>
				</plugins>
	    	</build>
	    </profile>
	</profiles>
	<repositories>
		<repository>
      <id>central</id>
      <name>Maven Repository Switchboard</name>
      <layout>default</layout>
      <url>http://repo1.maven.org/maven2</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
		<repository>
			<id>maven2-repository.java.net</id>
			<name>Java.net repository for Maven</name>
			<url>https://maven.java.net/content/repositories/public</url>
			<layout>default</layout>
		</repository>
		<repository>
			<id>nexus.codehaus.org</id>
			<name>Codehaus nexus repo</name>
			<url>https://nexus.codehaus.org/content/groups/public</url>
		</repository>
		<repository>
			<id>jboss-public-repository-group</id>
			<name>JBoss Public Maven Repository Group</name>
			<url>https://repository.jboss.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>openolat-repo</id>
			<name>OpenOLAT Public Maven Repository Group</name>
			<url>http://nexus.openolat.org/nexus/content/groups/public/</url>
			<layout>default</layout>
			<releases>
				<enabled>true</enabled>
				<updatePolicy>never</updatePolicy>
			</releases>
			<snapshots>
				<enabled>true</enabled>
				<updatePolicy>daily</updatePolicy>
			</snapshots>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>java-net-plugin-repo</id>
			<name>Java net Maven plugin repository</name>
			<url>http://download.java.net/maven/2</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
				<updatePolicy>daily</updatePolicy>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>
	<build>
		<!-- Useful maven commands: o mvn dependency:tree - check to see what other 
			dependencies get downloaded by an artifact o Maven lifecycle: Each phase 
			of the lifecycle can also be called independent - e.g. mvn process-resources 
			- http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference 
			o mvn versions:display-plugin-updates (find updates to maven plugins) o mvn 
			versions:use-latest-versions (automatically update dependencies. WARNING!!!) 
			o mvn versions:display-dependency-updates (shows updates for dependencies) 
			o mvn help:effective-pom - displays the computed pom, where you will see 
			what is getting executed after expanding vars and plugin settings -->

		<resources>
			<!-- as long as we have resources like html, css, js in the src/main/java 
				tree we need these two entries. the first tells maven to treat the java folder 
				as the resource folder but not to copy the java files. The later tell maven 
				that we have an other resource folder which is normally the default -->
			<resource>
				<directory>src/main/java</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<!-- when enabled resources will be searched and variables replaces with 
					values -->
				<filtering>false</filtering>
			</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>

		</plugins>
		<pluginManagement>
			<plugins>

				<!-- OLAT requires JDK 1.6 or later ! -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.5.1</version>
					<configuration>
						<source>1.6</source>
						<target>1.6</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>2.2</version>
					<configuration>
						<attachClasses>true</attachClasses>
						<directory>src/main/java</directory>
					</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.8</version>
					<configuration>
				        <linkedResources>
			               	<linkedResource>
		                        <name>/src/main/java/olat.local.properties</name>
		                        <type>1</type>
		                        <location>${basedir}/olat.local.properties</location>
                			</linkedResource>
                			<linkedResource>
		                        <name>/src/test/java/olat.local.properties</name>
		                        <type>1</type>
		                        <location>${basedir}/src/test/profile/mysql/olat.eclipse.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>
					<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>2.2+</version>
									</requireMavenVersion>
									<requireJavaVersion>
										<version>1.6+</version>
									</requireJavaVersion>
								</rules>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<!-- start rest api documentation: broken:  mvn javadoc:javadoc -->
				<plugin>
					<groupId>com.sun.tools.jxc.maven2</groupId>
					<artifactId>maven-jaxb-schemagen-plugin</artifactId>
					<version>1.2</version>
					<executions>
						<execution>
							<phase>generate-resources</phase>
							<goals>
								<goal>generate</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<srcdir>${basedir}/src/</srcdir>
						<includes>
							<include>org/olat/restapi/**/*VO.java</include>
							<include>org/olat/user/restapi/**/*VO.java</include>
							<include>org/olat/modules/fo/restapi/*VO.java</include>
							<include>org/olat/catalog/restapi/*VO.java</include>
						</includes>
						<excludes></excludes>
						<destdir>${project.build.outputDirectory}</destdir>
						<verbose>true</verbose>
					</configuration>
					<dependencies>
						<dependency>
							<groupId>xerces</groupId>
							<artifactId>xercesImpl</artifactId>
							<version>2.9.1</version>
						</dependency>
						<dependency>
							<groupId>com.sun</groupId>
							<artifactId>tools</artifactId>
							<version>1.7</version>
							<scope>system</scope>
							<systemPath>${java.home}/../lib/tools.jar</systemPath>
						</dependency>
					</dependencies>
				</plugin>

				<!-- Javadoc -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>2.4</version>
					<executions>
						<execution>
							<goals>
								<goal>javadoc</goal>
							</goals>
							<phase>compile</phase>
						</execution>
					</executions>

					<configuration>
						<encoding>UTF-8</encoding>
						<verbose>false</verbose>
						<show>public</show>
						<subpackages>
							org.olat.restapi,org.olat.catalog.restapi,org.olat.modules.fo.restapi,
							org.olat.notifications.restapi,org.olat.user.restapi,org.olat.course.nodes,
							org.olat.restapi.system
					</subpackages>

						<doclet>com.sun.jersey.wadl.resourcedoc.ResourceDoclet</doclet>
						<docletArtifacts>
							<docletArtifact>
								<groupId>com.sun.jersey.contribs</groupId>
								<artifactId>wadl-resourcedoc-doclet</artifactId>
								<version>${com.sun.jersey.version}</version>
							</docletArtifact>
							<!-- Also specify jersey and xerces as doclet artifacts as the ResourceDoclet 
								uses classes provided by them to generate the resourcedoc. -->
							<docletArtifact>
								<groupId>com.sun.jersey</groupId>
								<artifactId>jersey-server</artifactId>
								<version>${com.sun.jersey.version}</version>
							</docletArtifact>
							<docletArtifact>
								<groupId>xerces</groupId>
								<artifactId>xercesImpl</artifactId>
								<version>2.9.1</version>
							</docletArtifact>
						</docletArtifacts>
						<additionalparam>-output
							${project.build.outputDirectory}/resourcedoc.xml</additionalparam>
					</configuration>
				</plugin>

				<plugin>
					<groupId>com.sun.jersey.contribs</groupId>
					<artifactId>maven-wadl-plugin</artifactId>
					<version>${com.sun.jersey.version}</version>
					<executions>
						<execution>
							<id>generate</id>
							<goals>
								<goal>generate</goal>
							</goals>
							<phase>compile</phase>
						</execution>
					</executions>

					<configuration>
						<wadlFile>${project.build.outputDirectory}/application.wadl</wadlFile>
						<formatWadlFile>true</formatWadlFile>
						<baseUri>http://www.example.com</baseUri>
						<packagesResourceConfig>
							<param>org.olat.restapi;org.olat.catalog.restapi;org.olat.notifications.restapi;org.olat.modules.fo.restapi;org.olat.user.restapi;org.olat.course.nodes</param>
						</packagesResourceConfig>
						<wadlGenerators>
							<wadlGeneratorDescription>
								<className>com.sun.jersey.server.wadl.generators.WadlGeneratorApplicationDoc</className>
								<properties>
									<property>
										<name>applicationDocsFile</name>
										<value>src/main/java/org/olat/restapi/support/application-doc.xml</value>
									</property>
								</properties>
							</wadlGeneratorDescription>
							<wadlGeneratorDescription>
								<className>com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport</className>
								<properties>
									<property>
										<name>grammarsFile</name>
										<value>src/main/java/org/olat/restapi/support/application-grammars.xml</value>
									</property>
								</properties>
							</wadlGeneratorDescription>
							<wadlGeneratorDescription>
								<className>com.sun.jersey.server.wadl.generators.resourcedoc.WadlGeneratorResourceDocSupport</className>
								<properties>
									<property>
										<name>resourceDocFile</name>
										<value>${project.build.outputDirectory}/resourcedoc.xml</value>
									</property>
								</properties>
							</wadlGeneratorDescription>
						</wadlGenerators>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>xml-maven-plugin</artifactId>
					<executions>
						<execution>
							<id>xslt: ${project.build.outputDirectory}/application.html</id>
							<phase>compile</phase> <!-- append to the packaging phase. -->
							<goals>
								<goal>transform</goal> <!-- goals == mojos -->
							</goals>
							<configuration>
								<transformationSets>
									<transformationSet>
										<dir>${project.build.outputDirectory}</dir>
										<includes>
											<include>application.wadl</include>
										</includes>
										<outputDir>src/main/java/org/olat/restapi/api/_content/</outputDir>
										<stylesheet>src/main/java/org/olat/restapi/support/wadl_documentation.xsl</stylesheet>
										<fileMappers>
											<fileMapper
												implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
												<targetExtension>.html</targetExtension>
											</fileMapper>
										</fileMappers>
									</transformationSet>
								</transformationSets>
							</configuration>
						</execution>
					</executions>
					<dependencies>
						<dependency>
							<groupId>net.sf.saxon</groupId>
							<artifactId>saxon</artifactId>
							<version>8.7</version>
						</dependency>
					</dependencies>
				</plugin>

				<!-- end rest api documentation -->

			</plugins>
		</pluginManagement>
	</build>

	<!-- check with mvn dependency:tree to see what other dep. get downloaded -->
	<dependencies>
		<dependency>
			<groupId>org.openolat.testutils</groupId>
			<artifactId>codepoints-full</artifactId>
			<version>1.0.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-core</artifactId>
			<version>5.3.2</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>backport-util-concurrent</groupId>
					<artifactId>backport-util-concurrent</artifactId>
				</exclusion>
				<exclusion>
					<groupId>javax.activation</groupId>
					<artifactId>activation</artifactId>
				</exclusion>
				<!-- fxdiff: FXOLAT-243  clean up the dependencies of ActiveMQ -->
				<exclusion>
					<groupId>org.springframework.osgi</groupId>
					<artifactId>spring-osgi-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.activemq</groupId>
					<artifactId>kahadb</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.osgi</groupId>
					<artifactId>org.osgi.core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.geronimo.specs</groupId>
					<artifactId>geronimo-j2ee-management_1.0_spec</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<!-- Dependencies for onyx plugin and vitero -->
			<groupId>org.apache.axis2</groupId>
			<artifactId>axis2</artifactId>
			<version>1.4.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.ws.commons.axiom</groupId>
			<artifactId>axiom-api</artifactId>
			<version>1.2.8</version>
			<exclusions>
				<exclusion>
					<groupId>org.apache.geronimo.specs</groupId>
					<artifactId>geronimo-javamail_1.4_spec</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.geronimo.specs</groupId>
					<artifactId>geronimo-activation_1.1_spec</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.geronimo.specs</groupId>
					<artifactId>geronimo-stax-api_1.0_spec</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.ws.commons.axiom</groupId>
			<artifactId>axiom-impl</artifactId>
			<version>1.2.8</version>
			<exclusions>
				<exclusion>
					<groupId>org.apache.geronimo.specs</groupId>
					<artifactId>geronimo-javamail_1.4_spec</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.geronimo.specs</groupId>
					<artifactId>geronimo-activation_1.1_spec</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.geronimo.specs</groupId>
					<artifactId>geronimo-stax-api_1.0_spec</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<!-- Used by SCORM implementation -->
			<groupId>org.beanshell</groupId>
			<artifactId>bsh-core</artifactId>
			<version>2.0b4</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.1</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>org.mnode.ical4j</groupId>
			<artifactId>ical4j</artifactId>
			<version>1.0.2</version>
		</dependency>
		<dependency><!-- Velocity dependency -->
			<groupId>oro</groupId>
			<artifactId>oro</artifactId>
			<version>2.0.8</version>
		</dependency>
		<dependency>
			<groupId>org.openolat.jamwiki</groupId>
			<artifactId>jamwiki-core</artifactId>
			<version>1.0.0</version>
		</dependency>
		<dependency>
			<groupId>jaxen</groupId>
			<artifactId>jaxen</artifactId>
			<version>1.1.1</version>
			<exclusions>
				<exclusion>
					<groupId>com.ibm.icu</groupId>
					<artifactId>icu4j</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xalan</groupId>
					<artifactId>xalan</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>opensaml</groupId>
			<artifactId>opensaml</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>org.openolat.openmeetings</groupId>
			<artifactId>openmeetings-stubs</artifactId>
			<version>2.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>3.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-scratchpad</artifactId>
			<version>3.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.pdfbox</groupId>
			<artifactId>pdfbox</artifactId>
			<version>1.7.1</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcmail-jdk15</artifactId>
			<version>1.46</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcprov-jdk15</artifactId>
			<version>1.46</version>
		</dependency>
		<dependency>
			<groupId>jdom</groupId>
			<artifactId>jdom</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>jgrapht</groupId>
			<artifactId>jgrapht</artifactId>
			<version>0.6.0</version>
		</dependency>
		<!-- fxdiff: FXOLAT-243 remove dependency to jbosscache (only for cluster + deprecated by JBoss) -->
		<!-- cluster -->
		<dependency>
			<groupId>reload-diva</groupId>
			<artifactId>reload-diva</artifactId>
			<version>reload_dist255-diva.jar</version>
		</dependency>
		<dependency>
			<groupId>reload-dweezil</groupId>
			<artifactId>reload-dweezil</artifactId>
			<version>reload_dist255-dweezil.jar</version>
		</dependency>
		<dependency>
			<groupId>reload-jdom</groupId>
			<artifactId>reload-jdom</artifactId>
			<version>reload_dist255-jdom.jar</version>
		</dependency>
		<dependency>
			<groupId>reload-moonunit</groupId>
			<artifactId>reload-moonunit</artifactId>
			<version>reload_dist255-moonunit.jar</version>
		</dependency>
		<dependency>
			<groupId>rome</groupId>
			<artifactId>rome</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ch.ethz</groupId>
			<artifactId>pfplms-scorm</artifactId>
			<version>unknown</version>
			<classifier>patched</classifier><!-- patched version of scorm adapter: 
				contact: matthai.kurian@gmail.com -->
		</dependency>
		<dependency><!-- used by SCORM -->
			<groupId>gnu-regexp</groupId>
			<artifactId>gnu-regexp</artifactId>
			<version>1.1.4</version>
		</dependency>	
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.5.11</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.5.11</version>
		</dependency>
		<!-- basic LTI stuff for lti demo: http://www.imsglobal.org/toolsinteroperability2.cfm -->
		<dependency>
			<groupId>org.sakaiproject.basiclti</groupId>
			<artifactId>basiclti-util</artifactId>
			<version>1.4</version>
		</dependency>
		<!-- J2EE dependencies but provided -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-jms_1.1_spec</artifactId>
			<version>1.1.1</version>
			<scope>test</scope>
		</dependency>
		<!-- core dependencies -->
		<dependency>
			<groupId>tomcat</groupId>
			<artifactId>naming-resources</artifactId>
			<version>5.5.15</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.2.2</version>
		</dependency>
		<dependency>
			<groupId>net.sourceforge.nekohtml</groupId>
			<artifactId>nekohtml</artifactId>
			<version>1.9.14</version>
		</dependency>
		<dependency>
			<groupId>org.owasp.antisamy</groupId>
			<artifactId>antisamy</artifactId>
			<version>1.4.4</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.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-util</artifactId>
			<version>1.7</version>
		</dependency>
		<dependency>
			<groupId>de.java2html</groupId>
			<artifactId>java2html</artifactId>
			<version>5.0</version>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<groupId>wsdl4j</groupId>
			<artifactId>wsdl4j</artifactId>
			<version>1.6.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.ws.commons.schema</groupId>
			<artifactId>XmlSchema</artifactId>
			<version>1.4.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.neethi</groupId>
			<artifactId>neethi</artifactId>
			<version>2.0.4</version>
		</dependency>
		<dependency>
			<groupId>org.apache.woden</groupId>
			<artifactId>woden-api</artifactId>
			<version>1.0M8</version>
			<exclusions>
				<exclusion>
					<groupId>xerces</groupId>
					<artifactId>xmlParserAPIs</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.ant</groupId>
					<artifactId>ant</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
			<version>4.1.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.1.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpmime</artifactId>
			<version>4.1.1</version>
		</dependency>
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>
		<dependency>
			<groupId>org.openolat.testutils</groupId>
			<artifactId>codepoints</artifactId>
			<version>1.0.3</version>
		</dependency>
		<dependency>
			<groupId>org.infinispan</groupId>
			<artifactId>infinispan-core</artifactId>
			<version>${org.infinispan.version}</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.jboss.spec.javax.transaction</groupId>
					<artifactId>jboss-transaction-api_1.1_spec</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jboss.logging</groupId>
					<artifactId>jboss-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.codehaus.woodstox</groupId>
					<artifactId>woodstox-core-asl</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.codehaus.woodstox</groupId>
					<artifactId>stax2-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.rhq.helpers</groupId>
					<artifactId>rhq-pluginAnnotations</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>${org.hibernate.version}</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-entitymanager</artifactId>
			<version>${org.hibernate.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-infinispan</artifactId>
			<version>${org.hibernate.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-c3p0</artifactId>
			<version>${org.hibernate.version}</version>
			<scope>test</scope>
			<exclusions>
				<!-- includes an old version of c3p0 -->
				<exclusion>
					<artifactId>c3p0</artifactId>
					<groupId>c3p0</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.1.2</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.14</version>
		</dependency>
		<dependency>
			<groupId>org.apache.velocity</groupId>
			<artifactId>velocity</artifactId>
			<version>1.7</version>
		</dependency>
		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20080701</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>1.8.6</version>
		</dependency>
		<dependency>
			<groupId>com.thoughtworks.xstream</groupId>
			<artifactId>xstream</artifactId>
			<version>1.4.3</version>
		</dependency>
		<dependency>
			<groupId>cos</groupId>
			<artifactId>cos</artifactId>
			<version>05Nov2002</version>
		</dependency>
		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
			<version>2.9.1</version>
			<!-- fxdiff: FXOLAT-243  prevents duplicate -->
			<exclusions>
  				<exclusion>
  					<groupId>xerces</groupId>
						<artifactId>xmlParserAPIs</artifactId>
  				</exclusion>
  			</exclusions>
		</dependency>
		<dependency>
			<groupId>xml-apis</groupId>
			<artifactId>xml-apis</artifactId>
			<version>1.3.04</version>
		</dependency>
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4.3</version>
			<!-- fxdiff: FXOLAT-243 included in JDK 1.6 -->
			<exclusions>
				<exclusion>
					<groupId>javax.activation</groupId>
					<artifactId>activation</artifactId>
				</exclusion>
			</exclusions>			
		</dependency>
		<dependency>
			<groupId>com.neemsoft</groupId>
			<artifactId>jmep</artifactId>
			<version>unknown</version>
			<classifier>patched</classifier> <!-- unknown patched version of jmep (java mathematical expression parser)[http://jmep.tigris.org/], 
				do not replace unless you know what you do! -->
		</dependency>
		<!-- Lucene dependencies -->
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-core</artifactId>
			<version>3.0.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-highlighter</artifactId>
			<version>3.0.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-spellchecker</artifactId>
			<version>3.0.2</version>
		</dependency>
		<!-- End lucene dependencies -->
		<!-- Spring dependencies -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${org.springframework.version}</version>
		</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>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>${org.springframework.version}</version>
		</dependency>
		<!-- end Spring dependencies -->
		<!-- Start Jersey dependency -->
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>jsr311-api</artifactId>
			<version>1.1.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-server</artifactId>
			<version>${com.sun.jersey.version}</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-beans</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-context</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-web</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-aop</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-jca</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.sun.jersey.jersey-test-framework</groupId>
			<artifactId>jersey-test-framework-grizzly</artifactId>
			<version>${com.sun.jersey.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-core-asl</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-jaxrs</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-xc</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<!-- end jersey -->
		
		<!-- paypal -->
		<dependency>
			<groupId>com.paypal</groupId>
			<artifactId>paypal_platform_base_AP</artifactId>
			<version>0.76</version>
		</dependency>
		<dependency>
			<groupId>com.paypal</groupId>
			<artifactId>paypal_platform_stubs_AP</artifactId>
			<version>0.76</version>
		</dependency>
		<!-- end Paypal -->

		<!-- Start test dependencies -->
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<version>1.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.8.2</version>
			<scope>test</scope>
		</dependency>
    
		<!-- Start test dependencies for Arquillian and Selenium -->
    	<dependency>
			<groupId>org.jboss.arquillian.junit</groupId>
			<artifactId>arquillian-junit-container</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
        	<groupId>org.jboss.arquillian.container</groupId>
        	<artifactId>arquillian-tomcat-managed-7</artifactId>
        	<version>1.0.0.CR3</version>
        	<scope>test</scope>
      	</dependency>
		<dependency>
			<groupId>org.jboss.arquillian.extension</groupId>
			<artifactId>arquillian-drone-impl</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.jboss.arquillian.extension</groupId>
			<artifactId>arquillian-drone-selenium</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.jboss.arquillian.extension</groupId>
			<artifactId>arquillian-drone-selenium-server</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-server</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.mortbay.jetty</groupId>
					<artifactId>servlet-api-2.5</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- End test dependencies -->
	</dependencies>
	
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.jboss.arquillian</groupId>
				<artifactId>arquillian-bom</artifactId>
				<version>1.0.1.Final</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>
			<dependency>
				<groupId>org.jboss.arquillian.extension</groupId>
				<artifactId>arquillian-drone-bom</artifactId>
				<version>1.0.0.Final</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>2.3.1</version>
				<configuration>
					<!-- disable checking of url's im pom's -->
					<dependencyDetailsEnabled>false</dependencyDetailsEnabled>
					<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>2.9</version>
			</plugin>
			<!-- Javadoc -->


			<!-- <reportSets> <reportSet> <reports> <report>javadoc</report> -->
			<!-- Note: leave this line commented out if unit tests are not to be documented 
				<report>test-javadoc</report>report> -->
			<!-- </reports> </reportSet> </reportSets> </plugin> -->
			<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.3</version>
      </plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
				<version>2.5.1</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>2.6</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
				<version>2.5</version>
				<configuration>
					<rulesets>
						<ruleset>/rulesets/basic.xml</ruleset>
						<ruleset>/rulesets/controversial.xml</ruleset>
					</rulesets>
					<format>xml</format>
					<linkXref>true</linkXref>
					<sourceEncoding>utf-8</sourceEncoding>
					<minimumTokens>100</minimumTokens>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>taglist-maven-plugin</artifactId>
				<version>2.4</version>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
				<version>2.3.1</version>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>jdepend-maven-plugin</artifactId>
				<version>2.0-beta-2</version>
			</plugin>
		</plugins>
	</reporting>
	
	<ciManagement>
		<system>Hudson</system>
		<url>http://jenkins.frentix.com</url>
	</ciManagement>
</project>