Author: angela Date: Wed May 6 10:12:20 2009 New Revision: 772128 URL: http://svn.apache.org/viewvc?rev=772128&view=rev Log: JCR-2003: JCR2SPI / SPI: Add support for JCR 2.0 JCR-1104: JSR 283 support - move methods to the correct place - add Javadoc and TODOs - add trivial implementations on SessionImpl - rename ManagerProvider#getLockManager to #getLockStateManager Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/lock/LockManagerImpl.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java Wed May 6 10:12:20 2009 @@ -48,13 +48,13 @@ public AccessManager getAccessManager(); /** - * Returns the AccessManager associated with this + * Returns the LockStateManager associated with this * ManagerProvider. * - * @return the AccessManager associated with this + * @return the LockStateManager associated with this * ManagerProvider */ - public LockStateManager getLockManager(); + public LockStateManager getLockStateManager(); /** * Returns the VersionManager associated with this Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java Wed May 6 10:12:20 2009 @@ -1105,7 +1105,7 @@ checkIsLockable(); checkHasPendingChanges(); - return session.getLockManager().lock(getNodeState(), isDeep, isSessionScoped, timeoutHint, ownerHint); + return session.getLockStateManager().lock(getNodeState(), isDeep, isSessionScoped, timeoutHint, ownerHint); } /** @@ -1114,7 +1114,7 @@ public Lock getLock() throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, RepositoryException { // lock can be inherited from a parent > do not check for node being lockable. checkStatus(); - return session.getLockManager().getLock(getNodeState()); + return session.getLockStateManager().getLock(getNodeState()); } /** @@ -1124,7 +1124,7 @@ checkIsLockable(); checkHasPendingChanges(); - session.getLockManager().unlock(getNodeState()); + session.getLockStateManager().unlock(getNodeState()); } /** @@ -1137,7 +1137,7 @@ // a node that is new or not lockable never holds a lock return false; } else { - LockStateManager lMgr = session.getLockManager(); + LockStateManager lMgr = session.getLockStateManager(); return (lMgr.isLocked(getNodeState()) && lMgr.getLock(getNodeState()).getNode().isSame(this)); } } @@ -1148,7 +1148,119 @@ public boolean isLocked() throws RepositoryException { // lock can be inherited from a parent > do not check for node being lockable. checkStatus(); - return session.getLockManager().isLocked(getNodeState()); + return session.getLockStateManager().isLocked(getNodeState()); + } + + /** + * @see javax.jcr.Node#followLifecycleTransition(String) + */ + public void followLifecycleTransition(String transition) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#getAllowedLifecycleTransistions() + */ + public String[] getAllowedLifecycleTransistions() throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#getNodes(String[]) + */ + public NodeIterator getNodes(String[] nameGlobs) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * TODO: method name is wrong! should be getProperties (Issue 736 of the pfd) + * @see javax.jcr.Node#getProperty(String) + */ + public PropertyIterator getProperty(String[] nameGlobs) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#getReferences(String) + */ + public PropertyIterator getReferences(String name) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#getSharedSet() + */ + public NodeIterator getSharedSet() throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#getWeakReferences() + */ + public PropertyIterator getWeakReferences() throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#getWeakReferences() + */ + public PropertyIterator getWeakReferences(String name) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * TODO: Issue 728 of the pfd... this method is a leftover and will be removed in the final version. + */ + public NodeIterator merge(String srcWorkspace, boolean bestEffort, boolean isShallow) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#removeShare() + */ + public void removeShare() throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#removeSharedSet() + */ + public void removeSharedSet() throws RepositoryException { + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#setPrimaryType(String) + */ + public void setPrimaryType(String nodeTypeName) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#setProperty(String, Binary) + */ + public Property setProperty(String name, Binary value) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see javax.jcr.Node#setProperty(String, BigDecimal) + */ + public Property setProperty(String name, BigDecimal value) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); } //--------------------------------------------------------< public impl >--- @@ -1253,7 +1365,7 @@ return; } // perform check - session.getLockManager().checkLock(getNodeState()); + session.getLockStateManager().checkLock(getNodeState()); } /** @@ -1640,72 +1752,4 @@ throws ConstraintViolationException, RepositoryException { return session.getItemDefinitionProvider().getQPropertyDefinition(getNodeState().getAllNodeTypeNames(), propertyName, type, multiValued); } - - public void followLifecycleTransition(String transition) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public String[] getAllowedLifecycleTransistions() - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public NodeIterator getNodes(String[] nameGlobs) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public PropertyIterator getProperty(String[] nameGlobs) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public PropertyIterator getReferences(String name) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public NodeIterator getSharedSet() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public PropertyIterator getWeakReferences() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public PropertyIterator getWeakReferences(String name) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public NodeIterator merge( - String srcWorkspace, boolean bestEffort, boolean isShallow) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public void removeShare() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public void removeSharedSet() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public void setPrimaryType(String nodeTypeName) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public Property setProperty(String name, Binary value) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public Property setProperty(String name, BigDecimal value) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - } Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java Wed May 6 10:12:20 2009 @@ -39,6 +39,7 @@ import javax.jcr.UnsupportedRepositoryOperationException; import javax.jcr.ValueFactory; import javax.jcr.Workspace; +import javax.jcr.Property; import javax.jcr.lock.LockException; import javax.jcr.nodetype.ConstraintViolationException; import javax.jcr.retention.RetentionManager; @@ -295,7 +296,7 @@ checkIsAlive(); Path qPath = getQPath(absPath).getNormalizedPath(); ItemManager itemMgr = getItemManager(); - return (itemMgr.nodeExists(qPath)) ? true : itemMgr.propertyExists(qPath); + return itemMgr.nodeExists(qPath) || itemMgr.propertyExists(qPath); } /** @@ -476,7 +477,7 @@ */ public void addLockToken(String lt) { try { - getLockManager().addLockToken(lt); + getLockStateManager().addLockToken(lt); } catch (RepositoryException e) { log.warn("Unable to add lock token '" +lt+ "' to this session.", e); } @@ -486,7 +487,7 @@ * @see javax.jcr.Session#getLockTokens() */ public String[] getLockTokens() { - return getLockManager().getLockTokens(); + return getLockStateManager().getLockTokens(); } /** @@ -494,13 +495,112 @@ */ public void removeLockToken(String lt) { try { - getLockManager().removeLockToken(lt); + getLockStateManager().removeLockToken(lt); } catch (RepositoryException e) { log.warn("Unable to remove lock token '" +lt+ "' from this session. (" + e.getMessage() + ")"); } } - //-------------------------------------------------< NamespaceResolver >-- + /** + * @see Session#getAccessControlManager() + */ + public AccessControlManager getAccessControlManager() + throws RepositoryException { + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see Session#getNode(String) + */ + public Node getNode(String absPath) throws RepositoryException { + checkIsAlive(); + try { + Path qPath = getQPath(absPath).getNormalizedPath(); + ItemManager itemMgr = getItemManager(); + return itemMgr.getNode(qPath); + } catch (AccessDeniedException ade) { + throw new PathNotFoundException(absPath); + } + } + + /** + * @see Session#getNodeByIdentifier(String) + */ + public Node getNodeByIdentifier(String id) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see Session#getProperty(String) + */ + public Property getProperty(String absPath) throws RepositoryException { + checkIsAlive(); + try { + Path qPath = getQPath(absPath).getNormalizedPath(); + ItemManager itemMgr = getItemManager(); + return itemMgr.getProperty(qPath); + } catch (AccessDeniedException ade) { + throw new PathNotFoundException(absPath); + } + } + + /** + * @see Session#getRetentionManager() + */ + public RetentionManager getRetentionManager() + throws UnsupportedRepositoryOperationException, RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see Session#hasCapability(String, Object, Map) + */ + public boolean hasCapability(String methodName, Object target, Map arguments) + throws RepositoryException { + // TODO: implementation missing + return true; + } + + /** + * @see Session#hasPermission(String, String) + */ + public boolean hasPermission(String absPath, String actions) + throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see Session#nodeExists(String) + */ + public boolean nodeExists(String absPath) throws RepositoryException { + checkIsAlive(); + Path qPath = getQPath(absPath).getNormalizedPath(); + ItemManager itemMgr = getItemManager(); + return itemMgr.nodeExists(qPath); + } + + /** + * @see Session#propertyExists(String) + */ + public boolean propertyExists(String absPath) throws RepositoryException { + checkIsAlive(); + Path qPath = getQPath(absPath).getNormalizedPath(); + ItemManager itemMgr = getItemManager(); + return itemMgr.propertyExists(qPath); + } + + /** + * @see Session#removeItem(String) + */ + public void removeItem(String absPath) throws RepositoryException { + Item item = getItem(absPath); + item.remove(); + } + + //--------------------------------------------------< NamespaceResolver >--- public String getPrefix(String uri) throws NamespaceException { try { @@ -584,8 +684,10 @@ return imgr; } - //---------------------------------------------------< ManagerProvider > --- - + //----------------------------------------------------< ManagerProvider >--- + /** + * @see ManagerProvider#getNamePathResolver() + */ public NamePathResolver getNamePathResolver() { return npResolver; } @@ -619,10 +721,10 @@ } /** - * @see ManagerProvider#getLockManager() + * @see ManagerProvider#getLockStateManager() */ - public LockStateManager getLockManager() { - return workspace.getLockManager(); + public LockStateManager getLockStateManager() { + return workspace.getLockStateManager(); } /** @@ -865,29 +967,4 @@ throw new NoSuchWorkspaceException("Unknown workspace: '" + workspaceName + "'."); } } - - public AccessControlManager getAccessControlManager() - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public Node getNodeByIdentifier(String id) throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public RetentionManager getRetentionManager() - throws UnsupportedRepositoryOperationException, RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public boolean hasCapability(String methodName, Object target, Map arguments) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public boolean hasPermission(String absPath, String actions) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - } Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java Wed May 6 10:12:20 2009 @@ -68,6 +68,7 @@ import javax.jcr.ValueFactory; import javax.jcr.Workspace; import javax.jcr.lock.LockException; +import javax.jcr.lock.LockManager; import javax.jcr.nodetype.ConstraintViolationException; import javax.jcr.nodetype.NodeTypeManager; import javax.jcr.observation.ObservationManager; @@ -344,6 +345,52 @@ wspManager.execute(WorkspaceImport.create(parentState, in, uuidBehavior)); } + /** + * @see javax.jcr.Workspace#createWorkspace(String) + */ + public void createWorkspace(String name) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + + /** + * @see javax.jcr.Workspace#createWorkspace(String, String) + */ + public void createWorkspace(String name, String srcWorkspace) + throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + + /** + * @see javax.jcr.Workspace#deleteWorkspace(String) + */ + public void deleteWorkspace(String name) throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + + /** + * @see javax.jcr.Workspace#getLockManager() + */ + public LockManager getLockManager() throws RepositoryException { + session.checkIsAlive(); + session.checkSupportedOption(Repository.OPTION_LOCKING_SUPPORTED); + return getLockStateManager(); + } + + /** + * @see javax.jcr.Workspace#getVersionManager() + */ + public javax.jcr.version.VersionManager getVersionManager() + throws RepositoryException { + // TODO: implementation missing + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + //----------------------------------------------------< ManagerProvider >--- /** * @see ManagerProvider#getNamePathResolver() @@ -388,9 +435,9 @@ } /** - * @see ManagerProvider#getLockManager() + * @see ManagerProvider#getLockStateManager() */ - public LockStateManager getLockManager() { + public LockStateManager getLockStateManager() { if (lockManager == null) { lockManager = createLockManager(wspManager, session.getItemManager()); } @@ -494,7 +541,7 @@ */ protected LockStateManager createLockManager(WorkspaceManager wspManager, ItemManager itemManager) { LockManagerImpl lMgr = new LockManagerImpl(wspManager, itemManager, session.getCacheBehaviour(), getPathResolver()); - session.addListener((LockManagerImpl) lMgr); + session.addListener(lMgr); return lMgr; } @@ -516,22 +563,4 @@ protected ObservationManager createObservationManager(NamePathResolver resolver, NodeTypeRegistry ntRegistry) { return new ObservationManagerImpl(wspManager, resolver, ntRegistry); } - - public void createWorkspace(String name) throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public void createWorkspace(String name, String srcWorkspace) - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public void deleteWorkspace(String name) throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public javax.jcr.version.VersionManager getVersionManager() - throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } } Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java Wed May 6 10:12:20 2009 @@ -552,6 +552,7 @@ } ntRegistry.dispose(); } + //------------------------------------------------------< AccessManager >--- /** * @see AccessManager#isGranted(NodeState, Path, String[]) Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/lock/LockManagerImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/lock/LockManagerImpl.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/lock/LockManagerImpl.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/lock/LockManagerImpl.java Wed May 6 10:12:20 2009 @@ -73,8 +73,8 @@ /** * Map holding all locks that where created by this Session upon - * calls to {@link LockManager#lock(NodeState,boolean,boolean)} or to - * {@link LockManager#getLock(NodeState)}. The map entries are removed + * calls to {@link LockStateManager#lock(NodeState,boolean,boolean)} or to + * {@link LockStateManager#getLock(NodeState)}. The map entries are removed * only if a lock ends his life by {@link Node#unlock()} or by implicit * unlock upon {@link Session#logout()}. */ @@ -132,16 +132,74 @@ n.unlock(); } - //---------------------< org.apache.jackrabbit.jcr2spi.lock.LockManager >--- /** - * @see LockManager#lock(NodeState,boolean,boolean) + * Returns the lock tokens present on the SessionInfo this + * manager has been created with. + * + * @see javax.jcr.lock.LockManager#getLockTokens() + */ + public String[] getLockTokens() { + return wspManager.getLockTokens(); + } + + /** + * Delegates this call to {@link WorkspaceManager#addLockToken(String)}. + * If this succeeds this method will inform all locks stored in the local + * map in order to give them the chance to update their lock information. + * + * @see javax.jcr.lock.LockManager#addLockToken(String) + */ + public void addLockToken(String lt) throws LockException, RepositoryException { + wspManager.addLockToken(lt); + notifyTokenAdded(lt); + } + + /** + * If the lock addressed by the token is session-scoped, this method will + * throw a LockException, such as defined by JSR170 v.1.0.1 for + * {@link Session#removeLockToken(String)}.
Otherwise the call is + * delegated to {@link WorkspaceManager#removeLockToken(String)}. + * All locks stored in the local lock map are notified by the removed + * token in order have them updated their lock information. + * + * @see javax.jcr.lock.LockManager#removeLockToken(String) + */ + public void removeLockToken(String lt) throws LockException, RepositoryException { + // JSR170 v. 1.0.1 defines that the token of a session-scoped lock may + // not be moved over to another session. thus removal ist not possible + // and the lock is always present in the lock map. + Iterator it = lockMap.values().iterator(); + boolean found = false; + // loop over cached locks to determine if the token belongs to a session + // scoped lock, in which case the removal must fail immediately. + while (it.hasNext() && !found) { + LockImpl l = (LockImpl) it.next(); + if (lt.equals(l.getLockToken())) { + // break as soon as the lock associated with the given token was found. + found = true; + if (l.isSessionScoped()) { + throw new LockException("Cannot remove lock token associated with a session scoped lock."); + } + } + } + + // remove lock token from sessionInfo. call will fail, if the session + // is not lock holder. + wspManager.removeLockToken(lt); + // inform about this lt being removed from this session + notifyTokenRemoved(lt); + } + + //----------------< org.apache.jackrabbit.jcr2spi.lock.LockStateManager >--- + /** + * @see LockStateManager#lock(NodeState,boolean,boolean) */ public Lock lock(NodeState nodeState, boolean isDeep, boolean isSessionScoped) throws LockException, RepositoryException { return lock(nodeState, isDeep, isSessionScoped, Long.MAX_VALUE, null); } /** - * @see LockManager#lock(NodeState,boolean,boolean,long,String) + * @see LockStateManager#lock(NodeState,boolean,boolean,long,String) */ public Lock lock(NodeState nodeState, boolean isDeep, boolean isSessionScoped, long timeoutHint, String ownerHint) throws RepositoryException { // retrieve node first @@ -164,8 +222,7 @@ } /** - * @see LockManager#unlock(NodeState) - * @param nodeState + * @see LockStateManager#unlock(NodeState) */ public void unlock(NodeState nodeState) throws LockException, RepositoryException { // execute the operation. Note, that its possible that the session is @@ -190,7 +247,7 @@ * Note, that the flag indicating session-scoped lock cannot be retrieved * unless the current session is the lock holder. * - * @see LockManager#getLock(NodeState) + * @see LockStateManager#getLock(NodeState) * @param nodeState */ public Lock getLock(NodeState nodeState) throws LockException, RepositoryException { @@ -206,8 +263,7 @@ } /** - * @see LockManager#isLocked(NodeState) - * @param nodeState + * @see LockStateManager#isLocked(NodeState) */ public boolean isLocked(NodeState nodeState) throws RepositoryException { LockImpl l = getLockImpl(nodeState, false); @@ -215,8 +271,7 @@ } /** - * @see LockManager#checkLock(NodeState) - * @param nodeState + * @see LockStateManager#checkLock(NodeState) */ public void checkLock(NodeState nodeState) throws LockException, RepositoryException { // shortcut: new status indicates that a new state was already added @@ -232,69 +287,8 @@ } // else: state is not locked at all || session is lock-holder } - //--------< LockManager, org.apache.jackrabbit.jcr2spi.lock.LockManager >--- - /** - * Returns the lock tokens present on the SessionInfo this - * manager has been created with. - * - * @see LockManager#getLockTokens() - */ - public String[] getLockTokens() { - return wspManager.getLockTokens(); - } - - /** - * Delegates this call to {@link WorkspaceManager#addLockToken(String)}. - * If this succeeds this method will inform all locks stored in the local - * map in order to give them the chance to update their lock information. - * - * @see LockManager#addLockToken(String) - */ - public void addLockToken(String lt) throws LockException, RepositoryException { - wspManager.addLockToken(lt); - notifyTokenAdded(lt); - } - - /** - * If the lock addressed by the token is session-scoped, this method will - * throw a LockException, such as defined by JSR170 v.1.0.1 for - * {@link Session#removeLockToken(String)}.
Otherwise the call is - * delegated to {@link WorkspaceManager#removeLockToken(String)}. - * All locks stored in the local lock map are notified by the removed - * token in order have them updated their lock information. - * - * @see LockManager#removeLockToken(String) - */ - public void removeLockToken(String lt) throws LockException, RepositoryException { - // JSR170 v. 1.0.1 defines that the token of a session-scoped lock may - // not be moved over to another session. thus removal ist not possible - // and the lock is always present in the lock map. - Iterator it = lockMap.values().iterator(); - boolean found = false; - // loop over cached locks to determine if the token belongs to a session - // scoped lock, in which case the removal must fail immediately. - while (it.hasNext() && !found) { - LockImpl l = (LockImpl) it.next(); - if (lt.equals(l.getLockToken())) { - // break as soon as the lock associated with the given token was found. - found = true; - if (l.isSessionScoped()) { - throw new LockException("Cannot remove lock token associated with a session scoped lock."); - } - } - } - - // remove lock token from sessionInfo. call will fail, if the session - // is not lock holder. - wspManager.removeLockToken(lt); - // inform about this lt being removed from this session - notifyTokenRemoved(lt); - } - //----------------------------------------------------< SessionListener >--- /** - * - * @param session * @see SessionListener#loggingOut(Session) */ public void loggingOut(Session session) { @@ -316,8 +310,6 @@ } /** - * - * @param session * @see SessionListener#loggedOut(Session) */ public void loggedOut(Session session) { Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java Wed May 6 10:12:20 2009 @@ -225,17 +225,27 @@ } } - public void bindValue(String varName, Value value) - throws RepositoryException { + /** + * @see Query#bindValue(String, Value) + */ + public void bindValue(String varName, Value value) throws RepositoryException { + //TODO throw new UnsupportedRepositoryOperationException("JCR-1104"); } + /** + * @see Query#setLimit(long) + */ public void setLimit(long limit) { + // TODO throw new UnsupportedOperationException("JCR-1104"); } + /** + * @see Query#setOffset(long) + */ public void setOffset(long offset) { + // TODO throw new UnsupportedOperationException("JCR-1104"); } - } Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java Wed May 6 10:12:20 2009 @@ -264,27 +264,51 @@ } } + /** + * @see Row#getNode() + */ public Node getNode() throws RepositoryException { + // TODO throw new UnsupportedRepositoryOperationException("JCR-1104"); } + /** + * @see Row#getNode(String) + */ public Node getNode(String selectorName) throws RepositoryException { + // TODO throw new UnsupportedRepositoryOperationException("JCR-1104"); } + /** + * @see Row#getPath() + */ public String getPath() throws RepositoryException { + // TODO throw new UnsupportedRepositoryOperationException("JCR-1104"); } + /** + * @see Row#getPath(String) + */ public String getPath(String selectorName) throws RepositoryException { + // TODO throw new UnsupportedRepositoryOperationException("JCR-1104"); } + /** + * @see Row#getScore() + */ public double getScore() throws RepositoryException { + // TODO throw new UnsupportedRepositoryOperationException("JCR-1104"); } + /** + * @see Row#getScore(String) + */ public double getScore(String selectorName) throws RepositoryException { + // TODO throw new UnsupportedRepositoryOperationException("JCR-1104"); } Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java Wed May 6 10:12:20 2009 @@ -483,7 +483,7 @@ // make sure there's no foreign lock present the node (or the parent node // in case the state represents a PropertyState). NodeState nodeState = (itemState.isNode()) ? ((NodeState)itemState) : itemState.getParent(); - mgrProvider.getLockManager().checkLock(nodeState); + mgrProvider.getLockStateManager().checkLock(nodeState); } /** Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java Wed May 6 10:12:20 2009 @@ -75,9 +75,6 @@ //-----------------------------------------------------< VersionHistory >--- /** - * - * @return - * @throws RepositoryException * @see VersionHistory#getVersionableUUID() */ public String getVersionableUUID() throws RepositoryException { @@ -86,9 +83,6 @@ } /** - * - * @return - * @throws RepositoryException * @see VersionHistory#getRootVersion() */ public Version getRootVersion() throws RepositoryException { @@ -103,9 +97,6 @@ } /** - * - * @return - * @throws RepositoryException * @see VersionHistory#getAllVersions() */ public VersionIterator getAllVersions() throws RepositoryException { @@ -124,11 +115,6 @@ } /** - * - * @param versionName - * @return - * @throws VersionException - * @throws RepositoryException * @see VersionHistory#getVersion(String) */ public Version getVersion(String versionName) throws VersionException, RepositoryException { @@ -138,10 +124,6 @@ } /** - * - * @param label - * @return - * @throws RepositoryException * @see VersionHistory#getVersionByLabel(String) */ public Version getVersionByLabel(String label) throws RepositoryException { @@ -150,12 +132,6 @@ } /** - * - * @param versionName - * @param label - * @param moveLabel - * @throws VersionException - * @throws RepositoryException * @see VersionHistory#addVersionLabel(String, String, boolean) */ public void addVersionLabel(String versionName, String label, boolean moveLabel) throws VersionException, RepositoryException { @@ -167,10 +143,6 @@ } /** - * - * @param label - * @throws VersionException - * @throws RepositoryException * @see VersionHistory#removeVersionLabel(String) */ public void removeVersionLabel(String label) throws VersionException, RepositoryException { @@ -183,10 +155,6 @@ } /** - * - * @param label - * @return - * @throws RepositoryException * @see VersionHistory#hasVersionLabel(String) */ public boolean hasVersionLabel(String label) throws RepositoryException { @@ -202,11 +170,6 @@ } /** - * @param version - * @param label - * @return - * @throws VersionException - * @throws RepositoryException * @see VersionHistory#hasVersionLabel(Version, String) */ public boolean hasVersionLabel(Version version, String label) throws VersionException, RepositoryException { @@ -226,9 +189,6 @@ } /** - * - * @return - * @throws RepositoryException * @see VersionHistory#getVersionLabels() */ public String[] getVersionLabels() throws RepositoryException { @@ -243,11 +203,6 @@ } /** - * - * @param version - * @return - * @throws VersionException - * @throws RepositoryException * @see VersionHistory#getVersionLabels(Version) */ public String[] getVersionLabels(Version version) throws VersionException, RepositoryException { @@ -267,13 +222,6 @@ } /** - * - * @param versionName - * @throws ReferentialIntegrityException - * @throws AccessDeniedException - * @throws UnsupportedRepositoryOperationException - * @throws VersionException - * @throws RepositoryException * @see VersionHistory#removeVersion(String) */ public void removeVersion(String versionName) throws ReferentialIntegrityException, @@ -284,6 +232,39 @@ session.getVersionStateManager().removeVersion((NodeState) getItemState(), vState); } + + /** + * @see VersionHistory#getAllFrozenNodes() + */ + public NodeIterator getAllFrozenNodes() throws RepositoryException { + // TODO + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see VersionHistory#getAllLinearFrozenNodes() + */ + public NodeIterator getAllLinearFrozenNodes() throws RepositoryException { + // TODO + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see VersionHistory#getAllLinearVersions() + */ + public VersionIterator getAllLinearVersions() throws RepositoryException { + // TODO + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see VersionHistory#getVersionableIdentifier() + */ + public String getVersionableIdentifier() throws RepositoryException { + // TODO + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + //---------------------------------------------------------------< Item >--- /** * @@ -422,21 +403,4 @@ // TODO: check again.. is this correct? or should NodeEntry be altered entry.getNodeState(); } - - public NodeIterator getAllFrozenNodes() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public NodeIterator getAllLinearFrozenNodes() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public VersionIterator getAllLinearVersions() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public String getVersionableIdentifier() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - } \ No newline at end of file Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java?rev=772128&r1=772127&r2=772128&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java (original) +++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java Wed May 6 10:12:20 2009 @@ -88,6 +88,30 @@ return getVersions(NameConstants.JCR_PREDECESSORS); } + /** + * @see Version#getFrozenNode() + */ + public Node getFrozenNode() throws RepositoryException { + // TODO + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see Version#getLinearPredecessor() + */ + public Version getLinearPredecessor() throws RepositoryException { + // TODO + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + + /** + * @see Version#getLinearSuccessor() + */ + public Version getLinearSuccessor() throws RepositoryException { + // TODO + throw new UnsupportedRepositoryOperationException("JCR-1104"); + } + //---------------------------------------------------------------< Item >--- /** * @@ -159,17 +183,4 @@ } return versions; } - - public Node getFrozenNode() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public Version getLinearPredecessor() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - - public Version getLinearSuccessor() throws RepositoryException { - throw new UnsupportedRepositoryOperationException("JCR-1104"); - } - } \ No newline at end of file