You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2008/07/30 19:23:48 UTC
svn commit: r681132 - in /jackrabbit/trunk:
jackrabbit-core/src/main/java/org/apache/jackrabbit/core/
jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/
jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/
j...
Author: jukka
Date: Wed Jul 30 10:23:47 2008
New Revision: 681132
URL: http://svn.apache.org/viewvc?rev=681132&view=rev
Log:
JCR-1612: Reintroduce NamespaceStorage and namespace-caching
Continuing to simplify NamespaceRegistryImpl: No need for it to implement NamePathResolver.
Added:
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/namespace/RegistryNamespaceResolver.java
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterContext.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/DefaultNamePathResolver.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/lock/Locked.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java?rev=681132&r1=681131&r2=681132&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java Wed Jul 30 10:23:47 2008
@@ -21,7 +21,6 @@
import org.apache.jackrabbit.core.fs.FileSystem;
import org.apache.jackrabbit.core.fs.FileSystemResource;
import org.apache.jackrabbit.core.util.StringIndex;
-import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.util.XMLChar;
import org.slf4j.Logger;
@@ -44,8 +43,7 @@
* A <code>NamespaceRegistryImpl</code> ...
*/
public class NamespaceRegistryImpl implements
- NamespaceRegistry, NamespaceResolver,
- NamespaceEventListener, StringIndex {
+ NamespaceRegistry, NamespaceEventListener, StringIndex {
private static Logger log = LoggerFactory.getLogger(NamespaceRegistryImpl.class);
@@ -421,7 +419,7 @@
return (String[]) uriToPrefix.keySet().toArray(new String[uriToPrefix.keySet().size()]);
}
- //--------------------------------< NamespaceRegistry & NamespaceResolver >
+ //---------------------------------------------------< NamespaceRegistry >
/**
* {@inheritDoc}
*/
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java?rev=681132&r1=681131&r2=681132&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java Wed Jul 30 10:23:47 2008
@@ -67,6 +67,7 @@
import org.apache.jackrabbit.core.version.VersionManagerImpl;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
+import org.apache.jackrabbit.spi.commons.namespace.RegistryNamespaceResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.InputSource;
@@ -2149,8 +2150,8 @@
/**
* {@inheritDoc}
*/
- public NamespaceResolver getNamespaceResovler() {
- return getNamespaceRegistry();
+ public NamespaceResolver getNamespaceResolver() {
+ return new RegistryNamespaceResolver(getNamespaceRegistry());
}
/**
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterContext.java?rev=681132&r1=681131&r2=681132&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterContext.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterContext.java Wed Jul 30 10:23:47 2008
@@ -38,7 +38,7 @@
*
* @return namespace resolver
*/
- NamespaceResolver getNamespaceResovler();
+ NamespaceResolver getNamespaceResolver();
/**
* Notifies the cluster context that some workspace update events are available
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java?rev=681132&r1=681131&r2=681132&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java Wed Jul 30 10:23:47 2008
@@ -216,7 +216,7 @@
try {
JournalConfig jc = cc.getJournalConfig();
journal = (Journal) jc.newInstance();
- journal.init(clusterNodeId, clusterContext.getNamespaceResovler());
+ journal.init(clusterNodeId, clusterContext.getNamespaceResolver());
instanceRevision = journal.getInstanceRevision();
journal.register(this);
} catch (ConfigurationException e) {
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/DefaultNamePathResolver.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/DefaultNamePathResolver.java?rev=681132&r1=681131&r2=681132&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/DefaultNamePathResolver.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/DefaultNamePathResolver.java Wed Jul 30 10:23:47 2008
@@ -16,30 +16,39 @@
*/
package org.apache.jackrabbit.spi.commons.conversion;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import javax.jcr.NamespaceException;
+import javax.jcr.NamespaceRegistry;
+import javax.jcr.Session;
+
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.Path;
-import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl;
-
-import javax.jcr.NamespaceException;
+import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
+import org.apache.jackrabbit.spi.commons.namespace.RegistryNamespaceResolver;
+import org.apache.jackrabbit.spi.commons.namespace.SessionNamespaceResolver;
/**
* <code>DefaultNamePathResolver</code>...
*/
public class DefaultNamePathResolver implements NamePathResolver {
- private static Logger log = LoggerFactory.getLogger(DefaultNamePathResolver.class);
-
private final NameResolver nResolver;
+
private final PathResolver pResolver;
public DefaultNamePathResolver(NamespaceResolver nsResolver) {
this(nsResolver, false);
}
+ public DefaultNamePathResolver(Session session) {
+ this(new SessionNamespaceResolver(session));
+ }
+
+ public DefaultNamePathResolver(NamespaceRegistry registry) {
+ this(new RegistryNamespaceResolver(registry));
+ }
+
public DefaultNamePathResolver(NamespaceResolver nsResolver, boolean enableCaching) {
NameResolver nr = new ParsingNameResolver(NameFactoryImpl.getInstance(), nsResolver);
PathResolver pr = new ParsingPathResolver(PathFactoryImpl.getInstance(), nr);
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/lock/Locked.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/lock/Locked.java?rev=681132&r1=681131&r2=681132&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/lock/Locked.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/lock/Locked.java Wed Jul 30 10:23:47 2008
@@ -16,7 +16,6 @@
*/
package org.apache.jackrabbit.spi.commons.lock;
-import org.apache.jackrabbit.spi.commons.namespace.SessionNamespaceResolver;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
import org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver;
@@ -134,7 +133,7 @@
}
Session session = lockable.getSession();
- NamePathResolver resolver = new DefaultNamePathResolver(new SessionNamespaceResolver(session));
+ NamePathResolver resolver = new DefaultNamePathResolver(session);
Lock lock;
EventListener listener = null;
Added: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/namespace/RegistryNamespaceResolver.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/namespace/RegistryNamespaceResolver.java?rev=681132&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/namespace/RegistryNamespaceResolver.java (added)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/namespace/RegistryNamespaceResolver.java Wed Jul 30 10:23:47 2008
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.spi.commons.namespace;
+
+import javax.jcr.NamespaceException;
+import javax.jcr.NamespaceRegistry;
+import javax.jcr.RepositoryException;
+
+/**
+ * Namespace resolver based on the repository-wide namespace mappings
+ * stored in a namespace registry.
+ */
+public class RegistryNamespaceResolver implements NamespaceResolver {
+
+ /**
+ * Namespace registry
+ */
+ private final NamespaceRegistry registry;
+
+ /**
+ * Creates a new namespace resolver based on the given namespace registry.
+ *
+ * @param registry namespace registry
+ */
+ public RegistryNamespaceResolver(NamespaceRegistry registry) {
+ this.registry = registry;
+ }
+
+ public String getPrefix(String uri) throws NamespaceException {
+ try {
+ return registry.getPrefix(uri);
+ } catch (RepositoryException e) {
+ if (!(e instanceof NamespaceException)) {
+ e = new NamespaceException(
+ "Failed to resolve namespace URI: " + uri, e);
+ }
+ throw (NamespaceException) e;
+ }
+ }
+
+ public String getURI(String prefix) throws NamespaceException {
+ try {
+ return registry.getURI(prefix);
+ } catch (RepositoryException e) {
+ if (!(e instanceof NamespaceException)) {
+ e = new NamespaceException(
+ "Failed to resolve namespace prefix: " + prefix, e);
+ }
+ throw (NamespaceException) e;
+ }
+ }
+}