<?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.13.0</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>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>rmic</id>
            <phase>process-classes</phase>
            <configuration>
              <target>
                <rmic base="${project.build.outputDirectory}" verify="true" classpathref="maven.compile.classpath" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <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>
            <Export-Package>
              org.apache.jackrabbit.rmi.*;version=${project.version}
            </Export-Package>
            <!-- 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>[1.6,)</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>-Xmx256m</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>
    <!-- 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>
    
    <!-- Jackrabbit API extensions -->
    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>jackrabbit-api</artifactId>
        <version>${project.version}</version>
      <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>
  </dependencies>

</project>
