You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2012/04/27 17:58:55 UTC
svn commit: r1331479 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/
oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/ oak-it/jcr/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ oak-jcr/src/main/jav...
Author: angela
Date: Fri Apr 27 15:58:54 2012
New Revision: 1331479
URL: http://svn.apache.org/viewvc?rev=1331479&view=rev
Log:
OAK-77 : Consolidate Utilities (WIP)
- replace Paths by PathMapper
- simplify SessionContext
- comment failing test (oak-jcr throws IllegalArgumentException instead of NamespaceException)
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapper.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java
- copied, changed from r1331432, jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java
Removed:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/Paths.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java
Modified:
jackrabbit/oak/trunk/oak-it/jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java
Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapper.java?rev=1331479&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapper.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapper.java Fri Apr 27 15:58:54 2012
@@ -0,0 +1,23 @@
+/*
+ * 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.oak.namepath;
+
+/**
+ * NamePathMapper...
+ */
+public interface NamePathMapper extends NameMapper, PathMapper {
+}
\ No newline at end of file
Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java?rev=1331479&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java Fri Apr 27 15:58:54 2012
@@ -0,0 +1,211 @@
+/*
+ * 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.oak.namepath;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * NamePathMapperImpl...
+ */
+public class NamePathMapperImpl implements NamePathMapper {
+
+ /**
+ * logger instance
+ */
+ private static final Logger log = LoggerFactory.getLogger(NamePathMapperImpl.class);
+
+ private final NameMapper nameMapper;
+
+ public NamePathMapperImpl(NameMapper nameMapper) {
+ this.nameMapper = nameMapper;
+ }
+
+ //---------------------------------------------------------< NameMapper >---
+ @Override
+ public String getOakName(String jcrName) {
+ return nameMapper.getOakName(jcrName);
+ }
+
+ @Override
+ public String getJcrName(String oakName) {
+ return nameMapper.getJcrName(oakName);
+ }
+
+ //---------------------------------------------------------< PathMapper >---
+ @Override
+ public String toOakPath(String jcrPath) {
+ final List<String> elements = new ArrayList<String>();
+
+ if ("/".equals(jcrPath)) {
+ // avoid the need to special case the root path later on
+ return "/";
+ }
+
+ JcrPathParser.Listener listener = new JcrPathParser.Listener() {
+
+ // TODO: replace RuntimeException by something that oak-jcr can deal with (e.g. ValueFactory)
+
+ @Override
+ public void root() {
+ if (!elements.isEmpty()) {
+ throw new RuntimeException("/ on non-empty path");
+ }
+ elements.add("");
+ }
+
+ @Override
+ public void identifier(String identifier) {
+ if (!elements.isEmpty()) {
+ throw new RuntimeException("[identifier] on non-empty path");
+ }
+ elements.add(identifier); // todo resolve identifier
+ // todo seal
+ }
+
+ @Override
+ public void current() {
+ // nothing to do here
+ }
+
+ @Override
+ public void parent() {
+ if (elements.isEmpty()) {
+ throw new RuntimeException(".. of empty path");
+ }
+ elements.remove(elements.size() - 1);
+ }
+
+ @Override
+ public void index(int index) {
+ if (index > 1) {
+ throw new RuntimeException("index > 1");
+ }
+ }
+
+ @Override
+ public void error(String message) {
+ throw new RuntimeException(message);
+ }
+
+ @Override
+ public void name(String name) {
+ String p = nameMapper.getOakName(name);
+ elements.add(p);
+ }
+ };
+
+ JcrPathParser.parse(jcrPath, listener);
+
+ StringBuilder oakPath = new StringBuilder();
+ for (String element : elements) {
+ if (element.isEmpty()) {
+ // root
+ oakPath.append('/');
+ }
+ else {
+ oakPath.append(element);
+ oakPath.append('/');
+ }
+ }
+
+ // root path is special-cased early on so it does not need to
+ // be considered here
+ oakPath.deleteCharAt(oakPath.length() - 1);
+ return oakPath.toString();
+ }
+
+ @Override
+ public String toJcrPath(String oakPath) {
+ final List<String> elements = new ArrayList<String>();
+
+ if ("/".equals(oakPath)) {
+ // avoid the need to special case the root path later on
+ return "/";
+ }
+
+ JcrPathParser.Listener listener = new JcrPathParser.Listener() {
+ @Override
+ public void root() {
+ if (!elements.isEmpty()) {
+ throw new RuntimeException("/ on non-empty path");
+ }
+ elements.add("");
+ }
+
+ @Override
+ public void identifier(String identifier) {
+ if (!elements.isEmpty()) {
+ throw new RuntimeException("[identifier] on non-empty path");
+ }
+ elements.add(identifier); // todo resolve identifier
+ // todo seal
+ }
+
+ @Override
+ public void current() {
+ // nothing to do here
+ }
+
+ @Override
+ public void parent() {
+ if (elements.isEmpty()) {
+ throw new RuntimeException(".. of empty path");
+ }
+ elements.remove(elements.size() - 1);
+ }
+
+ @Override
+ public void index(int index) {
+ if (index > 1) {
+ throw new RuntimeException("index > 1");
+ }
+ }
+
+ @Override
+ public void error(String message) {
+ throw new RuntimeException(message);
+ }
+
+ @Override
+ public void name(String name) {
+ String p = nameMapper.getJcrName(name);
+ elements.add(p);
+ }
+ };
+
+ JcrPathParser.parse(oakPath, listener);
+
+ StringBuilder jcrPath = new StringBuilder();
+ for (String element : elements) {
+ if (element.isEmpty()) {
+ // root
+ jcrPath.append('/');
+ }
+ else {
+ jcrPath.append(element);
+ jcrPath.append('/');
+ }
+ }
+
+ jcrPath.deleteCharAt(jcrPath.length() - 1);
+ return jcrPath.toString();
+ }
+}
\ No newline at end of file
Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java?rev=1331479&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java Fri Apr 27 15:58:54 2012
@@ -0,0 +1,28 @@
+/*
+ * 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.oak.namepath;
+
+/**
+ * TODO
+ */
+public interface PathMapper {
+
+ String toOakPath(String jcrPath);
+
+ String toJcrPath(String oakPath);
+
+}
Copied: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java (from r1331432, jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java?p2=jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java&p1=jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java&r1=1331432&r2=1331479&rev=1331479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java Fri Apr 27 15:58:54 2012
@@ -27,14 +27,15 @@ import java.util.UUID;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-public class PathsTest {
+public class NamePathMapperImplTest {
private TestNameMapper mapper = new TestNameMapper();
+ private NamePathMapper npMapper = new NamePathMapperImpl(mapper);
@Test
public void testValidIdentifierPath() {
String idPath = '[' + UUID.randomUUID().toString()+ ']';
- Paths.toOakPath(idPath, mapper);
+ npMapper.toOakPath(idPath);
}
@Test
@@ -45,7 +46,7 @@ public class PathsTest {
for (String jcrPath : invalid) {
try {
- Paths.toOakPath(jcrPath, mapper);
+ npMapper.toOakPath(jcrPath);
fail("Invalid identifier path");
} catch (Exception e) {
// success
@@ -55,33 +56,33 @@ public class PathsTest {
@Test
public void testJcrToOak() {
- assertEquals("/", Paths.toOakPath("/", mapper));
- assertEquals("foo", Paths.toOakPath("{}foo", mapper));
- assertEquals("/oak-foo:bar", Paths.toOakPath("/foo:bar", mapper));
+ assertEquals("/", npMapper.toOakPath("/"));
+ assertEquals("foo", npMapper.toOakPath("{}foo"));
+ assertEquals("/oak-foo:bar", npMapper.toOakPath("/foo:bar"));
assertEquals("/oak-foo:bar/oak-quu:qux",
- Paths.toOakPath("/foo:bar/quu:qux", mapper));
- assertEquals("oak-foo:bar", Paths.toOakPath("foo:bar", mapper));
- assertEquals("oak-nt:unstructured", Paths.toOakPath(
- "{http://www.jcp.org/jcr/nt/1.0}unstructured", mapper));
- assertEquals("foobar/oak-jcr:content", Paths.toOakPath(
- "foobar/{http://www.jcp.org/jcr/1.0}content", mapper));
+ npMapper.toOakPath("/foo:bar/quu:qux"));
+ assertEquals("oak-foo:bar", npMapper.toOakPath("foo:bar"));
+ assertEquals("oak-nt:unstructured", npMapper.toOakPath(
+ "{http://www.jcp.org/jcr/nt/1.0}unstructured"));
+ assertEquals("foobar/oak-jcr:content", npMapper.toOakPath(
+ "foobar/{http://www.jcp.org/jcr/1.0}content"));
}
@Test
public void testOakToJcr() {
- assertEquals("/jcr-foo:bar", Paths.toJcrPath("/foo:bar", mapper));
+ assertEquals("/jcr-foo:bar", npMapper.toJcrPath("/foo:bar"));
assertEquals("/jcr-foo:bar/jcr-quu:qux",
- Paths.toJcrPath("/foo:bar/quu:qux", mapper));
- assertEquals("jcr-foo:bar", Paths.toJcrPath("foo:bar", mapper));
+ npMapper.toJcrPath("/foo:bar/quu:qux"));
+ assertEquals("jcr-foo:bar", npMapper.toJcrPath("foo:bar"));
try {
- Paths.toJcrPath("{http://www.jcp.org/jcr/nt/1.0}unstructured", mapper);
+ npMapper.toJcrPath("{http://www.jcp.org/jcr/nt/1.0}unstructured");
fail("expanded name should not be accepted");
} catch (IllegalStateException expected) {
}
try {
- Paths.toJcrPath("foobar/{http://www.jcp.org/jcr/1.0}content", mapper);
+ npMapper.toJcrPath("foobar/{http://www.jcp.org/jcr/1.0}content");
fail("expanded name should not be accepted");
} catch (IllegalStateException expected) {
}
Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1331479&r1=1331478&r2=1331479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Fri Apr 27 15:58:54 2012
@@ -48,6 +48,7 @@ org.apache.jackrabbit.test.api.NodeReadM
org.apache.jackrabbit.test.api.PropertyReadMethodsTest
org.apache.jackrabbit.test.api.NodeDiscoveringNodeTypesTest#testIsNodeType
org.apache.jackrabbit.test.api.NamespaceRemappingTest#testNamespaceRemapping
+org.apache.jackrabbit.test.api.NamespaceRemappingTest#testExceptionOnUnknownPrefix
org.apache.jackrabbit.test.api.SessionReadMethodsTest#testGetNodeByUUIDFailure
org.apache.jackrabbit.test.api.ExportSysViewTest
org.apache.jackrabbit.test.api.ExportDocViewTest
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java?rev=1331479&r1=1331478&r2=1331479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java Fri Apr 27 15:58:54 2012
@@ -17,7 +17,6 @@
package org.apache.jackrabbit.oak.jcr;
import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.namepath.Paths;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -166,10 +165,10 @@ abstract class ItemImpl implements Item
String toOakPath(String jcrPath) throws RepositoryException {
- return sessionContext.toOakPath(jcrPath);
+ return sessionContext.getNamePathMapper().toOakPath(jcrPath);
}
String toJcrPath(String oakPath) {
- return sessionContext.toJcrPath(oakPath);
+ return sessionContext.getNamePathMapper().toJcrPath(oakPath);
}
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java?rev=1331479&r1=1331478&r2=1331479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java Fri Apr 27 15:58:54 2012
@@ -20,7 +20,6 @@ import org.apache.jackrabbit.oak.api.Cor
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.namepath.Paths;
import javax.jcr.RepositoryException;
import javax.jcr.Value;
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java?rev=1331479&r1=1331478&r2=1331479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java Fri Apr 27 15:58:54 2012
@@ -22,7 +22,7 @@ import org.apache.jackrabbit.oak.api.Con
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.jcr.value.ValueFactoryImpl;
-import org.apache.jackrabbit.oak.namepath.NameMapper;
+import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import javax.jcr.RepositoryException;
import javax.jcr.lock.LockManager;
@@ -34,11 +34,9 @@ public interface SessionContext {
String getWorkspaceName();
ContentSession getContentSession();
ValueFactoryImpl getValueFactory();
- NameMapper getNameMapper();
LockManager getLockManager() throws RepositoryException;
VersionManager getVersionManager() throws RepositoryException;
Root getRoot();
Tree getTree(String path);
- String toOakPath(String jcrPath) throws RepositoryException;
- String toJcrPath(String oakPath);
+ NamePathMapper getNamePathMapper();
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java?rev=1331479&r1=1331478&r2=1331479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java Fri Apr 27 15:58:54 2012
@@ -29,7 +29,8 @@ import org.apache.jackrabbit.oak.jcr.nam
import org.apache.jackrabbit.oak.jcr.value.ValueFactoryImpl;
import org.apache.jackrabbit.oak.namepath.AbstractNameMapper;
import org.apache.jackrabbit.oak.namepath.NameMapper;
-import org.apache.jackrabbit.oak.namepath.Paths;
+import org.apache.jackrabbit.oak.namepath.NamePathMapper;
+import org.apache.jackrabbit.oak.namepath.NamePathMapperImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.ContentHandler;
@@ -68,6 +69,7 @@ public class SessionImpl extends Abstrac
private final NamespaceRegistry nsreg;
private final SessionContext sessionContext = new Context();
private final NameMapper nameMapper = new SessionNameMapper();
+ private final NamePathMapper namePathMapper = new NamePathMapperImpl(nameMapper);
private boolean isAlive = true;
private Root root;
@@ -76,7 +78,7 @@ public class SessionImpl extends Abstrac
throws RepositoryException {
this.globalContext = globalContext;
this.contentSession = contentSession;
- this.valueFactory = new ValueFactoryImpl(contentSession.getCoreValueFactory(), nameMapper);
+ this.valueFactory = new ValueFactoryImpl(contentSession.getCoreValueFactory(), namePathMapper);
this.nsreg = new NamespaceRegistryImpl(contentSession);
this.workspace = new WorkspaceImpl(sessionContext, this.nsreg);
this.root = contentSession.getCurrentRoot();
@@ -155,7 +157,7 @@ public class SessionImpl extends Abstrac
@Override
public void move(String srcAbsPath, String destAbsPath) throws RepositoryException {
- internalMove(sessionContext.toOakPath(srcAbsPath), sessionContext.toOakPath(destAbsPath));
+ internalMove(sessionContext.getNamePathMapper().toOakPath(srcAbsPath), sessionContext.getNamePathMapper().toOakPath(destAbsPath));
}
private void internalMove(String srcAbsPath, String destAbsPath) throws RepositoryException {
@@ -226,7 +228,7 @@ public class SessionImpl extends Abstrac
@Override
public ContentHandler getImportContentHandler(String parentAbsPath, int uuidBehavior) throws RepositoryException {
- return internalGetImportContentHandler(sessionContext.toOakPath(parentAbsPath), uuidBehavior);
+ return internalGetImportContentHandler(sessionContext.getNamePathMapper().toOakPath(parentAbsPath), uuidBehavior);
}
private ContentHandler internalGetImportContentHandler(String parentAbsPath, int uuidBehavior) throws RepositoryException {
@@ -276,7 +278,7 @@ public class SessionImpl extends Abstrac
@Override
public boolean hasPermission(String absPath, String actions) throws RepositoryException {
- return internalHasPermission(sessionContext.toOakPath(absPath), actions);
+ return internalHasPermission(sessionContext.getNamePathMapper().toOakPath(absPath), actions);
}
private boolean internalHasPermission(String absPath, String actions) throws RepositoryException {
@@ -513,11 +515,6 @@ public class SessionImpl extends Abstrac
}
@Override
- public NameMapper getNameMapper() {
- return nameMapper;
- }
-
- @Override
public LockManager getLockManager() throws RepositoryException {
return getWorkspace().getLockManager();
}
@@ -538,17 +535,8 @@ public class SessionImpl extends Abstrac
}
@Override
- public String toOakPath(String jcrPath) throws RepositoryException {
- try {
- return Paths.toOakPath(jcrPath, sessionContext.getNameMapper());
- } catch (IllegalArgumentException ex) {
- throw new RepositoryException(ex);
- }
- }
-
- @Override
- public String toJcrPath(String oakPath) {
- return Paths.toJcrPath(oakPath, sessionContext.getNameMapper());
+ public NamePathMapper getNamePathMapper() {
+ return namePathMapper;
}
}
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java?rev=1331479&r1=1331478&r2=1331479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java Fri Apr 27 15:58:54 2012
@@ -25,7 +25,6 @@ import org.apache.jackrabbit.oak.commons
import org.apache.jackrabbit.oak.jcr.nodetype.NodeTypeManagerImpl;
import org.apache.jackrabbit.oak.jcr.query.QueryManagerImpl;
import org.apache.jackrabbit.oak.jcr.security.privileges.PrivilegeManagerImpl;
-import org.apache.jackrabbit.oak.namepath.Paths;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.ContentHandler;
@@ -68,8 +67,7 @@ public class WorkspaceImpl implements Ja
this.sessionContext = sessionContext;
this.nsRegistry = nsRegistry;
- this.nodeTypeManager =
- new NodeTypeManagerImpl(sessionContext.getNameMapper());
+ this.nodeTypeManager = new NodeTypeManagerImpl(sessionContext.getNamePathMapper());
}
//----------------------------------------------------------< Workspace >---
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java?rev=1331479&r1=1331478&r2=1331479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java Fri Apr 27 15:58:54 2012
@@ -19,8 +19,7 @@ package org.apache.jackrabbit.oak.jcr.va
import org.apache.commons.io.IOUtils;
import org.apache.jackrabbit.oak.api.CoreValue;
import org.apache.jackrabbit.oak.api.CoreValueFactory;
-import org.apache.jackrabbit.oak.namepath.NameMapper;
-import org.apache.jackrabbit.oak.namepath.Paths;
+import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.util.ISO8601;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -51,18 +50,18 @@ public class ValueFactoryImpl implements
private static final Logger log = LoggerFactory.getLogger(ValueFactoryImpl.class);
private final CoreValueFactory factory;
- private final NameMapper nameMapper;
+ private final NamePathMapper namePathMapper;
/**
* Creates a new instance of {@code ValueFactory}.
*
* @param factory The core value factory.
- * @param nameMapper The name mapping used for converting JCR names/paths to
+ * @param namePathMapper The name/path mapping used for converting JCR names/paths to
* the internal representation.
*/
- public ValueFactoryImpl(CoreValueFactory factory, NameMapper nameMapper) {
+ public ValueFactoryImpl(CoreValueFactory factory, NamePathMapper namePathMapper) {
this.factory = factory;
- this.nameMapper = nameMapper;
+ this.namePathMapper = namePathMapper;
}
public CoreValueFactory getCoreValueFactory() {
@@ -70,7 +69,7 @@ public class ValueFactoryImpl implements
}
public Value createValue(CoreValue coreValue) {
- return new ValueImpl(coreValue, nameMapper);
+ return new ValueImpl(coreValue, namePathMapper);
}
public CoreValue getCoreValue(Value jcrValue) {
@@ -99,39 +98,39 @@ public class ValueFactoryImpl implements
@Override
public Value createValue(String value) {
CoreValue cv = factory.createValue(value, PropertyType.STRING);
- return new ValueImpl(cv, nameMapper);
+ return new ValueImpl(cv, namePathMapper);
}
@Override
public Value createValue(long value) {
CoreValue cv = factory.createValue(value);
- return new ValueImpl(cv, nameMapper);
+ return new ValueImpl(cv, namePathMapper);
}
@Override
public Value createValue(double value) {
CoreValue cv = factory.createValue(value);
- return new ValueImpl(cv, nameMapper);
+ return new ValueImpl(cv, namePathMapper);
}
@Override
public Value createValue(boolean value) {
CoreValue cv = factory.createValue(value);
- return new ValueImpl(cv, nameMapper);
+ return new ValueImpl(cv, namePathMapper);
}
@Override
public Value createValue(Calendar value) {
String dateStr = ISO8601.format(value);
CoreValue cv = factory.createValue(dateStr, PropertyType.DATE);
- return new ValueImpl(cv, nameMapper);
+ return new ValueImpl(cv, namePathMapper);
}
@Override
public Value createValue(InputStream value) {
try {
CoreValue cv = factory.createValue(value);
- return new ValueImpl(cv, nameMapper);
+ return new ValueImpl(cv, namePathMapper);
} catch (IOException ex) {
throw new RuntimeException(ex);
} finally {
@@ -150,9 +149,10 @@ public class ValueFactoryImpl implements
CoreValue cv;
try {
if (type == PropertyType.NAME) {
- cv = factory.createValue(nameMapper.getOakName(value), type);
+ cv = factory.createValue(namePathMapper.getOakName(value), type);
} else if (type == PropertyType.PATH) {
- cv = factory.createValue(Paths.toOakPath(value, nameMapper), type);
+ String oakPath = namePathMapper.toOakPath(value);
+ cv = factory.createValue(oakPath, type);
} else if (type == PropertyType.DATE) {
if (ISO8601.parse(value) == null) {
throw new ValueFormatException("Invalid date " + value);
@@ -172,7 +172,7 @@ public class ValueFactoryImpl implements
throw new ValueFormatException("Invalid value " + value + " for type " + PropertyType.nameFromValue(type));
}
- return new ValueImpl(cv, nameMapper);
+ return new ValueImpl(cv, namePathMapper);
}
@Override
@@ -193,12 +193,12 @@ public class ValueFactoryImpl implements
@Override
public Value createValue(BigDecimal value) {
CoreValue cv = factory.createValue(value);
- return new ValueImpl(cv, nameMapper);
+ return new ValueImpl(cv, namePathMapper);
}
@Override
public Value createValue(Node value, boolean weak) throws RepositoryException {
CoreValue cv = factory.createValue(value.getUUID(), weak ? PropertyType.WEAKREFERENCE : PropertyType.REFERENCE);
- return new ValueImpl(cv, nameMapper);
+ return new ValueImpl(cv, namePathMapper);
}
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java?rev=1331479&r1=1331478&r2=1331479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java Fri Apr 27 15:58:54 2012
@@ -18,8 +18,7 @@ package org.apache.jackrabbit.oak.jcr.va
import org.apache.commons.io.IOUtils;
import org.apache.jackrabbit.oak.api.CoreValue;
-import org.apache.jackrabbit.oak.namepath.NameMapper;
-import org.apache.jackrabbit.oak.namepath.Paths;
+import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.util.ISO8601;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,17 +47,17 @@ class ValueImpl implements Value {
private static final Logger log = LoggerFactory.getLogger(ValueImpl.class);
private final CoreValue value;
- private final NameMapper nameMapper;
+ private final NamePathMapper namePathMapper;
/**
* Constructs a {@code ValueImpl} object based on a {@code CoreValue}
*
* @param value the value object this {@code ValueImpl} should represent
- * @param nameMapper
+ * @param namePathMapper
*/
- public ValueImpl(CoreValue value, NameMapper nameMapper) {
+ public ValueImpl(CoreValue value, NamePathMapper namePathMapper) {
this.value = value;
- this.nameMapper = nameMapper;
+ this.namePathMapper = namePathMapper;
}
CoreValue unwrap() {
@@ -151,9 +150,9 @@ class ValueImpl implements Value {
public String getString() throws RepositoryException {
switch (getType()) {
case PropertyType.NAME :
- return nameMapper.getJcrName(value.toString());
+ return namePathMapper.getJcrName(value.toString());
case PropertyType.PATH:
- return Paths.toJcrPath(value.toString(), nameMapper);
+ return namePathMapper.toJcrPath(value.toString());
case PropertyType.BINARY:
InputStream stream = getStream();
try {