jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mreut...@apache.org
Subject svn commit: r555238 - in /jackrabbit/trunk/contrib/spi/client: ./ src/test/config/ src/test/java/org/apache/jackrabbit/jcr2spi/ src/test/resources/
Date Wed, 11 Jul 2007 10:58:23 GMT
Author: mreutegg
Date: Wed Jul 11 03:58:22 2007
New Revision: 555238

URL: http://svn.apache.org/viewvc?view=rev&rev=555238
Log:
JCR-1021: Move repository home directory into target directory

Added:
    jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java   (with props)
    jackrabbit/trunk/contrib/spi/client/src/test/resources/
    jackrabbit/trunk/contrib/spi/client/src/test/resources/custom_nodetypes.xml   (with props)
    jackrabbit/trunk/contrib/spi/client/src/test/resources/jaas.config   (with props)
    jackrabbit/trunk/contrib/spi/client/src/test/resources/log4j.properties   (with props)
    jackrabbit/trunk/contrib/spi/client/src/test/resources/repository.xml   (with props)
    jackrabbit/trunk/contrib/spi/client/src/test/resources/repositoryStubImpl.properties   (with props)
    jackrabbit/trunk/contrib/spi/client/src/test/resources/testdata.xml   (with props)
Removed:
    jackrabbit/trunk/contrib/spi/client/src/test/config/
Modified:
    jackrabbit/trunk/contrib/spi/client/pom.xml
    jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/DefaultRepositoryStub.java

Modified: jackrabbit/trunk/contrib/spi/client/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/pom.xml?view=diff&rev=555238&r1=555237&r2=555238
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/pom.xml (original)
+++ jackrabbit/trunk/contrib/spi/client/pom.xml Wed Jul 11 03:58:22 2007
@@ -45,17 +45,6 @@
     <url>http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client</url>
   </scm>
 
-  <build>
-    <resources>
-      <resource>
-        <directory>${basedir}/src/test/config</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
-    </resources>
-  </build>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.jackrabbit</groupId>

Modified: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/DefaultRepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/DefaultRepositoryStub.java?view=diff&rev=555238&r1=555237&r2=555238
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/DefaultRepositoryStub.java (original)
+++ jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/DefaultRepositoryStub.java Wed Jul 11 03:58:22 2007
@@ -21,6 +21,7 @@
 import org.apache.jackrabbit.core.jndi.RegistryHelper;
 
 import javax.jcr.Repository;
+import javax.jcr.Session;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import java.util.Properties;
@@ -109,6 +110,14 @@
                 RegistryHelper.registerRepository(ctx, repName, repConfig, repHome, true);
 
                 repository = (Repository) ctx.lookup(repName);
+
+                // setup repository
+                Session s = repository.login(getSuperuserCredentials());
+                try {
+                    RepositorySetup.run(s);
+                } finally {
+                    s.logout();
+                }
             } catch (Exception e) {
                 throw new RepositoryStubException(e.toString());
             }

Added: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java?view=auto&rev=555238
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java (added)
+++ jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java Wed Jul 11 03:58:22 2007
@@ -0,0 +1,267 @@
+/*
+ * 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.
+ */
+package org.apache.jackrabbit.jcr2spi;
+
+import org.apache.jackrabbit.core.SessionImpl;
+import org.apache.jackrabbit.core.WorkspaceImpl;
+import org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader;
+import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
+import org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl;
+import org.apache.jackrabbit.BaseException;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.NamespaceRegistry;
+import javax.jcr.ImportUUIDBehavior;
+import javax.jcr.Node;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import java.io.InputStream;
+import java.io.IOException;
+import java.util.Properties;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+/**
+ * <code>RepositorySetup</code> initializes the test candidate with required
+ * namespaces, node types and test content.
+ */
+public class RepositorySetup {
+
+    private static final String NAMESPACES_RESOURCE = "namespaces.properties";
+
+    private static final String NODETYPES_RESOURCE = "custom_nodetypes.xml";
+
+    private static final String TEST_CONTENT_RESOURCE = "testdata.xml";
+
+    private static final String TEST_WORKSPACE_NAME = "test";
+
+    /**
+     * The setup tasks to run.
+     */
+    private final Task[] TASKS = {
+        new RegisterNamespaces(),
+        new RegisterNodeTypes(),
+        new ImportTestContent(),
+        new CreateTestWorkspace()
+    };
+
+    /**
+     * The session to the repository to setup.
+     */
+    private final SessionImpl session;
+
+    /**
+     * Private constructor.
+     */
+    private RepositorySetup(SessionImpl session) {
+        this.session = session;
+    }
+
+    /**
+     * Executes the repository setup tasks.
+     *
+     * @throws RepositoryException if an error occurs while running the tasks.
+     */
+    private void execute() throws RepositoryException {
+        for (int i = 0; i < TASKS.length; i++) {
+            TASKS[i].execute();
+        }
+    }
+
+    /**
+     * Runs the repository setup.
+     *
+     * @param session the session of the repository to setup.
+     * @throws RepositoryException      if an error occurs while running the
+     *                                  tasks.
+     * @throws IllegalArgumentException if <code>session</code> is not a jackrabbit
+     *                                  session.
+     */
+    public static void run(Session session) throws RepositoryException {
+        if (session instanceof SessionImpl) {
+            new RepositorySetup((SessionImpl) session).execute();
+        } else {
+            throw new IllegalArgumentException("not a Jackrabbit session");
+        }
+    }
+
+    /**
+     * Returns an input stream for reading the specified resource.
+     *
+     * @param name the resource name.
+     * @return An input stream for reading the resource, or <code>null</code> if
+     *         the resource could not be found
+     */
+    private static InputStream getResource(String name) {
+        return RepositorySetup.class.getClassLoader().getResourceAsStream(name);
+    }
+
+    /**
+     * Registers the <code>namespaces</code>.
+     *
+     * @param namespaces the namespaces to register.
+     * @param session the session to register the namespaces.
+     */
+    private static void registerNamespaces(Properties namespaces,
+                                           Session session)
+            throws RepositoryException {
+        NamespaceRegistry nsReg = session.getWorkspace().getNamespaceRegistry();
+        for (Iterator it = namespaces.keySet().iterator(); it.hasNext();) {
+            String prefix = (String) it.next();
+            String uri = namespaces.getProperty(prefix);
+            try {
+                nsReg.registerNamespace(prefix, uri);
+            } catch (RepositoryException e) {
+                // then this namespace is already registered.
+            }
+        }
+    }
+
+    private interface Task {
+
+        /**
+         * Executes this task.
+         *
+         * @throws RepositoryException if an error occurs while running this
+         *                             tasks.
+         */
+        public void execute() throws RepositoryException;
+    }
+
+    /**
+     * Registers namespaces that are needed to run the test cases.
+     */
+    private final class RegisterNamespaces implements Task {
+
+        /**
+         * @inheritDoc
+         */
+        public void execute() throws RepositoryException {
+            InputStream is = getResource(NAMESPACES_RESOURCE);
+            if (is != null) {
+                try {
+                    Properties namespaces = new Properties();
+                    namespaces.load(is);
+
+                    registerNamespaces(namespaces, session);
+                } catch (IOException e) {
+                    throw new RepositoryException(e.getMessage());
+                } finally {
+                    try {
+                        is.close();
+                    } catch (IOException e1) {
+                        // ignore
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Registers node types that are needed to run the test cases.
+     */
+    private final class RegisterNodeTypes implements Task {
+
+        /**
+         * @inheritDoc
+         */
+        public void execute() throws RepositoryException {
+            InputStream is = getResource(NODETYPES_RESOURCE);
+            if (is != null) {
+                try {
+                    NodeTypeReader ntReader = new NodeTypeReader(is);
+                    registerNamespaces(ntReader.getNamespaces(), session);
+
+                    NodeTypeManagerImpl ntMgr = session.getNodeTypeManager();
+                    NodeTypeDef[] nodeTypes = ntReader.getNodeTypeDefs();
+                    List unregisteredNTs = new ArrayList();
+                    for (int i = 0; i < nodeTypes.length; i++) {
+                        try {
+                            ntMgr.getNodeType(nodeTypes[i].getName());
+                        } catch (NoSuchNodeTypeException e) {
+                            // register the node type
+                            unregisteredNTs.add(nodeTypes[i]);
+                        }
+                    }
+                    ntMgr.getNodeTypeRegistry().registerNodeTypes(unregisteredNTs);
+                } catch (BaseException e) {
+                    throw new RepositoryException(e.getMessage());
+                } catch (IOException e) {
+                    throw new RepositoryException(e.getMessage());
+                } finally {
+                    try {
+                        is.close();
+                    } catch (IOException e1) {
+                        // ignore
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Imports test content into the repository if the repository is empty.
+     */
+    private final class ImportTestContent implements Task {
+
+        /**
+         * @inheritDoc
+         */
+        public void execute() throws RepositoryException {
+            InputStream is = getResource(TEST_CONTENT_RESOURCE);
+            if (is != null) {
+                try {
+                    Node rootNode = session.getRootNode();
+                    if (!rootNode.hasNode("testdata")) {
+                        session.getWorkspace().importXML("/", is,
+                                ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING);
+                    }
+                    if (!rootNode.hasNode("testroot")) {
+                        rootNode.addNode("testroot");
+                        session.save();
+                    }
+                } catch (IOException e) {
+                    throw new RepositoryException(e.getMessage());
+                } finally {
+                    try {
+                        is.close();
+                    } catch (IOException e1) {
+                        // ignore
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Creates a workspace with name 'test' if it is not yet present.
+     */
+    private final class CreateTestWorkspace implements Task {
+
+        /**
+         * @inheritDoc
+         */
+        public void execute() throws RepositoryException {
+            List workspaces = Arrays.asList(session.getWorkspace().getAccessibleWorkspaceNames());
+            if (!workspaces.contains(TEST_WORKSPACE_NAME)) {
+                ((WorkspaceImpl) session.getWorkspace()).createWorkspace(TEST_WORKSPACE_NAME);
+            }
+        }
+    }
+}

Propchange: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/contrib/spi/client/src/test/resources/custom_nodetypes.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/resources/custom_nodetypes.xml?view=auto&rev=555238
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/resources/custom_nodetypes.xml (added)
+++ jackrabbit/trunk/contrib/spi/client/src/test/resources/custom_nodetypes.xml Wed Jul 11 03:58:22 2007
@@ -0,0 +1,257 @@
+<?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.
+ -->
+<nodeTypes xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:rep="internal" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:test="http://www.apache.org/jackrabbit/test" xmlns:mix="http://www.jcp.org/jcr/mix/1.0">
+  <nodeType name="test:versionable" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+    <supertypes>
+      <supertype>mix:versionable</supertype>
+      <supertype>nt:base</supertype>
+    </supertypes>
+    <propertyDefinition name="*" requiredType="undefined" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false" />
+    <propertyDefinition name="test:copyOnParentVersionProp" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false" />
+    <propertyDefinition name="test:versionOnParentVersionProp" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="VERSION" protected="false" multiple="false" />
+    <propertyDefinition name="test:initializeOnParentVersionProp" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="INITIALIZE" protected="false" multiple="false" />
+    <propertyDefinition name="test:computeOnParentVersionProp" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COMPUTE" protected="false" multiple="false" />
+    <propertyDefinition name="test:ignoreOnParentVersionProp" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="IGNORE" protected="false" multiple="false" />
+    <propertyDefinition name="test:abortOnParentVersionProp" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="ABORT" protected="false" multiple="false" />
+    <childNodeDefinition name="*" defaultPrimaryType="test:versionable" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+    <childNodeDefinition name="test:copyOnParentVersion" defaultPrimaryType="nt:unstructured" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+    <childNodeDefinition name="test:versionOnParentVersion" defaultPrimaryType="nt:unstructured" autoCreated="false" mandatory="false" onParentVersion="VERSION" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+    <childNodeDefinition name="test:initializeOnParentVersion" defaultPrimaryType="nt:unstructured" autoCreated="false" mandatory="false" onParentVersion="INITIALIZE" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+    <childNodeDefinition name="test:computeOnParentVersion" defaultPrimaryType="nt:unstructured" autoCreated="false" mandatory="false" onParentVersion="COMPUTE" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+    <childNodeDefinition name="test:ignoreOnParentVersion" defaultPrimaryType="nt:unstructured" autoCreated="false" mandatory="false" onParentVersion="IGNORE" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+    <childNodeDefinition name="test:abortOnParentVersion" defaultPrimaryType="nt:unstructured" autoCreated="false" mandatory="false" onParentVersion="ABORT" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+  </nodeType>
+
+  <!-- Defines a referenceable nodetype for testing purposes -->
+  <nodeType name="test:refTargetNode" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+    <supertypes>
+      <supertype>mix:versionable</supertype>
+      <supertype>nt:base</supertype>
+    </supertypes>
+    <propertyDefinition name="*" requiredType="undefined" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+  </nodeType>
+
+  <!-- Defines a nodetype for tests of NodeType.canSetProperty(), Property.setValue() and Node.setProperty() -->
+  <nodeType name="test:canSetProperty" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+    <supertypes>
+      <supertype>nt:base</supertype>
+    </supertypes>
+    <propertyDefinition name="String" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+    <propertyDefinition name="StringMultiple" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+    <propertyDefinition name="StringConstraints" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
+      <valueConstraints>
+        <valueConstraint>abc</valueConstraint>
+        <valueConstraint>def</valueConstraint>
+        <valueConstraint>ghi</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="StringMultipleConstraints" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true">
+      <valueConstraints>
+        <valueConstraint>abc</valueConstraint>
+        <valueConstraint>def</valueConstraint>
+        <valueConstraint>ghi</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="Binary" requiredType="Binary" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+    <propertyDefinition name="BinaryMultiple" requiredType="Binary" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+    <propertyDefinition name="BinaryConstraints" requiredType="Binary" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
+      <valueConstraints>
+        <valueConstraint>(,100)</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="BinaryMultipleConstraints" requiredType="Binary" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true">
+      <valueConstraints>
+        <valueConstraint>(,100)</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="Date" requiredType="Date" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+    <propertyDefinition name="DateMultiple" requiredType="Date" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+    <propertyDefinition name="DateConstraints" requiredType="Date" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
+      <valueConstraints>
+        <valueConstraint>(1974-02-15T00:00:00.000Z,)</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="DateMultipleConstraints" requiredType="Date" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true">
+      <valueConstraints>
+        <valueConstraint>(,1974-02-15T00:00:00.000Z)</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="Double" requiredType="Double" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+    <propertyDefinition name="DoubleMultiple" requiredType="Double" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+    <propertyDefinition name="DoubleConstraints" requiredType="Double" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
+      <valueConstraints>
+        <valueConstraint>(100,)</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="DoubleMultipleConstraints" requiredType="Double" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true">
+      <valueConstraints>
+        <valueConstraint>(,100)</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="Long" requiredType="Long" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+    <propertyDefinition name="LongMultiple" requiredType="Long" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+    <propertyDefinition name="LongConstraints" requiredType="Long" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
+      <valueConstraints>
+        <valueConstraint>(100,)</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="LongMultipleConstraints" requiredType="Long" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true">
+      <valueConstraints>
+        <valueConstraint>(,100)</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="Boolean" requiredType="Boolean" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+    <propertyDefinition name="BooleanMultiple" requiredType="Boolean" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+    <propertyDefinition name="BooleanConstraints" requiredType="Boolean" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
+      <valueConstraints>
+        <valueConstraint>true</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="BooleanMultipleConstraints" requiredType="Boolean" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true">
+      <valueConstraints>
+        <valueConstraint>true</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="Name" requiredType="Name" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+    <propertyDefinition name="NameMultiple" requiredType="Name" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+    <propertyDefinition name="NameConstraints" requiredType="Name" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
+      <valueConstraints>
+        <valueConstraint>abc</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="NameMultipleConstraints" requiredType="Name" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true">
+      <valueConstraints>
+        <valueConstraint>abc</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="Path" requiredType="Path" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+    <propertyDefinition name="PathMultiple" requiredType="Path" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+    <propertyDefinition name="PathConstraints" requiredType="Path" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
+      <valueConstraints>
+        <valueConstraint>/abc</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="PathMultipleConstraints" requiredType="Path" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true">
+      <valueConstraints>
+        <valueConstraint>/abc</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="ReferenceConstraints" requiredType="Reference" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
+      <valueConstraints>
+        <valueConstraint>test:canSetProperty</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+    <propertyDefinition name="ReferenceMultipleConstraints" requiredType="Reference" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true">
+      <valueConstraints>
+        <valueConstraint>test:canSetProperty</valueConstraint>
+      </valueConstraints>
+    </propertyDefinition>
+  </nodeType>
+
+  <!-- Defines a nodetype for testing NodeType.canAddChildNode() -->
+  <nodeType name="test:canAddChildNode" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+    <supertypes>
+      <supertype>nt:base</supertype>
+    </supertypes>
+    <childNodeDefinition name="testChildWithDefaultType" defaultPrimaryType="nt:base" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+    <childNodeDefinition name="testChildWithoutDefaultType" defaultPrimaryType="" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+  </nodeType>
+
+  <!-- Defines a nodetype for testing Node.setProperty(). -->
+  <nodeType name="test:setProperty" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+    <supertypes>
+      <supertype>nt:base</supertype>
+      <supertype>mix:referenceable</supertype>
+    </supertypes>
+    <propertyDefinition name="*" requiredType="undefined" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false" />
+    <propertyDefinition name="test:multiProperty" requiredType="undefined" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true" />
+    <childNodeDefinition name="*" defaultPrimaryType="test:setProperty" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" sameNameSiblings="false" />
+  </nodeType>
+
+  <!-- Defines a nodetype to test assuming the PropertyType at Node.setProperty(). -->
+  <nodeType name="test:setPropertyAssumingType" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+    <supertypes>
+      <supertype>nt:base</supertype>
+    </supertypes>
+    <propertyDefinition name="test:singleProperty" requiredType="undefined" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false" />
+    <propertyDefinition name="test:multiProperty" requiredType="undefined" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true" />
+    <childNodeDefinition name="*" defaultPrimaryType="test:setPropertyAssumingType" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" sameNameSiblings="false" />
+  </nodeType>
+
+  <!-- Defines a nodetype with a childNodeDefinition that does not allow same name siblings -->
+  <nodeType name="test:sameNameSibsFalseChildNodeDefinition" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+    <supertypes>
+      <supertype>nt:base</supertype>
+    </supertypes>
+    <propertyDefinition name="*" requiredType="undefined" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+    <childNodeDefinition name="*" defaultPrimaryType="test:sameNameSibsFalseChildNodeDefinition" autoCreated="false" mandatory="false" onParentVersion="COMPUTE" protected="false" sameNameSiblings="false">
+      <requiredPrimaryTypes>
+        <requiredPrimaryType>nt:base</requiredPrimaryType>
+      </requiredPrimaryTypes>
+    </childNodeDefinition>
+  </nodeType>
+
+
+  <!-- ======================================================== -->
+  <!-- Node type definitions only required for jackrabbit core  -->
+  <!-- (internal) test cases.                                   -->
+  <!-- ======================================================== -->
+
+  <!-- Defines a mixin node type that extends mix:referenceable -->
+  <nodeType isMixin="true" name="test:referenceable" hasOrderableChildNodes="false" primaryItemName="">
+    <supertypes>
+      <supertype>mix:referenceable</supertype>
+    </supertypes>
+  </nodeType>
+</nodeTypes>

Propchange: jackrabbit/trunk/contrib/spi/client/src/test/resources/custom_nodetypes.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/contrib/spi/client/src/test/resources/jaas.config
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/resources/jaas.config?view=auto&rev=555238
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/resources/jaas.config (added)
+++ jackrabbit/trunk/contrib/spi/client/src/test/resources/jaas.config Wed Jul 11 03:58:22 2007
@@ -0,0 +1,3 @@
+Jackrabbit {
+  org.apache.jackrabbit.core.security.SimpleLoginModule required anonymousId="anonymous";
+};
\ No newline at end of file

Propchange: jackrabbit/trunk/contrib/spi/client/src/test/resources/jaas.config
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/contrib/spi/client/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/resources/log4j.properties?view=auto&rev=555238
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/resources/log4j.properties (added)
+++ jackrabbit/trunk/contrib/spi/client/src/test/resources/log4j.properties Wed Jul 11 03:58:22 2007
@@ -0,0 +1,9 @@
+# Set root logger level to DEBUG and its only appender to A1.
+log4j.rootLogger=INFO, stdout
+
+# 'stdout' is set to be a ConsoleAppender.
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+
+# 'stdout' uses PatternLayout
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L)\n

Propchange: jackrabbit/trunk/contrib/spi/client/src/test/resources/log4j.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/contrib/spi/client/src/test/resources/repository.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/resources/repository.xml?view=auto&rev=555238
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/resources/repository.xml (added)
+++ jackrabbit/trunk/contrib/spi/client/src/test/resources/repository.xml Wed Jul 11 03:58:22 2007
@@ -0,0 +1,119 @@
+<?xml version="1.0"?>
+<!--
+   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.
+  -->
+<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.2//EN"
+                            "http://jackrabbit.apache.org/dtd/repository-1.2.dtd">
+<!-- Example Repository Configuration File -->
+<Repository>
+    <!--
+        virtual file system where the repository stores global state
+        (e.g. registered namespaces, custom node types, etc.)
+    -->
+    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+        <param name="path" value="${rep.home}/repository"/>
+    </FileSystem>
+
+    <!--
+        security configuration
+    -->
+    <Security appName="Jackrabbit">
+        <!--
+            access manager:
+            class: FQN of class implementing the AccessManager interface
+        -->
+        <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager">
+            <!-- <param name="config" value="${rep.home}/access.xml"/> -->
+        </AccessManager>
+
+        <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
+           <!-- anonymous user name ('anonymous' is the default value) -->
+           <param name="anonymousId" value="anonymous"/>
+           <!--
+              default user name to be used instead of the anonymous user
+              when no login credentials are provided (unset by default)
+           -->
+           <!-- <param name="defaultUserId" value="superuser"/> -->
+        </LoginModule>
+    </Security>
+
+    <!--
+        location of workspaces root directory and name of default workspace
+    -->
+    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
+    <!--
+        workspace configuration template:
+        used to create the initial workspace if there's no workspace yet
+    -->
+    <Workspace name="${wsp.name}">
+        <!--
+            virtual file system of the workspace:
+            class: FQN of class implementing the FileSystem interface
+        -->
+        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+            <param name="path" value="${wsp.home}"/>
+        </FileSystem>
+        <!--
+            persistence manager of the workspace:
+            class: FQN of class implementing the PersistenceManager interface
+        -->
+        <PersistenceManager class="org.apache.jackrabbit.core.persistence.db.DerbyPersistenceManager">
+          <param name="url" value="jdbc:derby:${wsp.home}/db;create=true"/>
+          <param name="schemaObjectPrefix" value="${wsp.name}_"/>
+          <param name="externalBLOBs" value="false"/>
+        </PersistenceManager>
+        <!--
+            Search index and the file system it uses.
+            class: FQN of class implementing the QueryHandler interface
+        -->
+        <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
+            <param name="path" value="${wsp.home}/index"/>
+        </SearchIndex>
+    </Workspace>
+
+    <!--
+        Configures the versioning
+    -->
+    <Versioning rootPath="${rep.home}/version">
+        <!--
+            Configures the filesystem to use for versioning for the respective
+            persistence manager
+        -->
+        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+            <param name="path" value="${rep.home}/version" />
+        </FileSystem>
+
+        <!--
+            Configures the persistence manager to be used for persisting version state.
+            Please note that the current versioning implementation is based on
+            a 'normal' persistence manager, but this could change in future
+            implementations.
+        -->
+        <PersistenceManager class="org.apache.jackrabbit.core.persistence.db.DerbyPersistenceManager">
+          <param name="url" value="jdbc:derby:${rep.home}/version/db;create=true"/>
+          <param name="schemaObjectPrefix" value="version_"/>
+          <param name="externalBLOBs" value="false"/>
+        </PersistenceManager>
+    </Versioning>
+
+    <!--
+        Search index for content that is shared repository wide
+        (/jcr:system tree, contains mainly versions)
+    -->
+    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
+        <param name="path" value="${rep.home}/repository/index"/>
+    </SearchIndex>
+</Repository>

Propchange: jackrabbit/trunk/contrib/spi/client/src/test/resources/repository.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/contrib/spi/client/src/test/resources/repositoryStubImpl.properties
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/resources/repositoryStubImpl.properties?view=auto&rev=555238
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/resources/repositoryStubImpl.properties (added)
+++ jackrabbit/trunk/contrib/spi/client/src/test/resources/repositoryStubImpl.properties Wed Jul 11 03:58:22 2007
@@ -0,0 +1,479 @@
+#
+# This is the configuration file for the jackrabbit repository test stub.
+#
+
+# Stub implementation class for testing JCR2SPI on spi2dav
+#javax.jcr.tck.repository_stub_impl=org.apache.jackrabbit.jcr2spi.JCR2SPIRepositoryStub
+
+# Use this stub implementation instead for testing SPI2JCR on Jackrabbit
+javax.jcr.tck.repository_stub_impl=org.apache.jackrabbit.jcr2spi.JCR2SPI2JCRRepositoryStub
+
+# Use this stub implementation instead for testing SPI-RMI on Jackrabbit with SPI2JCR
+#javax.jcr.tck.repository_stub_impl=org.apache.jackrabbit.jcr2spi.JCR2SPI2JCROverRMIRepositoryStub
+
+# Use this stub implementation instead for testing SPI-RMI using a stand-alone server
+#javax.jcr.tck.repository_stub_impl=org.apache.jackrabbit.jcr2spi.JCR2SPIOverRMIRepositoryStub
+
+# Use this stub implementation for test the JCR api via RMI
+#javax.jcr.tck.repository_stub_impl=org.apache.jackrabbit.jcr2spi.RMIRepositoryStub
+
+# Use this stub implementation for testing Jackrabbit-Core over JNDI without intermediate SPI
+# javax.jcr.tck.repository_stub_impl=org.apache.jackrabbit.jcr2spi.DefaultRepositoryStub
+
+# config for JCR2SPIRepositoryStub (SPI2DAV)
+org.apache.jackrabbit.jcr2spi.repository.url=http://localhost:4302/jackrabbit/server/
+org.apache.jackrabbit.jcr2spi.workspace.name=default
+
+# config for jackrabbit repository implementation when testing SPI2JCR
+org.apache.jackrabbit.repository.config=src/test/resources/repository.xml
+org.apache.jackrabbit.repository.name=repo
+org.apache.jackrabbit.repository.home=target/repo-home
+org.apache.jackrabbit.repository.jaas.config=src/test/resources/jaas.config
+
+# config for SPI-RMI repository stub
+org.apache.jackrabbit.spi.rmi.repository.name=spi-server
+
+# config for RMIRepositoryStub
+# format: //{rmi-host}:{rmi-port}/{repository-name}
+org.apache.jackrabbit.rmi.repository.uri=//localhost:1099/jackrabbit.repository
+
+# credential configuration
+javax.jcr.tck.superuser.name=admin
+javax.jcr.tck.superuser.pwd=admin
+javax.jcr.tck.readwrite.name=user
+javax.jcr.tck.readwrite.pwd=user
+javax.jcr.tck.readonly.name=anonymous
+javax.jcr.tck.readonly.pwd=
+
+# global test configuration
+javax.jcr.tck.testroot=/testroot
+javax.jcr.tck.nodetype=nt:unstructured
+javax.jcr.tck.nodename1=node1
+javax.jcr.tck.nodename2=node2
+javax.jcr.tck.nodename3=node3
+javax.jcr.tck.nodename4=node4
+javax.jcr.tck.propertyname1=prop1
+javax.jcr.tck.propertyname2=prop2
+javax.jcr.tck.workspacename=test
+
+# namespace configuration
+javax.jcr.tck.namespaces=test
+javax.jcr.tck.namespaces.test=http://www.apache.org/jackrabbit/test
+
+# sample for per test case config overriding
+# Test class: AddNodeText
+# Test method: testName
+javax.jcr.tck.AddNodeTest.testName.nodename1=myname
+
+# ==============================================================================
+# JAVAX.JCR CONFIGURATION
+# ==============================================================================
+
+# Test class: ItemDefTest
+javax.jcr.tck.ItemDefTest.testroot=/testdata
+
+# Test class: ItemReadMethodsTest
+javax.jcr.tck.ItemReadMethodsTest.testroot=/testdata
+
+# Test class: NodeReadMethodsTest
+javax.jcr.tck.NodeReadMethodsTest.testroot=/testdata
+
+# Test class: PropertyTypeTest
+javax.jcr.tck.PropertyTypeTest.testroot=/testdata
+
+# Test class: BinaryPropertyTest
+javax.jcr.tck.BinaryPropertyTest.testroot=/testdata
+
+# Test class: BooleanPropertyTest
+javax.jcr.tck.BooleanPropertyTest.testroot=/testdata
+
+# Test class: DatePropertyTest
+javax.jcr.tck.DatePropertyTest.testroot=/testdata
+
+# Test class: DoublePropertyTest
+javax.jcr.tck.DoublePropertyTest.testroot=/testdata
+
+# Test class: LongPropertyTest
+javax.jcr.tck.LongPropertyTest.testroot=/testdata
+
+# Test class: NamePropertyTest
+javax.jcr.tck.NamePropertyTest.testroot=/testdata
+
+# Test class: PathPropertyTest
+javax.jcr.tck.PathPropertyTest.testroot=/testdata
+
+# Test class: ReferencePropertyTest
+javax.jcr.tck.ReferencePropertyTest.testroot=/testdata
+
+# Test class: StringPropertyTest
+javax.jcr.tck.StringPropertyTest.testroot=/testdata
+
+# Test class: SetValueVersionExceptionTest
+# nodetype2: nodetype with a reference property
+javax.jcr.tck.SetValueVersionExceptionTest.nodetype2=nt:linkedFile
+# propertyname3: name of the single value reference property
+javax.jcr.tck.SetValueVersionExceptionTest.propertyname3=jcr:content
+
+# Test class: SetValueValueFormatExceptionTest
+javax.jcr.tck.SetValueValueFormatExceptionTest.nodetype=test:canSetProperty
+javax.jcr.tck.SetValueValueFormatExceptionTest.testValue.propertyname1=Boolean
+javax.jcr.tck.SetValueValueFormatExceptionTest.testValueArray.propertyname1=BooleanMultiple
+javax.jcr.tck.SetValueValueFormatExceptionTest.testString.propertyname1=Date
+javax.jcr.tck.SetValueValueFormatExceptionTest.testStringArray.propertyname1=DateMultiple
+javax.jcr.tck.SetValueValueFormatExceptionTest.testInputStream.propertyname1=Date
+javax.jcr.tck.SetValueValueFormatExceptionTest.testLong.propertyname1=Boolean
+javax.jcr.tck.SetValueValueFormatExceptionTest.testDouble.propertyname1=Boolean
+javax.jcr.tck.SetValueValueFormatExceptionTest.testCalendar.propertyname1=Boolean
+javax.jcr.tck.SetValueValueFormatExceptionTest.testBoolean.propertyname1=Date
+javax.jcr.tck.SetValueValueFormatExceptionTest.testNode.propertyname1=Boolean
+
+# Test class: UndefinedPropertyTest
+javax.jcr.tck.UndefinedPropertyTest.testroot=/testdata
+
+# Test class: PropertyReadMethodsTest
+javax.jcr.tck.PropertyReadMethodsTest.testroot=/testdata
+
+# Test class: NodeIteratorTest
+javax.jcr.tck.NodeIteratorTest.testroot=/testdata
+
+# Test class: NodeDiscoveringNodeTypesTest
+javax.jcr.tck.NodeDiscoveringNodeTypesTest.testroot=/testdata
+
+# Test class: RepositoryDescriptorTest
+javax.jcr.tck.RepositoryDescriptorTest.testroot=/testdata
+
+# Test class: WorkspaceReadMethodsTest
+javax.jcr.tck.WorkspaceReadMethodsTest.testroot=/testdata
+
+# Test class: SessionReadMethodsTest
+javax.jcr.tck.SessionReadMethodsTest.testroot=/testdata
+
+# Test class: NamespaceRegistryReadMethodsTest
+javax.jcr.tck.NamespaceRegistryReadMethodsTest.testroot=/testdata
+
+# Test class: NamespaceRemappingTest
+javax.jcr.tck.NamespaceRemappingTest.testroot=/testdata
+
+# Test class: SessionTest
+# Test method: testMoveItemExistsException
+# nodetype that does not allow same name siblings
+javax.jcr.tck.SessionTest.testMoveItemExistsException.nodetype2=nt:folder
+# valid node type that can be added as child of nodetype2
+javax.jcr.tck.SessionTest.testMoveItemExistsException.nodetype3=nt:hierarchyNode
+
+# Test class: SessionTest
+# Test method: testSaveContstraintViolationException
+# nodetype that has a property that is mandatory but not autocreated
+javax.jcr.tck.SessionTest.testSaveContstraintViolationException.nodetype2=nt:file
+
+# Test class: SessionUUIDTest
+# node type that has a property of type PropertyType.REFERENCE
+javax.jcr.tck.SessionUUIDTest.nodetype=nt:unstructured
+# name of the property that is of type PropertyType.REFERENCE
+javax.jcr.tck.SessionUUIDTest.propertyname1=foobar
+# nodetype that has nodetype mix:referenceable assigned
+javax.jcr.tck.SessionUUIDTest.nodetype2=test:refTargetNode
+
+# Test class: SessionUUIDTest
+# Test method: testSaveMovedRefNode
+# name of the property that can be modified
+javax.jcr.tck.SessionUUIDTest.testSaveMovedRefNode.propertyname1=foobar
+
+# Test class: NodeTest
+# Test method: testAddNodeItemExistsException
+# nodetype that does not allow same name siblings and allows child nodes of
+# the same type
+javax.jcr.tck.NodeTest.testAddNodeItemExistsException.nodetype=nt:folder
+
+# Test class: NodeTest
+# Test method: testRemoveMandatoryNode
+# nodetype that has a mandatory child node definition
+javax.jcr.tck.NodeTest.testRemoveMandatoryNode.nodetype2=nt:file
+# nodetype of the  mandatory child
+javax.jcr.tck.NodeTest.testRemoveMandatoryNode.nodetype3=nt:base
+# name of the mandatory node
+javax.jcr.tck.NodeTest.testRemoveMandatoryNode.nodename3=jcr:content
+
+# Test class: NodeTest
+# Test method: testSaveContstraintViolationException
+# nodetype that has a property that is mandatory but not autocreated
+javax.jcr.tck.NodeTest.testSaveContstraintViolationException.nodetype2=nt:file
+
+# Test class: NodeUUIDTest
+# node type that has a property of type PropertyType.REFERENCE
+javax.jcr.tck.NodeUUIDTest.nodetype=nt:unstructured
+# name of the property that is of type PropertyType.REFERENCE
+javax.jcr.tck.NodeUUIDTest.propertyname1=ref
+# nodetype that has nodetype mix:referenceable assigned
+javax.jcr.tck.NodeUUIDTest.nodetype2=test:refTargetNode
+
+# Test class: NodeUUIDTest
+# Test method: testSaveMovedRefNode
+# name of the property that can be modified
+javax.jcr.tck.NodeUUIDTest.testSaveMovedRefNode.propertyname1=foobar
+# nodetype that has nodetype mix:referenceable assigned
+
+# Test class: NodeOrderableChildNodesTest
+# nodetype that supports orderable child nodes
+javax.jcr.tck.NodeOrderableChildNodesTest.nodetype2=nt:unstructured
+# valid node type that can be added as child of nodetype 2
+javax.jcr.tck.NodeOrderableChildNodesTest.nodetype3=nt:unstructured
+
+# Test class: NodeOrderableChildNodesTest
+# Test method: testOrderBeforeUnsupportedRepositoryOperationException
+# nodetype that does not allow ordering of child nodes
+javax.jcr.tck.NodeOrderableChildNodesTest.testOrderBeforeUnsupportedRepositoryOperationException.nodetype2=nt:folder
+# valid node type that can be added as child of nodetype 2
+javax.jcr.tck.NodeOrderableChildNodesTest.testOrderBeforeUnsupportedRepositoryOperationException.nodetype3=nt:hierarchyNode
+
+# Test class: SetPropertyNodeTest
+# nodetype which is referenceable
+javax.jcr.tck.SetPropertyNodeTest.nodetype=test:setProperty
+
+# Test class: SetPropertyValueTest
+# property that allows multiple values
+javax.jcr.tck.SetPropertyValueTest.propertyname2=test:multiProperty
+javax.jcr.tck.SetPropertyValueTest.nodetype=test:setProperty
+
+# Test class: SetPropertyStringTest
+# property that allows multiple values
+javax.jcr.tck.SetPropertyStringTest.propertyname2=test:multiProperty
+javax.jcr.tck.SetPropertyStringTest.nodetype=test:setProperty
+
+# Test class: WorkspaceCloneSameNameSibsTest
+javax.jcr.tck.WorkspaceCloneSameNameSibsTest.sameNameSibsFalseNodeType=test:sameNameSibsFalseChildNodeDefinition
+javax.jcr.tck.WorkspaceCloneSameNameSibsTest.sameNameSibsTrueNodeType=nt:unstructured
+
+# Test class: WorkspaceCopyBetweenWorkspacesSameNameSibsTest
+javax.jcr.tck.WorkspaceCopyBetweenWorkspacesSameNameSibsTest.sameNameSibsFalseNodeType=test:sameNameSibsFalseChildNodeDefinition
+javax.jcr.tck.WorkspaceCopyBetweenWorkspacesSameNameSibsTest.sameNameSibsTrueNodeType=nt:unstructured
+
+# Test class: WorkspaceCopySameNameSibsTest
+javax.jcr.tck.WorkspaceCopySameNameSibsTest.sameNameSibsFalseNodeType=test:sameNameSibsFalseChildNodeDefinition
+javax.jcr.tck.WorkspaceCopySameNameSibsTest.sameNameSibsTrueNodeType=nt:unstructured
+
+# Test class: WorkspaceMoveSameNameSibsTest
+javax.jcr.tck.WorkspaceMoveSameNameSibsTest.sameNameSibsFalseNodeType=test:sameNameSibsFalseChildNodeDefinition
+javax.jcr.tck.WorkspaceMoveSameNameSibsTest.sameNameSibsTrueNodeType=nt:unstructured
+
+# Test class: RepositoryLoginTest
+javax.jcr.tck.RepositoryLoginTest.testroot=/testdata
+
+# Test class: RootNodeTest
+javax.jcr.tck.RootNodeTest.testroot=/testroot
+
+# Test class: ReferenceableRootNodesTest
+javax.jcr.tck.ReferenceableRootNodesTest.testroot=/testroot
+
+# Test class: ExportDocViewTest
+javax.jcr.tck.ExportDocViewTest.testroot=/testdata
+
+# ------------------------------------------------------------------------------
+# observation configuration
+# ------------------------------------------------------------------------------
+
+# Test class: AddEventListenerTest
+# Test method: testNodeType
+javax.jcr.tck.AddEventListenerTest.testNodeType.nodetype2=nt:folder
+
+# Configuration settings for the serialization.
+# Note that the serialization test tries to use as many features of the repository
+# as possible, but fails silently if a feature is not available. You have to
+# specify all of the following configuration entries, even if your repository does
+# not support the feature that is associated with them.
+
+# Root node for the example tree
+javax.jcr.tck.SerializationTest.testroot=/testdata/serialization
+
+# Node type to use for the example tree. Specify a node type that allows complex trees and all property types if possible
+javax.jcr.tck.SerializationTest.nodetype=nt:unstructured
+
+# Name of the nodes for source and target tree
+javax.jcr.tck.SerializationTest.sourceFolderName=source
+javax.jcr.tck.SerializationTest.targetFolderName=target
+javax.jcr.tck.SerializationTest.rootNodeName=test
+
+# List the properties whose values may change during serialization/deserialization. For example,
+# the UUID of a node is unique in the repository, so it will have to change when you re-import
+# a tree at a different location.
+javax.jcr.tck.SerializationTest.propertyValueMayChange= jcr:created jcr:uuid jcr:versionHistory jcr:baseVersion jcr:predecessors P_Reference
+
+# List all properties which are skipped during xml import according specification chapter 7.3.3
+javax.jcr.tck.SerializationTest.propertySkipped=
+
+# The name of the test node types. For easier diagnostics, the node types have names
+# that tell you the kind of information they store
+javax.jcr.tck.SerializationTest.nodeTypesTestNode=NodeTypes
+javax.jcr.tck.SerializationTest.mixinTypeTestNode=MixinTypes
+javax.jcr.tck.SerializationTest.propertyTypesTestNode=PropertyTypes
+javax.jcr.tck.SerializationTest.sameNameChildrenTestNode=SameNameChildren
+javax.jcr.tck.SerializationTest.multiValuePropertiesTestNode=MultiValueProperties
+javax.jcr.tck.SerializationTest.referenceableNodeTestNode=ReferenceableNode
+javax.jcr.tck.SerializationTest.orderChildrenTestNode=OrderChildren
+javax.jcr.tck.SerializationTest.namespaceTestNode=Namespace
+
+# The name of the test property types.
+javax.jcr.tck.SerializationTest.stringTestProperty=P_String
+javax.jcr.tck.SerializationTest.binaryTestProperty=P_Binary
+javax.jcr.tck.SerializationTest.dateTestProperty=P_Date
+javax.jcr.tck.SerializationTest.longTestProperty=P_Long
+javax.jcr.tck.SerializationTest.doubleTestProperty=P_Double
+javax.jcr.tck.SerializationTest.booleanTestProperty=P_Boolean
+javax.jcr.tck.SerializationTest.nameTestProperty=P_Name
+javax.jcr.tck.SerializationTest.pathTestProperty=P_Path
+javax.jcr.tck.SerializationTest.referenceTestProperty=P_Reference
+javax.jcr.tck.SerializationTest.multiValueTestProperty=P_MultiValue
+
+# node type not allowing same name sibs
+javax.jcr.tck.SerializationTest.sameNameSibsFalseChildNodeDefinition=test:sameNameSibsFalseChildNodeDefinition
+
+# Test method: testVersioningExceptionSessionFileChild
+# specified nodetype must be versionable and allow child nodes of the same type.
+javax.jcr.tck.SerializationTest.testVersioningExceptionSessionFileChild.nodetype=test:versionable
+
+# Test method: testVersioningExceptionSessionFileParent
+# specified nodetype must be versionable and allow child nodes of the same type.
+javax.jcr.tck.SerializationTest.testVersioningExceptionSessionFileParent.nodetype=test:versionable
+
+# Test method: testSessionImportXmlOverwriteException
+# requires a node type that does not allow same name siblings
+javax.jcr.tck.SerializationTest.testSessionImportXmlOverwriteException.nodetype=nt:folder
+
+# Test class: ExportSysViewTest
+javax.jcr.tck.ExportSysViewTest.testroot=/testdata
+
+# ==============================================================================
+# JAVAX.JCR.QUERY CONFIGURATION
+# ==============================================================================
+
+javax.jcr.tck.nodetype.testroot=/testdata
+
+# ==============================================================================
+# JAVAX.JCR.QUERY CONFIGURATION
+# ==============================================================================
+
+# Test class: SaveTest
+# Test method: testConstraintViolationException
+# Specified node type must not allow child nodes.
+javax.jcr.tck.SaveTest.testConstraintViolationException.nodetype=nt:query
+
+# Test class: XPathQueryLevel1Test
+javax.jcr.tck.XPathQueryLevel1Test.testroot=/testdata/query
+
+# Test class: XPathDocOrderTest
+javax.jcr.tck.XPathDocOrderTest.testroot=/testdata/query
+
+# Test class: XPathPosIndexTest
+javax.jcr.tck.XPathPosIndexTest.testroot=/testdata/query
+
+# Test class: XPathOrderByTest
+javax.jcr.tck.XPathOrderByTest.testroot=/testdata/query
+
+# Test class: XPathSyntaxTest
+javax.jcr.tck.XPathSyntaxTest.testroot=/testdata/query
+
+# Test class: XPathJcrPathTest
+javax.jcr.tck.XPathJcrPathTest.testroot=/testdata
+
+# Test class: SQLQueryLevel1Test
+javax.jcr.tck.SQLQueryLevel1Test.testroot=/testdata/query
+
+# Test class: SQLSyntaxTest
+javax.jcr.tck.SQLSyntaxTest.testroot=/testdata/query
+
+# Test class: SQLOrderByTest
+javax.jcr.tck.SQLOrderByTest.testroot=/testdata/query
+
+# Test class: DerefQueryLevel1Test
+javax.jcr.tck.DerefQueryLevel1Test.testroot=/testdata
+
+# Test class: GetLanguageTest
+javax.jcr.tck.GetLanguageTest.testroot=/testdata
+
+# Test class: GetPersistentQueryPathLevel1Test
+javax.jcr.tck.GetPersistentQueryPathLevel1Test.testroot=/testdata
+
+# Test class: GetPropertyNamesTest
+javax.jcr.tck.GetPropertyNamesTest.testroot=/testdata
+
+# Test class: GetStatementTest
+javax.jcr.tck.GetStatementTest.testroot=/testdata
+
+# Test class: GetSupportedQueryLanguagesTest
+javax.jcr.tck.GetSupportedQueryLanguagesTest.testroot=/testdata
+
+# Test class: SQLJcrPathTest
+javax.jcr.tck.SQLJcrPathTest.testroot=/testdata
+
+# Test class: SQLPathTest
+javax.jcr.tck.SQLPathTest.testroot=/testdata
+
+# Test class: PredicatesTest
+javax.jcr.tck.PredicatesTest.testroot=/testdata
+
+# Test class: SimpleSelectionTest
+javax.jcr.tck.SimpleSelectionTest.testroot=/testdata
+
+# ==============================================================================
+# JAVAX.JCR.VERSIONING CONFIGURATION
+# ==============================================================================
+
+# nodetye that is versionable. if it is not, an attempt is made to create versionable nodes
+# by adding a mix:versionable mixin-type.
+# NOTE: javax.jcr.tck.nodetype must define a non-versionable nodetype!
+javax.jcr.tck.version.versionableNodeType=test:versionable
+javax.jcr.tck.version.propertyValue=aPropertyValue
+
+# testroot for the version package
+# the test root must allow versionable and non-versionable nodes being created below
+javax.jcr.tck.version.testroot=/testroot
+
+# 3 nodes (nodeName1, nodeName2, nodeName3 with nt=versionableNodeType / nt=nonVersionableNodeType will be cloned to 2nd workspace
+# nodename1 > used to persistently create versionable node below testroot
+# nodename2 > used to create second versionable node below testroot (used for restore/workspace.restore with uuid-conflict)
+# nodename3 > used to persistently create non-versionable node below testroot
+javax.jcr.tck.version.nodename1=versionableNodeName1
+javax.jcr.tck.version.nodename2=versionableNodeName2
+javax.jcr.tck.version.nodename3=nonVersionableNodeName1
+
+# nodename 4: versionabel child-node of the first versionable node with nodeName1 and nodetype 'versionableNodeType'
+# used for:
+# + creation of a node in the 2nd workspace, that does not exist in the first workspace
+# + creation of a node in the 2nd workspace, in order to test uuid-conflicts with Workspace.restore.
+# + creation of a sub-node in the default workspace, in order to test uuid-conflicts with Node.restore.
+# + NOTE: the nodetype with 'versionableNodeType' must define its children nodes to either have COPY or VERSION
+#         OPV behaviour in order to successfully test Node.restore and Workspace.restore with uuid conflict.
+javax.jcr.tck.version.nodename4=childNodeName
+
+# path to existing String-properties and a new value for the property, that allows to test the indicated OPV behaviour
+javax.jcr.tck.OnParentVersionAbortTest.propertyname1=test:abortOnParentVersionProp
+javax.jcr.tck.OnParentVersionComputeTest.propertyname1=test:computeOnParentVersionProp
+javax.jcr.tck.OnParentVersionCopyTest.propertyname1=test:copyOnParentVersionProp
+javax.jcr.tck.OnParentVersionIgnoreTest.propertyname1=test:ignoreOnParentVersionProp
+javax.jcr.tck.OnParentVersionInitializeTest.propertyname1=test:initializeOnParentVersionProp
+
+# Test class: RestoreTest
+# Test method: testRestoreWithUUIDConflict
+# nodename4 must be the name of a child node with a OPV definition COPY or VERSION
+javax.jcr.tck.RestoreTest.testRestoreWithUUIDConflict.nodename4=test:versionOnParentVersion
+javax.jcr.tck.RestoreTest.testRestoreLabel.nodename4=test:versionOnParentVersion
+javax.jcr.tck.RestoreTest.testRestoreName.nodename4=test:versionOnParentVersion
+
+# Test class: WorkspaceRestoreTest
+javax.jcr.tck.WorkspaceRestoreTest.testRestoreLabel.nodename4=test:versionOnParentVersion
+javax.jcr.tck.WorkspaceRestoreTest.testRestoreName.nodename4=test:versionOnParentVersion
+
+# config for nodes that show the indicated OPV behaviour:
+# nodes are added in order to test the versioning behaviour indicated by the test-class name.
+# NOTE:
+# - nodename4 is uses as name for the childnode
+# - nodetype is used as nodetype name for the childnode
+# - the specified child node is created below nodename1 with versionableNodeType
+#   the versionableNodeType and/or nodename1 may be overwritten with the individual
+#   testclass below.
+javax.jcr.tck.OnParentVersionCopyTest.nodename4=test:copyOnParentVersion
+javax.jcr.tck.OnParentVersionCopyTest.nodetype=nt:unstructured
+javax.jcr.tck.OnParentVersionAbortTest.nodename4=test:abortOnParentVersion
+javax.jcr.tck.OnParentVersionAbortTest.nodetype=nt:unstructured
+javax.jcr.tck.OnParentVersionIgnoreTest.nodename4=test:ignoreOnParentVersion
+javax.jcr.tck.OnParentVersionIgnoreTest.nodetype=nt:unstructured

Propchange: jackrabbit/trunk/contrib/spi/client/src/test/resources/repositoryStubImpl.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/contrib/spi/client/src/test/resources/testdata.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/resources/testdata.xml?view=auto&rev=555238
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/resources/testdata.xml (added)
+++ jackrabbit/trunk/contrib/spi/client/src/test/resources/testdata.xml Wed Jul 11 03:58:22 2007
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sv:node sv:name="testdata" xmlns:docview012="www.apache.org/jackrabbit/test/namespaceImportTest012" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:docview01="www.apache.org/jackrabbit/test/namespaceImportTest01" xmlns:crx="http://www.day.com/crx/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:rep="internal" xmlns:test="http://www.apache.org/jackrabbit/test" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:docview0="www.apache.org/jackrabbit/test/namespaceImportTest0" xmlns:docview="www.apache.org/jackrabbit/test/namespaceImportTest" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2004/10/xpath-functions" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns="" xmlns:tst="www.apache.org/jackrabbit/test/namespaceRegistryTest"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:node sv:name="query"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><s
 v:node sv:name="node1"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="prop1" sv:type="String"><sv:value>You can have it good, cheap, or fast. Any two.</sv:value></sv:property></sv:node><sv:node sv:name="node1"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="prop1" sv:type="String"><sv:value>foo bar</sv:value></sv:property></sv:node><sv:node sv:name="node1"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="prop1" sv:type="String"><sv:value>Hello world!</sv:value></sv:property></sv:node><sv:node sv:name="node2"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="prop1" sv:type="String"><sv:value>Apache Jackrabbit</sv:value></sv:property></sv:node></sv:node><sv:node sv:name="n
 ode"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:node sv:name="myResource"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:resource</sv:value></sv:property><sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>2cdd6e03-cdd2-4d02-a7a7-c29ef60298e3</sv:value></sv:property><sv:property sv:name="jcr:encoding" sv:type="String"><sv:value>UTF-8</sv:value></sv:property><sv:property sv:name="jcr:data" sv:type="Binary"><sv:value>SGVsbG8gd8O2cmxkLg==</sv:value></sv:property><sv:property sv:name="jcr:mimeType" sv:type="String"><sv:value>text/plain</sv:value></sv:property><sv:property sv:name="jcr:lastModified" sv:type="Date"><sv:value>2005-05-17T12:13:50.238+02:00</sv:value></sv:property></sv:node><sv:node sv:name="reference"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="jcr:mixinTypes" sv:type="Name"><sv:value>mix:refere
 nceable</sv:value></sv:property><sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>e5621200-46b4-4c6f-969b-8ffccca9cae2</sv:value></sv:property><sv:property sv:name="ref" sv:type="Reference"><sv:value>2cdd6e03-cdd2-4d02-a7a7-c29ef60298e3</sv:value></sv:property></sv:node><sv:node sv:name="multiReference"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="ref" sv:type="Reference"><sv:value>2cdd6e03-cdd2-4d02-a7a7-c29ef60298e3</sv:value><sv:value>e5621200-46b4-4c6f-969b-8ffccca9cae2</sv:value></sv:property></sv:node></sv:node><sv:node sv:name="property"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="long" sv:type="Long"><sv:value>90834953485278298</sv:value></sv:property><sv:property sv:name="calendar" sv:type="Date"><sv:value>2005-07-18T17:30:50.368+02:00</sv:value></sv:property><sv:property sv:name="double" sv:type=
 "Double"><sv:value>3.141592653589793</sv:value></sv:property><sv:property sv:name="boolean" sv:type="Boolean"><sv:value>true</sv:value></sv:property><sv:property sv:name="path" sv:type="Path"><sv:value>/</sv:value></sv:property><sv:property sv:name="multi" sv:type="String"><sv:value>one</sv:value><sv:value>two</sv:value><sv:value>three</sv:value></sv:property></sv:node><sv:node sv:name="docViewTest"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:node sv:name="invalidXmlName"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="propName" sv:type="String"><sv:value>some text</sv:value></sv:property></sv:node><sv:node sv:name="jcr:xmltext"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="jcr:xmlcharacters" sv:type="String"><sv:value>A text without any special character.<
 /sv:value></sv:property></sv:node><sv:node sv:name="some-element"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property></sv:node><sv:node sv:name="jcr:xmltext"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="jcr:xmlcharacters" sv:type="String"><sv:value> The entity reference characters: &lt;, ', ,&amp;, &gt;,  " should be escaped in xml export. </sv:value></sv:property></sv:node><sv:node sv:name="some-element"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property></sv:node><sv:node sv:name="jcr:xmltext"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="jcr:xmlcharacters" sv:type="String"><sv:value>A text without any special character.</sv:value></sv:property></sv:node><sv:node sv:name="bigNode"><sv:property sv:name="jcr:prim
 aryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="propName3" sv:type="String"><sv:value>text 1</sv:value></sv:property><sv:property sv:name="propName1" sv:type="String"><sv:value>text 1</sv:value></sv:property><sv:property sv:name="propName2" sv:type="String"><sv:value>multival text 1</sv:value><sv:value>multival text 2</sv:value><sv:value>multival text 3</sv:value></sv:property><sv:property sv:name="propName0" sv:type="Binary"><sv:value>U0dWc2JHOGdkOE8yY214a0xnPT0=</sv:value><sv:value>U0dWc2JHOGdkOE8yY214a0xnPT0=</sv:value></sv:property></sv:node><sv:node sv:name="validNames"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:node sv:name="validMultiNoBin"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="propName" sv:type="String"><sv:value>multival text 1</sv:value><sv:value>multival text 2</sv:v
 alue><sv:value>multival text 3</sv:value></sv:property></sv:node><sv:node sv:name="validMultiBin"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="jcrData" sv:type="Binary"><sv:value>U0dWc2JHOGdkOE8yY214a0xnPT0=</sv:value><sv:value>U0dWc2JHOGdkOE8yY214a0xnPT0=</sv:value></sv:property><sv:property sv:name="jcr:encoding" sv:type="String"><sv:value>UTF-8</sv:value></sv:property><sv:property sv:name="jcr:mimeType" sv:type="String"><sv:value>text/plain</sv:value></sv:property><sv:property sv:name="jcr:lastModified" sv:type="Date"><sv:value>2005-05-17T12:13:50.458+02:00</sv:value></sv:property></sv:node><sv:node sv:name="validNoBin"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="propName" sv:type="String"><sv:value>text 1</sv:value></sv:property></sv:node><sv:node sv:name="validBin"><sv:property sv:name="jcr:primaryType" sv:typ
 e="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="jcrData" sv:type="Binary"><sv:value>SGVsbG8gd8O2cmxkLg==</sv:value></sv:property><sv:property sv:name="jcr:encoding" sv:type="String"><sv:value>UTF-8</sv:value></sv:property><sv:property sv:name="jcr:mimeType" sv:type="String"><sv:value>text/plain</sv:value></sv:property><sv:property sv:name="jcr:lastModified" sv:type="Date"><sv:value>2005-05-17T12:13:50.458+02:00</sv:value></sv:property></sv:node></sv:node><sv:node sv:name="invalidNames"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:node sv:name="invalidMultiNoBin"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="Prop&lt;>prop" sv:type="String"><sv:value>multival text 1</sv:value><sv:value>multival text 2</sv:value><sv:value>multival text 3</sv:value></sv:property></sv:node><sv:node sv:name="invalidMultiBin"
 ><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="Prop&lt;>prop" sv:type="Binary"><sv:value>U0dWc2JHOGdkOE8yY214a0xnPT0=</sv:value><sv:value>U0dWc2JHOGdkOE8yY214a0xnPT0=</sv:value></sv:property><sv:property sv:name="jcr:encoding" sv:type="String"><sv:value>UTF-8</sv:value></sv:property><sv:property sv:name="jcr:mimeType" sv:type="String"><sv:value>text/plain</sv:value></sv:property><sv:property sv:name="jcr:lastModified" sv:type="Date"><sv:value>2005-05-17T12:13:50.468+02:00</sv:value></sv:property></sv:node><sv:node sv:name="invalidNoBin"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="Prop&lt;>prop" sv:type="String"><sv:value>text 1</sv:value></sv:property></sv:node><sv:node sv:name="invalidBin"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:property sv:name="P
 rop&lt;>prop" sv:type="Binary"><sv:value>SGVsbG8gd8O2cmxkLg==</sv:value></sv:property><sv:property sv:name="jcr:encoding" sv:type="String"><sv:value>UTF-8</sv:value></sv:property><sv:property sv:name="jcr:mimeType" sv:type="String"><sv:value>text/plain</sv:value></sv:property><sv:property sv:name="jcr:lastModified" sv:type="Date"><sv:value>2005-05-17T12:13:50.468+02:00</sv:value></sv:property></sv:node></sv:node></sv:node><sv:node sv:name="serialization"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property></sv:node><sv:node sv:name="custom sample nodes"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>nt:unstructured</sv:value></sv:property><sv:node sv:name="test:versionable"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>test:versionable</sv:value></sv:property><sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>fbeb8e11-ca39-48d4-adb6-63e72e7a9c3d</sv:value></sv:property><sv:property
  sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>true</sv:value></sv:property><sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>e4bdb989-f237-412c-8873-73bf9ccc56e3</sv:value></sv:property><sv:property sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>c991ead4-69b7-40cf-b1c4-aa79f1b184da</sv:value></sv:property><sv:property sv:name="jcr:predecessors" sv:type="Reference"><sv:value>c991ead4-69b7-40cf-b1c4-aa79f1b184da</sv:value></sv:property></sv:node><sv:node sv:name="test:refTargetNode"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>test:refTargetNode</sv:value></sv:property><sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>6bd9fd75-77db-470a-99d9-94a22f3c280a</sv:value></sv:property><sv:property sv:name="jcr:versionHistory" sv:type="Reference"><sv:value>ece49f64-9f32-4455-80db-23fdd1f50ebc</sv:value></sv:property><sv:property sv:name="jcr:isCheckedOut" sv:type="Boolean"><sv:value>true</sv:value></sv:property><sv:p
 roperty sv:name="jcr:baseVersion" sv:type="Reference"><sv:value>ef97cc5f-3442-4852-ae28-5d3fba31bbf5</sv:value></sv:property><sv:property sv:name="jcr:predecessors" sv:type="Reference"><sv:value>ef97cc5f-3442-4852-ae28-5d3fba31bbf5</sv:value></sv:property></sv:node><sv:node sv:name="test:canSetProperty"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>test:canSetProperty</sv:value></sv:property></sv:node><sv:node sv:name="test:canAddChildNode"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>test:canAddChildNode</sv:value></sv:property></sv:node><sv:node sv:name="test:setProperty"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>test:setProperty</sv:value></sv:property><sv:property sv:name="jcr:uuid" sv:type="String"><sv:value>3ad78700-df4d-416a-b0f6-1bfb5acd360f</sv:value></sv:property></sv:node><sv:node sv:name="test:setPropertyAssumingType"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>test:setPropertyAssuming
 Type</sv:value></sv:property></sv:node><sv:node sv:name="test:sameNameSibsFalseChildNodeDefinition"><sv:property sv:name="jcr:primaryType" sv:type="Name"><sv:value>test:sameNameSibsFalseChildNodeDefinition</sv:value></sv:property></sv:node></sv:node></sv:node>
\ No newline at end of file

Propchange: jackrabbit/trunk/contrib/spi/client/src/test/resources/testdata.xml
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message