jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ju...@apache.org
Subject svn commit: r827966 [10/15] - in /jackrabbit/sandbox/JCR-1456: ./ jackrabbit-api/src/main/java/org/apache/jackrabbit/api/ jackrabbit-api/src/main/java/org/apache/jackrabbit/api/management/ jackrabbit-api/src/main/java/org/apache/jackrabbit/api/security...
Date Wed, 21 Oct 2009 11:38:44 GMT
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java Wed Oct 21 11:38:31 2009
@@ -16,123 +16,167 @@
  */
 package org.apache.jackrabbit.client;
 
-import junit.framework.TestCase;
-import org.apache.jackrabbit.jcr2spi.config.RepositoryConfig;
-import org.apache.jackrabbit.spi.RepositoryService;
-import org.apache.jackrabbit.spi.IdFactory;
-import org.apache.jackrabbit.spi.NameFactory;
-import org.apache.jackrabbit.spi.PathFactory;
-import org.apache.jackrabbit.spi.QValueFactory;
-import org.apache.jackrabbit.spi.SessionInfo;
-import org.apache.jackrabbit.spi.ItemId;
-import org.apache.jackrabbit.spi.QNodeDefinition;
-import org.apache.jackrabbit.spi.NodeId;
-import org.apache.jackrabbit.spi.QPropertyDefinition;
-import org.apache.jackrabbit.spi.PropertyId;
-import org.apache.jackrabbit.spi.NodeInfo;
-import org.apache.jackrabbit.spi.PropertyInfo;
-import org.apache.jackrabbit.spi.Batch;
-import org.apache.jackrabbit.spi.Name;
-import org.apache.jackrabbit.spi.LockInfo;
-import org.apache.jackrabbit.spi.QueryInfo;
-import org.apache.jackrabbit.spi.EventFilter;
-import org.apache.jackrabbit.spi.Path;
-import org.apache.jackrabbit.spi.Subscription;
-import org.apache.jackrabbit.spi.EventBundle;
-import org.apache.jackrabbit.spi.QValue;
-import org.apache.jackrabbit.spi.QNodeTypeDefinition;
-import org.apache.jackrabbit.spi.commons.logging.Slf4jLogWriterProvider;
-import org.apache.jackrabbit.client.spilogger.RepositoryConfigImpl;
+import java.io.InputStream;
+import java.net.ConnectException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 
-import javax.jcr.RepositoryException;
-import javax.jcr.Repository;
+import javax.jcr.AccessDeniedException;
 import javax.jcr.Credentials;
+import javax.jcr.InvalidItemStateException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.ItemNotFoundException;
 import javax.jcr.LoginException;
+import javax.jcr.MergeException;
+import javax.jcr.NamespaceException;
 import javax.jcr.NoSuchWorkspaceException;
-import javax.jcr.ItemNotFoundException;
 import javax.jcr.PathNotFoundException;
-import javax.jcr.ValueFormatException;
-import javax.jcr.AccessDeniedException;
-import javax.jcr.UnsupportedRepositoryOperationException;
-import javax.jcr.ItemExistsException;
-import javax.jcr.InvalidItemStateException;
 import javax.jcr.ReferentialIntegrityException;
-import javax.jcr.MergeException;
-import javax.jcr.NamespaceException;
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
 import javax.jcr.RepositoryFactory;
-import javax.jcr.query.InvalidQueryException;
+import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.ValueFormatException;
 import javax.jcr.lock.LockException;
-import javax.jcr.version.VersionException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.nodetype.InvalidNodeTypeDefinitionException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.nodetype.NodeTypeExistsException;
-import java.util.Map;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ArrayList;
-import java.io.InputStream;
+import javax.jcr.query.InvalidQueryException;
+import javax.jcr.version.VersionException;
 
-/**
- * <code>RepositoryFactoryImplTest</code>...
- */
-public class RepositoryFactoryImplTest extends TestCase {
+import junit.framework.TestCase;
+
+import org.apache.jackrabbit.jcr2spi.config.CacheBehaviour;
+import org.apache.jackrabbit.jcr2spi.config.RepositoryConfig;
+import org.apache.jackrabbit.spi.Batch;
+import org.apache.jackrabbit.spi.ChildInfo;
+import org.apache.jackrabbit.spi.EventBundle;
+import org.apache.jackrabbit.spi.EventFilter;
+import org.apache.jackrabbit.spi.IdFactory;
+import org.apache.jackrabbit.spi.ItemId;
+import org.apache.jackrabbit.spi.ItemInfo;
+import org.apache.jackrabbit.spi.LockInfo;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.NameFactory;
+import org.apache.jackrabbit.spi.NodeId;
+import org.apache.jackrabbit.spi.NodeInfo;
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.spi.PathFactory;
+import org.apache.jackrabbit.spi.PropertyId;
+import org.apache.jackrabbit.spi.PropertyInfo;
+import org.apache.jackrabbit.spi.QNodeDefinition;
+import org.apache.jackrabbit.spi.QNodeTypeDefinition;
+import org.apache.jackrabbit.spi.QPropertyDefinition;
+import org.apache.jackrabbit.spi.QValue;
+import org.apache.jackrabbit.spi.QValueFactory;
+import org.apache.jackrabbit.spi.QueryInfo;
+import org.apache.jackrabbit.spi.RepositoryService;
+import org.apache.jackrabbit.spi.RepositoryServiceFactory;
+import org.apache.jackrabbit.spi.SessionInfo;
+import org.apache.jackrabbit.spi.Subscription;
+import org.apache.jackrabbit.spi.commons.logging.Slf4jLogWriterProvider;
+import org.apache.jackrabbit.webdav.DavException;
 
+public class RepositoryFactoryImplTest extends TestCase {
     private final RepositoryFactory factory = new RepositoryFactoryImpl();
-    private final RepositoryService service = new RepositoryServiceImpl();
 
-    public void testGetDefaultRepository() throws RepositoryException {
-        try {
-            Repository repo = factory.getRepository(null);
-            assertNotNull(repo);
-        } catch (RepositoryException e) {
-            // repository on top of spi2davex can only be initialized if the
-            // server is running. ok.
-        }
+    public void testGetRepositoryFromServiceFactory() throws RepositoryException {
+        Map<String, RepositoryServiceFactory> parameters = Collections.singletonMap(
+                "org.apache.jackrabbit.spi.RepositoryServiceFactory",
+                RepositoryServiceFactoryImpl.INSTANCE);
 
-        try {
-            System.setProperty(org.apache.jackrabbit.client.spi2davex.RepositoryConfigImpl.REPOSITORY_SPI2DAVEX_URI, org.apache.jackrabbit.client.spi2davex.RepositoryConfigImpl.DEFAULT_URI);
-            Repository repo = factory.getRepository(null);
-            assertNotNull(repo);
-        } catch (RepositoryException e) {
-            // repository on top of spi2davex can only be initialized if the
-            // server is running. ok.
-        }
+        Repository repo = factory.getRepository(parameters);
+        assertNotNull(repo);
     }
 
-    public void testGetRepository() throws RepositoryException {
-        RepositoryConfig config = new AbstractRepositoryConfig() {
-            public RepositoryService getRepositoryService() throws RepositoryException {
-                return service;
-            }
-        };
+    public void testGetRepositoryFromRepositoryConfig() throws RepositoryException {
+        Map<String, RepositoryConfig> parameters = Collections.singletonMap(
+                "org.apache.jackrabbit.jcr2spi.RepositoryConfig",
+                RepositoryConfigImpl.INSTANCE);
 
-        Repository repo = factory.getRepository(Collections.singletonMap(RepositoryFactoryImpl.REPOSITORY_CONFIG, config));
+        Repository repo = factory.getRepository(parameters);
         assertNotNull(repo);
     }
 
     public void testGetRepositoryWithLogger() throws RepositoryException {
-        RepositoryConfig config = new AbstractRepositoryConfig() {
-            public RepositoryService getRepositoryService() throws RepositoryException {
-                return service;
-            }
-        };
-
-        List lwprovider = new ArrayList();
+        List<Object> lwprovider = new ArrayList<Object>();
         lwprovider.add(null);
         lwprovider.add(new Boolean(true));
         lwprovider.add(new Slf4jLogWriterProvider());
 
-        Map params = new HashMap();
-        params.put(RepositoryFactoryImpl.REPOSITORY_CONFIG, config);
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("org.apache.jackrabbit.jcr2spi.RepositoryConfig", RepositoryConfigImpl.INSTANCE);
 
         for (int i = 0; i < lwprovider.size(); i++) {
-            params.put(RepositoryConfigImpl.PARAM_LOG_WRITER_PROVIDER, lwprovider.get(i));
+            params.put("org.apache.jackrabbit.spi.commons.logging.LogWriterProvider", lwprovider.get(i));
             Repository repo = factory.getRepository(params);
             assertNotNull(repo);
-        }        
+        }
+    }
+
+    public void testGetDefaultRepository() throws RepositoryException {
+        Repository repo = factory.getRepository(null);
+        assertNotNull(repo);
+        assertEquals("Jackrabbit", repo.getDescriptor(Repository.REP_NAME_DESC));
+    }
+
+    public void testGetSpi2jcrRepository() throws RepositoryException {
+        Repository coreRepo = factory.getRepository(null);
+
+        HashMap<String, Object> parameters = new HashMap<String, Object>();
+        parameters.put("org.apache.jackrabbit.spi.RepositoryServiceFactory",
+                       "org.apache.jackrabbit.spi2jcr.Spi2jcrRepositoryServiceFactory");
+        parameters.put("org.apache.jackrabbit.spi2jcr.Repository", coreRepo);
+
+        Repository jcr2spiRepo = factory.getRepository(parameters);
+        assertNotNull(jcr2spiRepo);
+        assertEquals("Jackrabbit", jcr2spiRepo.getDescriptor(Repository.REP_NAME_DESC));
+    }
+
+    public void testGetSpi2davRepository() throws RepositoryException {
+        Map<String, String> parameters = new HashMap<String, String>();
+
+        parameters.put("org.apache.jackrabbit.spi.RepositoryServiceFactory",
+                       "org.apache.jackrabbit.spi2dav.Spi2davRepositoryServiceFactory");
+        parameters.put("org.apache.jackrabbit.spi2dav.uri",
+                       "http://localhost/");
+
+        try {
+            Repository repo = factory.getRepository(parameters);
+            assertNotNull(repo);
+        } catch (RepositoryException e) {
+            // If there is no jcr server on localhost, one of the below
+            // exceptions will be thrown. Since this indicates that the
+            // factory is working correctly, it is safe to ignore them.
+            if (!(ConnectException.class.isInstance(e.getCause()) ||
+                  DavException.class.isInstance(e.getCause()))) {
+                throw e;
+            }
+        }
+    }
+
+    public void testGetSpi2davexRepository() throws RepositoryException {
+        Map<String, String> parameters = Collections.singletonMap(
+                "org.apache.jackrabbit.spi.RepositoryServiceFactory",
+                "org.apache.jackrabbit.spi2davex.Spi2davexRepositoryServiceFactory");
+
+        try {
+            Repository repo = factory.getRepository(parameters);
+            assertNotNull(repo);
+        } catch (RepositoryException e) {
+            // If there is no jcr server on localhost, one of the below
+            // exceptions will be thrown. Since this indicates that the
+            // factory is working correctly, it is safe to ignore them.
+            if (!(ConnectException.class.isInstance(e.getCause()) ||
+                    DavException.class.isInstance(e.getCause()))) {
+                  throw e;
+              }
+        }
     }
 
     public void testGetRepositoryUnknownParams() throws RepositoryException {
@@ -140,11 +184,60 @@
         assertNull(repo);
     }
 
-    //--------------------------------------------------------------------------
+    // -----------------------------------------------------< private >---
+
+    /**
+     * Dummy RepositoryServiceFactory
+     */
+    private static final class RepositoryServiceFactoryImpl implements RepositoryServiceFactory {
+        public static final RepositoryServiceFactory INSTANCE = new RepositoryServiceFactoryImpl();
+
+        private RepositoryServiceFactoryImpl() {
+            super();
+        }
+
+        public RepositoryService createRepositoryService(Map<?, ?> parameters) throws RepositoryException {
+            return RepositoryServiceImpl.INSTANCE;
+        }
+    }
+
+    /**
+     * Dummy RepositoryConfig
+     */
+    private static final class RepositoryConfigImpl implements RepositoryConfig {
+        public static final RepositoryConfig INSTANCE = new RepositoryConfigImpl();
+
+        private RepositoryConfigImpl() {
+            super();
+        }
+
+        public CacheBehaviour getCacheBehaviour() {
+            return CacheBehaviour.INVALIDATE;
+        }
+
+        public int getItemCacheSize() {
+            return 1234;
+        }
+
+        public int getPollTimeout() {
+            return 1234;
+        }
+
+        public RepositoryService getRepositoryService() throws RepositoryException {
+            return RepositoryServiceImpl.INSTANCE;
+        }
+
+    }
+
     /**
      * Dummy RepositoryService
      */
     private static final class RepositoryServiceImpl implements RepositoryService {
+        public static final RepositoryService INSTANCE = new RepositoryServiceImpl();
+
+        private RepositoryServiceImpl() {
+            super();
+        }
 
         public IdFactory getIdFactory() throws RepositoryException {
             return null;
@@ -163,7 +256,7 @@
         }
 
         public Map<String, QValue[]> getRepositoryDescriptors() throws RepositoryException {
-            return null;
+            return Collections.emptyMap();
         }
 
         public SessionInfo obtain(Credentials credentials, String workspaceName) throws LoginException, NoSuchWorkspaceException, RepositoryException {
@@ -179,6 +272,7 @@
         }
 
         public void dispose(SessionInfo sessionInfo) throws RepositoryException {
+            // empty
         }
 
         public String[] getWorkspaceNames(SessionInfo sessionInfo) throws RepositoryException {
@@ -201,11 +295,11 @@
             return null;
         }
 
-        public Iterator getItemInfos(SessionInfo sessionInfo, NodeId nodeId) throws ItemNotFoundException, RepositoryException {
+        public Iterator<? extends ItemInfo> getItemInfos(SessionInfo sessionInfo, NodeId nodeId) throws ItemNotFoundException, RepositoryException {
             return null;
         }
 
-        public Iterator getChildInfos(SessionInfo sessionInfo, NodeId parentId) throws ItemNotFoundException, RepositoryException {
+        public Iterator<ChildInfo> getChildInfos(SessionInfo sessionInfo, NodeId parentId) throws ItemNotFoundException, RepositoryException {
             return null;
         }
 
@@ -222,21 +316,27 @@
         }
 
         public void submit(Batch batch) throws PathNotFoundException, ItemNotFoundException, NoSuchNodeTypeException, ValueFormatException, VersionException, LockException, ConstraintViolationException, AccessDeniedException, UnsupportedRepositoryOperationException, RepositoryException {
+            // empty
         }
 
         public void importXml(SessionInfo sessionInfo, NodeId parentId, InputStream xmlStream, int uuidBehaviour) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, AccessDeniedException, UnsupportedRepositoryOperationException, RepositoryException {
+            // empty
         }
 
         public void move(SessionInfo sessionInfo, NodeId srcNodeId, NodeId destParentNodeId, Name destName) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, AccessDeniedException, UnsupportedRepositoryOperationException, RepositoryException {
+            // empty
         }
 
         public void copy(SessionInfo sessionInfo, String srcWorkspaceName, NodeId srcNodeId, NodeId destParentNodeId, Name destName) throws NoSuchWorkspaceException, ConstraintViolationException, VersionException, AccessDeniedException, PathNotFoundException, ItemExistsException, LockException, UnsupportedRepositoryOperationException, RepositoryException {
+            // empty
         }
 
         public void update(SessionInfo sessionInfo, NodeId nodeId, String srcWorkspaceName) throws NoSuchWorkspaceException, AccessDeniedException, LockException, InvalidItemStateException, RepositoryException {
+            // empty
         }
 
         public void clone(SessionInfo sessionInfo, String srcWorkspaceName, NodeId srcNodeId, NodeId destParentNodeId, Name destName, boolean removeExisting) throws NoSuchWorkspaceException, ConstraintViolationException, VersionException, AccessDeniedException, PathNotFoundException, ItemExistsException, LockException, UnsupportedRepositoryOperationException, RepositoryException {
+            // empty
         }
 
         public LockInfo getLockInfo(SessionInfo sessionInfo, NodeId nodeId) throws AccessDeniedException, RepositoryException {
@@ -252,9 +352,11 @@
         }
 
         public void refreshLock(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, RepositoryException {
+            // empty
         }
 
         public void unlock(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, RepositoryException {
+            // empty
         }
 
         public NodeId checkin(SessionInfo sessionInfo, NodeId nodeId) throws VersionException, UnsupportedRepositoryOperationException, InvalidItemStateException, LockException, RepositoryException {
@@ -262,9 +364,11 @@
         }
 
         public void checkout(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, LockException, RepositoryException {
+            // empty
         }
 
         public void checkout(SessionInfo sessionInfo, NodeId nodeId, NodeId activityId) throws UnsupportedRepositoryOperationException, LockException, RepositoryException {
+            // empty
         }
 
         public NodeId checkpoint(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, RepositoryException {
@@ -272,29 +376,35 @@
         }
 
         public void removeVersion(SessionInfo sessionInfo, NodeId versionHistoryId, NodeId versionId) throws ReferentialIntegrityException, AccessDeniedException, UnsupportedRepositoryOperationException, VersionException, RepositoryException {
+            // empty
         }
 
         public void restore(SessionInfo sessionInfo, NodeId nodeId, NodeId versionId, boolean removeExisting) throws VersionException, PathNotFoundException, ItemExistsException, UnsupportedRepositoryOperationException, LockException, InvalidItemStateException, RepositoryException {
+            // empty
         }
 
         public void restore(SessionInfo sessionInfo, NodeId[] versionIds, boolean removeExisting) throws ItemExistsException, UnsupportedRepositoryOperationException, VersionException, LockException, InvalidItemStateException, RepositoryException {
+            // empty
         }
 
-        public Iterator merge(SessionInfo sessionInfo, NodeId nodeId, String srcWorkspaceName, boolean bestEffort) throws NoSuchWorkspaceException, AccessDeniedException, MergeException, LockException, InvalidItemStateException, RepositoryException {
+        public Iterator<NodeId> merge(SessionInfo sessionInfo, NodeId nodeId, String srcWorkspaceName, boolean bestEffort) throws NoSuchWorkspaceException, AccessDeniedException, MergeException, LockException, InvalidItemStateException, RepositoryException {
             return null;
         }
 
-        public Iterator merge(SessionInfo sessionInfo, NodeId nodeId, String srcWorkspaceName, boolean bestEffort, boolean isShallow) throws NoSuchWorkspaceException, AccessDeniedException, MergeException, LockException, InvalidItemStateException, RepositoryException {
+        public Iterator<NodeId> merge(SessionInfo sessionInfo, NodeId nodeId, String srcWorkspaceName, boolean bestEffort, boolean isShallow) throws NoSuchWorkspaceException, AccessDeniedException, MergeException, LockException, InvalidItemStateException, RepositoryException {
             return null;
         }
 
         public void resolveMergeConflict(SessionInfo sessionInfo, NodeId nodeId, NodeId[] mergeFailedIds, NodeId[] predecessorIds) throws VersionException, InvalidItemStateException, UnsupportedRepositoryOperationException, RepositoryException {
+            // empty
         }
 
         public void addVersionLabel(SessionInfo sessionInfo, NodeId versionHistoryId, NodeId versionId, Name label, boolean moveLabel) throws VersionException, RepositoryException {
+            // empty
         }
 
         public void removeVersionLabel(SessionInfo sessionInfo, NodeId versionHistoryId, NodeId versionId, Name label) throws VersionException, RepositoryException {
+            // empty
         }
 
         public NodeId createActivity(SessionInfo sessionInfo, String title) throws UnsupportedRepositoryOperationException, RepositoryException {
@@ -302,10 +412,10 @@
         }
 
         public void removeActivity(SessionInfo sessionInfo, NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
-
+            // empty
         }
 
-        public Iterator mergeActivity(SessionInfo sessionInfo, NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
+        public Iterator<NodeId> mergeActivity(SessionInfo sessionInfo, NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
             return null;
         }
 
@@ -317,7 +427,7 @@
             return new String[0];
         }
 
-        public String[] checkQueryStatement(SessionInfo sessionInfo, String statement, String language, Map namespaces) throws InvalidQueryException, RepositoryException {
+        public String[] checkQueryStatement(SessionInfo sessionInfo, String statement, String language, Map<String, String> namespaces) throws InvalidQueryException, RepositoryException {
             return new String[0];
         }
 
@@ -334,6 +444,7 @@
         }
 
         public void updateEventFilters(Subscription subscription, EventFilter[] filters) throws RepositoryException {
+            // empty
         }
 
         public EventBundle[] getEvents(Subscription subscription, long timeout) throws RepositoryException, InterruptedException {
@@ -345,9 +456,10 @@
         }
 
         public void dispose(Subscription subscription) throws RepositoryException {
+            // empty
         }
 
-        public Map getRegisteredNamespaces(SessionInfo sessionInfo) throws RepositoryException {
+        public Map<String, String> getRegisteredNamespaces(SessionInfo sessionInfo) throws RepositoryException {
             return null;
         }
 
@@ -360,33 +472,36 @@
         }
 
         public void registerNamespace(SessionInfo sessionInfo, String prefix, String uri) throws NamespaceException, UnsupportedRepositoryOperationException, AccessDeniedException, RepositoryException {
+            // empty
         }
 
         public void unregisterNamespace(SessionInfo sessionInfo, String uri) throws NamespaceException, UnsupportedRepositoryOperationException, AccessDeniedException, RepositoryException {
+            // empty
         }
 
-        public Iterator getQNodeTypeDefinitions(SessionInfo sessionInfo) throws RepositoryException {
+        public Iterator<QNodeTypeDefinition> getQNodeTypeDefinitions(SessionInfo sessionInfo) throws RepositoryException {
             return null;
         }
 
-        public Iterator getQNodeTypeDefinitions(SessionInfo sessionInfo, Name[] nodetypeNames) throws RepositoryException {
+        public Iterator<QNodeTypeDefinition> getQNodeTypeDefinitions(SessionInfo sessionInfo, Name[] nodetypeNames) throws RepositoryException {
             return null;
         }
 
         public void registerNodeTypes(SessionInfo sessionInfo, QNodeTypeDefinition[] nodeTypeDefinitions, boolean allowUpdate) throws InvalidNodeTypeDefinitionException, NodeTypeExistsException, UnsupportedRepositoryOperationException, RepositoryException {
-
+            // empty
         }
 
         public void unregisterNodeTypes(SessionInfo sessionInfo, Name[] nodeTypeNames) throws UnsupportedRepositoryOperationException, NoSuchNodeTypeException, RepositoryException {
-
+            // empty
         }
 
         public void createWorkspace(SessionInfo sessionInfo, String name, String srcWorkspaceName) throws AccessDeniedException, UnsupportedRepositoryOperationException, NoSuchWorkspaceException, RepositoryException {
-
+            // empty
         }
 
         public void deleteWorkspace(SessionInfo sessionInfo, String name) throws AccessDeniedException, UnsupportedRepositoryOperationException, NoSuchWorkspaceException, RepositoryException {
-
+            // empty
         }
     }
+
 }
\ No newline at end of file

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/util/Text.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/util/Text.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/util/Text.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/util/Text.java Wed Oct 21 11:38:31 2009
@@ -484,7 +484,7 @@
     }
 
     /**
-     * Escapes all illegal XPath search characters of a string.
+     * Escapes illegal XPath search characters at the end of a string.
      * <p>Example:<br>
      * A search string like 'test?' will run into a ParseException
      * documented in http://issues.apache.org/jira/browse/JCR-1248
@@ -498,8 +498,7 @@
         char c = s.charAt(s.length() - 1);
         // NOTE: keep this in sync with _ESCAPED_CHAR below!
         if (c == '!' || c == '(' || c == ':' || c == '^'
-            || c == '[' || c == ']' || c == '\"' || c == '{'
-            || c == '}' || c == '?') {
+            || c == '[' || c == ']' || c == '{' || c == '}' || c == '?') {
             sb.append('\\');
         }
         sb.append(c);

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-server/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-server/pom.xml?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-server/pom.xml (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-server/pom.xml Wed Oct 21 11:38:31 2009
@@ -77,6 +77,10 @@
       <version>2.0-SNAPSHOT</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.tika</groupId>
+      <artifactId>tika-core</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeAddMixinTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeAddMixinTest.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeAddMixinTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeAddMixinTest.java Wed Oct 21 11:38:31 2009
@@ -16,19 +16,19 @@
  */
 package org.apache.jackrabbit.test.api;
 
-import org.apache.jackrabbit.test.AbstractJCRTest;
-import org.apache.jackrabbit.test.NotExecutableException;
-
-import javax.jcr.version.VersionException;
-import javax.jcr.lock.LockException;
+import javax.jcr.Node;
+import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
-import javax.jcr.Node;
 import javax.jcr.Value;
-import javax.jcr.Repository;
 import javax.jcr.ValueFormatException;
-import javax.jcr.nodetype.NodeType;
+import javax.jcr.lock.LockException;
 import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.nodetype.NodeType;
+import javax.jcr.version.VersionException;
+
+import org.apache.jackrabbit.test.AbstractJCRTest;
+import org.apache.jackrabbit.test.NotExecutableException;
 
 /**
  * <code>NodeAddMixinTest</code> contains the test cases for the method
@@ -105,7 +105,7 @@
 
     /**
      * Test if adding the same mixin twice works as expected.
-     * 
+     *
      * @throws RepositoryException
      * @throws NotExecutableException
      * @since JCR 2.0
@@ -124,14 +124,14 @@
         node.addMixin(mixinName);
 
         session.save();
-        
+
         node.addMixin(mixinName);
         assertFalse(node.isModified());
     }
 
     /**
      * Test if adding an inherited mixin type has no effect.
-     * 
+     *
      * @throws RepositoryException
      * @since JCR 2.0
      */
@@ -238,7 +238,7 @@
         testRootNode.save();
 
         String mixinName = NodeMixinUtil.getAddableMixinName(session, node);
-        if (mixinName == null) {
+        if (mixinName == null || node.isNodeType(mixinName)) {
             throw new NotExecutableException("No testable mixin node type found");
         }
 

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeMixinUtil.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeMixinUtil.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeMixinUtil.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeMixinUtil.java Wed Oct 21 11:38:31 2009
@@ -16,14 +16,17 @@
  */
 package org.apache.jackrabbit.test.api;
 
+import java.util.Arrays;
+import java.util.List;
+
+import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
-import javax.jcr.Node;
-import javax.jcr.nodetype.NodeTypeManager;
-import javax.jcr.nodetype.NodeTypeIterator;
 import javax.jcr.nodetype.NodeType;
-import java.util.List;
-import java.util.Arrays;
+import javax.jcr.nodetype.NodeTypeIterator;
+import javax.jcr.nodetype.NodeTypeManager;
+
+import org.apache.jackrabbit.test.AbstractJCRTest;
 
 /**
  * Utility class to locate mixins in the NodeTyeManager.
@@ -40,9 +43,12 @@
         NodeTypeManager manager = session.getWorkspace().getNodeTypeManager();
         NodeTypeIterator mixins = manager.getMixinNodeTypes();
 
+        // Skip mix:shareable since not supported by removeMixin
+        String mixShareable = session.getNamespacePrefix(AbstractJCRTest.NS_MIX_URI) + ":shareable";
+
         while (mixins.hasNext()) {
             String name = mixins.nextNodeType().getName();
-            if (node.canAddMixin(name)) {
+            if (node.canAddMixin(name) && !mixShareable.equals(name)) {
                 return name;
             }
         }

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeRemoveMixinTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeRemoveMixinTest.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeRemoveMixinTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeRemoveMixinTest.java Wed Oct 21 11:38:31 2009
@@ -16,19 +16,19 @@
  */
 package org.apache.jackrabbit.test.api;
 
-import org.apache.jackrabbit.test.AbstractJCRTest;
-import org.apache.jackrabbit.test.NotExecutableException;
-
-import javax.jcr.version.VersionException;
-import javax.jcr.lock.LockException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
 import javax.jcr.Node;
-import javax.jcr.Property;
 import javax.jcr.PathNotFoundException;
+import javax.jcr.Property;
 import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.lock.LockException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.version.VersionException;
+
+import org.apache.jackrabbit.test.AbstractJCRTest;
+import org.apache.jackrabbit.test.NotExecutableException;
 
 /**
  * <code>NodeRemoveMixinTest</code> contains the test cases for the method
@@ -211,7 +211,7 @@
         testRootNode.save();
 
         String mixinName = NodeMixinUtil.getAddableMixinName(session, node);
-        if (mixinName == null) {
+        if (mixinName == null || node.isNodeType(mixinName)) {
             throw new NotExecutableException("No testable mixin node type found");
         }
 

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeSetPrimaryTypeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeSetPrimaryTypeTest.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeSetPrimaryTypeTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/NodeSetPrimaryTypeTest.java Wed Oct 21 11:38:31 2009
@@ -16,9 +16,6 @@
  */
 package org.apache.jackrabbit.test.api;
 
-import org.apache.jackrabbit.test.AbstractJCRTest;
-import org.apache.jackrabbit.test.NotExecutableException;
-
 import javax.jcr.Node;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
@@ -26,11 +23,14 @@
 import javax.jcr.lock.LockException;
 import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.nodetype.NodeType;
 import javax.jcr.nodetype.NodeTypeIterator;
 import javax.jcr.nodetype.NodeTypeManager;
-import javax.jcr.nodetype.NodeType;
 import javax.jcr.version.VersionException;
 
+import org.apache.jackrabbit.test.AbstractJCRTest;
+import org.apache.jackrabbit.test.NotExecutableException;
+
 /**
  * <code>SetPrimaryType</code>...
  */
@@ -58,7 +58,7 @@
         while (nts.hasNext()) {
             NodeType nt = nts.nextNodeType();
             String ntName = nt.getName();
-            if (!nt.isAbstract()) {
+            if (!nt.isAbstract() && !ntFrozenNode.equals(ntName)) {
                 try {
                     node.setPrimaryType(ntName);
                     // property value must be adjusted immediately
@@ -93,7 +93,7 @@
     /**
      * Passing the current primary type to {@link Node#setPrimaryType(String)}
      * must always succeed.
-     * 
+     *
      * @throws RepositoryException
      */
     public void testSetCurrentType() throws RepositoryException {
@@ -114,7 +114,7 @@
      */
     public void testSetCurrentTypeOnNew() throws RepositoryException {
         Session session = testRootNode.getSession();
-        
+
         Node node = testRootNode.addNode(nodeName1, testNodeType);
         node.setPrimaryType(testNodeType);
         superuser.save();

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/SetPropertyConstraintViolationExceptionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/SetPropertyConstraintViolationExceptionTest.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/SetPropertyConstraintViolationExceptionTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/SetPropertyConstraintViolationExceptionTest.java Wed Oct 21 11:38:31 2009
@@ -16,21 +16,22 @@
  */
 package org.apache.jackrabbit.test.api;
 
-import org.apache.jackrabbit.test.AbstractJCRTest;
-import org.apache.jackrabbit.test.NotExecutableException;
-import org.apache.jackrabbit.test.api.nodetype.NodeTypeUtil;
+import java.io.IOException;
+import java.io.InputStream;
 
-import javax.jcr.RepositoryException;
+import javax.jcr.Node;
 import javax.jcr.PropertyType;
+import javax.jcr.RepositoryException;
 import javax.jcr.Value;
-import javax.jcr.Node;
-import javax.jcr.nodetype.PropertyDefinition;
 import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NodeTypeManager;
-import javax.jcr.nodetype.NodeTypeIterator;
 import javax.jcr.nodetype.NodeType;
-import java.io.InputStream;
-import java.io.IOException;
+import javax.jcr.nodetype.NodeTypeIterator;
+import javax.jcr.nodetype.NodeTypeManager;
+import javax.jcr.nodetype.PropertyDefinition;
+
+import org.apache.jackrabbit.test.AbstractJCRTest;
+import org.apache.jackrabbit.test.NotExecutableException;
+import org.apache.jackrabbit.test.api.nodetype.NodeTypeUtil;
 
 /**
  * <code>SetPropertyConstraintViolationExceptionTest</code> tests if
@@ -375,7 +376,7 @@
                 NodeType type = types.nextNodeType();
                 String name = type.getName();
                 for (int i = 0; i < constraints.length; i++) {
-                    if (name.equals(constraints[i])) {
+                    if (name.equals(constraints[i]) || ntFrozenNode.equals(name)) {
                         continue findNodeTypeNotSatisfied;
                     }
                     nodeTypeNotSatisfied = name;

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java Wed Oct 21 11:38:31 2009
@@ -16,22 +16,23 @@
  */
 package org.apache.jackrabbit.test.api;
 
-import org.apache.jackrabbit.test.AbstractJCRTest;
-import org.apache.jackrabbit.test.NotExecutableException;
-import org.apache.jackrabbit.test.api.nodetype.NodeTypeUtil;
+import java.io.IOException;
+import java.io.InputStream;
 
-import javax.jcr.RepositoryException;
-import javax.jcr.PropertyType;
-import javax.jcr.Value;
 import javax.jcr.Node;
 import javax.jcr.Property;
-import javax.jcr.nodetype.PropertyDefinition;
+import javax.jcr.PropertyType;
+import javax.jcr.RepositoryException;
+import javax.jcr.Value;
 import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NodeTypeManager;
-import javax.jcr.nodetype.NodeTypeIterator;
 import javax.jcr.nodetype.NodeType;
-import java.io.InputStream;
-import java.io.IOException;
+import javax.jcr.nodetype.NodeTypeIterator;
+import javax.jcr.nodetype.NodeTypeManager;
+import javax.jcr.nodetype.PropertyDefinition;
+
+import org.apache.jackrabbit.test.AbstractJCRTest;
+import org.apache.jackrabbit.test.NotExecutableException;
+import org.apache.jackrabbit.test.api.nodetype.NodeTypeUtil;
 
 /**
  * <code>SetValueConstraintViolationExceptionTest</code> tests if setValue()
@@ -417,7 +418,7 @@
                 NodeType type = types.nextNodeType();
                 String name = type.getName();
                 for (int i = 0; i < constraints.length; i++) {
-                    if (name.equals(constraints[i])) {
+                    if (name.equals(constraints[i]) || ntFrozenNode.equals(name)) {
                         continue findNodeTypeNotSatisfied;
                     }
                     nodeTypeNotSatisfied = name;
@@ -789,7 +790,7 @@
                 NodeType type = types.nextNodeType();
                 String name = type.getName();
                 for (int i = 0; i < constraints.length; i++) {
-                    if (name.equals(constraints[i])) {
+                    if (name.equals(constraints[i]) || ntFrozenNode.equals(name)) {
                         continue findNodeTypeNotSatisfied;
                     }
                     nodeTypeNotSatisfied = name;

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/PredefinedNodeTypeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/PredefinedNodeTypeTest.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/PredefinedNodeTypeTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/PredefinedNodeTypeTest.java Wed Oct 21 11:38:31 2009
@@ -23,6 +23,11 @@
 import java.io.StringWriter;
 import java.util.Arrays;
 import java.util.Comparator;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.Iterator;
 
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
@@ -50,6 +55,42 @@
  */
 public class PredefinedNodeTypeTest extends AbstractJCRTest {
 
+    private static final Map SUPERTYPES = new HashMap();
+
+    static {
+        SUPERTYPES.put("mix:created", new String[]{});
+        SUPERTYPES.put("mix:etag", new String[]{});
+        SUPERTYPES.put("mix:language", new String[]{});
+        SUPERTYPES.put("mix:lastModified", new String[]{});
+        SUPERTYPES.put("mix:lifecycle", new String[]{});
+        SUPERTYPES.put("mix:lockable", new String[]{});
+        SUPERTYPES.put("mix:mimeType", new String[]{});
+        SUPERTYPES.put("mix:referenceable", new String[]{});
+        SUPERTYPES.put("mix:shareable", new String[]{"mix:referenceable"});
+        SUPERTYPES.put("mix:simpleVersionable", new String[]{});
+        SUPERTYPES.put("mix:title", new String[]{});
+        SUPERTYPES.put("mix:versionable", new String[]{"mix:referenceable", "mix:simpleVersionable"});
+        SUPERTYPES.put("nt:activity", new String[]{"nt:base"});
+        SUPERTYPES.put("nt:address", new String[]{"nt:base"});
+        SUPERTYPES.put("nt:base", new String[]{});
+        SUPERTYPES.put("nt:childNodeDefinition", new String[]{"nt:base"});
+        SUPERTYPES.put("nt:configuration", new String[]{"nt:base"});
+        SUPERTYPES.put("nt:file", new String[]{"nt:hierarchyNode"});
+        SUPERTYPES.put("nt:folder", new String[]{"nt:hierarchyNode"});
+        SUPERTYPES.put("nt:frozenNode", new String[]{"nt:base", "mix:referenceable"});
+        SUPERTYPES.put("nt:hierarchyNode", new String[]{"nt:base", "mix:created"});
+        SUPERTYPES.put("nt:linkedFile", new String[]{"nt:hierarchyNode"});
+        SUPERTYPES.put("nt:nodeType", new String[]{"nt:base"});
+        SUPERTYPES.put("nt:propertyDefinition", new String[]{"nt:base"});
+        SUPERTYPES.put("nt:query", new String[]{"nt:base"});
+        SUPERTYPES.put("nt:resource", new String[]{"nt:base", "mix:lastModified", "mix:mimeType"});
+        SUPERTYPES.put("nt:unstructured", new String[]{"nt:base"});
+        SUPERTYPES.put("nt:version", new String[]{"nt:base", "mix:referenceable"});
+        SUPERTYPES.put("nt:versionedChild", new String[]{"nt:base"});
+        SUPERTYPES.put("nt:versionHistory", new String[]{"nt:base", "mix:referenceable"});
+        SUPERTYPES.put("nt:versionLabels", new String[]{"nt:base"});
+    }
+
     /**
      * The NodeTypeManager of the session
      */
@@ -99,157 +140,157 @@
 
     /** Test for the predefined mix:lifecycle node type. */
     public void testLifecycle() throws NotExecutableException {
-        testPredefinedNodeType("mix:lifecycle");
+        testPredefinedNodeType("mix:lifecycle", false);
     }
 
     /** Test for the predefined mix:lockable node type. */
     public void testLockable() throws NotExecutableException {
-        testPredefinedNodeType("mix:lockable");
+        testPredefinedNodeType("mix:lockable", false);
     }
 
     /** Test for the predefined mix:referenceable node type. */
     public void testReferenceable() throws NotExecutableException {
-        testPredefinedNodeType("mix:referenceable");
+        testPredefinedNodeType("mix:referenceable", false);
     }
 
     /** Test for the predefined mix:referenceable node type. */
     public void testShareable() throws NotExecutableException {
-        testPredefinedNodeType("mix:shareable");
+        testPredefinedNodeType("mix:shareable", false);
     }
 
     /** Test for the predefined mix:versionable node type. */
     public void testVersionable() throws NotExecutableException {
-        testPredefinedNodeType("mix:versionable");
+        testPredefinedNodeType("mix:versionable", false);
     }
 
     /** Test for the predefined mix:simpleVersionable node type. */
     public void testSimpleVersionable() throws NotExecutableException {
-        testPredefinedNodeType("mix:simpleVersionable");
+        testPredefinedNodeType("mix:simpleVersionable", false);
     }
 
     /** Test for the predefined mix:created node type. */
     public void testMixCreated() throws NotExecutableException {
-        testPredefinedNodeType("mix:created");
+        testPredefinedNodeType("mix:created", true);
     }
 
     /** Test for the predefined mix:lastModified node type. */
     public void testMixLastModified() throws NotExecutableException {
-        testPredefinedNodeType("mix:lastModified");
+        testPredefinedNodeType("mix:lastModified", true);
     }
 
     /** Test for the predefined mix:etag node type. */
     public void testMixETag() throws NotExecutableException {
-        testPredefinedNodeType("mix:etag");
+        testPredefinedNodeType("mix:etag", false);
     }
 
     /** Test for the predefined mix:title node type. */
     public void testMixTitle() throws NotExecutableException {
-        testPredefinedNodeType("mix:title");
+        testPredefinedNodeType("mix:title", true);
     }
 
     /** Test for the predefined mix:language node type. */
     public void testMixLanguage() throws NotExecutableException {
-        testPredefinedNodeType("mix:language");
+        testPredefinedNodeType("mix:language", true);
     }
 
     /** Test for the predefined mix:language node type. */
     public void testMixMimeType() throws NotExecutableException {
-        testPredefinedNodeType("mix:mimeType");
+        testPredefinedNodeType("mix:mimeType", true);
     }
 
     /** Test for the predefined nt:address node type. */
     public void testNtAddress() throws NotExecutableException {
-        testPredefinedNodeType("nt:address");
+        testPredefinedNodeType("nt:address", false);
     }
 
     /** Test for the predefined nt:base node type. */
     public void testBase() throws NotExecutableException {
-        testPredefinedNodeType("nt:base");
+        testPredefinedNodeType("nt:base", false);
     }
 
     /** Test for the predefined nt:unstructured node type. */
     public void testUnstructured() throws NotExecutableException {
-        testPredefinedNodeType("nt:unstructured");
+        testPredefinedNodeType("nt:unstructured", false);
     }
 
     /** Test for the predefined nt:hierarchyNode node type. */
     public void testHierarchyNode() throws NotExecutableException {
-        testPredefinedNodeType("nt:hierarchyNode");
+        testPredefinedNodeType("nt:hierarchyNode", false);
     }
 
     /** Test for the predefined nt:file node type. */
     public void testFile() throws NotExecutableException {
-        testPredefinedNodeType("nt:file");
+        testPredefinedNodeType("nt:file", false);
     }
 
     /** Test for the predefined nt:linkedFile node type. */
     public void testLinkedFile() throws NotExecutableException {
-        testPredefinedNodeType("nt:linkedFile");
+        testPredefinedNodeType("nt:linkedFile", false);
     }
 
     /** Test for the predefined nt:folder node type. */
     public void testFolder() throws NotExecutableException {
-        testPredefinedNodeType("nt:folder");
+        testPredefinedNodeType("nt:folder", false);
     }
 
     /** Test for the predefined nt:nodeType node type. */
     public void testNodeType() throws NotExecutableException {
-        testPredefinedNodeType("nt:nodeType");
+        testPredefinedNodeType("nt:nodeType", false);
     }
 
     /** Test for the predefined nt:propertyDef node type. */
     public void testPropertyDef() throws NotExecutableException {
-        testPredefinedNodeType("nt:propertyDefinition");
+        testPredefinedNodeType("nt:propertyDefinition", false);
     }
 
     /** Test for the predefined nt:childNodeDef node type. */
     public void testChildNodeDef() throws NotExecutableException {
-        testPredefinedNodeType("nt:childNodeDefinition");
+        testPredefinedNodeType("nt:childNodeDefinition", false);
     }
 
     /** Test for the predefined nt:versionHistory node type. */
     public void testVersionHistory() throws NotExecutableException {
-        testPredefinedNodeType("nt:versionHistory");
+        testPredefinedNodeType("nt:versionHistory", false);
     }
 
     /** Test for the predefined nt:versionLabels node type. */
     public void testVersionLabels() throws NotExecutableException {
-        testPredefinedNodeType("nt:versionLabels");
+        testPredefinedNodeType("nt:versionLabels", false);
     }
 
     /** Test for the predefined nt:version node type. */
     public void testVersion() throws NotExecutableException {
-        testPredefinedNodeType("nt:version");
+        testPredefinedNodeType("nt:version", false);
     }
 
     /** Test for the predefined nt:activity node type. */
     public void testActivity() throws NotExecutableException {
-        testPredefinedNodeType("nt:activity");
+        testPredefinedNodeType("nt:activity", false);
     }
 
     /** Test for the predefined nt:configuration node type. */
     public void testConfiguration() throws NotExecutableException {
-        testPredefinedNodeType("nt:configuration");
+        testPredefinedNodeType("nt:configuration", false);
     }
 
     /** Test for the predefined nt:frozenNode node type. */
     public void testFrozenNode() throws NotExecutableException {
-        testPredefinedNodeType("nt:frozenNode");
+        testPredefinedNodeType("nt:frozenNode", false);
     }
 
     /** Test for the predefined nt:versionedChild node type. */
     public void testVersionedChild() throws NotExecutableException {
-        testPredefinedNodeType("nt:versionedChild");
+        testPredefinedNodeType("nt:versionedChild", false);
     }
 
     /** Test for the predefined nt:query node type. */
     public void testQuery() throws NotExecutableException {
-        testPredefinedNodeType("nt:query");
+        testPredefinedNodeType("nt:query", false);
     }
 
     /** Test for the predefined nt:resource node type. */
     public void testResource() throws NotExecutableException {
-        testPredefinedNodeType("nt:resource");
+        testPredefinedNodeType("nt:resource", false);
     }
 
     /**
@@ -265,10 +306,12 @@
      * semantics remain the same.
      *
      * @param name node type name
+     * @param propsVariant whether the properties of this node type may
+     *   have implementation variant autocreated and OPV flags.
      * @throws NotExecutableException if the node type is not supported by
      *   this repository implementation.
      */
-    private void testPredefinedNodeType(String name)
+    private void testPredefinedNodeType(String name, boolean propsVariant)
             throws NotExecutableException {
         try {
             StringBuffer spec = new StringBuffer();
@@ -282,13 +325,28 @@
             }
 
             NodeType type = manager.getNodeType(name);
-            String current = getNodeTypeSpec(type).trim();
+            String current = getNodeTypeSpec(type, propsVariant).trim();
             if (!System.getProperty("line.separator").equals("\n")) {
                 current = normalizeLineSeparators(current);
             }
             String expected = normalizeLineSeparators(spec.toString()).trim();
 
             assertEquals("Predefined node type " + name, expected, current);
+
+            // check minimum declared supertypes
+            Set declaredSupertypes = new HashSet();
+            for (Iterator it = Arrays.asList(
+                    type.getDeclaredSupertypes()).iterator(); it.hasNext(); ) {
+                NodeType nt = (NodeType) it.next();
+                declaredSupertypes.add(nt.getName());
+            }
+            for (Iterator it = Arrays.asList(
+                    (String[]) SUPERTYPES.get(name)).iterator(); it.hasNext(); ) {
+                String supertype = (String) it.next();
+                assertTrue("Predefined node type " + name + " does not " +
+                        "declare supertype " + supertype,
+                        declaredSupertypes.contains(supertype));
+            }
         } catch (IOException e) {
             fail(e.getMessage());
         } catch (NoSuchNodeTypeException e) {
@@ -310,10 +368,12 @@
      * used in the JSR 170 specification.
      *
      * @param type node type definition
+     * @param propsVariant whether the properties of this node type may
+     *   have implementation variant autocreated and OPV flags.
      * @return spec string
      * @throws RepositoryException on repository errors
      */
-    private static String getNodeTypeSpec(NodeType type)
+    private static String getNodeTypeSpec(NodeType type, boolean propsVariant)
             throws RepositoryException {
         String typeName = type.getName();
         StringWriter buffer = new StringWriter();
@@ -321,31 +381,6 @@
         PrintWriter writer = new PrintWriter(buffer);
         writer.println("NodeTypeName");
         writer.println("  " + typeName);
-        writer.println("Supertypes");
-        NodeType[] supertypes = type.getDeclaredSupertypes();
-        Arrays.sort(supertypes, NODE_TYPE_COMPARATOR);
-        boolean hasPrinted = false;
-        for (int i = 0; i < supertypes.length; i++) {
-            String name = supertypes[i].getName();
-            if (name.startsWith("nt:") ||
-                    name.equals("mix:simpleVersionable") ||
-                    name.equals("mix:created") ||
-                    name.equals("mix:mimeType") ||
-                    name.equals("mix:lastModified") ||
-                    (name.equals("mix:referenceable") &&
-                        (typeName.equals("mix:versionable") ||
-                            typeName.equals("mix:shareable") ||
-                            typeName.equals("nt:resource") ||
-                            typeName.equals("nt:versionHistory") ||
-                            typeName.equals("nt:version") ||
-                            typeName.equals("nt:frozenNode")))) {
-                writer.println("  " + supertypes[i].getName());
-                hasPrinted = true;
-            }
-        }
-        if (!hasPrinted) {
-            writer.println("  []");
-        }
         writer.println("IsMixin");
         writer.println("  " + type.isMixin());
         writer.println("HasOrderableChildNodes");
@@ -360,7 +395,7 @@
         PropertyDefinition[] properties = type.getDeclaredPropertyDefinitions();
         Arrays.sort(properties, PROPERTY_DEF_COMPARATOR);
         for (int i = 0; i < properties.length; i++) {
-            writer.print(getPropertyDefSpec(properties[i]));
+            writer.print(getPropertyDefSpec(properties[i], propsVariant));
         }
 
         return buffer.toString();
@@ -416,10 +451,13 @@
      * used in the JSR 170 specification.
      *
      * @param property property definition
+     * @param propsVariant whether the properties of this node type may
+     *   have implementation variant autocreated and OPV flags.
      * @return spec string
      * @throws RepositoryException on repository errors
      */
-    private static String getPropertyDefSpec(PropertyDefinition property)
+    private static String getPropertyDefSpec(PropertyDefinition property,
+                                             boolean propsVariant)
             throws RepositoryException {
         StringWriter buffer = new StringWriter();
 
@@ -445,11 +483,15 @@
         } else {
             writer.println("  DefaultValues null");
         }
-        writer.println("  AutoCreated " + property.isAutoCreated());
+        if (!propsVariant) {
+            writer.println("  AutoCreated " + property.isAutoCreated());
+        }
         writer.println("  Mandatory " + property.isMandatory());
         String action = OnParentVersionAction.nameFromValue(
                 property.getOnParentVersion());
-        writer.println("  OnParentVersion " + action);
+        if (!propsVariant) {
+            writer.println("  OnParentVersion " + action);
+        }
         writer.println("  Protected " + property.isProtected());
         writer.println("  Multiple " + property.isMultiple());
 

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionHistoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionHistoryTest.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionHistoryTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionHistoryTest.java Wed Oct 21 11:38:31 2009
@@ -1109,7 +1109,7 @@
         } catch (ConstraintViolationException success) {
         }
         try {
-            vHistory.setProperty(propertyName1, testRootNode);
+            vHistory.setProperty(propertyName1, vHistory);
             vHistory.getSession().save();
             fail("VersionHistory should be read-only: VersionHistory.setProperty(String,Node) did not throw a ConstraintViolationException");
         } catch (ConstraintViolationException success) {

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionTest.java?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionTest.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionTest.java Wed Oct 21 11:38:31 2009
@@ -859,7 +859,7 @@
         } catch (ConstraintViolationException success) {
         }
         try {
-            version.setProperty(propertyName1, testRootNode);
+            version.setProperty(propertyName1, version);
             version.getSession().save();
             fail("Version should be read-only: Version.setProperty(String,Node) did not throw a ConstraintViolationException");
         } catch (ConstraintViolationException success) {

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-created.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-created.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-created.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-created.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:created
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes
@@ -12,17 +10,13 @@
   Name jcr:created
   RequiredType DATE
   DefaultValues null
-  AutoCreated true
   Mandatory false
-  OnParentVersion COPY
   Protected true
   Multiple false
 PropertyDefinition
   Name jcr:createdBy
   RequiredType STRING
   DefaultValues null
-  AutoCreated true
   Mandatory false
-  OnParentVersion COPY
   Protected true
   Multiple false
\ No newline at end of file

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-etag.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-etag.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-etag.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-etag.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:etag
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-language.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-language.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-language.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-language.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:language
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes
@@ -12,8 +10,6 @@
   Name jcr:language
   RequiredType STRING
   DefaultValues null
-  AutoCreated false
   Mandatory false
-  OnParentVersion COPY
   Protected false
   Multiple false
\ No newline at end of file

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lastModified.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lastModified.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lastModified.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lastModified.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:lastModified
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes
@@ -12,17 +10,13 @@
   Name jcr:lastModified
   RequiredType DATE
   DefaultValues null
-  AutoCreated true
   Mandatory false
-  OnParentVersion COPY
   Protected false
   Multiple false
 PropertyDefinition
   Name jcr:lastModifiedBy
   RequiredType STRING
   DefaultValues null
-  AutoCreated true
   Mandatory false
-  OnParentVersion COPY
   Protected false
   Multiple false
\ No newline at end of file

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lifecycle.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lifecycle.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lifecycle.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lifecycle.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:lifecycle
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lockable.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lockable.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lockable.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-lockable.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:lockable
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-mimeType.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-mimeType.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-mimeType.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-mimeType.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:mimeType
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes
@@ -12,17 +10,13 @@
   Name jcr:encoding
   RequiredType STRING
   DefaultValues null
-  AutoCreated false
   Mandatory false
-  OnParentVersion COPY
   Protected false
   Multiple false
 PropertyDefinition
   Name jcr:mimeType
   RequiredType STRING
   DefaultValues null
-  AutoCreated false
   Mandatory false
-  OnParentVersion COPY
   Protected false
   Multiple false
\ No newline at end of file

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-referenceable.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-referenceable.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-referenceable.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-referenceable.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:referenceable
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-shareable.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-shareable.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-shareable.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-shareable.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:shareable
-Supertypes
-  mix:referenceable
 IsMixin
   true
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-simpleVersionable.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-simpleVersionable.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-simpleVersionable.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-simpleVersionable.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:simpleVersionable
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-title.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-title.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-title.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-title.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   mix:title
-Supertypes
-  []
 IsMixin
   true
 HasOrderableChildNodes
@@ -12,17 +10,13 @@
   Name jcr:description
   RequiredType STRING
   DefaultValues null
-  AutoCreated false
   Mandatory false
-  OnParentVersion COPY
   Protected false
   Multiple false
 PropertyDefinition
   Name jcr:title
   RequiredType STRING
   DefaultValues null
-  AutoCreated false
   Mandatory false
-  OnParentVersion COPY
   Protected false
   Multiple false
\ No newline at end of file

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-versionable.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-versionable.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-versionable.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/mix-versionable.txt Wed Oct 21 11:38:31 2009
@@ -1,8 +1,5 @@
 NodeTypeName
   mix:versionable
-Supertypes
-  mix:referenceable
-  mix:simpleVersionable
 IsMixin
   true
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-activity.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-activity.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-activity.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-activity.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:activity
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-address.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-address.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-address.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-address.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:address
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-base.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-base.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-base.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-base.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:base
-Supertypes
-  []
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-childNodeDefinition.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-childNodeDefinition.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-childNodeDefinition.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-childNodeDefinition.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:childNodeDefinition
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-configuration.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-configuration.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-configuration.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-configuration.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:configuration
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-file.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-file.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-file.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-file.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:file
-Supertypes
-  nt:hierarchyNode
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-folder.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-folder.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-folder.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-folder.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:folder
-Supertypes
-  nt:hierarchyNode
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-frozenNode.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-frozenNode.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-frozenNode.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-frozenNode.txt Wed Oct 21 11:38:31 2009
@@ -1,8 +1,5 @@
 NodeTypeName
   nt:frozenNode
-Supertypes
-  nt:base
-  mix:referenceable
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-hierarchyNode.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-hierarchyNode.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-hierarchyNode.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-hierarchyNode.txt Wed Oct 21 11:38:31 2009
@@ -1,8 +1,5 @@
 NodeTypeName
   nt:hierarchyNode
-Supertypes
-  nt:base
-  mix:created
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-linkedFile.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-linkedFile.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-linkedFile.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-linkedFile.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:linkedFile
-Supertypes
-  nt:hierarchyNode
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-nodeType.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-nodeType.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-nodeType.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-nodeType.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:nodeType
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-propertyDefinition.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-propertyDefinition.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-propertyDefinition.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-propertyDefinition.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:propertyDefinition
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-query.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-query.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-query.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-query.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:query
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-resource.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-resource.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-resource.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-resource.txt Wed Oct 21 11:38:31 2009
@@ -1,9 +1,5 @@
 NodeTypeName
   nt:resource
-Supertypes
-  nt:base
-  mix:lastModified
-  mix:mimeType
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-unstructured.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-unstructured.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-unstructured.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-unstructured.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:unstructured
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-version.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-version.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-version.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-version.txt Wed Oct 21 11:38:31 2009
@@ -1,8 +1,5 @@
 NodeTypeName
   nt:version
-Supertypes
-  nt:base
-  mix:referenceable
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionHistory.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionHistory.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionHistory.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionHistory.txt Wed Oct 21 11:38:31 2009
@@ -1,8 +1,5 @@
 NodeTypeName
   nt:versionHistory
-Supertypes
-  nt:base
-  mix:referenceable
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionLabels.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionLabels.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionLabels.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionLabels.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:versionLabels
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes

Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionedChild.txt
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionedChild.txt?rev=827966&r1=827965&r2=827966&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionedChild.txt (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-jcr-tests/src/main/resources/org/apache/jackrabbit/test/api/nodetype/spec/nt-versionedChild.txt Wed Oct 21 11:38:31 2009
@@ -1,7 +1,5 @@
 NodeTypeName
   nt:versionedChild
-Supertypes
-  nt:base
 IsMixin
   false
 HasOrderableChildNodes



Mime
View raw message