Author: jverhaeg(a)redhat.com
Date: 2008-09-17 14:57:47 -0400 (Wed, 17 Sep 2008)
New Revision: 527
Modified:
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrNode.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrProperty.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNode.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNodeIterator.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRootNode.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSession.java
trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractJcrNodeTest.java
trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractJcrPropertyTest.java
trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrNodeIteratorTest.java
trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrNodeTest.java
trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrPropertyIteratorTest.java
trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrRootNodeTest.java
Log:
Changed all JCR classes that call getString on a DNA name, segment, or path to provide the
namespace registry so URIs get transformed into prefixes correctly.
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrNode.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrNode.java 2008-09-17 16:01:02
UTC (rev 526)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrNode.java 2008-09-17 18:57:47
UTC (rev 527)
@@ -55,13 +55,13 @@
@NotThreadSafe
abstract class AbstractJcrNode extends AbstractJcrItem implements Node {
- private final Session session;
+ private final JcrSession session;
Set<Property> properties;
List<Name> children;
List<Integer> childNameCounts;
private UUID uuid;
- AbstractJcrNode( Session session ) {
+ AbstractJcrNode( JcrSession session ) {
assert session != null;
this.session = session;
}
@@ -423,7 +423,7 @@
int childNdx = 0;
if (children != null) {
for (Name child : children) {
- if (name.equals(child.getString())) {
+ if
(name.equals(child.getString(session.getExecutionContext().getNamespaceRegistry()))) {
if (ndxNdx >= 0) {
return (Integer.parseInt(relativePath.substring(ndxNdx + 1,
relativePath.length() - 1)) <= childNameCounts.get(childNdx));
}
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrProperty.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrProperty.java 2008-09-17
16:01:02 UTC (rev 526)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrProperty.java 2008-09-17
18:57:47 UTC (rev 527)
@@ -124,7 +124,7 @@
* @see javax.jcr.Item#getName()
*/
public final String getName() {
- return name.getString();
+ return name.getString(executionContext.getNamespaceRegistry());
}
/**
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNode.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNode.java 2008-09-17 16:01:02 UTC
(rev 526)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNode.java 2008-09-17 18:57:47 UTC
(rev 527)
@@ -25,7 +25,6 @@
import javax.jcr.ItemNotFoundException;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
-import javax.jcr.Session;
import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.spi.graph.Path.Segment;
@@ -38,7 +37,7 @@
private final UUID parentUuid;
private final Segment segment;
- JcrNode( Session session,
+ JcrNode( JcrSession session,
UUID parentUuid,
Segment segment ) {
super(session);
@@ -72,7 +71,7 @@
* @see javax.jcr.Item#getName()
*/
public String getName() {
- return segment.getName().getString();
+ return
segment.getName().getString(((JcrSession)getSession()).getExecutionContext().getNamespaceRegistry());
}
/**
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNodeIterator.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNodeIterator.java 2008-09-17 16:01:02
UTC (rev 526)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNodeIterator.java 2008-09-17 18:57:47
UTC (rev 527)
@@ -105,7 +105,8 @@
childNdx = 1;
}
try {
- node = parent.getNode(child.getString() + '[' + childNdx +
']');
+ node =
parent.getNode(child.getString(((JcrSession)parent.getSession()).getExecutionContext().getNamespaceRegistry())
+ + '[' + childNdx + ']');
childNdx++;
ndx++;
return node;
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRootNode.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRootNode.java 2008-09-17 16:01:02 UTC
(rev 526)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRootNode.java 2008-09-17 18:57:47 UTC
(rev 527)
@@ -23,7 +23,6 @@
import javax.jcr.ItemNotFoundException;
import javax.jcr.Node;
-import javax.jcr.Session;
import net.jcip.annotations.NotThreadSafe;
/**
@@ -32,7 +31,7 @@
@NotThreadSafe
final class JcrRootNode extends AbstractJcrNode {
- JcrRootNode( Session session ) {
+ JcrRootNode( JcrSession session ) {
super(session);
}
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSession.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSession.java 2008-09-17 16:01:02 UTC
(rev 526)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSession.java 2008-09-17 18:57:47 UTC
(rev 527)
@@ -248,7 +248,7 @@
// If a node isn't found & last segment contains no index, get parent
node & search for a property with the last name in
// the path
if (!lastSeg.hasIndex()) {
- return getNode(parentPath).getProperty(lastSeg.getString());
+ return
getNode(parentPath).getProperty(lastSeg.getString(executionContext.getNamespaceRegistry()));
}
// If a property isn't found, throw a PathNotFoundException
throw new PathNotFoundException(JcrI18n.pathNotFound.text(path));
Modified: trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractJcrNodeTest.java
===================================================================
--- trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractJcrNodeTest.java 2008-09-17
16:01:02 UTC (rev 526)
+++ trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractJcrNodeTest.java 2008-09-17
18:57:47 UTC (rev 527)
@@ -39,11 +39,12 @@
import javax.jcr.PathNotFoundException;
import javax.jcr.Property;
import javax.jcr.RepositoryException;
-import javax.jcr.Session;
import javax.jcr.UnsupportedRepositoryOperationException;
import javax.jcr.Value;
import javax.jcr.Workspace;
import javax.jcr.version.Version;
+import org.jboss.dna.spi.ExecutionContext;
+import org.jboss.dna.spi.graph.NamespaceRegistry;
import org.jboss.dna.spi.graph.Path.Segment;
import org.jboss.dna.spi.graph.impl.BasicName;
import org.junit.Before;
@@ -57,7 +58,7 @@
*/
public class AbstractJcrNodeTest {
- static MockAbstractJcrNode createChild( Session session,
+ static MockAbstractJcrNode createChild( JcrSession session,
String name,
int index,
List<Segment> children,
@@ -66,7 +67,7 @@
Segment seg = Mockito.mock(Segment.class);
stub(seg.getName()).toReturn(new BasicName(null, name));
children.add(seg);
- stub(session.getItem(parent.getPath() + "/{}" + name + '[' +
index + ']')).toReturn(child);
+ stub(session.getItem(parent.getPath() + "/" + name + '[' +
index + ']')).toReturn(child);
return child;
}
@@ -75,7 +76,7 @@
String name;
Node parent;
- MockAbstractJcrNode( Session session,
+ MockAbstractJcrNode( JcrSession session,
String name,
Node parent ) {
super(session);
@@ -106,13 +107,17 @@
private AbstractJcrNode node;
@Mock
- private Session session;
+ private JcrSession session;
private List<Segment> children;
private Set<Property> properties;
@Before
public void before() throws Exception {
MockitoAnnotations.initMocks(this);
+ NamespaceRegistry registry = Mockito.mock(NamespaceRegistry.class);
+ ExecutionContext context = Mockito.mock(ExecutionContext.class);
+ stub(context.getNamespaceRegistry()).toReturn(registry);
+ stub(session.getExecutionContext()).toReturn(context);
children = new ArrayList<Segment>();
properties = new HashSet<Property>();
node = new MockAbstractJcrNode(session, "node", null);
@@ -319,7 +324,7 @@
@Test
public void shouldProvideSession() throws Exception {
- assertThat(node.getSession(), is(session));
+ assertThat((JcrSession)node.getSession(), is(session));
}
@Test
@@ -378,7 +383,7 @@
Node child = createChild(session, "child", 1, children, node);
Node child2 = createChild(session, "child2", 1, children, child);
node.setChildren(children);
- assertThat(node.hasNode("{}child"), is(true));
+ assertThat(node.hasNode("child"), is(true));
stub(session.getItem("/node/child/{}child2")).toReturn(child2);
assertThat(node.hasNode("child/{}child2"), is(true));
}
@@ -460,7 +465,7 @@
@Test
public void shouldProvideIsSame() throws Exception {
stub(session.getWorkspace()).toReturn(Mockito.mock(Workspace.class));
- Session session2 = Mockito.mock(Session.class);
+ JcrSession session2 = Mockito.mock(JcrSession.class);
Node node2 = new MockAbstractJcrNode(session2, node.getName(),
node.getParent());
assertThat(node.isSame(node2), is(false));
Property prop = Mockito.mock(Property.class);
Modified: trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractJcrPropertyTest.java
===================================================================
--- trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractJcrPropertyTest.java 2008-09-17
16:01:02 UTC (rev 526)
+++ trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractJcrPropertyTest.java 2008-09-17
18:57:47 UTC (rev 527)
@@ -37,6 +37,7 @@
import org.jboss.dna.common.util.StringUtil;
import org.jboss.dna.spi.ExecutionContext;
import org.jboss.dna.spi.graph.Name;
+import org.jboss.dna.spi.graph.NamespaceRegistry;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
@@ -54,6 +55,8 @@
@Mock
private Node node;
@Mock
+ private NamespaceRegistry namespaceRegistry;
+ @Mock
private ExecutionContext executionContext;
@Mock
private Name name;
@@ -62,6 +65,7 @@
public void before() throws Exception {
MockitoAnnotations.initMocks(this);
stub(node.getSession()).toReturn(session);
+ stub(executionContext.getNamespaceRegistry()).toReturn(namespaceRegistry);
prop = new MockAbstractJcrProperty(node, executionContext, name);
}
@@ -128,7 +132,7 @@
@Test
public void shouldProvideName() throws Exception {
- stub(name.getString()).toReturn("name");
+ stub(name.getString(namespaceRegistry)).toReturn("name");
assertThat(prop.getName(), is("name"));
}
@@ -140,7 +144,7 @@
@Test
public void shouldProvidePath() throws Exception {
stub(node.getPath()).toReturn("/nodeName");
- stub(name.getString()).toReturn("propertyName");
+ stub(name.getString(namespaceRegistry)).toReturn("propertyName");
assertThat(prop.getPath(), is("/nodeName/propertyName"));
}
@@ -158,11 +162,11 @@
@Test
public void shouldIndicateSameAsNodeWithSameParentAndName() throws Exception {
- stub(name.getString()).toReturn("propertyName");
+ stub(name.getString(namespaceRegistry)).toReturn("propertyName");
Node otherNode = Mockito.mock(Node.class);
stub(otherNode.getSession()).toReturn(session);
Name otherName = Mockito.mock(Name.class);
- stub(otherName.getString()).toReturn("propertyName");
+ stub(otherName.getString(namespaceRegistry)).toReturn("propertyName");
stub(node.isSame(otherNode)).toReturn(true);
Property otherProp = new MockAbstractJcrProperty(otherNode, executionContext,
otherName);
assertThat(prop.isSame(otherProp), is(true));
@@ -170,11 +174,11 @@
@Test
public void shouldIndicateDifferentThanNodeWithDifferentParent() throws Exception {
- stub(name.getString()).toReturn("propertyName");
+ stub(name.getString(namespaceRegistry)).toReturn("propertyName");
Node otherNode = Mockito.mock(Node.class);
stub(otherNode.getSession()).toReturn(session);
Name otherName = Mockito.mock(Name.class);
- stub(otherName.getString()).toReturn("propertyName");
+ stub(otherName.getString(namespaceRegistry)).toReturn("propertyName");
stub(node.isSame(otherNode)).toReturn(false);
Property otherProp = new MockAbstractJcrProperty(otherNode, executionContext,
otherName);
assertThat(prop.isSame(otherProp), is(false));
@@ -182,11 +186,11 @@
@Test
public void shouldIndicateDifferentThanNodeWithDifferentName() throws Exception {
- stub(name.getString()).toReturn("propertyName");
+ stub(name.getString(namespaceRegistry)).toReturn("propertyName");
Node otherNode = Mockito.mock(Node.class);
stub(otherNode.getSession()).toReturn(session);
Name otherName = Mockito.mock(Name.class);
- stub(otherName.getString()).toReturn("propertyName2");
+
stub(otherName.getString(namespaceRegistry)).toReturn("propertyName2");
stub(node.isSame(otherNode)).toReturn(true);
Property otherProp = new MockAbstractJcrProperty(otherNode, executionContext,
otherName);
assertThat(prop.isSame(otherProp), is(false));
Modified: trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrNodeIteratorTest.java
===================================================================
--- trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrNodeIteratorTest.java 2008-09-17
16:01:02 UTC (rev 526)
+++ trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrNodeIteratorTest.java 2008-09-17
18:57:47 UTC (rev 527)
@@ -24,15 +24,18 @@
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNull.notNullValue;
import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.stub;
import java.util.ArrayList;
import java.util.List;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
-import javax.jcr.Session;
import org.jboss.dna.jcr.AbstractJcrNodeTest.MockAbstractJcrNode;
+import org.jboss.dna.spi.ExecutionContext;
+import org.jboss.dna.spi.graph.NamespaceRegistry;
import org.jboss.dna.spi.graph.Path.Segment;
import org.junit.Before;
import org.junit.Test;
+import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoAnnotations.Mock;
@@ -43,12 +46,16 @@
private AbstractJcrNode node;
@Mock
- private Session session;
+ private JcrSession session;
private List<Segment> children;
@Before
public void before() throws Exception {
MockitoAnnotations.initMocks(this);
+ NamespaceRegistry registry = Mockito.mock(NamespaceRegistry.class);
+ ExecutionContext context = Mockito.mock(ExecutionContext.class);
+ stub(context.getNamespaceRegistry()).toReturn(registry);
+ stub(session.getExecutionContext()).toReturn(context);
children = new ArrayList<Segment>();
node = new MockAbstractJcrNode(session, "node", null);
}
Modified: trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrNodeTest.java
===================================================================
--- trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrNodeTest.java 2008-09-17 16:01:02 UTC
(rev 526)
+++ trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrNodeTest.java 2008-09-17 18:57:47 UTC
(rev 527)
@@ -23,6 +23,7 @@
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.anyObject;
import static org.mockito.Mockito.stub;
import java.util.ArrayList;
import java.util.HashSet;
@@ -30,7 +31,9 @@
import javax.jcr.ItemNotFoundException;
import javax.jcr.Node;
import javax.jcr.Property;
+import org.jboss.dna.spi.ExecutionContext;
import org.jboss.dna.spi.graph.Name;
+import org.jboss.dna.spi.graph.NamespaceRegistry;
import org.jboss.dna.spi.graph.Path.Segment;
import org.junit.Before;
import org.junit.Test;
@@ -54,11 +57,13 @@
root = new JcrRootNode(session);
Segment segment = Mockito.mock(Segment.class);
Name name = Mockito.mock(Name.class);
- stub(name.getString()).toReturn("name");
+ stub(name.getString((NamespaceRegistry)anyObject())).toReturn("name");
stub(segment.getName()).toReturn(name);
stub(segment.getIndex()).toReturn(2);
UUID uuid = UUID.randomUUID();
node = new JcrNode(session, uuid, segment);
+ ExecutionContext context = Mockito.mock(ExecutionContext.class);
+ stub(session.getExecutionContext()).toReturn(context);
stub(session.getNode(uuid)).toReturn(root);
node.setProperties(new HashSet<Property>());
node.setChildren(new ArrayList<Segment>());
Modified: trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrPropertyIteratorTest.java
===================================================================
--- trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrPropertyIteratorTest.java 2008-09-17
16:01:02 UTC (rev 526)
+++ trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrPropertyIteratorTest.java 2008-09-17
18:57:47 UTC (rev 527)
@@ -28,7 +28,6 @@
import java.util.Set;
import javax.jcr.Property;
import javax.jcr.PropertyIterator;
-import javax.jcr.Session;
import org.jboss.dna.jcr.AbstractJcrNodeTest.MockAbstractJcrNode;
import org.junit.Before;
import org.junit.Test;
@@ -43,7 +42,7 @@
private AbstractJcrNode node;
@Mock
- private Session session;
+ private JcrSession session;
private Set<Property> properties;
@Before
Modified: trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrRootNodeTest.java
===================================================================
--- trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrRootNodeTest.java 2008-09-17 16:01:02
UTC (rev 526)
+++ trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/JcrRootNodeTest.java 2008-09-17 18:57:47
UTC (rev 527)
@@ -28,7 +28,6 @@
import java.util.Set;
import javax.jcr.ItemNotFoundException;
import javax.jcr.Property;
-import javax.jcr.Session;
import org.junit.Before;
import org.junit.Test;
import org.mockito.MockitoAnnotations;
@@ -41,7 +40,7 @@
private JcrRootNode root;
@Mock
- private Session session;
+ private JcrSession session;
private Set<Property> properties;
@Before