blob: 89b5fc6c329dc9330ec77c082964bbff35baae9d [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License 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.
-->
<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>
<!-- ====================================================================== -->
<!-- P R O J E C T D E S C R I P T I O N -->
<!-- ====================================================================== -->
<parent>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-parent</artifactId>
<version>2.19.3-SNAPSHOT</version>
<relativePath>../jackrabbit-parent/pom.xml</relativePath>
</parent>
<artifactId>jackrabbit-core</artifactId>
<name>Jackrabbit Core</name>
<description>Jackrabbit content repository implementation</description>
<properties>
<org.apache.jackrabbit.test.integration>false</org.apache.jackrabbit.test.integration>
<test.opts.memory>-Xmx512m</test.opts.memory>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>process-test-resources</id>
<phase>process-test-resources</phase>
<configuration>
<target>
<copy todir="${project.build.directory}/repository">
<fileset dir="${basedir}/src/test/repository" />
</copy>
<copy todir="${project.build.directory}/repository-2">
<fileset dir="${basedir}/src/test/repository" />
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-optional</artifactId>
<version>1.5.3-1</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*TestAll.java</include>
</includes>
<argLine>${test.opts}</argLine>
<systemProperties>
<property>
<name>java.awt.headless</name>
<value>true</value>
</property>
<property>
<name>derby.system.durability</name>
<value>test</value>
</property>
<property>
<name>derby.storage.fileSyncTransactionLog</name>
<value>true</value>
</property>
<property>
<name>derby.stream.error.file</name>
<value>target/derby.log</value>
</property>
<property>
<name>org.apache.jackrabbit.repository.home</name>
<value>target/repository-factory-test</value>
</property>
<property>
<name>known.issues</name>
<value>
org.apache.jackrabbit.core.ConcurrentImportTest
org.apache.jackrabbit.core.xml.DocumentViewTest#testMultiValue
org.apache.jackrabbit.core.NodeImplTest#testReferentialIntegrityCorruptionGetPath
org.apache.jackrabbit.core.integration.ConcurrentQueryTest#testConcurrentQueryWithDeletes
org.apache.jackrabbit.test.api.ShareableNodeTest#testGetName
org.apache.jackrabbit.test.api.ShareableNodeTest#testGetNode
org.apache.jackrabbit.test.api.ShareableNodeTest#testGetNodes
org.apache.jackrabbit.test.api.ShareableNodeTest#testGetNodesByPattern
org.apache.jackrabbit.test.api.ShareableNodeTest#testMoveShareableNode<!--JCR-3381-->
org.apache.jackrabbit.test.api.ShareableNodeTest#testTransientMoveShareableNode<!--JCR-3381-->
org.apache.jackrabbit.test.api.lock.OpenScopedLockTest#testLockExpiration
org.apache.jackrabbit.test.api.lock.SessionScopedLockTest#testLockExpiration
org.apache.jackrabbit.test.api.observation.NodeReorderTest#testNodeReorderMove
org.apache.jackrabbit.core.data.ConcurrentGcTest#testDatabases
org.apache.jackrabbit.core.data.GarbageCollectorTest#testCloseSessionWhileRunningGc
org.apache.jackrabbit.core.data.GarbageCollectorTest#testSimultaneousRunGC <!-- JCR-4078 -->
org.apache.jackrabbit.core.ReplacePropertyWhileOthersReadTest <!-- JCR-3835 -->
org.apache.jackrabbit.core.security.user.MembershipCachePerfTest <!-- don't run expensive test -->
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testStringLiteralInvalidName <!-- OAK-3265 -->
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testPathLiteral <!-- OAK-3265 -->
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testURILiteral <!-- OAK-3265 -->
</value>
</property>
<property>
<name>org.apache.jackrabbit.test.integration</name>
<value>${org.apache.jackrabbit.test.integration}</value>
</property>
</systemProperties>
</configuration>
<executions>
<execution>
<id>do_test</id>
<phase>integration-test</phase>
<configuration>
<includes>
<include>**/integration/*Test.java</include>
</includes>
</configuration>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes>
<exclude>src/main/javadoc/**/*.uxf</exclude>
<exclude>src/test/repository/**</exclude>
<exclude>src/test/resources/**/*.txt</exclude>
<exclude>src/test/resources/**/*.rtf</exclude>
<exclude>src/test/resources/**/*.cnd</exclude>
<exclude>src/test/compatibility/**/target/**</exclude>
<exclude>src/test/compatibility/**/.*/**</exclude>
<exclude>src/test/compatibility/repositories.zip</exclude>
<exclude>repository/**</exclude>
<exclude>*.log</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>logback-test.xml</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/resources-filtered</directory>
<filtering>true</filtering>
</resource>
</resources>
<pluginManagement>
<plugins>
<!-- JCR-3136: Add m2e lifecycle mappings for Eclipse Indigo -->
<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.6,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
<dependency>
<groupId>concurrent</groupId>
<artifactId>concurrent</artifactId>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-data</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-data</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-spi-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-spi</artifactId>
<version>${project.version}</version>
<classifier />
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-spi</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-tests</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-benchmark</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.196</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>integrationTesting</id>
<properties>
<org.apache.jackrabbit.test.integration>true</org.apache.jackrabbit.test.integration>
</properties>
</profile>
<!--
These profiles can be used to run the (integration) tests against different DB backends.
For instance, if you want to run the integration tests against MySQL backend, do:
mvn clean integration-test -Pmysql,use-descriptor-overlay
Note: the ${config.db.name} database is dropped and re-created in the clean phase.
-->
<profile>
<id>mysql</id>
<properties>
<config.db.name>jackrabbit</config.db.name>
<config.db.fsclass>org.apache.jackrabbit.core.fs.db.DbFileSystem</config.db.fsclass>
<config.db.dsclass>org.apache.jackrabbit.core.data.db.DbDataStore</config.db.dsclass>
<config.db.pmclass>org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager</config.db.pmclass>
<config.db.journalclass>org.apache.jackrabbit.core.journal.DatabaseJournal</config.db.journalclass>
<config.db.schema>mysql</config.db.schema>
<config.db.validation.query>select 1</config.db.validation.query>
<config.db.user>user</config.db.user>
<config.db.pwd>pwd</config.db.pwd>
<config.db.driver>com.mysql.jdbc.Driver</config.db.driver>
<config.db.url>jdbc:mysql://localhost:3306/${config.db.name}?autoReconnect=true</config.db.url>
<config.db.metaurl>jdbc:mysql://localhost:3306/mysql?autoReconnect=true</config.db.metaurl>
<config.db.dropcommand>drop database ${config.db.name}</config.db.dropcommand>
<config.db.createcommand>create database ${config.db.name}</config.db.createcommand>
</properties>
</profile>
<profile>
<id>mssql</id>
<properties>
<config.db.name>jackrabbit</config.db.name>
<config.db.fsclass>org.apache.jackrabbit.core.fs.db.MSSqlFileSystem</config.db.fsclass>
<config.db.dsclass>org.apache.jackrabbit.core.data.db.DbDataStore</config.db.dsclass>
<config.db.pmclass>org.apache.jackrabbit.core.persistence.pool.MSSqlPersistenceManager</config.db.pmclass>
<config.db.journalclass>org.apache.jackrabbit.core.journal.MSSqlDatabaseJournal</config.db.journalclass>
<config.db.schema>mssql</config.db.schema>
<config.db.validation.query>select 1</config.db.validation.query>
<config.db.user>user</config.db.user>
<config.db.pwd>pwd</config.db.pwd>
<config.db.driver>net.sourceforge.jtds.jdbc.Driver</config.db.driver>
<config.db.url>jdbc:jtds:sqlserver://localhost:2433/${config.db.name}</config.db.url>
<config.db.metaurl>jdbc:jtds:sqlserver://localhost:2433/master</config.db.metaurl>
<config.db.dropcommand>drop database ${config.db.name}</config.db.dropcommand>
<config.db.createcommand>create database ${config.db.name}</config.db.createcommand>
</properties>
</profile>
<profile>
<id>oracle</id>
<properties>
<config.db.name>unused</config.db.name>
<config.db.fsclass>org.apache.jackrabbit.core.fs.db.OracleFileSystem</config.db.fsclass>
<config.db.dsclass>org.apache.jackrabbit.core.data.db.DbDataStore</config.db.dsclass>
<config.db.pmclass>org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager</config.db.pmclass>
<config.db.journalclass>org.apache.jackrabbit.core.journal.OracleDatabaseJournal</config.db.journalclass>
<config.db.schema>oracle</config.db.schema>
<config.db.validation.query>select 'validationQuery' from dual</config.db.validation.query>
<config.db.user>user</config.db.user>
<config.db.pwd>password</config.db.pwd>
<config.db.driver>oracle.jdbc.driver.OracleDriver</config.db.driver>
<config.db.url>jdbc:oracle:thin:@localhost:1521:xe</config.db.url>
<config.db.metaurl>unused</config.db.metaurl>
<config.db.dropcommand>unused</config.db.dropcommand>
<config.db.createcommand>unused</config.db.createcommand>
</properties>
</profile>
<profile>
<id>h2</id>
<properties>
<config.db.name>jackrabbit</config.db.name>
<config.db.fsclass>org.apache.jackrabbit.core.fs.db.DbFileSystem</config.db.fsclass>
<config.db.dsclass>org.apache.jackrabbit.core.data.db.DbDataStore</config.db.dsclass>
<config.db.pmclass>org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager</config.db.pmclass>
<config.db.journalclass>org.apache.jackrabbit.core.journal.DatabaseJournal</config.db.journalclass>
<config.db.schema>h2</config.db.schema>
<config.db.validation.query>call 1</config.db.validation.query>
<config.db.user>sa</config.db.user>
<config.db.pwd>sa</config.db.pwd>
<config.db.driver>org.h2.Driver</config.db.driver>
<!-- <config.db.url>jdbc:h2:~/jackrabbit2;MAX_LENGTH_INPLACE_LOB=10240;DB_CLOSE_ON_EXIT=FALSE;TRACE_LEVEL_FILE=2</config.db.url> -->
<config.db.url>jdbc:h2:~/jackrabbit2;MAX_LENGTH_INPLACE_LOB=10240;DB_CLOSE_ON_EXIT=FALSE</config.db.url>
<config.db.metaurl>unused</config.db.metaurl>
<config.db.dropcommand>drop all objects delete files</config.db.dropcommand>
<config.db.createcommand>unused</config.db.createcommand>
</properties>
</profile>
<profile>
<id>use-descriptor-overlay</id>
<build>
<plugins>
<!-- Drop/create the test database on clean -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
<configuration>
<driver>${config.db.driver}</driver>
<url>${config.db.metaurl}</url>
<username>${config.db.user}</username>
<password>${config.db.pwd}</password>
<settingsKey>sensibleKey</settingsKey>
</configuration>
<executions>
<execution>
<id>drop-db</id>
<phase>clean</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<sqlCommand>${config.db.dropcommand}</sqlCommand>
<onError>continue</onError>
</configuration>
</execution>
<execution>
<id>create-db</id>
<phase>clean</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<sqlCommand>${config.db.createcommand}</sqlCommand>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>overlay-repository-descriptors</id>
<phase>process-test-resources</phase>
<configuration>
<target>
<copy todir="${project.build.directory}/repository" overwrite="true">
<fileset dir="${basedir}/src/test/repository-descriptor-overlay" />
<filterset>
<filter token="repo.id" value="A" />
<filter token="config.db.schema" value="${config.db.schema}" />
<filter token="config.db.validation.query" value="${config.db.validation.query}" />
<filter token="config.db.driver" value="${config.db.driver}" />
<filter token="config.db.url" value="${config.db.url}" />
<filter token="config.db.user" value="${config.db.user}" />
<filter token="config.db.pwd" value="${config.db.pwd}" />
<filter token="config.db.fsclass" value="${config.db.fsclass}" />
<filter token="config.db.dsclass" value="${config.db.dsclass}" />
<filter token="config.db.pmclass" value="${config.db.pmclass}" />
<filter token="config.db.journalclass" value="${config.db.journalclass}" />
</filterset>
</copy>
<copy todir="${project.build.directory}/repository-2" overwrite="true">
<fileset dir="${basedir}/src/test/repository-descriptor-overlay" />
<filterset>
<filter token="repo.id" value="B" />
<filter token="config.db.schema" value="${config.db.schema}" />
<filter token="config.db.validation.query" value="${config.db.validation.query}" />
<filter token="config.db.driver" value="${config.db.driver}" />
<filter token="config.db.url" value="${config.db.url}" />
<filter token="config.db.user" value="${config.db.user}" />
<filter token="config.db.pwd" value="${config.db.pwd}" />
<filter token="config.db.fsclass" value="${config.db.fsclass}" />
<filter token="config.db.dsclass" value="${config.db.dsclass}" />
<filter token="config.db.pmclass" value="${config.db.pmclass}" />
<filter token="config.db.journalclass" value="${config.db.journalclass}" />
</filterset>
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-optional</artifactId>
<version>1.5.3-1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
</profiles>
</project>