Index: extensions/dna-jcr-tck/.classpath
===================================================================
--- extensions/dna-jcr-tck/.classpath (revision 0)
+++ extensions/dna-jcr-tck/.classpath (revision 0)
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
Index: extensions/dna-jcr-tck/.project
===================================================================
--- extensions/dna-jcr-tck/.project (revision 0)
+++ extensions/dna-jcr-tck/.project (revision 0)
@@ -0,0 +1,29 @@
+
+
+ dna-jcr-tck
+
+
+
+
+
+ org.eclipse.wst.common.project.facet.core.builder
+
+
+
+
+ org.maven.ide.eclipse.maven2Builder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.maven.ide.eclipse.maven2Nature
+ org.eclipse.wst.common.project.facet.core.nature
+
+
Index: extensions/dna-jcr-tck/pom.xml
===================================================================
--- extensions/dna-jcr-tck/pom.xml (revision 0)
+++ extensions/dna-jcr-tck/pom.xml (revision 0)
@@ -0,0 +1,99 @@
+
+
+ 4.0.0
+
+ org.jboss.dna
+ dna
+ 0.4-SNAPSHOT
+
+
+ dna-jcr-tck
+ jar
+ JBoss DNA JCR Compatibility Tests
+ JBoss DNA Compatibility Tests
+ http://labs.jboss.org/dna
+
+
+
+
+ org.jboss.dna
+ dna-common
+
+
+ org.jboss.dna
+ dna-common
+ ${pom.version}
+ test-jar
+ test
+
+
+ org.jboss.dna
+ dna-graph
+
+
+ org.jboss.dna
+ dna-graph
+ ${pom.version}
+ test-jar
+ test
+
+
+ org.jboss.dna
+ dna-repository
+
+
+ org.jboss.dna
+ dna-jcr
+ ${pom.version}
+
+
+
+ junit
+ junit
+ test
+
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.slf4j
+ slf4j-log4j12
+ test
+
+
+ log4j
+ log4j
+ test
+
+
+
+ net.jcip
+ jcip-annotations
+
+
+
+ javax.jcr
+ jcr
+
+
+
+ org.apache.jackrabbit
+ jackrabbit-jcr-tests
+
+
+
\ No newline at end of file
Index: extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/InMemoryRepositoryStub.java
===================================================================
--- extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/InMemoryRepositoryStub.java (revision 0)
+++ extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/InMemoryRepositoryStub.java (revision 0)
@@ -0,0 +1,152 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.dna.jcr;
+
+import java.io.File;
+import java.net.URI;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.util.Collections;
+import java.util.Properties;
+import javax.jcr.Credentials;
+import javax.jcr.Repository;
+import org.apache.jackrabbit.test.RepositoryStub;
+import org.jboss.dna.graph.DnaLexicon;
+import org.jboss.dna.graph.ExecutionContext;
+import org.jboss.dna.graph.Graph;
+import org.jboss.dna.graph.GraphImporter;
+import org.jboss.dna.graph.JcrNtLexicon;
+import org.jboss.dna.graph.Location;
+import org.jboss.dna.graph.connector.RepositoryConnection;
+import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
+import org.jboss.dna.graph.connector.inmemory.InMemoryRepositorySource;
+import org.jboss.dna.graph.property.Path;
+
+/**
+ * Class with TCK repository stub. This class does not contain any tests.
+ */
+public class InMemoryRepositoryStub extends RepositoryStub {
+ private Repository repository;
+ protected RepositoryConnection connection;
+ protected AccessControlContext accessControlContext = AccessController.getContext();
+
+ private Credentials credentials = new Credentials() {
+ private static final long serialVersionUID = 1L;
+
+ @SuppressWarnings( "unused" )
+ public AccessControlContext getAccessControlContext() {
+ return accessControlContext;
+ }
+ };
+
+ protected ExecutionContext executionContext = new ExecutionContext() {
+
+ @Override
+ public ExecutionContext create( AccessControlContext accessControlContext ) {
+ return executionContext;
+ }
+ };
+
+ protected RepositoryConnectionFactory connectionFactory = new RepositoryConnectionFactory() {
+ public RepositoryConnection createConnection( String sourceName ) {
+ return connection;
+ }
+ };
+
+ public InMemoryRepositoryStub( Properties env ) {
+ super(env);
+
+ // Create the in-memory (DNA) repository
+ InMemoryRepositorySource source = new InMemoryRepositorySource();
+
+ // Various calls will fail if you do not set a non-null name for the source
+ source.setName("TestRepositorySource");
+
+ // Wrap a connection to the in-memory (DNA) repository in a (JCR) repository
+ connection = source.getConnection();
+ repository = new JcrRepository(Collections.emptyMap(), executionContext.create(accessControlContext),
+ connectionFactory, source.getName());
+
+ // Make sure the path to the namespaces exists ...
+ Graph graph = Graph.create(source.getName(), connectionFactory, executionContext);
+ graph.create("/jcr:system").and().create("/jcr:system/dna:namespaces");
+
+ // Set up some sample nodes in the graph to match the expected test configuration
+ try {
+
+ // TODO: Should there be an easier way to define these since they will be needed for all JCR repositories?
+ executionContext.getNamespaceRegistry().register(DnaLexicon.Namespace.PREFIX, DnaLexicon.Namespace.URI);
+ executionContext.getNamespaceRegistry().register(JcrLexicon.Namespace.PREFIX, JcrLexicon.Namespace.URI);
+ executionContext.getNamespaceRegistry().register(JcrNtLexicon.Namespace.PREFIX, JcrNtLexicon.Namespace.URI);
+ executionContext.getNamespaceRegistry().register("sv", "http://www.jcp.org/jcr/sv/1.0");
+
+ Path destinationPath = executionContext.getValueFactories().getPathFactory().create("/");
+ GraphImporter importer = new GraphImporter(graph);
+
+ URI xmlContent = new File("src/test/resources/repositoryForTckTests.xml").toURI();
+ Graph.Batch batch = importer.importXml(xmlContent, Location.create(destinationPath));
+ batch.execute();
+
+ } catch (Exception ex) {
+ // The TCK tries to quash this exception. Print it out to be more obvious.
+ ex.printStackTrace();
+ throw new IllegalStateException("Repository initialization failed.", ex);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.apache.jackrabbit.test.RepositoryStub#getSuperuserCredentials()
+ */
+ @Override
+ public Credentials getSuperuserCredentials() {
+ // TODO: Why must we override this method? The default TCK implementation just returns a particular instance of
+ // SimpleCredentials.
+ return credentials;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.apache.jackrabbit.test.RepositoryStub#getReadOnlyCredentials()
+ */
+ @Override
+ public Credentials getReadOnlyCredentials() {
+ // TODO: Why must we override this method? The default TCK implementation just returns a particular instance of
+ // SimpleCredentials.
+ return credentials;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.apache.jackrabbit.test.RepositoryStub#getRepository()
+ */
+ @Override
+ public Repository getRepository() {
+ return repository;
+ }
+
+}
Index: extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170LevelOneTckTest.java
===================================================================
--- extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170LevelOneTckTest.java (revision 0)
+++ extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170LevelOneTckTest.java (revision 0)
@@ -0,0 +1,127 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.dna.jcr;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.jackrabbit.test.JCRTestSuite;
+
+/**
+ * Test suite to wrap Apache Jackrabbit JCR technology compatibility kit (TCK) unit tests for Level 1 (L1) compliance. Note that
+ * technically these are not the actual TCK, but these are unit tests that happen to be similar to (or provided the basis for) a
+ * subset of the TCK.
+ */
+public class Jsr170LevelOneTckTest {
+
+ /**
+ *
+ */
+ public Jsr170LevelOneTckTest() {
+ }
+
+ /**
+ * Wrapper so that the Jackrabbit TCK test suite gets picked up by the DNA Maven test target.
+ *
+ * @return a new instance of {@link JCRTestSuite}.
+ */
+ public static Test suite() {
+ // Uncomment this to execute all tests
+ // return new JCRTestSuite();
+
+ // Or uncomment the following lines to execute the different sets/suites of tests ...
+ TestSuite suite = new TestSuite("JCR 1.0 Level 1 Compliance tests");
+
+ suite.addTest(new LevelOneFeatureTests());
+
+ return suite;
+ }
+
+ /**
+ * Test suite that includes the Level 1 JCR TCK API tests from the Jackrabbit project.
+ */
+ private static class LevelOneFeatureTests extends TestSuite {
+ protected LevelOneFeatureTests() {
+ super("JCR Level 1 API Tests");
+ // We currently don't pass the tests in those suites that are commented out
+ // See https://jira.jboss.org/jira/browse/DNA-285
+
+ addTestSuite(org.apache.jackrabbit.test.api.RootNodeTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.NodeReadMethodsTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.PropertyTypeTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.NodeDiscoveringNodeTypesTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.BinaryPropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.BooleanPropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.DatePropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.DoublePropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.LongPropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.NamePropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.PathPropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.ReferencePropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.StringPropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.UndefinedPropertyTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.NamespaceRegistryReadMethodsTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.NamespaceRemappingTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.NodeIteratorTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.PropertyReadMethodsTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.RepositoryDescriptorTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.SessionReadMethodsTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.WorkspaceReadMethodsTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.ReferenceableRootNodesTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.ExportSysViewTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.ExportDocViewTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.RepositoryLoginTest.class);
+
+ // These might not all be level one tests
+ addTestSuite(org.apache.jackrabbit.test.api.query.XPathPosIndexTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.XPathDocOrderTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.XPathOrderByTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.XPathJcrPathTest.class);
+
+ addTestSuite(org.apache.jackrabbit.test.api.query.ElementTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.OrderByDateTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.OrderByDoubleTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.OrderByLongTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.OrderByMultiTypeTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.OrderByStringTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.QueryResultNodeIteratorTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.XPathDocOrderTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.XPathJcrPathTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.XPathOrderByTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.XPathPosIndexTest.class);
+
+ addTestSuite(org.apache.jackrabbit.test.api.query.DerefQueryLevel1Test.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.GetLanguageTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.GetPersistentQueryPathLevel1Test.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.GetStatementTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.GetSupportedQueryLanguagesTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.GetPropertyNamesTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.PredicatesTest.class);
+ addTestSuite(org.apache.jackrabbit.test.api.query.SimpleSelectionTest.class);
+
+ // The tests in this suite are level one
+ addTest(org.apache.jackrabbit.test.api.nodetype.TestAll.suite());
+ }
+ }
+
+}
Index: extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170LevelTwoTckTest.java
===================================================================
--- extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170LevelTwoTckTest.java (revision 0)
+++ extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170LevelTwoTckTest.java (revision 0)
@@ -0,0 +1,196 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.dna.jcr;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.jackrabbit.test.JCRTestSuite;
+import org.apache.jackrabbit.test.api.AddNodeTest;
+import org.apache.jackrabbit.test.api.CheckPermissionTest;
+import org.apache.jackrabbit.test.api.DocumentViewImportTest;
+import org.apache.jackrabbit.test.api.ImpersonateTest;
+import org.apache.jackrabbit.test.api.NamespaceRegistryTest;
+import org.apache.jackrabbit.test.api.NodeAddMixinTest;
+import org.apache.jackrabbit.test.api.NodeCanAddMixinTest;
+import org.apache.jackrabbit.test.api.NodeItemIsModifiedTest;
+import org.apache.jackrabbit.test.api.NodeItemIsNewTest;
+import org.apache.jackrabbit.test.api.NodeOrderableChildNodesTest;
+import org.apache.jackrabbit.test.api.NodeRemoveMixinTest;
+import org.apache.jackrabbit.test.api.NodeTest;
+import org.apache.jackrabbit.test.api.NodeUUIDTest;
+import org.apache.jackrabbit.test.api.PropertyItemIsModifiedTest;
+import org.apache.jackrabbit.test.api.PropertyItemIsNewTest;
+import org.apache.jackrabbit.test.api.PropertyTest;
+import org.apache.jackrabbit.test.api.ReferencesTest;
+import org.apache.jackrabbit.test.api.RepositoryLoginTest;
+import org.apache.jackrabbit.test.api.SerializationTest;
+import org.apache.jackrabbit.test.api.SessionTest;
+import org.apache.jackrabbit.test.api.SessionUUIDTest;
+import org.apache.jackrabbit.test.api.SetPropertyAssumeTypeTest;
+import org.apache.jackrabbit.test.api.SetPropertyBooleanTest;
+import org.apache.jackrabbit.test.api.SetPropertyCalendarTest;
+import org.apache.jackrabbit.test.api.SetPropertyConstraintViolationExceptionTest;
+import org.apache.jackrabbit.test.api.SetPropertyDoubleTest;
+import org.apache.jackrabbit.test.api.SetPropertyInputStreamTest;
+import org.apache.jackrabbit.test.api.SetPropertyLongTest;
+import org.apache.jackrabbit.test.api.SetPropertyNodeTest;
+import org.apache.jackrabbit.test.api.SetPropertyStringTest;
+import org.apache.jackrabbit.test.api.SetPropertyValueTest;
+import org.apache.jackrabbit.test.api.SetValueBinaryTest;
+import org.apache.jackrabbit.test.api.SetValueBooleanTest;
+import org.apache.jackrabbit.test.api.SetValueConstraintViolationExceptionTest;
+import org.apache.jackrabbit.test.api.SetValueDateTest;
+import org.apache.jackrabbit.test.api.SetValueDoubleTest;
+import org.apache.jackrabbit.test.api.SetValueLongTest;
+import org.apache.jackrabbit.test.api.SetValueReferenceTest;
+import org.apache.jackrabbit.test.api.SetValueStringTest;
+import org.apache.jackrabbit.test.api.SetValueValueFormatExceptionTest;
+import org.apache.jackrabbit.test.api.SetValueVersionExceptionTest;
+import org.apache.jackrabbit.test.api.ValueFactoryTest;
+import org.apache.jackrabbit.test.api.WorkspaceCloneReferenceableTest;
+import org.apache.jackrabbit.test.api.WorkspaceCloneSameNameSibsTest;
+import org.apache.jackrabbit.test.api.WorkspaceCloneTest;
+import org.apache.jackrabbit.test.api.WorkspaceCloneVersionableTest;
+import org.apache.jackrabbit.test.api.WorkspaceCopyBetweenWorkspacesReferenceableTest;
+import org.apache.jackrabbit.test.api.WorkspaceCopyBetweenWorkspacesSameNameSibsTest;
+import org.apache.jackrabbit.test.api.WorkspaceCopyBetweenWorkspacesTest;
+import org.apache.jackrabbit.test.api.WorkspaceCopyBetweenWorkspacesVersionableTest;
+import org.apache.jackrabbit.test.api.WorkspaceCopyReferenceableTest;
+import org.apache.jackrabbit.test.api.WorkspaceCopySameNameSibsTest;
+import org.apache.jackrabbit.test.api.WorkspaceCopyTest;
+import org.apache.jackrabbit.test.api.WorkspaceCopyVersionableTest;
+import org.apache.jackrabbit.test.api.WorkspaceMoveReferenceableTest;
+import org.apache.jackrabbit.test.api.WorkspaceMoveSameNameSibsTest;
+import org.apache.jackrabbit.test.api.WorkspaceMoveTest;
+import org.apache.jackrabbit.test.api.WorkspaceMoveVersionableTest;
+import org.apache.jackrabbit.test.api.query.GetPersistentQueryPathTest;
+import org.apache.jackrabbit.test.api.query.SaveTest;
+import org.apache.jackrabbit.test.api.query.XPathQueryLevel2Test;
+
+/**
+ * Test suite to wrap Apache Jackrabbit JCR technology compatibility kit (TCK) unit tests for Level 2 (L2) compliance. Note that
+ * technically these are not the actual TCK, but these are unit tests that happen to be similar to (or provided the basis for) a
+ * subset of the TCK.
+ */
+public class Jsr170LevelTwoTckTest {
+
+ /**
+ *
+ */
+ public Jsr170LevelTwoTckTest() {
+ }
+
+ /**
+ * Wrapper so that the Jackrabbit TCK test suite gets picked up by the DNA Maven test target.
+ *
+ * @return a new instance of {@link JCRTestSuite}.
+ */
+ public static Test suite() {
+ TestSuite suite = new TestSuite("JCR 1.0 Level 2 Compliance tests");
+
+ suite.addTest(new LevelTwoFeatureTests());
+
+ return suite;
+ }
+
+ /**
+ * Test suite that includes the Level 2 JCR TCK API tests from the Jackrabbit project.
+ */
+ private static class LevelTwoFeatureTests extends TestSuite {
+ protected LevelTwoFeatureTests() {
+ super("JCR Level 2 API Tests");
+ addTestSuite(AddNodeTest.class);
+ addTestSuite(NamespaceRegistryTest.class);
+ addTestSuite(ReferencesTest.class);
+ addTestSuite(SessionTest.class);
+ addTestSuite(SessionUUIDTest.class);
+ addTestSuite(NodeTest.class);
+ addTestSuite(NodeUUIDTest.class);
+ addTestSuite(NodeOrderableChildNodesTest.class);
+ addTestSuite(PropertyTest.class);
+
+ addTestSuite(SetValueBinaryTest.class);
+ addTestSuite(SetValueBooleanTest.class);
+ addTestSuite(SetValueDateTest.class);
+ addTestSuite(SetValueDoubleTest.class);
+ addTestSuite(SetValueLongTest.class);
+ addTestSuite(SetValueReferenceTest.class);
+ addTestSuite(SetValueStringTest.class);
+ addTestSuite(SetValueConstraintViolationExceptionTest.class);
+ addTestSuite(SetValueValueFormatExceptionTest.class);
+ addTestSuite(SetValueVersionExceptionTest.class);
+
+ addTestSuite(SetPropertyBooleanTest.class);
+ addTestSuite(SetPropertyCalendarTest.class);
+ addTestSuite(SetPropertyDoubleTest.class);
+ addTestSuite(SetPropertyInputStreamTest.class);
+ addTestSuite(SetPropertyLongTest.class);
+ addTestSuite(SetPropertyNodeTest.class);
+ addTestSuite(SetPropertyStringTest.class);
+ addTestSuite(SetPropertyValueTest.class);
+ addTestSuite(SetPropertyConstraintViolationExceptionTest.class);
+ addTestSuite(SetPropertyAssumeTypeTest.class);
+
+ addTestSuite(NodeItemIsModifiedTest.class);
+ addTestSuite(NodeItemIsNewTest.class);
+ addTestSuite(PropertyItemIsModifiedTest.class);
+ addTestSuite(PropertyItemIsNewTest.class);
+
+ addTestSuite(NodeAddMixinTest.class);
+ addTestSuite(NodeCanAddMixinTest.class);
+ addTestSuite(NodeRemoveMixinTest.class);
+
+ addTestSuite(WorkspaceCloneReferenceableTest.class);
+ addTestSuite(WorkspaceCloneSameNameSibsTest.class);
+ addTestSuite(WorkspaceCloneTest.class);
+ addTestSuite(WorkspaceCloneVersionableTest.class);
+ addTestSuite(WorkspaceCopyBetweenWorkspacesReferenceableTest.class);
+ addTestSuite(WorkspaceCopyBetweenWorkspacesSameNameSibsTest.class);
+ addTestSuite(WorkspaceCopyBetweenWorkspacesTest.class);
+ addTestSuite(WorkspaceCopyBetweenWorkspacesVersionableTest.class);
+ addTestSuite(WorkspaceCopyReferenceableTest.class);
+ addTestSuite(WorkspaceCopySameNameSibsTest.class);
+ addTestSuite(WorkspaceCopyTest.class);
+ addTestSuite(WorkspaceCopyVersionableTest.class);
+ addTestSuite(WorkspaceMoveReferenceableTest.class);
+ addTestSuite(WorkspaceMoveSameNameSibsTest.class);
+ addTestSuite(WorkspaceMoveTest.class);
+ addTestSuite(WorkspaceMoveVersionableTest.class);
+
+ addTestSuite(RepositoryLoginTest.class);
+ addTestSuite(ImpersonateTest.class);
+ addTestSuite(CheckPermissionTest.class);
+
+ addTestSuite(DocumentViewImportTest.class);
+ addTestSuite(SerializationTest.class);
+
+ addTestSuite(ValueFactoryTest.class);
+
+ addTestSuite(GetPersistentQueryPathTest.class);
+ addTestSuite(SaveTest.class);
+ addTestSuite(XPathQueryLevel2Test.class);
+
+ }
+ }
+}
Index: extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalLockingTckTest.java
===================================================================
--- extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalLockingTckTest.java (revision 0)
+++ extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalLockingTckTest.java (revision 0)
@@ -0,0 +1,67 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.dna.jcr;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.jackrabbit.test.JCRTestSuite;
+
+/**
+ * Test suite to wrap Apache Jackrabbit JCR technology compatibility kit (TCK) unit tests for the compliance of the optional
+ * locking feature. Note that technically these are not the actual TCK, but these are unit tests that happen to be similar to (or
+ * provided the basis for) a subset of the TCK.
+ */
+public class Jsr170OptionalLockingTckTest {
+
+ /**
+ *
+ */
+ public Jsr170OptionalLockingTckTest() {
+ }
+
+ /**
+ * Wrapper so that the Jackrabbit TCK test suite gets picked up by the DNA Maven test target.
+ *
+ * @return a new instance of {@link JCRTestSuite}.
+ */
+ public static Test suite() {
+ TestSuite suite = new TestSuite("JCR 1.0 Optional Feature (Locking) Compliance tests");
+
+ suite.addTest(new OptionalLockingFeatureTests());
+
+ return suite;
+ }
+
+ /**
+ * Test suite for the locking tests
+ */
+ private static class OptionalLockingFeatureTests extends TestSuite {
+ protected OptionalLockingFeatureTests() {
+ super("JCR Optional Feature (Locking) Tests");
+
+ addTest(org.apache.jackrabbit.test.api.lock.TestAll.suite());
+ }
+ }
+
+}
Index: extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalObservationTckTest.java
===================================================================
--- extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalObservationTckTest.java (revision 0)
+++ extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalObservationTckTest.java (revision 0)
@@ -0,0 +1,67 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.dna.jcr;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.jackrabbit.test.JCRTestSuite;
+
+/**
+ * Test suite to wrap Apache Jackrabbit JCR technology compatibility kit (TCK) unit tests for the compliance of the optional
+ * observation feature. Note that technically these are not the actual TCK, but these are unit tests that happen to be similar to (or
+ * provided the basis for) a subset of the TCK.
+ */
+public class Jsr170OptionalObservationTckTest {
+
+ /**
+ *
+ */
+ public Jsr170OptionalObservationTckTest() {
+ }
+
+ /**
+ * Wrapper so that the Jackrabbit TCK test suite gets picked up by the DNA Maven test target.
+ *
+ * @return a new instance of {@link JCRTestSuite}.
+ */
+ public static Test suite() {
+ TestSuite suite = new TestSuite("JCR 1.0 Optional Feature (Observation) Compliance tests");
+
+ suite.addTest(new OptionalObservationFeatureTests());
+
+ return suite;
+ }
+
+ /**
+ * Test suite for the observation tests
+ */
+ private static class OptionalObservationFeatureTests extends TestSuite {
+ protected OptionalObservationFeatureTests() {
+ super("JCR Optional Feature (Observation) Tests");
+
+ addTest(org.apache.jackrabbit.test.api.observation.TestAll.suite());
+ }
+ }
+
+}
Index: extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalSqlQueryTckTest.java
===================================================================
--- extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalSqlQueryTckTest.java (revision 0)
+++ extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalSqlQueryTckTest.java (revision 0)
@@ -0,0 +1,76 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.dna.jcr;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.jackrabbit.test.JCRTestSuite;
+import org.apache.jackrabbit.test.api.query.SQLJcrPathTest;
+import org.apache.jackrabbit.test.api.query.SQLJoinTest;
+import org.apache.jackrabbit.test.api.query.SQLOrderByTest;
+import org.apache.jackrabbit.test.api.query.SQLPathTest;
+import org.apache.jackrabbit.test.api.query.SQLQueryLevel2Test;
+
+/**
+ * Test suite to wrap Apache Jackrabbit JCR technology compatibility kit (TCK) unit tests for the compliance of the optional
+ * JCR-SQL query feature. Note that technically these are not the actual TCK, but these are unit tests that happen to be similar
+ * to (or provided the basis for) a subset of the TCK.
+ */
+public class Jsr170OptionalSqlQueryTckTest {
+
+ /**
+ *
+ */
+ public Jsr170OptionalSqlQueryTckTest() {
+ }
+
+ /**
+ * Wrapper so that the Jackrabbit TCK test suite gets picked up by the DNA Maven test target.
+ *
+ * @return a new instance of {@link JCRTestSuite}.
+ */
+ public static Test suite() {
+ TestSuite suite = new TestSuite("JCR 1.0 Optional Feature (JCR-SQL Query) Compliance tests");
+
+ suite.addTest(new OptionalSqlQueryFeatureTests());
+
+ return suite;
+ }
+
+ /**
+ * Test suite for the JCR-SQL query tests
+ */
+ private static class OptionalSqlQueryFeatureTests extends TestSuite {
+ protected OptionalSqlQueryFeatureTests() {
+ super("JCR Optional Feature (JCR-SQL Query) Tests");
+
+ addTestSuite(SQLOrderByTest.class);
+ addTestSuite(SQLQueryLevel2Test.class);
+ addTestSuite(SQLJoinTest.class);
+ addTestSuite(SQLJcrPathTest.class);
+ addTestSuite(SQLPathTest.class);
+ }
+ }
+
+}
Index: extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalVersionTckTest.java
===================================================================
--- extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalVersionTckTest.java (revision 0)
+++ extensions/dna-jcr-tck/src/test/java/org/jboss/dna/jcr/Jsr170OptionalVersionTckTest.java (revision 0)
@@ -0,0 +1,67 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.dna.jcr;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.jackrabbit.test.JCRTestSuite;
+
+/**
+ * Test suite to wrap Apache Jackrabbit JCR technology compatibility kit (TCK) unit tests for the compliance of the optional
+ * version feature. Note that technically these are not the actual TCK, but these are unit tests that happen to be similar to (or
+ * provided the basis for) a subset of the TCK.
+ */
+public class Jsr170OptionalVersionTckTest {
+
+ /**
+ *
+ */
+ public Jsr170OptionalVersionTckTest() {
+ }
+
+ /**
+ * Wrapper so that the Jackrabbit TCK test suite gets picked up by the DNA Maven test target.
+ *
+ * @return a new instance of {@link JCRTestSuite}.
+ */
+ public static Test suite() {
+ TestSuite suite = new TestSuite("JCR 1.0 Optional Feature (Version) Compliance tests");
+
+ suite.addTest(new OptionalVersionFeatureTests());
+
+ return suite;
+ }
+
+ /**
+ * Test suite for the version tests.
+ */
+ private static class OptionalVersionFeatureTests extends TestSuite {
+ protected OptionalVersionFeatureTests() {
+ super("JCR Optional Feature (Version) Tests");
+
+ addTest(org.apache.jackrabbit.test.api.version.TestAll.suite());
+ }
+ }
+
+}
Index: extensions/dna-jcr-tck/src/test/resources/log4j.properties
===================================================================
--- extensions/dna-jcr-tck/src/test/resources/log4j.properties (revision 0)
+++ extensions/dna-jcr-tck/src/test/resources/log4j.properties (revision 0)
@@ -0,0 +1,12 @@
+# Direct log messages to stdout
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %m%n
+
+# Root logger option
+log4j.rootLogger=INFO, stdout
+
+# Set up the default logging to be INFO level, then override specific units
+log4j.logger.org.jboss.dna=INFO
+
Index: extensions/dna-jcr-tck/src/test/resources/repositoryForTckTests.xml
===================================================================
--- extensions/dna-jcr-tck/src/test/resources/repositoryForTckTests.xml (revision 0)
+++ extensions/dna-jcr-tck/src/test/resources/repositoryForTckTests.xml (revision 0)
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: extensions/dna-jcr-tck/src/test/resources/repositoryStubImpl.properties
===================================================================
--- extensions/dna-jcr-tck/src/test/resources/repositoryStubImpl.properties (revision 0)
+++ extensions/dna-jcr-tck/src/test/resources/repositoryStubImpl.properties (revision 0)
@@ -0,0 +1,9 @@
+javax.jcr.tck.repository_stub_impl=org.jboss.dna.jcr.InMemoryRepositoryStub
+javax.jcr.tck.testroot=/testroot
+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=