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/02/17 09:58:30 UTC
svn commit: r628457 - in
/jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp:
SessionImpl.java session/BoundSession.java session/ClosedSession.java
session/SessionState.java session/StateSwitch.java
session/UnboundSession.java
Author: jukka
Date: Sun Feb 17 00:58:23 2008
New Revision: 628457
URL: http://svn.apache.org/viewvc?rev=628457&view=rev
Log:
NGP: Simplified session code
Removed:
jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/session/BoundSession.java
jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/session/ClosedSession.java
jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/session/StateSwitch.java
jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/session/UnboundSession.java
Modified:
jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/SessionImpl.java
jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/session/SessionState.java
Modified: jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/SessionImpl.java?rev=628457&r1=628456&r2=628457&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/SessionImpl.java (original)
+++ jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/SessionImpl.java Sun Feb 17 00:58:23 2008
@@ -16,33 +16,20 @@
*/
package org.apache.jackrabbit.ngp;
-import java.security.AccessControlException;
import java.util.Map;
-import javax.jcr.AccessDeniedException;
import javax.jcr.Credentials;
-import javax.jcr.InvalidItemStateException;
-import javax.jcr.ItemExistsException;
-import javax.jcr.ItemNotFoundException;
import javax.jcr.NamespaceException;
import javax.jcr.Node;
-import javax.jcr.PathNotFoundException;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.SimpleCredentials;
-import javax.jcr.UnsupportedRepositoryOperationException;
import javax.jcr.ValueFactory;
import javax.jcr.Workspace;
-import javax.jcr.lock.LockException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import javax.jcr.version.VersionException;
import org.apache.jackrabbit.commons.AbstractSession;
import org.apache.jackrabbit.ngp.journal.Journal;
-import org.apache.jackrabbit.ngp.session.ClosedSession;
-import org.apache.jackrabbit.ngp.session.StateSwitch;
-import org.apache.jackrabbit.ngp.session.UnboundSession;
+import org.apache.jackrabbit.ngp.session.SessionState;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
@@ -52,16 +39,23 @@
private final Map<String, Object> attributes;
- private StateSwitch state;
+ private SessionState state;
SessionImpl(
Repository repository, Map<String, Object> attributes,
- Journal journal) {
+ Journal journal) throws RepositoryException {
this.repository = repository;
this.attributes = attributes;
- this.state = new StateSwitch();
+ this.state = new SessionState(journal);
+ }
- state.setState(new UnboundSession(journal, state));
+ private SessionState getState() throws RepositoryException {
+ SessionState state = this.state;
+ if (state != null) {
+ return state;
+ } else {
+ throw new RepositoryException("This session has been closed");
+ }
}
/**
@@ -109,12 +103,19 @@
}
/**
+ * Closes this session. Any unsaved state is discarded.
+ */
+ public void logout() {
+ state = null;
+ }
+
+ /**
* Returns <code>true</code> if this session is usable by the client.
*
* @return state of this session
*/
public boolean isLive() {
- return state.isLive();
+ return state != null;
}
/**
@@ -125,18 +126,11 @@
*/
public synchronized void refresh(boolean keepChanges)
throws RepositoryException {
- state.refresh(keepChanges);
- }
-
- /**
- * Closes this session. Any unsaved state is discarded.
- */
- public synchronized void logout() {
- state.setState(new ClosedSession());
+ getState().refresh(keepChanges);
}
public synchronized Node getRootNode() throws RepositoryException {
- return new NodeImpl(this, null, "", state.getRootNode());
+ return new NodeImpl(this, null, "", getState().getRootNode());
}
public void addLockToken(String lt) {
@@ -145,29 +139,30 @@
}
public void checkPermission(String absPath, String actions)
- throws AccessControlException, RepositoryException {
+ throws RepositoryException {
// TODO Auto-generated method stub
}
- public void exportDocumentView(String absPath,
- ContentHandler contentHandler, boolean skipBinary, boolean noRecurse)
- throws PathNotFoundException, SAXException, RepositoryException {
+ public void exportDocumentView(
+ String absPath, ContentHandler contentHandler,
+ boolean skipBinary, boolean noRecurse)
+ throws SAXException, RepositoryException {
// TODO Auto-generated method stub
}
- public void exportSystemView(String absPath, ContentHandler contentHandler,
+ public void exportSystemView(
+ String absPath, ContentHandler contentHandler,
boolean skipBinary, boolean noRecurse)
- throws PathNotFoundException, SAXException, RepositoryException {
+ throws SAXException, RepositoryException {
// TODO Auto-generated method stub
}
- public ContentHandler getImportContentHandler(String parentAbsPath,
- int uuidBehavior) throws PathNotFoundException,
- ConstraintViolationException, VersionException, LockException,
- RepositoryException {
+ public ContentHandler getImportContentHandler(
+ String parentAbsPath, int uuidBehavior)
+ throws RepositoryException {
// TODO Auto-generated method stub
return null;
}
@@ -188,20 +183,17 @@
return null;
}
- public String getNamespaceURI(String prefix) throws NamespaceException,
- RepositoryException {
+ public String getNamespaceURI(String prefix) throws RepositoryException {
// TODO Auto-generated method stub
return null;
}
- public Node getNodeByUUID(String uuid) throws ItemNotFoundException,
- RepositoryException {
+ public Node getNodeByUUID(String uuid) throws RepositoryException {
// TODO Auto-generated method stub
return null;
}
- public ValueFactory getValueFactory()
- throws UnsupportedRepositoryOperationException, RepositoryException {
+ public ValueFactory getValueFactory() throws RepositoryException {
// TODO Auto-generated method stub
return null;
}
@@ -217,9 +209,7 @@
}
public void move(String srcAbsPath, String destAbsPath)
- throws ItemExistsException, PathNotFoundException,
- VersionException, ConstraintViolationException, LockException,
- RepositoryException {
+ throws RepositoryException {
// TODO Auto-generated method stub
}
@@ -229,16 +219,13 @@
}
- public void save() throws AccessDeniedException, ItemExistsException,
- ConstraintViolationException, InvalidItemStateException,
- VersionException, LockException, NoSuchNodeTypeException,
- RepositoryException {
+ public void save() throws RepositoryException {
// TODO Auto-generated method stub
}
public void setNamespacePrefix(String prefix, String uri)
- throws NamespaceException, RepositoryException {
+ throws RepositoryException {
// TODO Auto-generated method stub
}
Modified: jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/session/SessionState.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/session/SessionState.java?rev=628457&r1=628456&r2=628457&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/session/SessionState.java (original)
+++ jackrabbit/sandbox/jackrabbit-ngp/src/main/java/org/apache/jackrabbit/ngp/session/SessionState.java Sun Feb 17 00:58:23 2008
@@ -18,14 +18,27 @@
import javax.jcr.RepositoryException;
+import org.apache.jackrabbit.ngp.journal.Journal;
+import org.apache.jackrabbit.ngp.node.BoundNode;
import org.apache.jackrabbit.ngp.node.NodeState;
-public interface SessionState {
+public class SessionState {
- boolean isLive();
+ private final Journal journal;
- void refresh(boolean keepChanges) throws RepositoryException;
+ private final NodeState root;
- NodeState getRootNode() throws RepositoryException;
+ public SessionState(Journal journal) throws RepositoryException {
+ this.journal = journal;
+ this.root = new BoundNode(journal, journal.getDefaultRecord());
+ }
+
+ public void refresh(boolean keepChanges) throws RepositoryException {
+ root.refresh(journal.getDefaultRecord());
+ }
+
+ public NodeState getRootNode() {
+ return root;
+ }
}