Author: rhauch
Date: 2009-11-30 15:08:48 -0500 (Mon, 30 Nov 2009)
New Revision: 1371
Modified:
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRepository.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrWorkspace.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/WorkspaceLockManager.java
trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractSessionTest.java
trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/WorkspaceLockManagerTest.java
Log:
Merge branch 'dna-548'
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRepository.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRepository.java 2009-11-30 19:40:58
UTC (rev 1370)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRepository.java 2009-11-30 20:08:48
UTC (rev 1371)
@@ -424,8 +424,9 @@
// Right now, the other nodes will be created as needed
}
- Graph createWorkspaceGraph( String workspaceName ) {
- Graph graph = Graph.create(this.federatedSource, this.executionContext);
+ Graph createWorkspaceGraph( String workspaceName,
+ ExecutionContext workspaceContext ) {
+ Graph graph = Graph.create(this.federatedSource, workspaceContext);
graph.useWorkspace(workspaceName);
return graph;
}
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrWorkspace.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrWorkspace.java 2009-11-30 19:40:58
UTC (rev 1370)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrWorkspace.java 2009-11-30 20:08:48
UTC (rev 1371)
@@ -102,7 +102,7 @@
/**
* The reference to the {@link JcrRepository} instance that owns this {@link
Workspace} instance. Very few methods on this
- * repository object are used; mainly {@link
JcrRepository#createWorkspaceGraph(String)},
+ * repository object are used; mainly {@link
JcrRepository#createWorkspaceGraph(String,ExecutionContext)},
* {@link JcrRepository#getPersistentRegistry()} and {@link
JcrRepository#getRepositorySourceName()}.
*/
private final JcrRepository repository;
@@ -158,7 +158,7 @@
this.context = context.with(local);
// Now create a graph for the session ...
- this.graph = this.repository.createWorkspaceGraph(workspaceName);
+ this.graph = this.repository.createWorkspaceGraph(this.name, this.context);
// Set up the session for this workspace ...
this.session = new JcrSession(this.repository, this, this.context,
globalRegistry, sessionAttributes);
@@ -312,7 +312,7 @@
/*
* Find the UUID for the source node. Have to go directly against the
graph.
*/
- org.jboss.dna.graph.Node sourceNode =
repository.createWorkspaceGraph(srcWorkspace).getNodeAt(srcPath);
+ org.jboss.dna.graph.Node sourceNode =
repository.createWorkspaceGraph(srcWorkspace, context).getNodeAt(srcPath);
Property uuidProp = sourceNode.getProperty(DnaLexicon.UUID);
if (uuidProp != null) {
@@ -467,7 +467,7 @@
/*
* Find the UUID for the source node. Have to go directly against the
graph.
*/
- org.jboss.dna.graph.Node sourceNode =
repository.createWorkspaceGraph(srcWorkspace).getNodeAt(srcPath);
+ org.jboss.dna.graph.Node sourceNode =
repository.createWorkspaceGraph(srcWorkspace, context).getNodeAt(srcPath);
Property uuidProp = sourceNode.getProperty(DnaLexicon.UUID);
if (uuidProp != null) {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/WorkspaceLockManager.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/WorkspaceLockManager.java 2009-11-30
19:40:58 UTC (rev 1370)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/WorkspaceLockManager.java 2009-11-30
20:08:48 UTC (rev 1371)
@@ -160,7 +160,7 @@
DnaLock lock,
boolean isDeep ) throws RepositoryException {
// Write them directly to the underlying graph
- Graph.Batch workspaceBatch =
repository.createWorkspaceGraph(workspaceName).batch();
+ Graph.Batch workspaceBatch = repository.createWorkspaceGraph(workspaceName,
session.getExecutionContext()).batch();
workspaceBatch.set(lockOwnerProp, lockIsDeepProp).on(nodeUuid);
if (isDeep) {
workspaceBatch.lock(nodeUuid).andItsDescendants().withDefaultTimeout();
@@ -195,7 +195,7 @@
batch.remove(JcrLexicon.LOCK_OWNER,
JcrLexicon.LOCK_IS_DEEP).on(lock.nodeUuid);
batch.execute();
- unlockNodeInRepository(lock);
+ unlockNodeInRepository(session, lock);
workspaceLocksByNodeUuid.remove(lock.nodeUuid);
} catch (PathNotFoundException pnfe) {
@@ -221,10 +221,12 @@
* /jcr:system/dna:locks} subgraph.
* </p>
*
+ * @param session the session in which the node is being unlocked
* @param lock
*/
- void unlockNodeInRepository( DnaLock lock ) {
- Graph.Batch workspaceBatch =
repository.createWorkspaceGraph(this.workspaceName).batch();
+ void unlockNodeInRepository( JcrSession session,
+ DnaLock lock ) {
+ Graph.Batch workspaceBatch = repository.createWorkspaceGraph(this.workspaceName,
session.getExecutionContext()).batch();
workspaceBatch.remove(JcrLexicon.LOCK_OWNER,
JcrLexicon.LOCK_IS_DEEP).on(lock.nodeUuid);
workspaceBatch.unlock(lock.nodeUuid);
Modified: trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractSessionTest.java
===================================================================
--- trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractSessionTest.java 2009-11-30
19:40:58 UTC (rev 1370)
+++ trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/AbstractSessionTest.java 2009-11-30
20:08:48 UTC (rev 1371)
@@ -23,6 +23,7 @@
*/
package org.jboss.dna.jcr;
+import static org.mockito.Matchers.anyObject;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.stub;
import java.io.IOException;
@@ -137,7 +138,7 @@
stub(repository.getRepositoryTypeManager()).toReturn(repoTypeManager);
stub(repository.getRepositorySourceName()).toReturn(repositorySourceName);
stub(repository.getPersistentRegistry()).toReturn(context.getNamespaceRegistry());
- stub(repository.createWorkspaceGraph(anyString())).toAnswer(new
Answer<Graph>() {
+ stub(repository.createWorkspaceGraph(anyString(),
(ExecutionContext)anyObject())).toAnswer(new Answer<Graph>() {
public Graph answer( InvocationOnMock invocation ) throws Throwable {
return graph;
}
Modified: trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/WorkspaceLockManagerTest.java
===================================================================
--- trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/WorkspaceLockManagerTest.java 2009-11-30
19:40:58 UTC (rev 1370)
+++ trunk/dna-jcr/src/test/java/org/jboss/dna/jcr/WorkspaceLockManagerTest.java 2009-11-30
20:08:48 UTC (rev 1371)
@@ -3,6 +3,7 @@
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsInstanceOf.instanceOf;
import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.anyObject;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.stub;
@@ -71,7 +72,7 @@
stub(repository.getRepositoryTypeManager()).toReturn(repoTypeManager);
stub(repository.getRepositorySourceName()).toReturn(sourceName);
stub(repository.getPersistentRegistry()).toReturn(context.getNamespaceRegistry());
- stub(repository.createWorkspaceGraph(anyString())).toAnswer(new
Answer<Graph>() {
+ stub(repository.createWorkspaceGraph(anyString(),
(ExecutionContext)anyObject())).toAnswer(new Answer<Graph>() {
public Graph answer( InvocationOnMock invocation ) throws Throwable {
return graph;
}
@@ -150,7 +151,9 @@
@Test
public void shouldCreateLockRequestWhenUnlockingNode() {
DnaLock lock = workspaceLockManager.createLock("testOwner",
UUID.randomUUID(), validUuid, false, false);
- workspaceLockManager.unlockNodeInRepository(lock);
+ JcrSession session = mock(JcrSession.class);
+ stub(session.getExecutionContext()).toReturn(context);
+ workspaceLockManager.unlockNodeInRepository(session, lock);
assertNextRequestIsUnlock(validLocation);
}