Return-Path: X-Original-To: apmail-jackrabbit-oak-commits-archive@minotaur.apache.org Delivered-To: apmail-jackrabbit-oak-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2B30410495 for ; Mon, 12 Aug 2013 06:48:50 +0000 (UTC) Received: (qmail 80069 invoked by uid 500); 12 Aug 2013 06:48:49 -0000 Delivered-To: apmail-jackrabbit-oak-commits-archive@jackrabbit.apache.org Received: (qmail 79998 invoked by uid 500); 12 Aug 2013 06:48:43 -0000 Mailing-List: contact oak-commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: oak-dev@jackrabbit.apache.org Delivered-To: mailing list oak-commits@jackrabbit.apache.org Received: (qmail 79981 invoked by uid 99); 12 Aug 2013 06:48:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 Aug 2013 06:48:39 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 Aug 2013 06:48:35 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 15B5923889BF; Mon, 12 Aug 2013 06:48:14 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1513050 - in /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr: ItemImpl.java NodeImpl.java PropertyImpl.java SessionContext.java SessionImpl.java query/QueryImpl.java version/VersionImpl.java Date: Mon, 12 Aug 2013 06:48:13 -0000 To: oak-commits@jackrabbit.apache.org From: jukka@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130812064814.15B5923889BF@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jukka Date: Mon Aug 12 06:48:13 2013 New Revision: 1513050 URL: http://svn.apache.org/r1513050 Log: OAK-953: Allow sub-classing of SessionImpl Move createNode() from SessionContext to NodeImpl to avoid overloading SessionContext Modified: 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/NodeImpl.java jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.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/query/QueryImpl.java jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/VersionImpl.java 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=1513050&r1=1513049&r2=1513050&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 Mon Aug 12 06:48:13 2013 @@ -189,7 +189,7 @@ abstract class ItemImpl createNodeOrNull( + NodeDelegate delegate, SessionContext context) + throws RepositoryException { + if (delegate != null) { + return createNode(delegate, context); + } else { + return null; + } + } + + public static NodeImpl createNode( + NodeDelegate delegate, SessionContext context) + throws RepositoryException { + PropertyDelegate pd = delegate.getPropertyOrNull(JCR_PRIMARYTYPE); + String type = pd != null ? pd.getString() : null; + if (JcrConstants.NT_VERSION.equals(type)) { + VersionManagerDelegate vmd = + VersionManagerDelegate.create(context.getSessionDelegate()); + return new VersionImpl(vmd.createVersion(delegate), context); + } else if (JcrConstants.NT_VERSIONHISTORY.equals(type)) { + VersionManagerDelegate vmd = + VersionManagerDelegate.create(context.getSessionDelegate()); + return new VersionHistoryImpl(vmd.createVersionHistory(delegate), context); + } else { + return new NodeImpl(delegate, context); + } + } + public NodeImpl(T dlg, SessionContext sessionContext) { super(dlg, sessionContext); } @@ -137,7 +170,7 @@ public class NodeImpl(nd, this); - } - } - public ValueFactory getValueFactory() { return valueFactory; } 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=1513050&r1=1513049&r2=1513050&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 Mon Aug 12 06:48:13 2013 @@ -140,7 +140,7 @@ public class SessionImpl implements Jack throws RepositoryException { ItemDelegate item = sd.getItem(oakPath); if (item instanceof NodeDelegate) { - return sessionContext.createNodeOrNull((NodeDelegate) item); + return NodeImpl.createNodeOrNull((NodeDelegate) item, sessionContext); } else if (item instanceof PropertyDelegate) { return new PropertyImpl((PropertyDelegate) item, sessionContext); } else { @@ -161,7 +161,7 @@ public class SessionImpl implements Jack return perform(new ReadOperation() { @Override public Node perform() throws RepositoryException { - return sessionContext.createNodeOrNull(sd.getNode(getOakPathOrThrow(absPath))); + return NodeImpl.createNodeOrNull(sd.getNode(getOakPathOrThrow(absPath)), sessionContext); } }); } @@ -271,7 +271,7 @@ public class SessionImpl implements Jack if (nd == null) { throw new AccessDeniedException("Root node is not accessible."); } - return sessionContext.createNodeOrNull(nd); + return NodeImpl.createNodeOrNull(nd, sessionContext); } }); } @@ -299,7 +299,7 @@ public class SessionImpl implements Jack if (nd == null) { throw new ItemNotFoundException("Node with id " + id + " does not exist."); } - return sessionContext.createNodeOrNull(nd); + return NodeImpl.createNodeOrNull(nd, sessionContext); } }); } Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java?rev=1513050&r1=1513049&r2=1513050&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java (original) +++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java Mon Aug 12 06:48:13 2013 @@ -34,6 +34,7 @@ import javax.jcr.version.VersionExceptio import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.oak.commons.PathUtils; +import org.apache.jackrabbit.oak.jcr.NodeImpl; import org.apache.jackrabbit.oak.jcr.SessionContext; import org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate; @@ -139,7 +140,7 @@ public class QueryImpl implements Query if (parentDelegate == null) { throw new PathNotFoundException("The specified path does not exist: " + parent); } - Node parentNode = sessionContext.createNodeOrNull(parentDelegate); + Node parentNode = NodeImpl.createNodeOrNull(parentDelegate, sessionContext); if (!parentNode.isCheckedOut()) { throw new VersionException("Cannot store query. Node at " + absPath + " is checked in."); Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/VersionImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/VersionImpl.java?rev=1513050&r1=1513049&r2=1513050&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/VersionImpl.java (original) +++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/VersionImpl.java Mon Aug 12 06:48:13 2013 @@ -124,8 +124,9 @@ public class VersionImpl extends NodeImp return perform(new SessionOperation() { @Override public Node perform() throws RepositoryException { - return sessionContext.createNodeOrNull( - dlg.getChild(VersionConstants.JCR_FROZENNODE)); + return NodeImpl.createNodeOrNull( + dlg.getChild(VersionConstants.JCR_FROZENNODE), + sessionContext); } }); }