You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2006/10/02 17:38:55 UTC

svn commit: r452081 - in /jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi: WorkspaceManager.java name/NamespaceRegistryImpl.java

Author: angela
Date: Mon Oct  2 08:38:54 2006
New Revision: 452081

URL: http://svn.apache.org/viewvc?view=rev&rev=452081
Log:
work in progress

- resolve TODO in NamespaceRegistry. add flag indicating, if repository
  supports level2 (registration of new namespaces).

Modified:
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/name/NamespaceRegistryImpl.java

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java?view=diff&rev=452081&r1=452080&r2=452081
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java Mon Oct  2 08:38:54 2006
@@ -141,9 +141,11 @@
 
         cache = createItemStateManager();
 
-        nsRegistry = createNamespaceRegistry();
-        ntRegistry = createNodeTypeRegistry(nsRegistry);
-        externalChangeListener = createChangeListener();
+        Properties repositoryDescriptors = service.getRepositoryDescriptors();
+
+        nsRegistry = createNamespaceRegistry(repositoryDescriptors);
+        ntRegistry = createNodeTypeRegistry(nsRegistry, repositoryDescriptors);
+        externalChangeListener = createChangeListener(repositoryDescriptors);
     }
 
     public NamespaceRegistryImpl getNamespaceRegistryImpl() {
@@ -247,11 +249,25 @@
         return ism;
     }
 
-    private NamespaceRegistryImpl createNamespaceRegistry() throws RepositoryException {
-        return new NamespaceRegistryImpl(this, service.getRegisteredNamespaces(sessionInfo));
+    /**
+     *
+     * @param descriptors
+     * @return
+     * @throws RepositoryException
+     */
+    private NamespaceRegistryImpl createNamespaceRegistry(Properties descriptors) throws RepositoryException {
+        boolean level2 = Boolean.valueOf(descriptors.getProperty(Repository.LEVEL_2_SUPPORTED)).booleanValue();
+        return new NamespaceRegistryImpl(this, service.getRegisteredNamespaces(sessionInfo), level2);
     }
 
-    private NodeTypeRegistry createNodeTypeRegistry(NamespaceRegistry nsRegistry) throws RepositoryException {
+    /**
+     *
+     * @param nsRegistry
+     * @param descriptors
+     * @return
+     * @throws RepositoryException
+     */
+    private NodeTypeRegistry createNodeTypeRegistry(NamespaceRegistry nsRegistry, Properties descriptors) throws RepositoryException {
         QNodeDefinition rootNodeDef = service.getNodeDefinition(sessionInfo, service.getRootId(sessionInfo));
         QNodeTypeDefinitionIterator it = service.getNodeTypeDefinitions(sessionInfo);
         List ntDefs = new ArrayList();
@@ -265,13 +281,13 @@
      * Creates and registers an EventListener on the RepositoryService that
      * listens for external changes.
      *
+     * @param descriptors the repository descriptors
      * @return the listener or <code>null</code> if the underlying
      *         <code>RepositoryService</code> does not support observation.
      * @throws RepositoryException if an error occurs while registering the
      *                             event listener.
      */
-    private EventListener createChangeListener() throws RepositoryException {
-        Properties descriptors = service.getRepositoryDescriptors();
+    private EventListener createChangeListener(Properties descriptors) throws RepositoryException {
         String desc = descriptors.getProperty(Repository.OPTION_OBSERVATION_SUPPORTED);
         EventListener l = null;
         if (Boolean.valueOf(desc).booleanValue()) {
@@ -368,7 +384,7 @@
             try {
                 service.removeEventListener(sessionInfo, service.getRootId(sessionInfo), externalChangeListener);
             } catch (RepositoryException e) {
-                log.warn("exception while disposing workspace manager: " + e);
+                log.warn("Exception while disposing workspace manager: " + e);
             }
         }
     }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/name/NamespaceRegistryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/name/NamespaceRegistryImpl.java?view=diff&rev=452081&r1=452080&r2=452081
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/name/NamespaceRegistryImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/name/NamespaceRegistryImpl.java Mon Oct  2 08:38:54 2006
@@ -70,11 +70,14 @@
     private final CachingNamespaceResolver resolver;
     private final NamespaceStorage storage;
 
-    public NamespaceRegistryImpl(NamespaceStorage storage, Properties nsValues) {
+    private final boolean level2Repository;
+
+    public NamespaceRegistryImpl(NamespaceStorage storage, Properties nsValues, boolean level2Repository) {
         super(true); // enable listener support
         resolver = new CachingNamespaceResolver(this, 1000);
         this.storage = storage;
-	load(nsValues);
+        this.level2Repository = level2Repository;
+        load(nsValues);
     }
 
     private void load(Properties nsValues) {
@@ -93,8 +96,9 @@
      * @see NamespaceRegistry#registerNamespace(String, String)
      */
     public void registerNamespace(String prefix, String uri) throws NamespaceException, UnsupportedRepositoryOperationException, RepositoryException {
-        // TODO: UnsupportedRepositoryOperationException in Level1-Repository
-
+        if (!level2Repository) {
+            throw new UnsupportedRepositoryOperationException("Repository is Level1 only.");
+        }
         // perform basic validation checks
         if (prefix == null || uri == null) {
             throw new IllegalArgumentException("prefix/uri can not be null");
@@ -165,7 +169,10 @@
      * @see NamespaceRegistry#unregisterNamespace(String)
      */
     public void unregisterNamespace(String prefix) throws NamespaceException, UnsupportedRepositoryOperationException, RepositoryException {
-        // TODO: UnsupportedRepositoryOperationException in Level1-Repository
+        if (!level2Repository) {
+            throw new UnsupportedRepositoryOperationException("Repository is Level1 only.");
+        }
+
         if (reservedPrefixes.contains(prefix)) {
             throw new NamespaceException("reserved prefix: " + prefix);
         }