Return-Path: Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: (qmail 21206 invoked from network); 11 Jul 2007 10:58:55 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 11 Jul 2007 10:58:55 -0000 Received: (qmail 63032 invoked by uid 500); 11 Jul 2007 10:58:53 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 62990 invoked by uid 500); 11 Jul 2007 10:58:53 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 62589 invoked by uid 99); 11 Jul 2007 10:58:51 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Jul 2007 03:58:51 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Jul 2007 03:58:45 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id D85721A981A; Wed, 11 Jul 2007 03:58:24 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit 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 -0000 To: commits@jackrabbit.apache.org From: mreutegg@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070711105824.D85721A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 @@ http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client - - - - ${basedir}/src/test/config - - **/*.properties - - - - - org.apache.jackrabbit 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; + +/** + * RepositorySetup 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 session 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 null if + * the resource could not be found + */ + private static InputStream getResource(String name) { + return RepositorySetup.class.getClassLoader().getResourceAsStream(name); + } + + /** + * Registers the namespaces. + * + * @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 @@ + + + + + + mix:versionable + nt:base + + + + + + + + + + + nt:base + + + + + nt:base + + + + + nt:base + + + + + nt:base + + + + + nt:base + + + + + nt:base + + + + + nt:base + + + + + + + + mix:versionable + nt:base + + + + + + + + nt:base + + + + + + abc + def + ghi + + + + + abc + def + ghi + + + + + + + (,100) + + + + + (,100) + + + + + + + (1974-02-15T00:00:00.000Z,) + + + + + (,1974-02-15T00:00:00.000Z) + + + + + + + (100,) + + + + + (,100) + + + + + + + (100,) + + + + + (,100) + + + + + + + true + + + + + true + + + + + + + abc + + + + + abc + + + + + + + /abc + + + + + /abc + + + + + test:canSetProperty + + + + + test:canSetProperty + + + + + + + + nt:base + + + + nt:base + + + + + nt:base + + + + + + + + nt:base + mix:referenceable + + + + + + + + + + nt:base + + + + + + + + + + nt:base + + + + + nt:base + + + + + + + + + + + + + + mix:referenceable + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + +nt:unstructurednt:unstructurednt:unstructuredYou can have it good, cheap, or fast. Any two.nt:unstructuredfoo barnt:unstructuredHello world!nt:unstructuredApache Jackrabbitnt:unstructurednt:resource2cdd6e03-cdd2-4d02-a7a7-c29ef60298e3UTF-8SGVsbG8gd8O2cmxkLg==text/plain2005-05-17T12:13:50.238+02:00nt:unstructuredmix:refere nceablee5621200-46b4-4c6f-969b-8ffccca9cae22cdd6e03-cdd2-4d02-a7a7-c29ef60298e3nt:unstructured2cdd6e03-cdd2-4d02-a7a7-c29ef60298e3e5621200-46b4-4c6f-969b-8ffccca9cae2nt:unstructured908349534852782982005-07-18T17:30:50.368+02:003.141592653589793true/onetwothreent:unstructurednt:unstructuredsome textnt:unstructuredA text without any special character.< /sv:value>nt:unstructurednt:unstructured The entity reference characters: <, ', ,&, >, " should be escaped in xml export. nt:unstructurednt:unstructuredA text without any special character.nt:unstructuredtext 1text 1multival text 1multival text 2multival text 3U0dWc2JHOGdkOE8yY214a0xnPT0=U0dWc2JHOGdkOE8yY214a0xnPT0=nt:unstructurednt:unstructuredmultival text 1multival text 2multival text 3nt:unstructuredU0dWc2JHOGdkOE8yY214a0xnPT0=U0dWc2JHOGdkOE8yY214a0xnPT0=UTF-8text/plain2005-05-17T12:13:50.458+02:00nt:unstructuredtext 1nt:unstructuredSGVsbG8gd8O2cmxkLg==UTF-8text/plain2005-05-17T12:13:50.458+02:00nt:unstructurednt:unstructuredmultival text 1multival text 2multival text 3nt:unstructuredU0dWc2JHOGdkOE8yY214a0xnPT0=U0dWc2JHOGdkOE8yY214a0xnPT0=UTF-8text/plain2005-05-17T12:13:50.468+02:00nt:unstructuredtext 1nt:unstructuredSGVsbG8gd8O2cmxkLg==UTF-8text/plain2005-05-17T12:13:50.468+02:00nt:unstructurednt:unstructuredtest:versionablefbeb8e11-ca39-48d4-adb6-63e72e7a9c3dtruee4bdb989-f237-412c-8873-73bf9ccc56e3c991ead4-69b7-40cf-b1c4-aa79f1b184dac991ead4-69b7-40cf-b1c4-aa79f1b184datest:refTargetNode6bd9fd75-77db-470a-99d9-94a22f3c280aece49f64-9f32-4455-80db-23fdd1f50ebctrueef97cc5f-3442-4852-ae28-5d3fba31bbf5ef97cc5f-3442-4852-ae28-5d3fba31bbf5test:canSetPropertytest:canAddChildNodetest:setProperty3ad78700-df4d-416a-b0f6-1bfb5acd360ftest:setPropertyAssuming Typetest:sameNameSibsFalseChildNodeDefinition \ No newline at end of file Propchange: jackrabbit/trunk/contrib/spi/client/src/test/resources/testdata.xml ------------------------------------------------------------------------------ svn:eol-style = native