Return-Path: Delivered-To: apmail-incubator-jackrabbit-commits-archive@www.apache.org Received: (qmail 66443 invoked from network); 30 Apr 2005 15:22:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 30 Apr 2005 15:22:54 -0000 Received: (qmail 2277 invoked by uid 500); 30 Apr 2005 15:24:19 -0000 Mailing-List: contact jackrabbit-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jackrabbit-dev@incubator.apache.org Delivered-To: mailing list jackrabbit-commits@incubator.apache.org Received: (qmail 2259 invoked by uid 500); 30 Apr 2005 15:24:18 -0000 Delivered-To: apmail-incubator-jackrabbit-cvs@incubator.apache.org Received: (qmail 2256 invoked by uid 99); 30 Apr 2005 15:24:18 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Sat, 30 Apr 2005 08:24:18 -0700 Received: (qmail 66435 invoked by uid 65534); 30 Apr 2005 15:22:51 -0000 Message-ID: <20050430152251.66434.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: svn commit: r165408 - in /incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core: ./ version/ version/persistence/ xml/ Date: Sat, 30 Apr 2005 15:22:50 -0000 To: jackrabbit-cvs@incubator.apache.org From: tripod@apache.org X-Mailer: svnmailer-1.0.0-dev X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: tripod Date: Sat Apr 30 08:22:48 2005 New Revision: 165408 URL: http://svn.apache.org/viewcvs?rev=3D165408&view=3Drev Log: - adding correct mix:versionable handle for workspaceimporter Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl= .java incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= PersistentVersionManager.java incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= VersionManager.java incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= VersionManagerImpl.java incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= VersionNodeState.java incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= persistence/InternalFrozenNodeImpl.java incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= persistence/InternalVersionHistoryImpl.java incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= persistence/NativePVM.java incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/xml/Work= spaceImporter.java Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/It= emImpl.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/= apache/jackrabbit/core/ItemImpl.java?rev=3D165408&r1=3D165407&r2=3D165408&v= iew=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl= .java (original) +++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl= .java Sat Apr 30 08:22:48 2005 @@ -882,7 +882,7 @@ NodeImpl node =3D (NodeImpl) itemMgr.getItem(itemState.get= Id()); if (node.isNodeType(MIX_VERSIONABLE)) { if (!node.hasProperty(JCR_VERSIONHISTORY)) { - VersionHistory hist =3D session.getVersionManager(= )=2EcreateVersionHistory(node); + VersionHistory hist =3D session.getVersionManager(= )=2EcreateVersionHistory(session, (NodeState) itemState); node.internalSetProperty(JCR_VERSIONHISTORY, Inter= nalValue.create(new UUID(hist.getUUID()))); node.internalSetProperty(JCR_BASEVERSION, Internal= Value.create(new UUID(hist.getRootVersion().getUUID()))); node.internalSetProperty(JCR_ISCHECKEDOUT, Interna= lValue.create(true)); Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ve= rsion/PersistentVersionManager.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/= apache/jackrabbit/core/version/PersistentVersionManager.java?rev=3D165408&r= 1=3D165407&r2=3D165408&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= PersistentVersionManager.java (original) +++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= PersistentVersionManager.java Sat Apr 30 08:22:48 2005 @@ -18,6 +18,7 @@ =20 import org.apache.jackrabbit.core.NodeImpl; import org.apache.jackrabbit.core.state.UpdatableItemStateManager; +import org.apache.jackrabbit.core.state.NodeState; =20 import javax.jcr.RepositoryException; import java.util.Iterator; @@ -37,7 +38,7 @@ * @return the newly created version history. * @throws RepositoryException */ - InternalVersionHistory createVersionHistory(NodeImpl node) + InternalVersionHistory createVersionHistory(NodeState node) throws RepositoryException; =20 /** Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ve= rsion/VersionManager.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/= apache/jackrabbit/core/version/VersionManager.java?rev=3D165408&r1=3D165407= &r2=3D165408&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= VersionManager.java (original) +++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= VersionManager.java Sat Apr 30 08:22:48 2005 @@ -19,9 +19,11 @@ import org.apache.jackrabbit.core.NodeImpl; import org.apache.jackrabbit.core.QName; import org.apache.jackrabbit.core.state.ItemStateManager; +import org.apache.jackrabbit.core.state.NodeState; import org.apache.jackrabbit.core.virtual.VirtualItemStateProvider; =20 import javax.jcr.RepositoryException; +import javax.jcr.Session; import javax.jcr.version.Version; import javax.jcr.version.VersionHistory; import java.util.Iterator; @@ -50,7 +52,7 @@ * @return * @throws RepositoryException */ - VersionHistory createVersionHistory(NodeImpl node) throws RepositoryEx= ception; + VersionHistory createVersionHistory(Session session, NodeState node) t= hrows RepositoryException; =20 /** * invokes the checkin() on the persistent version manager and remaps = the Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ve= rsion/VersionManagerImpl.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/= apache/jackrabbit/core/version/VersionManagerImpl.java?rev=3D165408&r1=3D16= 5407&r2=3D165408&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= VersionManagerImpl.java (original) +++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= VersionManagerImpl.java Sat Apr 30 08:22:48 2005 @@ -29,12 +29,14 @@ import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry; import org.apache.jackrabbit.core.nodetype.NodeTypeImpl; import org.apache.jackrabbit.core.state.ItemStateManager; +import org.apache.jackrabbit.core.state.NodeState; import org.apache.jackrabbit.core.virtual.VirtualItemStateProvider; import org.apache.log4j.Logger; =20 import javax.jcr.RepositoryException; import javax.jcr.PropertyIterator; import javax.jcr.NodeIterator; +import javax.jcr.Session; import javax.jcr.version.Version; import javax.jcr.version.VersionHistory; import javax.jcr.version.VersionException; @@ -141,15 +143,15 @@ * @return * @throws javax.jcr.RepositoryException */ - public VersionHistory createVersionHistory(NodeImpl node) throws Repos= itoryException { + public VersionHistory createVersionHistory(Session session, NodeState = node) throws RepositoryException { InternalVersionHistory history =3D vMgr.createVersionHistory(node); virtProvider.invalidateItem(new NodeId(VERSION_STORAGE_NODE_UUID),= false); - VersionHistoryImpl vh =3D (VersionHistoryImpl) node.getSession().g= etNodeByUUID(history.getId()); + VersionHistoryImpl vh =3D (VersionHistoryImpl) session.getNodeByUU= ID(history.getId()); =20 // generate observation events List events =3D new ArrayList(); recursiveAdd(events, (NodeImpl) vh.getParent(), vh); - obsMgr.dispatch(events, (SessionImpl) node.getSession()); + obsMgr.dispatch(events, (SessionImpl) session); =20 return vh; } Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ve= rsion/VersionNodeState.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/= apache/jackrabbit/core/version/VersionNodeState.java?rev=3D165408&r1=3D1654= 07&r2=3D165408&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= VersionNodeState.java (original) +++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= VersionNodeState.java Sat Apr 30 08:22:48 2005 @@ -18,7 +18,6 @@ =20 import org.apache.jackrabbit.core.value.InternalValue; import org.apache.jackrabbit.core.QName; -import org.apache.jackrabbit.core.value.InternalValue; import org.apache.jackrabbit.core.util.uuid.UUID; import org.apache.jackrabbit.core.virtual.VirtualNodeState; import org.apache.jackrabbit.core.virtual.VirtualPropertyState; Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ve= rsion/persistence/InternalFrozenNodeImpl.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/= apache/jackrabbit/core/version/persistence/InternalFrozenNodeImpl.java?rev= =3D165408&r1=3D165407&r2=3D165408&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= persistence/InternalFrozenNodeImpl.java (original) +++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= persistence/InternalFrozenNodeImpl.java Sat Apr 30 08:22:48 2005 @@ -21,7 +21,6 @@ import org.apache.jackrabbit.core.NodeImpl; import org.apache.jackrabbit.core.PropertyImpl; import org.apache.jackrabbit.core.QName; -import org.apache.jackrabbit.core.value.InternalValue; import org.apache.jackrabbit.core.nodetype.NodeTypeImpl; import org.apache.jackrabbit.core.state.ItemStateException; import org.apache.jackrabbit.core.state.NodeState; @@ -50,26 +49,20 @@ implements InternalFrozenNode, Constants { =20 /** - * checkin mode init. specifies, that node is only initialized + * checkin mode version. */ - public static final int MODE_INIT =3D 0; - - /** - * checkin mode version. specifies, that the OPV value should be used = to - * determine the checkin behaviour. - */ - public static final int MODE_VERSION =3D 1; + private static final int MODE_VERSION =3D 0; =20 /** * checkin mode copy. specifies, that the items are always copied. */ - private static final int MODE_COPY =3D 2; + private static final int MODE_COPY =3D 1; =20 /** * mode flag specifies, that the mode should be recursed. otherwise i * will be redetermined by the opv. */ - private static final int MODE_COPY_RECURSIVE =3D 6; + private static final int MODE_COPY_RECURSIVE =3D 3; =20 /** * the underlying persistance node @@ -268,22 +261,37 @@ * @throws RepositoryException */ protected static PersistentNode checkin(PersistentNode parent, QName n= ame, - NodeImpl src, int mode) + NodeImpl src) throws RepositoryException { + return checkin(parent, name, src, MODE_VERSION); + } =20 - PersistentNode node; + /** + * Checks-in a src node. It creates a new child node of + * parent with the given name and adds the + * source nodes properties according to their OPV value to the + * list of frozen properties. It creates frozen child nodes for each c= hild + * node of src according to its OPV value. + * + * @param parent + * @param name + * @param src + * @return + * @throws RepositoryException + */ + private static PersistentNode checkin(PersistentNode parent, QName nam= e, + NodeImpl src, int mode) + throws RepositoryException { =20 // create new node - node =3D parent.addNode(name, NativePVM.NT_REP_FROZEN, null); + PersistentNode node =3D parent.addNode(name, NativePVM.NT_REP_FROZ= EN, null); =20 // initialize the internal properties if (src.isNodeType(MIX_REFERENCEABLE)) { node.setPropertyValue(JCR_FROZENUUID, InternalValue.create(src= .getUUID())); } - node.setPropertyValue(JCR_FROZENPRIMARYTYPE, InternalValue.create(((NodeTypeImpl) src.getPrimaryNodeTyp= e()).getQName())); - if (src.hasProperty(NodeImpl.JCR_MIXINTYPES)) { NodeType[] mixins =3D src.getMixinNodeTypes(); InternalValue[] ivalues =3D new InternalValue[mixins.length]; @@ -292,67 +300,65 @@ } node.setPropertyValues(JCR_FROZENMIXINTYPES, PropertyType.NAME= , ivalues); } - if (mode !=3D MODE_INIT) { - // add the properties - PropertyIterator piter =3D src.getProperties(); - while (piter.hasNext()) { - PropertyImpl prop =3D (PropertyImpl) piter.nextProperty(); - int opv; - if ((mode & MODE_COPY) > 0) { - opv =3D OnParentVersionAction.COPY; - } else { - opv =3D prop.getDefinition().getOnParentVersion(); - } - switch (opv) { - case OnParentVersionAction.ABORT: - parent.reload(); - throw new VersionException("Checkin aborted due to= OPV in " + prop.safeGetJCRPath()); - case OnParentVersionAction.COMPUTE: - case OnParentVersionAction.IGNORE: - case OnParentVersionAction.INITIALIZE: - break; - case OnParentVersionAction.VERSION: - case OnParentVersionAction.COPY: - node.copyFrom(prop); - break; - } - } =20 + // add the properties + PropertyIterator piter =3D src.getProperties(); + while (piter.hasNext()) { + PropertyImpl prop =3D (PropertyImpl) piter.nextProperty(); + int opv; + if ((mode & MODE_COPY) > 0) { + opv =3D OnParentVersionAction.COPY; + } else { + opv =3D prop.getDefinition().getOnParentVersion(); + } + switch (opv) { + case OnParentVersionAction.ABORT: + parent.reload(); + throw new VersionException("Checkin aborted due to OPV= in " + prop.safeGetJCRPath()); + case OnParentVersionAction.COMPUTE: + case OnParentVersionAction.IGNORE: + case OnParentVersionAction.INITIALIZE: + break; + case OnParentVersionAction.VERSION: + case OnParentVersionAction.COPY: + node.copyFrom(prop); + break; + } + } =20 - // add the frozen children and vistories - NodeIterator niter =3D src.getNodes(); - while (niter.hasNext()) { - NodeImpl child =3D (NodeImpl) niter.nextNode(); - int opv; - if ((mode & MODE_COPY_RECURSIVE) > 0) { - opv =3D OnParentVersionAction.COPY; - } else { - opv =3D child.getDefinition().getOnParentVersion(); - } - switch (opv) { - case OnParentVersionAction.ABORT: - throw new VersionException("Checkin aborted due to= OPV in " + child.safeGetJCRPath()); - case OnParentVersionAction.COMPUTE: - case OnParentVersionAction.IGNORE: - case OnParentVersionAction.INITIALIZE: - break; - case OnParentVersionAction.VERSION: - if (child.isNodeType(MIX_VERSIONABLE)) { - // create frozen versionable child - PersistentNode newChild =3D node.addNode(child= .getQName(), NativePVM.NT_REP_FROZEN_HISTORY, null); - newChild.setPropertyValue(JCR_VERSIONHISTORY, - InternalValue.create(child.getVersionH= istory().getUUID())); - newChild.setPropertyValue(JCR_BASEVERSION, - InternalValue.create(child.getBaseVers= ion().getUUID())); - break; - } - // else copy but do not recurse - checkin(node, child.getQName(), child, MODE_COPY); - break; - case OnParentVersionAction.COPY: - checkin(node, child.getQName(), child, MODE_COPY_R= ECURSIVE); + // add the frozen children and vistories + NodeIterator niter =3D src.getNodes(); + while (niter.hasNext()) { + NodeImpl child =3D (NodeImpl) niter.nextNode(); + int opv; + if ((mode & MODE_COPY_RECURSIVE) > 0) { + opv =3D OnParentVersionAction.COPY; + } else { + opv =3D child.getDefinition().getOnParentVersion(); + } + switch (opv) { + case OnParentVersionAction.ABORT: + throw new VersionException("Checkin aborted due to OPV= in " + child.safeGetJCRPath()); + case OnParentVersionAction.COMPUTE: + case OnParentVersionAction.IGNORE: + case OnParentVersionAction.INITIALIZE: + break; + case OnParentVersionAction.VERSION: + if (child.isNodeType(MIX_VERSIONABLE)) { + // create frozen versionable child + PersistentNode newChild =3D node.addNode(child.get= QName(), NativePVM.NT_REP_FROZEN_HISTORY, null); + newChild.setPropertyValue(JCR_VERSIONHISTORY, + InternalValue.create(child.getVersionHisto= ry().getUUID())); + newChild.setPropertyValue(JCR_BASEVERSION, + InternalValue.create(child.getBaseVersion(= )=2EgetUUID())); break; - } + } + // else copy but do not recurse + checkin(node, child.getQName(), child, MODE_COPY); + break; + case OnParentVersionAction.COPY: + checkin(node, child.getQName(), child, MODE_COPY_RECUR= SIVE); + break; } } return node; Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ve= rsion/persistence/InternalVersionHistoryImpl.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/= apache/jackrabbit/core/version/persistence/InternalVersionHistoryImpl.java?= rev=3D165408&r1=3D165407&r2=3D165408&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= persistence/InternalVersionHistoryImpl.java (original) +++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= persistence/InternalVersionHistoryImpl.java Sat Apr 30 08:22:48 2005 @@ -21,6 +21,7 @@ import org.apache.jackrabbit.core.QName; import org.apache.jackrabbit.core.state.ItemStateException; import org.apache.jackrabbit.core.state.UpdatableItemStateManager; +import org.apache.jackrabbit.core.state.NodeState; import org.apache.jackrabbit.core.util.uuid.UUID; import org.apache.jackrabbit.core.value.InternalValue; import org.apache.jackrabbit.core.version.InternalVersion; @@ -38,6 +39,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Set; =20 /** * @@ -383,7 +385,7 @@ vNode.setPropertyValues(JCR_PREDECESSORS, PropertyType.STRING, pre= decessors); =20 // checkin source node - InternalFrozenNodeImpl.checkin(vNode, JCR_FROZENNODE, src, Interna= lFrozenNodeImpl.MODE_VERSION); + InternalFrozenNodeImpl.checkin(vNode, JCR_FROZENNODE, src); =20 // and store node.store(); @@ -456,14 +458,14 @@ * @throws RepositoryException */ protected static InternalVersionHistoryImpl create(PersistentVersionMa= nager vMgr, PersistentNode parent, - String historyId, Q= Name name, NodeImpl src) + String historyId, Q= Name name, NodeState nodeState) throws RepositoryException { =20 // create history node PersistentNode pNode =3D parent.addNode(name, NativePVM.NT_REP_VER= SION_HISTORY, historyId); =20 // set the versionable uuid - pNode.setPropertyValue(NativePVM.PROPNAME_VERSIONABLE_ID, Internal= Value.create(src.internalGetUUID())); + pNode.setPropertyValue(NativePVM.PROPNAME_VERSIONABLE_ID, Internal= Value.create(nodeState.getUUID())); =20 // create label node pNode.addNode(NativePVM.NODENAME_VERSION_LABELS, NativePVM.NT_REP_= VERSION_LABELS, null); @@ -478,7 +480,22 @@ vNode.setPropertyValues(JCR_PREDECESSORS, PropertyType.REFERENCE, = InternalValue.EMPTY_ARRAY); =20 // add also an empty frozen node to the root version - InternalFrozenNodeImpl.checkin(vNode, JCR_FROZENNODE, src, Interna= lFrozenNodeImpl.MODE_INIT); + PersistentNode node =3D vNode.addNode(JCR_FROZENNODE, NativePVM.NT= _REP_FROZEN, null); + + // initialize the internal properties + node.setPropertyValue(JCR_FROZENUUID, InternalValue.create(nodeSta= te.getUUID())); + node.setPropertyValue(JCR_FROZENPRIMARYTYPE, + InternalValue.create(nodeState.getNodeTypeName())); + + Set mixins =3D nodeState.getMixinTypeNames(); + if (mixins.size()>0) { + InternalValue[] ivalues =3D new InternalValue[mixins.size()]; + Iterator iter=3Dmixins.iterator(); + for (int i =3D 0; i < mixins.size(); i++) { + ivalues[i] =3D InternalValue.create((QName) iter.next()); + } + node.setPropertyValues(JCR_FROZENMIXINTYPES, PropertyType.NAME= , ivalues); + } =20 parent.store(); return new InternalVersionHistoryImpl(vMgr, pNode); Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ve= rsion/persistence/NativePVM.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/= apache/jackrabbit/core/version/persistence/NativePVM.java?rev=3D165408&r1= =3D165407&r2=3D165408&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= persistence/NativePVM.java (original) +++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/version/= persistence/NativePVM.java Sat Apr 30 08:22:48 2005 @@ -227,11 +227,11 @@ * @return the newly created version history. * @throws RepositoryException */ - public InternalVersionHistory createVersionHistory(NodeImpl node) + public InternalVersionHistory createVersionHistory(NodeState node) throws RepositoryException { =20 // check if version history for that node already exists - InternalVersionHistoryImpl hist =3D getHistoryByVersionableUUID(no= de.internalGetUUID()); + InternalVersionHistoryImpl hist =3D getHistoryByVersionableUUID(no= de.getUUID()); if (hist !=3D null) { return hist; } @@ -272,7 +272,7 @@ versionedUUIDs.put(hist.getVersionableUUID(), hist.getId()); =20 log.info("Created new version history " + hist.getId() - + " for " + node.safeGetJCRPath() + + " for " + node + ". NumHistories=3D" + versionedUUIDs.size()); return hist; } Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/xm= l/WorkspaceImporter.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/= apache/jackrabbit/core/xml/WorkspaceImporter.java?rev=3D165408&r1=3D165407&= r2=3D165408&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/xml/Work= spaceImporter.java (original) +++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/xml/Work= spaceImporter.java Sat Apr 30 08:22:48 2005 @@ -48,6 +48,7 @@ import javax.jcr.lock.LockException; import javax.jcr.nodetype.ConstraintViolationException; import javax.jcr.version.VersionException; +import javax.jcr.version.VersionHistory; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -267,9 +268,8 @@ if (ent.includesNodeType(MIX_VERSIONABLE)) { PropDef def; PropertyState prop; - - // @todo FIXME initialize version history - String dummyUUID =3D "00000000-0000-0000-0000-000000000000"; + SessionImpl session =3D (SessionImpl) wsp.getSession(); + VersionHistory hist =3D session.getVersionManager().createVers= ionHistory(session, node); =20 // jcr:versionHistory if (!node.hasPropertyEntry(JCR_VERSIONHISTORY)) { @@ -277,7 +277,7 @@ PropertyType.REFERENCE, false, node); prop =3D itemOps.createPropertyState(node, JCR_VERSIONHIST= ORY, PropertyType.REFERENCE, def); - prop.setValues(new InternalValue[]{InternalValue.create(ne= w UUID(dummyUUID))}); + prop.setValues(new InternalValue[]{InternalValue.create(ne= w UUID(hist.getUUID()))}); } =20 // jcr:baseVersion @@ -286,7 +286,7 @@ PropertyType.REFERENCE, false, node); prop =3D itemOps.createPropertyState(node, JCR_BASEVERSION, PropertyType.REFERENCE, def); - prop.setValues(new InternalValue[]{InternalValue.create(ne= w UUID(dummyUUID))}); + prop.setValues(new InternalValue[]{InternalValue.create(ne= w UUID(hist.getRootVersion().getUUID()))}); } =20 // jcr:predecessors @@ -295,7 +295,7 @@ PropertyType.REFERENCE, true, node); prop =3D itemOps.createPropertyState(node, JCR_PREDECESSOR= S, PropertyType.REFERENCE, def); - prop.setValues(new InternalValue[]{InternalValue.create(ne= w UUID(dummyUUID))}); + prop.setValues(new InternalValue[]{InternalValue.create(ne= w UUID(hist.getRootVersion().getUUID()))}); } =20 // jcr:isCheckedOut