<?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>
  <parent>
    <groupId>org.apache.jackrabbit</groupId>
    <artifactId>jackrabbit-parent</artifactId>
    <version>2.21.8-SNAPSHOT</version>
    <relativePath>../jackrabbit-parent/pom.xml</relativePath>
  </parent>

  <!-- =================================================================== -->
  <!-- P R O J E C T  D E S C R I P T I O N                                -->
  <!-- =================================================================== -->
  <artifactId>jackrabbit-jcr-rmi</artifactId>
  <packaging>bundle</packaging>

  <name>Jackrabbit JCR-RMI</name>
  <description>
    JCR-RMI is a transparent Remote Method Invocation (RMI) layer for the
    Content Repository for Java Technology API (JCR). The layer makes it
    possible to remotely access JCR content repositories.
  </description>

  <!-- =================================================================== -->
  <!-- B U I L D   S E T T I N G S                                         -->
  <!-- =================================================================== -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Bundle-Category>jcr,jackrabbit</Bundle-Category>
            <Bundle-DocURL>http://jackrabbit.apache.org/</Bundle-DocURL>
            <!-- optional resolution XA -->
            <Import-Package>
              javax.transaction.xa;resolution:=optional,*
            </Import-Package>
            <!-- inline RangeIterator adapt to not add library dependency -->
            <Embed-Dependency>
              jackrabbit-jcr-commons;inline=org/apache/jackrabbit/commons/iterator/RangeIteratorAdapter*
            </Embed-Dependency>
          </instructions>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>src/main/javadoc/**/*.uxf</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
    	<plugins>
    		<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
    		<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>[3,)</versionRange>
    								<goals>
    									<goal>run</goal>
    								</goals>
    							</pluginExecutionFilter>
    							<action>
    								<ignore />
    							</action>
    						</pluginExecution>
    					</pluginExecutions>
    				</lifecycleMappingMetadata>
    			</configuration>
    		</plugin>
    	</plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>integrationTesting</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <argLine>${test.opts}</argLine>
              <fork>true</fork>
              <systemProperties>
                <property>
                  <name>jackrabbit.test.integration</name>
                  <value>true</value>
                </property>
                <property>
                  <name>known.issues</name>
                  <value>
org.apache.jackrabbit.test.api.ShareableNodeTest
org.apache.jackrabbit.test.api.SetValueValueFormatExceptionTest#testNodeNotReferenceable

org.apache.jackrabbit.test.api.NameTest#testExpandedNameValue
org.apache.jackrabbit.test.api.NameTest#testExpandedNameValueProperty

org.apache.jackrabbit.test.api.NodeRemoveMixinTest#testNotAssigned
org.apache.jackrabbit.test.api.ValueFactoryTest#testValueFormatException

org.apache.jackrabbit.test.api.GetWeakReferencesTest#testMultiValues
org.apache.jackrabbit.test.api.GetWeakReferencesTest#testSingleValue

org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testEmptyNodeDefinitionTemplate
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testEmptyNodeTypeTemplate
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testEmptyPropertyDefinitionTemplate
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testInvalidJCRNames
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testNewNodeTypeTemplate
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testNodeDefinitionTemplate
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testNonEmptyNodeTypeTemplate
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testPropertyDefinitionTemplate
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testRegisterNodeType
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testRegisterNodeTypes
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testResidualNames
org.apache.jackrabbit.test.api.nodetype.NodeTypeCreationTest#testSetDefaultValues

org.apache.jackrabbit.test.api.observation.GetUserDataTest#testSave
org.apache.jackrabbit.test.api.observation.GetUserDataTest#testVersioning
org.apache.jackrabbit.test.api.observation.GetUserDataTest#testWorkspaceOperation
org.apache.jackrabbit.test.api.observation.NodeReorderTest#testNodeReorderMove

org.apache.jackrabbit.test.api.PathTest#testResolvedIdentifierBasedPropertyValue

org.apache.jackrabbit.test.api.query.CreateQueryTest#testUnknownQueryLanguage
org.apache.jackrabbit.test.api.query.DerefQueryLevel1Test#testDerefMultiPropWithNodeStar
org.apache.jackrabbit.test.api.query.DerefQueryLevel1Test#testDerefMultiPropWithNodeTest
org.apache.jackrabbit.test.api.query.DerefQueryLevel1Test#testDerefSinglePropWithNodeStar
org.apache.jackrabbit.test.api.query.DerefQueryLevel1Test#testDerefSinglePropWithNodeTest
org.apache.jackrabbit.test.api.query.ElementTest#testElementTest
org.apache.jackrabbit.test.api.query.ElementTest#testElementTestAnyNode
org.apache.jackrabbit.test.api.query.ElementTest#testElementTestAnyNodeNtBase
org.apache.jackrabbit.test.api.query.ElementTest#testElementTestAnyNodeSomeNT
org.apache.jackrabbit.test.api.query.ElementTest#testElementTestNameTest
org.apache.jackrabbit.test.api.query.ElementTest#testElementTestNameTestNtBase
org.apache.jackrabbit.test.api.query.ElementTest#testElementTestNameTestSomeNT
org.apache.jackrabbit.test.api.query.ElementTest#testElementTestNameTestSomeNTWithSNS
org.apache.jackrabbit.test.api.query.GetLanguageTest#testGetLanguage
org.apache.jackrabbit.test.api.query.GetLanguageTest#testJCRQOM
org.apache.jackrabbit.test.api.query.GetLanguageTest#testJCRSQL2
org.apache.jackrabbit.test.api.query.GetLanguageTest#testSQL
org.apache.jackrabbit.test.api.query.GetPersistentQueryPathLevel1Test#testGetStoredQueryPath
org.apache.jackrabbit.test.api.query.GetPersistentQueryPathTest#testGetPersistentQueryPath
org.apache.jackrabbit.test.api.query.GetPropertyNamesTest#testGetPropertyNames
org.apache.jackrabbit.test.api.query.GetStatementTest#testGetStatement
org.apache.jackrabbit.test.api.query.GetSupportedQueryLanguagesTest#testGetSupportedQueryLanguages
org.apache.jackrabbit.test.api.query.OrderByDateTest#testDateOrder
org.apache.jackrabbit.test.api.query.OrderByDateTest#testDateOrderMillis
org.apache.jackrabbit.test.api.query.OrderByDateTest#testDateOrderNegativeTimeZone
org.apache.jackrabbit.test.api.query.OrderByDateTest#testDateOrderPositiveTimeZone
org.apache.jackrabbit.test.api.query.OrderByDecimalTest#testDecimal
org.apache.jackrabbit.test.api.query.OrderByDoubleTest#testDoubleOrder1
org.apache.jackrabbit.test.api.query.OrderByDoubleTest#testDoubleOrder2
org.apache.jackrabbit.test.api.query.OrderByLengthTest#testLength
org.apache.jackrabbit.test.api.query.OrderByLocalNameTest#testLocalName
org.apache.jackrabbit.test.api.query.OrderByLongTest#testIntegerOrder
org.apache.jackrabbit.test.api.query.OrderByLowerCaseTest#testLowerCase
org.apache.jackrabbit.test.api.query.OrderByMultiTypeTest#testMultipleOrder
org.apache.jackrabbit.test.api.query.OrderByNameTest#testName
org.apache.jackrabbit.test.api.query.OrderByStringTest#testStringOrder
org.apache.jackrabbit.test.api.query.OrderByUpperCaseTest#testLowerCase
org.apache.jackrabbit.test.api.query.OrderByURITest#testURI
org.apache.jackrabbit.test.api.query.PredicatesTest#testAnd
org.apache.jackrabbit.test.api.query.PredicatesTest#testCombinedAnd
org.apache.jackrabbit.test.api.query.PredicatesTest#testCombinedOr
org.apache.jackrabbit.test.api.query.PredicatesTest#testEquality
org.apache.jackrabbit.test.api.query.PredicatesTest#testOr
org.apache.jackrabbit.test.api.query.qom.AndConstraintTest#testAnd
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testBindVariableNames
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testBoolean
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testDate
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testDecimal
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testDouble
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testIllegalArgumentException
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testLong
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testName
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testPath
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testReference
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testString
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testURI
org.apache.jackrabbit.test.api.query.qom.BindVariableValueTest#testWeakReference
org.apache.jackrabbit.test.api.query.qom.ChildNodeJoinConditionTest#testInnerJoin
org.apache.jackrabbit.test.api.query.qom.ChildNodeJoinConditionTest#testLeftOuterJoin
org.apache.jackrabbit.test.api.query.qom.ChildNodeJoinConditionTest#testRightOuterJoin
org.apache.jackrabbit.test.api.query.qom.ChildNodeTest#testChildNode
org.apache.jackrabbit.test.api.query.qom.ChildNodeTest#testChildNodes
org.apache.jackrabbit.test.api.query.qom.ChildNodeTest#testChildNodesDoNotMatchSelector
org.apache.jackrabbit.test.api.query.qom.ChildNodeTest#testNotASelectorName
org.apache.jackrabbit.test.api.query.qom.ChildNodeTest#testPathDoesNotExist
org.apache.jackrabbit.test.api.query.qom.ChildNodeTest#testRelativePath
org.apache.jackrabbit.test.api.query.qom.ChildNodeTest#testSyntacticallyInvalidPath
org.apache.jackrabbit.test.api.query.qom.ColumnTest#testColumnNames
org.apache.jackrabbit.test.api.query.qom.ColumnTest#testExpandColumnsForNodeType
org.apache.jackrabbit.test.api.query.qom.ColumnTest#testMultiColumn
org.apache.jackrabbit.test.api.query.qom.DescendantNodeJoinConditionTest#testInnerJoin
org.apache.jackrabbit.test.api.query.qom.DescendantNodeJoinConditionTest#testLeftOuterJoin
org.apache.jackrabbit.test.api.query.qom.DescendantNodeJoinConditionTest#testRightOuterJoin
org.apache.jackrabbit.test.api.query.qom.DescendantNodeTest#testDescendantNode
org.apache.jackrabbit.test.api.query.qom.DescendantNodeTest#testDescendantNodes
org.apache.jackrabbit.test.api.query.qom.DescendantNodeTest#testDescendantNodesDoNotMatchSelector
org.apache.jackrabbit.test.api.query.qom.DescendantNodeTest#testNotASelectorName
org.apache.jackrabbit.test.api.query.qom.DescendantNodeTest#testPathDoesNotExist
org.apache.jackrabbit.test.api.query.qom.DescendantNodeTest#testRelativePath
org.apache.jackrabbit.test.api.query.qom.DescendantNodeTest#testSyntacticallyInvalidPath
org.apache.jackrabbit.test.api.query.qom.EquiJoinConditionTest#testInnerJoin1
org.apache.jackrabbit.test.api.query.qom.EquiJoinConditionTest#testInnerJoin2
org.apache.jackrabbit.test.api.query.qom.EquiJoinConditionTest#testLeftOuterJoin1
org.apache.jackrabbit.test.api.query.qom.EquiJoinConditionTest#testLeftOuterJoin2
org.apache.jackrabbit.test.api.query.qom.EquiJoinConditionTest#testRightOuterJoin1
org.apache.jackrabbit.test.api.query.qom.EquiJoinConditionTest#testRightOuterJoin2
org.apache.jackrabbit.test.api.query.qom.FullTextSearchScoreTest#testConstraint
org.apache.jackrabbit.test.api.query.qom.FullTextSearchScoreTest#testOrdering
org.apache.jackrabbit.test.api.query.qom.GetQueryTest#testGetQuery
org.apache.jackrabbit.test.api.query.qom.GetQueryTest#testInvalidQueryException
org.apache.jackrabbit.test.api.query.qom.LengthTest#testBinaryLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testBooleanLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testDateLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testDecimalLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testDoubleLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthBinaryLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthBooleanLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthDateLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthDecimalLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthDoubleLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthNameLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthPathLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthReferenceLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthStringLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthURILiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLengthWeakReferenceLiteral
org.apache.jackrabbit.test.api.query.qom.LengthTest#testLongLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testNameLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testPathLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testReferenceLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testStringLength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testURILength
org.apache.jackrabbit.test.api.query.qom.LengthTest#testWeakReferenceLength
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testBinaryLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testBooleanLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testDateLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testDecimalLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testDoubleLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testEqualTo
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testGreaterThan
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testGreaterThanOrEqualTo
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testLessThan
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testLessThanOrEqualTo
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testLike
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testLongLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testNameLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testNotEqualTo
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testPathLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testReferenceLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testStringLiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testStringLiteralInvalidName
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testURILiteral
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testWeakReferenceLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testBinaryLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testBooleanLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testDateLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testDecimalLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testDoubleLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testEqualTo
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testLongLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testNameLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testNotEqualTo
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testPathLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testReferenceLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testStringLiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testStringLiteralInvalidName
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testURILiteral
org.apache.jackrabbit.test.api.query.qom.NodeNameTest#testWeakReferenceLiteral
org.apache.jackrabbit.test.api.query.qom.NotConstraintTest#testNot
org.apache.jackrabbit.test.api.query.qom.OrConstraintTest#testOr
org.apache.jackrabbit.test.api.query.qom.OrderingTest#testMultipleSelectors
org.apache.jackrabbit.test.api.query.qom.PropertyExistenceTest#testPropertyExistence
org.apache.jackrabbit.test.api.query.qom.PropertyValueTest#testPropertyExistence
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testAnd
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testBindVariableValue
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testChildNode
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testChildNodeJoinCondition
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testChildNodeWithSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testColumn
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testColumnAllProperties
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testColumnWithColumnName
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testColumnWithSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testComparison
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testCreateQuery
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testCreateQueryFromSource
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testCreateQueryFromSourceWithConstraint
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testCreateQueryFromSourceWithConstraintAndOrdering
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testCreateQueryFromSourceWithConstraintOrderingAndColumn
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testCreateQueryWithConstraint
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testCreateQueryWithConstraintAndOrdering
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testCreateQueryWithConstraintOrderingAndColumn
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testDescendantNode
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testDescendantNodeJoinCondition
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testDescendantNodeWithSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testEquiJoinCondition
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testFullTextSearch
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testFullTextSearchAllProperties
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testFullTextSearchScore
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testFullTextSearchScoreWithSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testFullTextSearchWithBindVariableValue
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testJoin
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testLength
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testLiteral
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testLowerCase
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testNodeLocalName
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testNodeLocalNameWithSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testNodeName
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testNodeNameWithSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testNot
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testOr
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testOrderingAscending
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testOrderingDescending
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testPropertyExistence
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testPropertyExistenceWithSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testPropertyValue
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testPropertyValueWithSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testSameNode
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testSameNodeJoinCondition
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testSameNodeJoinConditionWithPath
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testSameNodeWithSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testSelector
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testSelectorWithName
org.apache.jackrabbit.test.api.query.qom.QueryObjectModelFactoryTest#testUpperCase
org.apache.jackrabbit.test.api.query.qom.RowTest#testGetNode
org.apache.jackrabbit.test.api.query.qom.RowTest#testGetNodeWithSelector
org.apache.jackrabbit.test.api.query.qom.RowTest#testGetPath
org.apache.jackrabbit.test.api.query.qom.RowTest#testGetPathWithSelector
org.apache.jackrabbit.test.api.query.qom.RowTest#testGetScore
org.apache.jackrabbit.test.api.query.qom.RowTest#testGetScoreWithSelector
org.apache.jackrabbit.test.api.query.qom.RowTest#testGetValue
org.apache.jackrabbit.test.api.query.qom.RowTest#testGetValues
org.apache.jackrabbit.test.api.query.qom.SameNodeJoinConditionTest#testInnerJoin
org.apache.jackrabbit.test.api.query.qom.SameNodeJoinConditionTest#testInnerJoinWithPath
org.apache.jackrabbit.test.api.query.qom.SameNodeJoinConditionTest#testLeftOuterJoin
org.apache.jackrabbit.test.api.query.qom.SameNodeJoinConditionTest#testLeftOuterJoinWithPath
org.apache.jackrabbit.test.api.query.qom.SameNodeJoinConditionTest#testRightOuterJoin
org.apache.jackrabbit.test.api.query.qom.SameNodeJoinConditionTest#testRightOuterJoinWithPath
org.apache.jackrabbit.test.api.query.qom.SameNodeTest#testChildNodesDoNotMatchSelector
org.apache.jackrabbit.test.api.query.qom.SameNodeTest#testNotASelectorName
org.apache.jackrabbit.test.api.query.qom.SameNodeTest#testPathDoesNotExist
org.apache.jackrabbit.test.api.query.qom.SameNodeTest#testRelativePath
org.apache.jackrabbit.test.api.query.qom.SameNodeTest#testSameNode
org.apache.jackrabbit.test.api.query.qom.SameNodeTest#testSyntacticallyInvalidPath
org.apache.jackrabbit.test.api.query.qom.SelectorTest#testDuplicateNodeType
org.apache.jackrabbit.test.api.query.qom.SelectorTest#testSelector
org.apache.jackrabbit.test.api.query.qom.SelectorTest#testSyntacticallyInvalidName
org.apache.jackrabbit.test.api.query.qom.SelectorTest#testUnknownNodeType
org.apache.jackrabbit.test.api.query.qom.UpperLowerCaseTest#testLength
org.apache.jackrabbit.test.api.query.qom.UpperLowerCaseTest#testLowerCaseTwice
org.apache.jackrabbit.test.api.query.qom.UpperLowerCaseTest#testLowerUpperCase
org.apache.jackrabbit.test.api.query.qom.UpperLowerCaseTest#testNodeLocalName
org.apache.jackrabbit.test.api.query.qom.UpperLowerCaseTest#testNodeName
org.apache.jackrabbit.test.api.query.qom.UpperLowerCaseTest#testPropertyValue
org.apache.jackrabbit.test.api.query.qom.UpperLowerCaseTest#testUpperCaseTwice
org.apache.jackrabbit.test.api.query.qom.UpperLowerCaseTest#testUpperLowerCase
org.apache.jackrabbit.test.api.query.QueryResultNodeIteratorTest#testGetPosition
org.apache.jackrabbit.test.api.query.QueryResultNodeIteratorTest#testGetPositionEmptyIterator
org.apache.jackrabbit.test.api.query.QueryResultNodeIteratorTest#testGetSize
org.apache.jackrabbit.test.api.query.QueryResultNodeIteratorTest#testNoSuchElementException
org.apache.jackrabbit.test.api.query.QueryResultNodeIteratorTest#testSkip
org.apache.jackrabbit.test.api.query.SetLimitTest#testSetLimit
org.apache.jackrabbit.test.api.query.SetOffsetTest#testSetOffset
org.apache.jackrabbit.test.api.query.SimpleSelectionTest#testSingleProperty
org.apache.jackrabbit.test.api.query.SQLJcrPathTest#testJcrPath
org.apache.jackrabbit.test.api.query.SQLJoinTest#testJoin
org.apache.jackrabbit.test.api.query.SQLJoinTest#testJoinFilterPrimaryType
org.apache.jackrabbit.test.api.query.SQLJoinTest#testJoinNtBase
org.apache.jackrabbit.test.api.query.SQLJoinTest#testJoinSNS
org.apache.jackrabbit.test.api.query.SQLOrderByTest#testOrderByAscending
org.apache.jackrabbit.test.api.query.SQLOrderByTest#testOrderByDefault
org.apache.jackrabbit.test.api.query.SQLOrderByTest#testOrderByDescending
org.apache.jackrabbit.test.api.query.SQLPathTest#testChildAxisLeaf
org.apache.jackrabbit.test.api.query.SQLPathTest#testChildAxisRoot
org.apache.jackrabbit.test.api.query.SQLPathTest#testChildAxisTestRoot
org.apache.jackrabbit.test.api.query.SQLPathTest#testDescendantLeaf
org.apache.jackrabbit.test.api.query.SQLPathTest#testDescendantSelfTestRoot
org.apache.jackrabbit.test.api.query.SQLPathTest#testDescendantTestRoot
org.apache.jackrabbit.test.api.query.SQLQueryLevel2Test#testFullTextSearch
org.apache.jackrabbit.test.api.query.SQLQueryLevel2Test#testMultiValueSearch
org.apache.jackrabbit.test.api.query.SQLQueryLevel2Test#testPathColumn
org.apache.jackrabbit.test.api.query.SQLQueryLevel2Test#testRange
org.apache.jackrabbit.test.api.query.SQLQueryLevel2Test#testScoreColumn
org.apache.jackrabbit.test.api.query.TextNodeTest#testTextNodeTest
org.apache.jackrabbit.test.api.query.TextNodeTest#testTextNodeTestContains
org.apache.jackrabbit.test.api.query.TextNodeTest#testTextNodeTestMultiNodes
org.apache.jackrabbit.test.api.query.TextNodeTest#testTextNodeTestWithPosition
org.apache.jackrabbit.test.api.query.XPathDocOrderTest#testDocOrderFirstFunction
org.apache.jackrabbit.test.api.query.XPathDocOrderTest#testDocOrderLastFunction
org.apache.jackrabbit.test.api.query.XPathDocOrderTest#testDocOrderPositionFunction
org.apache.jackrabbit.test.api.query.XPathDocOrderTest#testDocOrderPositionIndex
org.apache.jackrabbit.test.api.query.XPathJcrPathTest#testJcrPath
org.apache.jackrabbit.test.api.query.XPathOrderByTest#testOrderBy
org.apache.jackrabbit.test.api.query.XPathOrderByTest#testOrderByAscending
org.apache.jackrabbit.test.api.query.XPathOrderByTest#testOrderByDescending
org.apache.jackrabbit.test.api.query.XPathPosIndexTest#testDocOrderIndexedNotation
org.apache.jackrabbit.test.api.query.XPathQueryLevel2Test#testFullTextSearch
org.apache.jackrabbit.test.api.query.XPathQueryLevel2Test#testMultiValueSearch
org.apache.jackrabbit.test.api.query.XPathQueryLevel2Test#testPathColumn
org.apache.jackrabbit.test.api.query.XPathQueryLevel2Test#testRange
org.apache.jackrabbit.test.api.query.XPathQueryLevel2Test#testScoreColumn

org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testSetIllegalPolicy
org.apache.jackrabbit.test.api.security.RSessionAccessControlPolicyTest#testSetInvalidPolicy

org.apache.jackrabbit.test.api.SerializationTest#testLockExceptionSessionWithHandler
org.apache.jackrabbit.test.api.SerializationTest#testLockExceptionWorkspaceWithHandler
org.apache.jackrabbit.test.api.SerializationTest#testVersioningExceptionFileChildSessionContentHandler
org.apache.jackrabbit.test.api.SerializationTest#testVersioningExceptionFileChildWorkspaceContentHandler
org.apache.jackrabbit.test.api.SerializationTest#testVersioningExceptionFileParentSessionContentHandler
org.apache.jackrabbit.test.api.SerializationTest#testVersioningExceptionFileParentWorkspaceContentHandler

org.apache.jackrabbit.test.api.SessionTest#testHasCapability

org.apache.jackrabbit.test.api.version.CopyTest#testCopy
org.apache.jackrabbit.test.api.version.VersionHistoryTest#testGetAllFrozenNodes

org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testSetPolicy
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testSetAllPolicies
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testGetPolicyAfterSet
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testResetPolicy
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testSetPolicyIsTransient
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testGetPolicyAfterSave
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testNodeIsModifiedAfterSecondSetPolicy
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testNodeIsModifiedAfterSetPolicy
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testRemovePolicy
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testRemovePolicyIsTransient
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testNodeIsModifiedAfterRemovePolicy
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testSetPolicyOnNewNode
org.apache.jackrabbit.test.api.security.AccessControlPolicyTest#testRemoveTransientlyAddedPolicy
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAccessControlEntry
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAggregatePrivilege
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAggregatedPrivilegesSeparately
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddPrivilegesPresentInEntries
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAccessControlEntryAndSetPolicy
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAccessControlEntryIsTransient
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAccessControlEntryInvalidPrincipal
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAccessControlEntryEmptyPrivilegeArray
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAccessControlEntryInvalidPrivilege
org.apache.jackrabbit.test.api.security.AccessControlListTest#testRemoveAddedAccessControlEntry
org.apache.jackrabbit.test.api.security.AccessControlListTest#testRemoveAccessControlEntryAndSetPolicy
org.apache.jackrabbit.test.api.security.AccessControlListTest#testRemoveAccessControlEntryIsTransient
org.apache.jackrabbit.test.api.security.AccessControlListTest#testRemoveIllegalAccessControlEntry
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAccessControlEntryTwice
org.apache.jackrabbit.test.api.security.AccessControlListTest#testAddAccessControlEntryAgain
org.apache.jackrabbit.test.api.security.AccessControlListTest#testExtendPrivileges
org.apache.jackrabbit.test.api.security.RSessionAccessControlPolicyTest#testSetPolicy
<!-- JCR-3206 -->
org.apache.jackrabbit.test.api.observation.EventJournalTest
                  </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>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <!-- =================================================================== -->
  <!-- D E P E N D E N C I E S                                             -->
  <!-- =================================================================== -->
  <dependencies>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.annotation</artifactId>
      <scope>provided</scope>
    </dependency>
    <!-- Hard dependencies -->
    <dependency>
      <groupId>javax.jcr</groupId>
      <artifactId>jcr</artifactId>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <!--
      We use the RangeIteratorAdapter but include it in the library thus
      users of the jackrabbit-jcr-rmi library do not need to get the
      jackrabbit-jcr-commons library
    -->
    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>jackrabbit-jcr-commons</artifactId>
        <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    
    <!-- Oak Jackrabbit API extensions -->
    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>oak-jackrabbit-api</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- Test dependencies -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>jackrabbit-core</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>jackrabbit-jcr-tests</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derby</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>
