You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2006/02/16 11:48:29 UTC

svn commit: r378221 [6/7] - in /incubator/jackrabbit/trunk: contrib/ contrib/bdb-persistence/ contrib/bdb-persistence/src/java/org/apache/jackrabbit/core/state/bdb/ contrib/jca/ contrib/jcr-server/ contrib/jcrtaglib/ contrib/nt-ns-util/ contrib/orm-per...

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistory.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistory.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistory.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistory.java Thu Feb 16 02:48:20 2006
@@ -17,6 +17,8 @@
 package org.apache.jackrabbit.core.version;
 
 import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.core.NodeId;
+import org.apache.jackrabbit.uuid.UUID;
 
 import javax.jcr.version.VersionException;
 import java.util.Iterator;
@@ -52,20 +54,20 @@
     /**
      * Checks if the version for the given uuid exists in this history.
      *
-     * @param uuid the uuid of the version
+     * @param id the id of the version
      * @return <code>true</code> if the version exists;
      *         <code>false</code> otherwise.
      */
-    boolean hasVersion(String uuid);
+    boolean hasVersion(NodeId id);
 
     /**
      * Returns the version with the given uuid or <code>null</code> if the
      * respective version does not exist.
      *
-     * @param uuid the uuid of the version
+     * @param id the id of the version
      * @return the internal version ot <code>null</code>
      */
-    InternalVersion getVersion(String uuid);
+    InternalVersion getVersion(NodeId id);
 
     /**
      * Equivalalent to {@link javax.jcr.version.VersionHistory#getVersionByLabel(java.lang.String)}
@@ -95,20 +97,20 @@
      *
      * @return the UUID of the versionable node.
      */
-    String getVersionableUUID();
+    UUID getVersionableUUID();
 
     /**
      * Returns a string  iterator over all version labels that exist in this
      * version history
      *
-     * @return
+     * @return the labels
      */
     QName[] getVersionLabels();
 
     /**
-     * Returns the UUID of the version labels node
+     * Returns the Id of the version labels node.
      *
-     * @return
+     * @return the id of the version labels node.
      */
-    String getVersionLabelsUUID();
+    NodeId getVersionLabelsId();
 }

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java Thu Feb 16 02:48:20 2006
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.core.version;
 
 import org.apache.jackrabbit.core.NodeImpl;
+import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.state.ItemStateException;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.PropertyState;
@@ -61,7 +62,7 @@
 
     /**
      * the hashmap of all versions
-     * key = versionId (String)
+     * key = versionId (NodeId)
      * value = version
      */
     private HashMap versionCache = new HashMap();
@@ -84,12 +85,12 @@
     /**
      * the id of this history
      */
-    private String historyId;
+    private NodeId historyId;
 
     /**
-     * the if of the versionable node
+     * the id of the versionable node
      */
-    private String versionableId;
+    private NodeId versionableId;
 
     /**
      * Creates a new VersionHistory object for the given node state.
@@ -111,10 +112,10 @@
         labelCache.clear();
 
         // get id
-        historyId = node.getUUID();
+        historyId = node.getNodeId();
 
         // get versionable id
-        versionableId = (String) node.getPropertyValue(QName.JCR_VERSIONABLEUUID).internalValue();
+        versionableId = NodeId.valueOf(node.getPropertyValue(QName.JCR_VERSIONABLEUUID).toString());
 
         // get entries
         NodeStateEx[] children = node.getChildNodes();
@@ -147,7 +148,7 @@
                 if (pState.getType() == PropertyType.REFERENCE) {
                     QName name = pState.getName();
                     UUID ref = (UUID) pState.getValues()[0].internalValue();
-                    InternalVersionImpl v = (InternalVersionImpl) getVersion(ref.toString());
+                    InternalVersionImpl v = (InternalVersionImpl) getVersion(new NodeId(ref));
                     labelCache.put(name, v);
                     v.internalAddLabel(name);
                 }
@@ -179,7 +180,7 @@
      * out when refreshing this history.
      */
     InternalVersionImpl createVersionInstance(NodeStateEx child) {
-        InternalVersionImpl v = (InternalVersionImpl) tempVersionCache.remove(child.getUUID());
+        InternalVersionImpl v = (InternalVersionImpl) tempVersionCache.remove(child.getNodeId());
         if (v != null) {
             v.clear();
         }
@@ -192,7 +193,7 @@
     /**
      * {@inheritDoc}
      */
-    public String getId() {
+    public NodeId getId() {
         return historyId;
     }
 
@@ -243,15 +244,15 @@
     /**
      * {@inheritDoc}
      */
-    public boolean hasVersion(String uuid) {
-        return versionCache.containsKey(uuid);
+    public boolean hasVersion(NodeId id) {
+        return versionCache.containsKey(id);
     }
 
     /**
      * {@inheritDoc}
      */
-    public InternalVersion getVersion(String uuid) {
-        return (InternalVersion) versionCache.get(uuid);
+    public InternalVersion getVersion(NodeId id) {
+        return (InternalVersion) versionCache.get(id);
     }
 
     /**
@@ -278,8 +279,8 @@
     /**
      * {@inheritDoc}
      */
-    public String getVersionableUUID() {
-        return versionableId;
+    public UUID getVersionableUUID() {
+        return versionableId.getUUID();
     }
 
     /**
@@ -292,8 +293,8 @@
     /**
      * {@inheritDoc}
      */
-    public String getVersionLabelsUUID() {
-        return labelNode.getUUID();
+    public NodeId getVersionLabelsId() {
+        return labelNode.getNodeId();
     }
 
     /**
@@ -383,7 +384,7 @@
             if (version == null) {
                 labelNode.removeProperty(label);
             } else {
-                labelNode.setPropertyValue(label, InternalValue.create(new UUID(version.getId())));
+                labelNode.setPropertyValue(label, InternalValue.create(version.getId().getUUID()));
             }
             labelNode.store();
         } catch (RepositoryException e) {
@@ -418,15 +419,15 @@
         Value[] preds = src.getProperty(QName.JCR_PREDECESSORS).getValues();
         InternalValue[] predecessors = new InternalValue[preds.length];
         for (int i = 0; i < preds.length; i++) {
-            String predId = preds[i].getString();
+            UUID predId = UUID.fromString(preds[i].getString());
             // check if version exist
-            if (!versionCache.containsKey(predId)) {
+            if (!versionCache.containsKey(new NodeId(predId))) {
                 throw new RepositoryException("invalid predecessor in source node");
             }
-            predecessors[i] = InternalValue.create(new UUID(predId));
+            predecessors[i] = InternalValue.create(predId);
         }
 
-        String versionId = UUID.randomUUID().toString();
+        NodeId versionId = new NodeId(UUID.randomUUID());
         NodeStateEx vNode = node.addNode(name, QName.NT_VERSION, versionId, true);
 
         // initialize 'created' and 'predecessors'
@@ -464,7 +465,7 @@
      */
     static InternalVersionHistoryImpl create(AbstractVersionManager vMgr,
                                              NodeStateEx parent,
-                                             String historyId, QName name,
+                                             NodeId historyId, QName name,
                                              NodeState nodeState)
             throws RepositoryException {
 
@@ -472,14 +473,14 @@
         NodeStateEx pNode = parent.addNode(name, QName.NT_VERSIONHISTORY, historyId, true);
 
         // set the versionable uuid
-        pNode.setPropertyValue(QName.JCR_VERSIONABLEUUID, InternalValue.create(nodeState.getUUID()));
+        String versionableUUID = nodeState.getNodeId().getUUID().toString();
+        pNode.setPropertyValue(QName.JCR_VERSIONABLEUUID, InternalValue.create(versionableUUID));
 
         // create label node
         pNode.addNode(QName.JCR_VERSIONLABELS, QName.NT_VERSIONLABELS, null, false);
 
         // create root version
-        String versionId = UUID.randomUUID().toString();
-
+        NodeId versionId = new NodeId(UUID.randomUUID());
         NodeStateEx vNode = pNode.addNode(QName.JCR_ROOTVERSION, QName.NT_VERSION, versionId, true);
 
         // initialize 'created' and 'predecessors'
@@ -491,7 +492,7 @@
         NodeStateEx node = vNode.addNode(QName.JCR_FROZENNODE, QName.NT_FROZENNODE, null, true);
 
         // initialize the internal properties
-        node.setPropertyValue(QName.JCR_FROZENUUID, InternalValue.create(nodeState.getUUID()));
+        node.setPropertyValue(QName.JCR_FROZENUUID, InternalValue.create(versionableUUID));
         node.setPropertyValue(QName.JCR_FROZENPRIMARYTYPE,
                 InternalValue.create(nodeState.getNodeTypeName()));
 

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java Thu Feb 16 02:48:20 2006
@@ -18,6 +18,7 @@
 
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.value.InternalValue;
+import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.name.QName;
 import org.apache.jackrabbit.uuid.UUID;
 
@@ -98,8 +99,8 @@
     /**
      * {@inheritDoc}
      */
-    public String getId() {
-        return node.getUUID();
+    public NodeId getId() {
+        return node.getNodeId();
     }
 
     /**
@@ -126,7 +127,7 @@
             if (entry == null) {
                 throw new InternalError("version has no frozen node: " + getId());
             }
-            return (InternalFrozenNode) vMgr.getItem(entry.getUUID());
+            return (InternalFrozenNode) vMgr.getItem(entry.getId());
         } catch (RepositoryException e) {
             throw new IllegalStateException("unable to retrieve frozen node: " + e);
         }
@@ -202,7 +203,8 @@
         InternalValue[] values = node.getPropertyValues(QName.JCR_PREDECESSORS);
         if (values != null) {
             for (int i = 0; i < values.length; i++) {
-                InternalVersionImpl v = (InternalVersionImpl) versionHistory.getVersion(values[i].internalValue().toString());
+                NodeId vId = new NodeId((UUID) values[i].internalValue());
+                InternalVersionImpl v = (InternalVersionImpl) versionHistory.getVersion(vId);
                 predecessors.add(v);
                 v.addSuccessor(this);
             }
@@ -235,7 +237,8 @@
     private void storePredecessors() throws RepositoryException {
         InternalValue[] values = new InternalValue[predecessors.size()];
         for (int i = 0; i < values.length; i++) {
-            values[i] = InternalValue.create(new UUID(((InternalVersion) predecessors.get(i)).getId()));
+            values[i] = InternalValue.create(
+                    ((InternalVersion) predecessors.get(i)).getId().getUUID());
         }
         node.setPropertyValues(QName.JCR_PREDECESSORS, PropertyType.STRING, values);
     }
@@ -308,7 +311,7 @@
      * adds a label to the label cache. does not affect storage
      *
      * @param label
-     * @return
+     * @return <code>true</code> if the label was added
      */
     boolean internalAddLabel(QName label) {
         if (labelCache == null) {
@@ -321,7 +324,7 @@
      * removes a label from the label cache. does not affect storage
      *
      * @param label
-     * @return
+     * @return <code>true</code> if the label was removed
      */
     boolean internalRemoveLabel(QName label) {
         if (labelCache == null) {
@@ -335,7 +338,7 @@
      * checks, if a label is in the label cache
      *
      * @param label
-     * @return
+     * @return <code>true</code> if the label exists
      */
     boolean internalHasLabel(QName label) {
         if (labelCache == null) {
@@ -348,7 +351,7 @@
     /**
      * returns the array of the cached labels
      *
-     * @return
+     * @return the internal labels
      */
     QName[] internalGetLabels() {
         if (labelCache == null) {

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionItem.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionItem.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionItem.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionItem.java Thu Feb 16 02:48:20 2006
@@ -16,6 +16,8 @@
  */
 package org.apache.jackrabbit.core.version;
 
+import org.apache.jackrabbit.core.NodeId;
+
 /**
  * This interface defines the base for all internal versioning items. Internal
  * versioning items are decoupled from their external form as exposed to the
@@ -25,16 +27,16 @@
 public interface InternalVersionItem {
 
     /**
-     * Returns the external id of this item
+     * Returns the id of this item.
      *
-     * @return
+     * @return the id of this item.
      */
-    String getId();
+    NodeId getId();
 
     /**
-     * returns the parent version item or null
+     * returns the parent version item or <code>null</code>.
      *
-     * @return
+     * @return the parent version item.
      */
     InternalVersionItem getParent();
 

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionItemImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionItemImpl.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionItemImpl.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionItemImpl.java Thu Feb 16 02:48:20 2006
@@ -16,6 +16,8 @@
  */
 package org.apache.jackrabbit.core.version;
 
+import org.apache.jackrabbit.core.NodeId;
+
 /**
  * Implements a <code>InternalVersionItem</code>.
  */
@@ -38,23 +40,23 @@
     /**
      * Returns the persistent version manager for this item
      *
-     * @return
+     * @return the version manager.
      */
     protected AbstractVersionManager getVersionManager() {
         return vMgr;
     }
 
     /**
-     * Returns the external id of this item
+     * Returns the id of this item
      *
-     * @return
+     * @return the id of this item.
      */
-    public abstract String getId();
+    public abstract NodeId getId();
 
     /**
-     * returns the parent version item or null
+     * returns the parent version item or <code>null</code>.
      *
-     * @return
+     * @return the parent version item or <code>null</code>.
      */
     public abstract InternalVersionItem getParent();
 

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java Thu Feb 16 02:48:20 2006
@@ -85,14 +85,14 @@
     /**
      * returns the name of this node
      *
-     * @return
+     * @return the name of this node
      */
     public QName getName() {
         if (name == null) {
             try {
-                String parentId = nodeState.getParentUUID();
-                NodeState parent = (NodeState) stateMgr.getItemState(new NodeId(parentId));
-                name = parent.getChildNodeEntry(nodeState.getUUID()).getName();
+                NodeId parentId = nodeState.getParentId();
+                NodeState parent = (NodeState) stateMgr.getItemState(parentId);
+                name = parent.getChildNodeEntry(nodeState.getNodeId()).getName();
             } catch (ItemStateException e) {
                 // should never occurr
                 throw new IllegalStateException(e.toString());
@@ -102,26 +102,26 @@
     }
 
     /**
-     * Returns the uuid of this node
+     * Returns the id of this node.
      *
-     * @return
+     * @return the id of this node.
      */
-    public String getUUID() {
-        return nodeState.getUUID();
+    public NodeId getNodeId() {
+        return nodeState.getNodeId();
     }
 
     /**
-     * Returns the parent uuid of this node
+     * Returns the parent id of this node
      *
-     * @return
+     * @return the parent id of this node
      */
-    public String getParentUUID() {
-        return nodeState.getParentUUID();
+    public NodeId getParentId() {
+        return nodeState.getParentId();
     }
 
     /**
-     * Returns the node state wrpaee
-     * @return
+     * Returns the underlaying node state.
+     * @return the underlaying node state.
      */
     public NodeState getState() {
         return nodeState;
@@ -130,7 +130,7 @@
     /**
      * Returns the properties of this node
      *
-     * @return
+     * @return the properties of this node
      */
     public PropertyState[] getProperties() throws ItemStateException {
         Set set = nodeState.getPropertyNames();
@@ -138,7 +138,7 @@
         int i = 0;
         for (Iterator iter = set.iterator(); iter.hasNext();) {
             QName propName = (QName) iter.next();
-            PropertyId propId = new PropertyId(nodeState.getUUID(), propName);
+            PropertyId propId = new PropertyId(nodeState.getNodeId(), propName);
             props[i++] = (PropertyState) stateMgr.getItemState(propId);
         }
         return props;
@@ -148,10 +148,10 @@
      * Checks if the given property exists
      *
      * @param name
-     * @return
+     * @return <code>true</code> if the given property exists.
      */
     public boolean hasProperty(QName name) {
-        PropertyId propId = new PropertyId(nodeState.getUUID(), name);
+        PropertyId propId = new PropertyId(nodeState.getNodeId(), name);
         return stateMgr.hasItemState(propId);
     }
 
@@ -159,10 +159,10 @@
      * Returns the values of the given property of <code>null</code>
      *
      * @param name
-     * @return
+     * @return the values of the given property.
      */
     public InternalValue[] getPropertyValues(QName name) {
-        PropertyId propId = new PropertyId(nodeState.getUUID(), name);
+        PropertyId propId = new PropertyId(nodeState.getNodeId(), name);
         try {
             PropertyState ps = (PropertyState) stateMgr.getItemState(propId);
             return ps.getValues();
@@ -175,10 +175,10 @@
      * Returns the value of the given property or <code>null</code>
      *
      * @param name
-     * @return
+     * @return the value of the given property.
      */
     public InternalValue getPropertyValue(QName name) {
-        PropertyId propId = new PropertyId(nodeState.getUUID(), name);
+        PropertyId propId = new PropertyId(nodeState.getNodeId(), name);
         try {
             PropertyState ps = (PropertyState) stateMgr.getItemState(propId);
             return ps.getValues()[0];
@@ -234,13 +234,13 @@
      * @param name
      * @param type
      * @param multiValued
-     * @return
+     * @return the property state
      * @throws RepositoryException
      */
     private PropertyState getOrCreatePropertyState(QName name, int type, boolean multiValued)
             throws RepositoryException {
 
-        PropertyId propId = new PropertyId(nodeState.getUUID(), name);
+        PropertyId propId = new PropertyId(nodeState.getNodeId(), name);
         if (stateMgr.hasItemState(propId)) {
             try {
                 PropertyState propState = (PropertyState) stateMgr.getItemState(propId);
@@ -257,7 +257,7 @@
                 throw new RepositoryException("Unable to create property: " + e.toString());
             }
         } else {
-            PropertyState propState = stateMgr.createNew(name, nodeState.getUUID());
+            PropertyState propState = stateMgr.createNew(name, nodeState.getNodeId());
             propState.setType(type);
             propState.setMultiValued(multiValued);
 
@@ -290,7 +290,7 @@
         try {
             return ntReg.getEffectiveNodeType((QName[]) set.toArray(new QName[set.size()]));
         } catch (NodeTypeConflictException ntce) {
-            String msg = "internal error: failed to build effective node type for node " + nodeState.getUUID();
+            String msg = "internal error: failed to build effective node type for node " + nodeState.getNodeId();
             throw new RepositoryException(msg, ntce);
         }
     }
@@ -301,7 +301,7 @@
      * checks if the given child node exists.
      *
      * @param name
-     * @return
+     * @return <code>true</code> if the given child exists.
      */
     public boolean hasNode(QName name) {
         return nodeState.hasChildNodeEntry(name);
@@ -311,7 +311,7 @@
      * removes the (first) child node with the given name.
      *
      * @param name
-     * @return
+     * @return <code>true</code> if the child was removed
      * @throws RepositoryException
      */
     public boolean removeNode(QName name) throws RepositoryException {
@@ -323,7 +323,7 @@
      *
      * @param name
      * @param index
-     * @return
+     * @return <code>true</code> if the child was removed.
      * @throws RepositoryException
      */
     public boolean removeNode(QName name, int index) throws RepositoryException {
@@ -332,7 +332,7 @@
             if (entry == null) {
                 return false;
             } else {
-                ItemState state = stateMgr.getItemState(new NodeId(entry.getUUID()));
+                ItemState state = stateMgr.getItemState(entry.getId());
                 stateMgr.destroy(state);
                 nodeState.removeChildNodeEntry(name, index);
                 nodeState.setStatus(ItemState.STATUS_EXISTING_MODIFIED);
@@ -347,7 +347,7 @@
      * removes the property with the given name
      *
      * @param name
-     * @return
+     * @return <code>true</code> if the property was removed.
      * @throws RepositoryException
      */
     public boolean removeProperty(QName name) throws RepositoryException {
@@ -355,7 +355,7 @@
             if (!nodeState.hasPropertyName(name)) {
                 return false;
             } else {
-                PropertyId propId = new PropertyId(nodeState.getUUID(), name);
+                PropertyId propId = new PropertyId(nodeState.getNodeId(), name);
                 ItemState state = stateMgr.getItemState(propId);
                 stateMgr.destroy(state);
                 nodeState.removePropertyName(name);
@@ -373,7 +373,7 @@
      *
      * @param name
      * @param index
-     * @return
+     * @return the node state.
      * @throws RepositoryException
      */
     public NodeStateEx getNode(QName name, int index) throws RepositoryException {
@@ -382,7 +382,7 @@
             return null;
         }
         try {
-            NodeState state = (NodeState) stateMgr.getItemState(new NodeId(entry.getUUID()));
+            NodeState state = (NodeState) stateMgr.getItemState(entry.getId());
             return new NodeStateEx(stateMgr, ntReg, state, name);
         } catch (ItemStateException e) {
             throw new RepositoryException("Unable to getNode: " + e.toString());
@@ -394,18 +394,18 @@
      *
      * @param nodeName
      * @param nodeTypeName
-     * @return
+     * @return the node state
      * @throws NoSuchNodeTypeException
      * @throws ConstraintViolationException
      * @throws RepositoryException
      */
     public NodeStateEx addNode(QName nodeName, QName nodeTypeName,
-                                  String uuid, boolean referenceable)
+                               NodeId id, boolean referenceable)
             throws NoSuchNodeTypeException, ConstraintViolationException, RepositoryException {
 
-        NodeStateEx node = createChildNode(nodeName, nodeTypeName, uuid);
+        NodeStateEx node = createChildNode(nodeName, nodeTypeName, id);
         if (referenceable) {
-            node.setPropertyValue(QName.JCR_UUID, InternalValue.create(node.getUUID()));
+            node.setPropertyValue(QName.JCR_UUID, InternalValue.create(node.getNodeId().getUUID().toString()));
         }
         return node;
     }
@@ -414,17 +414,17 @@
      * creates a new child node
      *
      * @param name
-     * @param uuid
-     * @return
+     * @param id
+     * @return the newly created node.
      */
-    private NodeStateEx createChildNode(QName name, QName nodeTypeName, String uuid)
+    private NodeStateEx createChildNode(QName name, QName nodeTypeName, NodeId id)
             throws RepositoryException {
-        String parentUUID = nodeState.getUUID();
+        NodeId parentId = nodeState.getNodeId();
         // create a new node state
-        if (uuid == null) {
-            uuid = UUID.randomUUID().toString();    // version 4 uuid
+        if (id == null) {
+            id = new NodeId(UUID.randomUUID());
         }
-        NodeState state = stateMgr.createNew(uuid, nodeTypeName, parentUUID);
+        NodeState state = stateMgr.createNew(id, nodeTypeName, parentId);
 
         NodeDef cnd = getEffectiveNodeType().getApplicableChildNodeDef(name, nodeTypeName);
         state.setDefinitionId(cnd.getId());
@@ -434,7 +434,7 @@
         node.setPropertyValue(QName.JCR_PRIMARYTYPE, InternalValue.create(nodeTypeName));
 
         // add new child node entryn
-        nodeState.addChildNodeEntry(name, state.getUUID());
+        nodeState.addChildNodeEntry(name, id);
         if (nodeState.getStatus() == ItemState.STATUS_EXISTING) {
             nodeState.setStatus(ItemState.STATUS_EXISTING_MODIFIED);
         }
@@ -444,7 +444,7 @@
     /**
      * returns all child nodes
      *
-     * @return
+     * @return the child nodes.
      * @throws RepositoryException
      */
     public NodeStateEx[] getChildNodes() throws RepositoryException {
@@ -453,7 +453,7 @@
             NodeStateEx[] children = new NodeStateEx[entries.size()];
             for (int i = 0; i < entries.size(); i++) {
                 NodeState.ChildNodeEntry entry = (NodeState.ChildNodeEntry) entries.get(i);
-                NodeState state = (NodeState) stateMgr.getItemState(new NodeId(entry.getUUID()));
+                NodeState state = (NodeState) stateMgr.getItemState(entry.getId());
                 children[i] = new NodeStateEx(stateMgr, ntReg, state, entry.getName());
             }
             return children;
@@ -489,7 +489,8 @@
             Set props = state.getPropertyNames();
             for (Iterator iter = props.iterator(); iter.hasNext();) {
                 QName propName = (QName) iter.next();
-                PropertyState pstate = (PropertyState) stateMgr.getItemState(new PropertyId(state.getUUID(), propName));
+                PropertyState pstate = (PropertyState) stateMgr.getItemState(
+                        new PropertyId(state.getNodeId(), propName));
                 if (pstate.getStatus() != ItemState.STATUS_EXISTING) {
                     stateMgr.store(pstate);
                 }
@@ -498,7 +499,7 @@
             List nodes = state.getChildNodeEntries();
             for (int i = 0; i < nodes.size(); i++) {
                 NodeState.ChildNodeEntry entry = (NodeState.ChildNodeEntry) nodes.get(i);
-                NodeState nstate = (NodeState) stateMgr.getItemState(new NodeId(entry.getUUID()));
+                NodeState nstate = (NodeState) stateMgr.getItemState(entry.getId());
                 store(nstate);
             }
             // and store itself
@@ -515,7 +516,7 @@
         try {
             reload(nodeState);
             // refetch nodestate if discarded
-            nodeState = (NodeState) stateMgr.getItemState(nodeState.getId());
+            nodeState = (NodeState) stateMgr.getItemState(nodeState.getNodeId());
         } catch (ItemStateException e) {
             throw new RepositoryException(e);
         }
@@ -533,7 +534,8 @@
             Set props = state.getPropertyNames();
             for (Iterator iter = props.iterator(); iter.hasNext();) {
                 QName propName = (QName) iter.next();
-                PropertyState pstate = (PropertyState) stateMgr.getItemState(new PropertyId(state.getUUID(), propName));
+                PropertyState pstate = (PropertyState) stateMgr.getItemState(
+                        new PropertyId(state.getNodeId(), propName));
                 if (pstate.getStatus() != ItemState.STATUS_EXISTING) {
                     pstate.discard();
                 }
@@ -542,7 +544,7 @@
             List nodes = state.getChildNodeEntries();
             for (int i = 0; i < nodes.size(); i++) {
                 NodeState.ChildNodeEntry entry = (NodeState.ChildNodeEntry) nodes.get(i);
-                NodeState nstate = (NodeState) stateMgr.getItemState(new NodeId(entry.getUUID()));
+                NodeState nstate = (NodeState) stateMgr.getItemState(entry.getId());
                 reload(nstate);
             }
             // and reload itself

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java Thu Feb 16 02:48:20 2006
@@ -56,7 +56,7 @@
     /**
      * Returns the internal version
      *
-     * @return
+     * @return the internal version
      */
     protected InternalVersion getInternalVersion() {
         return version;

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java Thu Feb 16 02:48:20 2006
@@ -22,18 +22,17 @@
 import org.apache.jackrabbit.core.PropertyId;
 import org.apache.jackrabbit.core.state.ItemState;
 import org.apache.jackrabbit.core.state.ItemStateException;
+import org.apache.jackrabbit.core.state.ItemStateListener;
 import org.apache.jackrabbit.core.state.NoSuchItemStateException;
 import org.apache.jackrabbit.core.state.NodeReferences;
 import org.apache.jackrabbit.core.state.NodeReferencesId;
 import org.apache.jackrabbit.core.state.PropertyState;
 import org.apache.jackrabbit.core.state.SharedItemStateManager;
-import org.apache.jackrabbit.core.state.ItemStateListener;
 import org.apache.jackrabbit.core.value.InternalValue;
 import org.apache.jackrabbit.core.virtual.VirtualItemStateProvider;
 import org.apache.jackrabbit.core.virtual.VirtualNodeState;
 import org.apache.jackrabbit.core.virtual.VirtualPropertyState;
 import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.uuid.UUID;
 import org.apache.log4j.Logger;
 
 import javax.jcr.RepositoryException;
@@ -106,7 +105,7 @@
      * @inheritDoc
      */
     public VirtualNodeState createNodeState(VirtualNodeState parent, QName name,
-                                            String uuid, QName nodeTypeName)
+                                            NodeId id, QName nodeTypeName)
             throws RepositoryException {
         throw new IllegalStateException("VersionManager should never create a VirtualNodeState");
     }
@@ -129,12 +128,12 @@
                 PropertyState prop = (PropertyState) item;
                 if (prop.getName().equals(QName.JCR_SUCCESSORS)) {
                     try {
-                        InternalVersion v = vMgr.getVersion(prop.getParentUUID());
+                        InternalVersion v = vMgr.getVersion(prop.getParentId());
                         if (v != null) {
                             InternalVersion[] succs = v.getSuccessors();
                             InternalValue[] succV = new InternalValue[succs.length];
                             for (int i = 0; i < succs.length; i++) {
-                                succV[i] = InternalValue.create(new UUID(succs[i].getId()));
+                                succV[i] = InternalValue.create(succs[i].getId().getUUID());
                             }
                             prop.setValues(succV);
                         }
@@ -162,7 +161,7 @@
 
     /**
      * @inheritDoc
-     */ 
+     */
     public boolean setNodeReferences(NodeReferences refs) {
         return vMgr.setNodeReferences(refs);
     }

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionIteratorImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionIteratorImpl.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionIteratorImpl.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionIteratorImpl.java Thu Feb 16 02:48:20 2006
@@ -16,6 +16,9 @@
  */
 package org.apache.jackrabbit.core.version;
 
+import org.apache.jackrabbit.core.NodeId;
+import org.apache.jackrabbit.core.SessionImpl;
+
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.version.Version;
@@ -46,7 +49,7 @@
     /**
      * the session for wrapping the versions
      */
-    private final Session session;
+    private final SessionImpl session;
 
     /**
      * Creates a new VersionIterator that iterates over the version tree,
@@ -55,7 +58,7 @@
      * @param rootVersion
      */
     public VersionIteratorImpl(Session session, InternalVersion rootVersion) {
-        this.session = session;
+        this.session = (SessionImpl) session;
 
         addVersion(rootVersion);
     }
@@ -67,11 +70,11 @@
         if (versions.isEmpty()) {
             throw new NoSuchElementException();
         }
-        String id = (String) versions.removeFirst();
+        NodeId id = (NodeId) versions.removeFirst();
         pos++;
 
         try {
-            return (Version) session.getNodeByUUID(id);
+            return (Version) session.getNodeById(id);
         } catch (RepositoryException e) {
             throw new ConcurrentModificationException("Unable to provide element: " + e.toString());
         }
@@ -130,7 +133,7 @@
      * @param v
      */
     private synchronized void addVersion(InternalVersion v) {
-        String id = v.getId();
+        NodeId id = v.getId();
         if (!versions.contains(id)) {
             versions.add(id);
             InternalVersion[] vs = v.getSuccessors();

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManager.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManager.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManager.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManager.java Thu Feb 16 02:48:20 2006
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.core.version;
 
 import org.apache.jackrabbit.core.NodeImpl;
+import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.virtual.VirtualItemStateProvider;
 import org.apache.jackrabbit.name.QName;
@@ -36,7 +37,7 @@
      * returns the virtual item state provider that exposes the internal versions
      * as items.
      *
-     * @return
+     * @return the virtual item state provider.
      */
     VirtualItemStateProvider getVirtualItemStateProvider();
 
@@ -48,7 +49,7 @@
      * @param node
      * @return
      * @throws RepositoryException
-     * @see #getVersionHistory(Session, NodeState) 
+     * @see #getVersionHistory(Session, NodeState)
      */
     VersionHistory createVersionHistory(Session session, NodeState node)
             throws RepositoryException;
@@ -111,36 +112,36 @@
      * Checks if the version history with the given id exists
      *
      * @param id
-     * @return
+     * @return <code>true</code> if the version history exists.
      */
-    boolean hasVersionHistory(String id);
+    boolean hasVersionHistory(NodeId id);
 
     /**
      * Returns the version history with the given id
      *
      * @param id
-     * @return
+     * @return the version history.
      * @throws RepositoryException
      */
-    InternalVersionHistory getVersionHistory(String id)
+    InternalVersionHistory getVersionHistory(NodeId id)
             throws RepositoryException;
 
     /**
      * Checks if the version with the given id exists
      *
      * @param id
-     * @return
+     * @return <code>true</code> if the version exists.
      */
-    boolean hasVersion(String id);
+    boolean hasVersion(NodeId id);
 
     /**
      * Returns the version with the given id
      *
      * @param id
-     * @return
+     * @return the version.
      * @throws RepositoryException
      */
-    InternalVersion getVersion(String id) throws RepositoryException;
+    InternalVersion getVersion(NodeId id) throws RepositoryException;
 
     /**
      * Close this version manager. After having closed a persistence

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java Thu Feb 16 02:48:20 2006
@@ -23,8 +23,8 @@
 import org.apache.jackrabbit.core.SessionImpl;
 import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
 import org.apache.jackrabbit.core.observation.DelegatingObservationDispatcher;
-import org.apache.jackrabbit.core.observation.EventStateCollectionFactory;
 import org.apache.jackrabbit.core.observation.EventStateCollection;
+import org.apache.jackrabbit.core.observation.EventStateCollectionFactory;
 import org.apache.jackrabbit.core.state.ChangeLog;
 import org.apache.jackrabbit.core.state.ItemStateException;
 import org.apache.jackrabbit.core.state.LocalItemStateManager;
@@ -40,17 +40,17 @@
 import org.apache.log4j.Logger;
 
 import javax.jcr.PropertyType;
+import javax.jcr.ReferentialIntegrityException;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
-import javax.jcr.ReferentialIntegrityException;
 import javax.jcr.version.Version;
 import javax.jcr.version.VersionException;
 import javax.jcr.version.VersionHistory;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Collection;
 
 /**
  * This Class implements a VersionManager.
@@ -64,11 +64,6 @@
     private static Logger log = Logger.getLogger(VersionManager.class);
 
     /**
-     * The root node UUID for the version storage
-     */
-    private final String VERSION_STORAGE_NODE_UUID;
-
-    /**
      * The persistence manager for the versions
      */
     private final PersistenceManager pMgr;
@@ -113,22 +108,21 @@
      *
      */
     public VersionManagerImpl(PersistenceManager pMgr, NodeTypeRegistry ntReg,
-                              DelegatingObservationDispatcher obsMgr, String rootUUID,
-                              String rootParentUUID) throws RepositoryException {
+                              DelegatingObservationDispatcher obsMgr, NodeId rootId,
+                              NodeId rootParentId) throws RepositoryException {
         try {
             this.pMgr = pMgr;
             this.ntReg = ntReg;
             this.obsMgr = obsMgr;
-            this.VERSION_STORAGE_NODE_UUID = rootUUID;
 
             // need to store the version storage root directly into the persistence manager
-            if (!pMgr.exists(new NodeId(rootUUID))) {
-                NodeState root = pMgr.createNew(new NodeId(rootUUID));
-                root.setParentUUID(rootParentUUID);
+            if (!pMgr.exists(rootId)) {
+                NodeState root = pMgr.createNew(rootId);
+                root.setParentId(rootParentId);
                 root.setDefinitionId(ntReg.getEffectiveNodeType(QName.REP_SYSTEM).getApplicableChildNodeDef(
                         QName.JCR_VERSIONSTORAGE, QName.REP_VERSIONSTORAGE).getId());
                 root.setNodeTypeName(QName.REP_VERSIONSTORAGE);
-                PropertyState pt = pMgr.createNew(new PropertyId(rootUUID, QName.JCR_PRIMARYTYPE));
+                PropertyState pt = pMgr.createNew(new PropertyId(rootId, QName.JCR_PRIMARYTYPE));
                 pt.setDefinitionId(ntReg.getEffectiveNodeType(QName.REP_SYSTEM).getApplicablePropertyDef(
                         QName.JCR_PRIMARYTYPE, PropertyType.NAME, false).getId());
                 pt.setMultiValued(false);
@@ -141,9 +135,9 @@
                 pMgr.store(cl);
             }
             sharedStateMgr =
-                    new VersionItemStateManager(pMgr, VERSION_STORAGE_NODE_UUID, ntReg);
+                    new VersionItemStateManager(pMgr, rootId, ntReg);
             stateMgr = new LocalItemStateManager(sharedStateMgr, this);
-            NodeState nodeState = (NodeState) stateMgr.getItemState(new NodeId(VERSION_STORAGE_NODE_UUID));
+            NodeState nodeState = (NodeState) stateMgr.getItemState(rootId);
             historyRoot = new NodeStateEx(stateMgr, ntReg, nodeState, QName.JCR_VERSIONSTORAGE);
 
             // create the virtual item state provider
@@ -187,41 +181,40 @@
         }
 
         if (history == null) {
-            throw new VersionException("History already exists for node " + node.getUUID());
+            throw new VersionException("History already exists for node " + node.getNodeId());
         }
-        return (VersionHistory) session.getNodeByUUID(history.getId());
+        return (VersionHistory) ((SessionImpl) session).getNodeById(history.getId());
     }
 
     /**
      * {@inheritDoc}
      */
-    public boolean hasItem(String id) {
-        return versionItems.containsKey(id) || stateMgr.hasItemState(new NodeId(id));
+    public boolean hasItem(NodeId id) {
+        return versionItems.containsKey(id) || stateMgr.hasItemState(id);
     }
 
     /**
      * {@inheritDoc}
      */
-    protected synchronized InternalVersionItem getItem(String uuid)
+    protected synchronized InternalVersionItem getItem(NodeId id)
             throws RepositoryException {
 
-        NodeId id = new NodeId(uuid);
         try {
-            InternalVersionItem item = (InternalVersionItem) versionItems.get(uuid);
+            InternalVersionItem item = (InternalVersionItem) versionItems.get(id);
             if (item == null) {
                 if (stateMgr.hasItemState(id)) {
                     NodeState state = (NodeState) stateMgr.getItemState(id);
                     NodeStateEx pNode = new NodeStateEx(stateMgr, ntReg, state, null);
-                    String parentUUID = pNode.getParentUUID();
+                    NodeId parentId = pNode.getParentId();
                     InternalVersionItem parent =
-                            (parentUUID != null) ? getItem(parentUUID) : null;
+                            (parentId != null) ? getItem(parentId) : null;
                     QName ntName = state.getNodeTypeName();
                     if (ntName.equals(QName.NT_FROZENNODE)) {
                         item = new InternalFrozenNodeImpl(this, pNode, parent);
                     } else if (ntName.equals(QName.NT_VERSIONEDCHILD)) {
                         item = new InternalFrozenVHImpl(this, pNode, parent);
                     } else if (ntName.equals(QName.NT_VERSION)) {
-                        item = ((InternalVersionHistory) parent).getVersion(uuid);
+                        item = ((InternalVersionHistory) parent).getVersion(id);
                     } else if (ntName.equals(QName.NT_VERSIONHISTORY)) {
                         item = new InternalVersionHistoryImpl(this, pNode);
                     } else {
@@ -229,7 +222,7 @@
                     }
                 }
                 if (item != null) {
-                    versionItems.put(uuid, item);
+                    versionItems.put(id, item);
                 }
             }
             return item;
@@ -253,8 +246,8 @@
             eventSource = (SessionImpl) node.getSession();
 
             String histUUID = node.getProperty(QName.JCR_VERSIONHISTORY).getString();
-            version = checkin(
-                    (InternalVersionHistoryImpl) getVersionHistory(histUUID), node);
+            version = checkin((InternalVersionHistoryImpl)
+                    getVersionHistory(NodeId.valueOf(histUUID)), node);
 
             // invalidate predecessors successor properties
             InternalVersion[] preds = version.getPredecessors();
@@ -263,7 +256,7 @@
                 versProvider.onPropertyChanged(propId);
             }
         }
-        return (AbstractVersion) eventSource.getNodeByUUID(version.getId());
+        return (AbstractVersion) eventSource.getNodeById(version.getId());
     }
 
     /**
@@ -327,7 +320,7 @@
         if (v == null) {
             return null;
         } else {
-            return (Version) eventSource.getNodeByUUID(v.getId());
+            return (Version) eventSource.getNodeByUUID(v.getId().getUUID());
         }
     }
 
@@ -366,7 +359,7 @@
 
     public boolean setNodeReferences(NodeReferences refs) {
         try {
-            InternalVersionItem item = getItem(refs.getTargetId().getUUID());
+            InternalVersionItem item = getItem(refs.getTargetId());
             setItemReferences(item, refs.getReferences());
             return true;
         } catch (RepositoryException e) {
@@ -384,7 +377,7 @@
         Iterator iter = references.iterator();
         while (iter.hasNext()) {
             PropertyId id = (PropertyId) iter.next();
-            if (!hasItem(id.getParentUUID())) {
+            if (!hasItem(id.getParentId())) {
                 refs.add(id);
             }
         }
@@ -425,7 +418,7 @@
      * @return the id of the version history root node
      */
     NodeId getHistoryRootId() {
-        return (NodeId) historyRoot.getState().getId();
+        return historyRoot.getState().getNodeId();
     }
 
     /**
@@ -462,10 +455,10 @@
     class VersionItemStateManager extends SharedItemStateManager {
 
         public VersionItemStateManager(PersistenceManager persistMgr,
-                                       String rootNodeUUID,
+                                       NodeId rootNodeId,
                                        NodeTypeRegistry ntReg)
                 throws ItemStateException {
-            super(persistMgr, rootNodeUUID, ntReg, false);
+            super(persistMgr, rootNodeId, ntReg, false);
         }
 
         protected void checkReferentialIntegrity(ChangeLog changes)

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java Thu Feb 16 02:48:20 2006
@@ -16,35 +16,36 @@
  */
 package org.apache.jackrabbit.core.version;
 
+import org.apache.jackrabbit.core.InternalXAResource;
+import org.apache.jackrabbit.core.ItemId;
 import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.NodeImpl;
-import org.apache.jackrabbit.core.ItemId;
+import org.apache.jackrabbit.core.SessionImpl;
 import org.apache.jackrabbit.core.TransactionContext;
 import org.apache.jackrabbit.core.TransactionException;
-import org.apache.jackrabbit.core.InternalXAResource;
-import org.apache.jackrabbit.core.observation.EventStateCollectionFactory;
 import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
+import org.apache.jackrabbit.core.observation.EventStateCollectionFactory;
+import org.apache.jackrabbit.core.state.ChangeLog;
+import org.apache.jackrabbit.core.state.ItemState;
 import org.apache.jackrabbit.core.state.ItemStateException;
+import org.apache.jackrabbit.core.state.NoSuchItemStateException;
 import org.apache.jackrabbit.core.state.NodeReferences;
 import org.apache.jackrabbit.core.state.NodeReferencesId;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.XAItemStateManager;
-import org.apache.jackrabbit.core.state.ItemState;
-import org.apache.jackrabbit.core.state.NoSuchItemStateException;
-import org.apache.jackrabbit.core.state.ChangeLog;
 import org.apache.jackrabbit.core.virtual.VirtualItemStateProvider;
-import org.apache.jackrabbit.core.virtual.VirtualPropertyState;
 import org.apache.jackrabbit.core.virtual.VirtualNodeState;
+import org.apache.jackrabbit.core.virtual.VirtualPropertyState;
 import org.apache.jackrabbit.name.QName;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.version.Version;
-import javax.jcr.version.VersionHistory;
 import javax.jcr.version.VersionException;
-import java.util.Map;
+import javax.jcr.version.VersionHistory;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Implementation of a {@link VersionManager} that works in an XA environment.
@@ -118,7 +119,7 @@
         if (isInXA()) {
             InternalVersionHistory history = createVersionHistory(node);
             xaItems.put(history.getId(), history);
-            return (VersionHistory) session.getNodeByUUID(history.getId());
+            return (VersionHistory) ((SessionImpl) session).getNodeById(history.getId());
         }
         return vMgr.createVersionHistory(session, node);
     }
@@ -129,9 +130,9 @@
     public Version checkin(NodeImpl node) throws RepositoryException {
         if (isInXA()) {
             String histUUID = node.getProperty(QName.JCR_VERSIONHISTORY).getString();
-            InternalVersion version = checkin(
-                    (InternalVersionHistoryImpl) getVersionHistory(histUUID), node);
-            return (Version) node.getSession().getNodeByUUID(version.getId());
+            InternalVersion version = checkin((InternalVersionHistoryImpl)
+                    getVersionHistory(NodeId.valueOf(histUUID)), node);
+            return (Version) ((SessionImpl) node.getSession()).getNodeById(version.getId());
         }
         return vMgr.checkin(node);
     }
@@ -165,7 +166,7 @@
             if (v == null) {
                 return null;
             } else {
-                return (Version) history.getSession().getNodeByUUID(v.getId());
+                return (Version) ((SessionImpl) history.getSession()).getNodeById(v.getId());
             }
         }
         return vMgr.setVersionLabel(history, version, label, move);
@@ -208,7 +209,7 @@
      * {@inheritDoc}
      */
     public VirtualNodeState createNodeState(VirtualNodeState parent, QName name,
-                                            String uuid, QName nodeTypeName)
+                                            NodeId id, QName nodeTypeName)
             throws RepositoryException {
 
         throw new IllegalStateException("Read-only");
@@ -282,13 +283,13 @@
     /**
      * {@inheritDoc}
      */
-     protected InternalVersionItem getItem(String uuid) throws RepositoryException {
+     protected InternalVersionItem getItem(NodeId id) throws RepositoryException {
         InternalVersionItem item = null;
         if (xaItems != null) {
-            item = (InternalVersionItem) xaItems.get(uuid);
+            item = (InternalVersionItem) xaItems.get(id);
         }
         if (item == null) {
-            item = vMgr.getItem(uuid);
+            item = vMgr.getItem(id);
         }
         return item;
     }
@@ -296,11 +297,11 @@
     /**
      * {@inheritDoc}
      */
-    protected boolean hasItem(String uuid) {
-        if (xaItems != null && xaItems.containsKey(uuid)) {
+    protected boolean hasItem(NodeId id) {
+        if (xaItems != null && xaItems.containsKey(id)) {
             return true;
         }
-        return vMgr.hasItem(uuid);
+        return vMgr.hasItem(id);
     }
 
     /**
@@ -464,7 +465,7 @@
 
         NodeState state;
         try {
-            state = (NodeState) stateMgr.getItemState(new NodeId(history.getId()));
+            state = (NodeState) stateMgr.getItemState(history.getId());
         } catch (ItemStateException e) {
             throw new RepositoryException("Unable to make local copy", e);
         }

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java Thu Feb 16 02:48:20 2006
@@ -118,7 +118,7 @@
         if (id instanceof NodeId) {
             ItemState s;
             if (nodes.contains(id)) {
-                s = (ItemState) nodes.get(id);
+                s = nodes.get(id);
             } else if (id.equals(rootNodeId)) {
                 s = getRootState();
             } else {
@@ -135,7 +135,7 @@
      */
     public NodeReferences getNodeReferences(NodeReferencesId id)
             throws NoSuchItemStateException, ItemStateException {
-        throw new NoSuchItemStateException(id.getUUID());
+        throw new NoSuchItemStateException(id.toString());
     }
 
     /**
@@ -181,7 +181,7 @@
      * Checks if this provide has the node state of the given node id
      *
      * @param id
-     * @return
+     * @return <code>true</code> if it has the node state
      */
     protected abstract boolean internalHasNodeState(NodeId id);
 
@@ -200,13 +200,13 @@
      * Checks if this provider has the property state of the given id.
      *
      * @param id
-     * @return
+     * @return <code>true</code> if it has the property state
      */
     protected boolean internalHasPropertyState(PropertyId id) {
 
         try {
             // get parent state
-            NodeState parent = (NodeState) getItemState(new NodeId(id.getParentUUID()));
+            NodeState parent = (NodeState) getItemState(id.getParentId());
 
             // handle some default prop states
             if (parent instanceof VirtualNodeState) {
@@ -230,7 +230,7 @@
             throws NoSuchItemStateException, ItemStateException {
 
         // get parent state
-        NodeState parent = (NodeState) getItemState(new NodeId(id.getParentUUID()));
+        NodeState parent = (NodeState) getItemState(id.getParentId());
 
         // handle some default prop states
         if (parent instanceof VirtualNodeState) {
@@ -247,7 +247,8 @@
                                                     boolean multiValued)
             throws RepositoryException {
         PropDef def = getApplicablePropertyDef(parent, name, type, multiValued);
-        VirtualPropertyState prop = new VirtualPropertyState(name, parent.getUUID());
+        PropertyId id = new PropertyId(parent.getNodeId(), name);
+        VirtualPropertyState prop = new VirtualPropertyState(id);
         prop.setType(type);
         prop.setMultiValued(multiValued);
         prop.setDefinitionId(def.getId());
@@ -258,7 +259,7 @@
      * {@inheritDoc}
      */
     public VirtualNodeState createNodeState(VirtualNodeState parent, QName name,
-                                            String uuid, QName nodeTypeName)
+                                            NodeId id, QName nodeTypeName)
             throws RepositoryException {
 
         NodeDefId def;
@@ -275,10 +276,10 @@
 
         // create a new node state
         VirtualNodeState state;
-        if (uuid == null) {
-            uuid = UUID.randomUUID().toString();    // version 4 uuid
+        if (id == null) {
+            id = new NodeId(UUID.randomUUID());
         }
-        state = new VirtualNodeState(this, parent.getUUID(), uuid, nodeTypeName, new QName[0]);
+        state = new VirtualNodeState(this, parent.getNodeId(), id, nodeTypeName, new QName[0]);
         state.setDefinitionId(def);
 
         cache(state);
@@ -288,7 +289,7 @@
     /**
      * returns the node type manager
      *
-     * @return
+     * @return the node type manager
      */
     protected NodeTypeRegistry getNodeTypeRegistry() {
         return ntReg;
@@ -333,7 +334,7 @@
                 Iterator iter = state.getChildNodeEntries().iterator();
                 while (iter.hasNext()) {
                     NodeState.ChildNodeEntry pe = (NodeState.ChildNodeEntry) iter.next();
-                    invalidateItem(new NodeId(pe.getUUID()), true);
+                    invalidateItem(pe.getId(), true);
                 }
             }
             state.notifyStateUpdated();
@@ -385,7 +386,7 @@
         try {
             return ntReg.getEffectiveNodeType((QName[]) set.toArray(new QName[set.size()]));
         } catch (NodeTypeConflictException ntce) {
-            String msg = "internal error: failed to build effective node type for node " + parent.getUUID();
+            String msg = "internal error: failed to build effective node type for node " + parent.getNodeId();
             throw new RepositoryException(msg, ntce);
         }
     }

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualItemStateProvider.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualItemStateProvider.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualItemStateProvider.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualItemStateProvider.java Thu Feb 16 02:48:20 2006
@@ -18,7 +18,6 @@
 
 import org.apache.jackrabbit.core.ItemId;
 import org.apache.jackrabbit.core.NodeId;
-import org.apache.jackrabbit.core.state.ItemStateListener;
 import org.apache.jackrabbit.core.state.ItemStateManager;
 import org.apache.jackrabbit.core.state.NodeReferences;
 import org.apache.jackrabbit.name.QName;
@@ -34,14 +33,14 @@
      * Checks if the id refers to the root of a virtual tree.
      *
      * @param id
-     * @return
+     * @return <code>true</code> if it is the root
      */
     boolean isVirtualRoot(ItemId id);
 
     /**
      * Returns the id of the root node of the virtual tree.
      *
-     * @return
+     * @return the id of the root node of the virtual tree.
      */
     NodeId getVirtualRootId();
 
@@ -56,8 +55,8 @@
      * @throws RepositoryException
      */
     VirtualPropertyState createPropertyState(VirtualNodeState parent,
-                                                    QName name, int type,
-                                                    boolean multiValued)
+                                             QName name, int type,
+                                             boolean multiValued)
             throws RepositoryException;
 
     /**
@@ -65,14 +64,14 @@
      *
      * @param parent
      * @param name
-     * @param uuid
+     * @param id
      * @param nodeTypeName
      * @return
      * @throws RepositoryException
      */
     VirtualNodeState createNodeState(VirtualNodeState parent, QName name,
-                                            String uuid, QName nodeTypeName)
-            throws RepositoryException;
+                                     NodeId id, QName nodeTypeName)
+        throws RepositoryException;
 
     /**
      * Informs this provider that the node references to one of its states has

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualNodeState.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualNodeState.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualNodeState.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualNodeState.java Thu Feb 16 02:48:20 2006
@@ -20,6 +20,7 @@
 import org.apache.jackrabbit.core.state.NoSuchItemStateException;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.value.InternalValue;
+import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.name.QName;
 
 import javax.jcr.PropertyType;
@@ -50,19 +51,19 @@
      * creates a new virtual node state
      *
      * @param stateMgr
-     * @param parentUUID
-     * @param uuid
+     * @param parentId
+     * @param id
      * @param nodeTypeName
      * @param mixins
      * @throws RepositoryException
      */
     public VirtualNodeState(AbstractVISProvider stateMgr,
-                            String parentUUID,
-                            String uuid,
+                            NodeId parentId,
+                            NodeId id,
                             QName nodeTypeName,
                             QName[] mixins)
             throws RepositoryException {
-        super(uuid, nodeTypeName, parentUUID, ItemState.STATUS_EXISTING, false);
+        super(id, nodeTypeName, parentId, ItemState.STATUS_EXISTING, false);
         this.stateMgr = stateMgr;
         addListener(stateMgr);
         // add default properties
@@ -73,7 +74,7 @@
     /**
      * Returns the properties of this node
      *
-     * @return
+     * @return the properties.
      */
     public VirtualPropertyState[] getProperties() {
         return (VirtualPropertyState[]) properties.values().toArray(new VirtualPropertyState[properties.size()]);
@@ -84,7 +85,7 @@
      * Returns the values of the given property of <code>null</code>
      *
      * @param name
-     * @return
+     * @return the values
      */
     public InternalValue[] getPropertyValues(QName name) throws NoSuchItemStateException {
         VirtualPropertyState ps = getProperty(name);
@@ -99,7 +100,7 @@
      * Returns the value of the given property or <code>null</code>
      *
      * @param name
-     * @return
+     * @return the value
      */
     public InternalValue getPropertyValue(QName name) throws NoSuchItemStateException {
         VirtualPropertyState ps = getProperty(name);

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualPropertyState.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualPropertyState.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualPropertyState.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/virtual/VirtualPropertyState.java Thu Feb 16 02:48:20 2006
@@ -16,10 +16,10 @@
  */
 package org.apache.jackrabbit.core.virtual;
 
+import org.apache.jackrabbit.core.PropertyId;
 import org.apache.jackrabbit.core.state.ItemState;
 import org.apache.jackrabbit.core.state.PropertyState;
 import org.apache.jackrabbit.core.value.InternalValue;
-import org.apache.jackrabbit.name.QName;
 
 /**
  * This Class implements a virtual property state
@@ -33,16 +33,15 @@
 
     /**
      * Creates a new virtual property state
-     * @param name
-     * @param parentUUID
+     * @param id
      */
-    public VirtualPropertyState(QName name, String parentUUID) {
-        super(name, parentUUID, ItemState.STATUS_EXISTING, false);
+    public VirtualPropertyState(PropertyId id) {
+        super(id, ItemState.STATUS_EXISTING, false);
     }
 
     /**
      * Returns the virtual value provider, if registered.
-     * @return
+     * @return the virtual value provider
      */
     public VirtualValueProvider getValueProvider() {
         return valueProvider;
@@ -59,12 +58,12 @@
     /**
      * Returns the value of this state evt. by using the registered virtual
      * value provider.
-     * @return
+     * @return the values
      */
     public InternalValue[] getValues() {
         InternalValue[] values = null;
         if (valueProvider != null) {
-            values = valueProvider.getVirtualValues(name);
+            values = valueProvider.getVirtualValues(getName());
         }
         return valueProvider == null ? super.getValues() : values;
     }

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewImportHandler.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewImportHandler.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewImportHandler.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewImportHandler.java Thu Feb 16 02:48:20 2006
@@ -20,6 +20,7 @@
 import org.apache.jackrabbit.name.NamespaceResolver;
 import org.apache.jackrabbit.name.QName;
 import org.apache.jackrabbit.util.ISO9075;
+import org.apache.jackrabbit.core.NodeId;
 import org.apache.log4j.Logger;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -174,7 +175,7 @@
             nodeName = ISO9075.decode(nodeName);
 
             // properties
-            String uuid = null;
+            NodeId id = null;
             QName nodeTypeName = null;
             QName[] mixinTypes = null;
 
@@ -221,7 +222,7 @@
                 } else if (propName.equals(QName.JCR_UUID)) {
                     // jcr:uuid
                     if (attrValue.length() > 0) {
-                        uuid = attrValue;
+                        id = NodeId.valueOf(attrValue);
                     }
                 } else {
                     propValues = new Importer.TextValue[1];
@@ -232,7 +233,7 @@
             }
 
             Importer.NodeInfo node =
-                    new Importer.NodeInfo(nodeName, nodeTypeName, mixinTypes, uuid);
+                    new Importer.NodeInfo(nodeName, nodeTypeName, mixinTypes, id);
             // all information has been collected, now delegate to importer
             importer.startNode(node, props, nsContext);
             // push current node data onto stack

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/Importer.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/Importer.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/Importer.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/Importer.java Thu Feb 16 02:48:20 2006
@@ -18,6 +18,7 @@
 
 import org.apache.jackrabbit.name.NamespaceResolver;
 import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.core.NodeId;
 
 import javax.jcr.RepositoryException;
 import java.io.IOException;
@@ -59,17 +60,17 @@
         private QName name;
         private QName nodeTypeName;
         private QName[] mixinNames;
-        private String uuid;
+        private NodeId id;
 
         public NodeInfo() {
         }
 
         public NodeInfo(QName name, QName nodeTypeName, QName[] mixinNames,
-                        String uuid) {
+                        NodeId id) {
             this.name = name;
             this.nodeTypeName = nodeTypeName;
             this.mixinNames = mixinNames;
-            this.uuid = uuid;
+            this.id = id;
         }
 
         public void setName(QName name) {
@@ -96,12 +97,12 @@
             return mixinNames;
         }
 
-        public void setUUID(String uuid) {
-            this.uuid = uuid;
+        public void setId(NodeId id) {
+            this.id = id;
         }
 
-        public String getUUID() {
-            return uuid;
+        public NodeId getId() {
+            return id;
         }
     }
 

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java Thu Feb 16 02:48:20 2006
@@ -18,6 +18,7 @@
 
 import org.apache.jackrabbit.core.NodeImpl;
 import org.apache.jackrabbit.core.SessionImpl;
+import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.nodetype.EffectiveNodeType;
 import org.apache.jackrabbit.core.nodetype.PropDef;
 import org.apache.jackrabbit.core.util.ReferenceChangeTracker;
@@ -26,6 +27,7 @@
 import org.apache.jackrabbit.name.QName;
 import org.apache.jackrabbit.value.ReferenceValue;
 import org.apache.jackrabbit.value.ValueHelper;
+import org.apache.jackrabbit.uuid.UUID;
 import org.apache.log4j.Logger;
 
 import javax.jcr.ImportUUIDBehavior;
@@ -88,7 +90,7 @@
                                   QName nodeName,
                                   QName nodeTypeName,
                                   QName[] mixinNames,
-                                  String uuid)
+                                  NodeId id)
             throws RepositoryException {
         NodeImpl node;
 
@@ -121,6 +123,7 @@
         }
 
         // add node
+        UUID uuid = id == null ? UUID.randomUUID() : id.getUUID();
         node = parent.addNode(nodeName, nodeTypeName, uuid);
         // add mixins
         if (mixinNames != null) {
@@ -142,10 +145,10 @@
                     nodeInfo.getNodeTypeName(), nodeInfo.getMixinNames(), null);
             // remember uuid mapping
             if (node.isNodeType(QName.MIX_REFERENCEABLE)) {
-                refTracker.mappedUUID(nodeInfo.getUUID(), node.getUUID());
+                refTracker.mappedUUID(nodeInfo.getId().getUUID(), node.getNodeId().getUUID());
             }
         } else if (uuidBehavior == ImportUUIDBehavior.IMPORT_UUID_COLLISION_THROW) {
-            String msg = "a node with uuid " + nodeInfo.getUUID() + " already exists!";
+            String msg = "a node with uuid " + nodeInfo.getId() + " already exists!";
             log.debug(msg);
             throw new ItemExistsException(msg);
         } else if (uuidBehavior == ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING) {
@@ -160,7 +163,7 @@
             // create new with given uuid
             node = createNode(parent, nodeInfo.getName(),
                     nodeInfo.getNodeTypeName(), nodeInfo.getMixinNames(),
-                    nodeInfo.getUUID());
+                    nodeInfo.getId());
         } else if (uuidBehavior == ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING) {
             if (conflicting.getDepth() == 0) {
                 String msg = "root node cannot be replaced";
@@ -174,7 +177,7 @@
             // create new with given uuid at same location as conflicting
             node = createNode(parent, nodeInfo.getName(),
                     nodeInfo.getNodeTypeName(), nodeInfo.getMixinNames(),
-                    nodeInfo.getUUID());
+                    nodeInfo.getId());
         } else {
             String msg = "unknown uuidBehavior: " + uuidBehavior;
             log.debug(msg);
@@ -202,7 +205,7 @@
         // process node
 
         NodeImpl node = null;
-        String uuid = nodeInfo.getUUID();
+        NodeId id = nodeInfo.getId();
         QName nodeName = nodeInfo.getName();
         QName ntName = nodeInfo.getNodeTypeName();
         QName[] mixins = nodeInfo.getMixinNames();
@@ -237,14 +240,14 @@
 
         if (node == null) {
             // create node
-            if (uuid == null) {
+            if (id == null) {
                 // no potential uuid conflict, always add new node
                 node = createNode(parent, nodeName, ntName, mixins, null);
             } else {
                 // potential uuid conflict
                 NodeImpl conflicting;
                 try {
-                    conflicting = (NodeImpl) session.getNodeByUUID(uuid);
+                    conflicting = session.getNodeById(id);
                 } catch (ItemNotFoundException infe) {
                     conflicting = null;
                 }
@@ -253,7 +256,7 @@
                     node = resolveUUIDConflict(parent, conflicting, nodeInfo);
                 } else {
                     // create new with given uuid
-                    node = createNode(parent, nodeName, ntName, mixins, uuid);
+                    node = createNode(parent, nodeName, ntName, mixins, id);
                 }
             }
         }
@@ -410,8 +413,8 @@
                 Value[] newVals = new Value[values.length];
                 for (int i = 0; i < values.length; i++) {
                     Value val = values[i];
-                    String original = val.getString();
-                    String adjusted = refTracker.getMappedUUID(original);
+                    UUID original = UUID.fromString(val.getString());
+                    UUID adjusted = refTracker.getMappedUUID(original);
                     if (adjusted != null) {
                         newVals[i] = new ReferenceValue(session.getNodeByUUID(adjusted));
                     } else {
@@ -422,8 +425,8 @@
                 prop.setValue(newVals);
             } else {
                 Value val = prop.getValue();
-                String original = val.getString();
-                String adjusted = refTracker.getMappedUUID(original);
+                UUID original = UUID.fromString(val.getString());
+                UUID adjusted = refTracker.getMappedUUID(original);
                 if (adjusted != null) {
                     prop.setValue(session.getNodeByUUID(adjusted));
                 }

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SysViewImportHandler.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SysViewImportHandler.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SysViewImportHandler.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SysViewImportHandler.java Thu Feb 16 02:48:20 2006
@@ -20,6 +20,7 @@
 import org.apache.jackrabbit.name.NamespaceResolver;
 import org.apache.jackrabbit.name.QName;
 import org.apache.jackrabbit.name.UnknownPrefixException;
+import org.apache.jackrabbit.core.NodeId;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 
@@ -75,7 +76,9 @@
             QName[] mixins = (QName[]) state.mixinNames.toArray(new QName[state.mixinNames.size()]);
             node.setMixinNames(mixins);
         }
-        node.setUUID(state.uuid);
+        if (state.uuid != null) {
+            node.setId(NodeId.valueOf(state.uuid));
+        }
         // call Importer
         try {
             if (start) {

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java?rev=378221&r1=378220&r2=378221&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java Thu Feb 16 02:48:20 2006
@@ -160,17 +160,17 @@
             // remember uuid mapping
             EffectiveNodeType ent = itemOps.getEffectiveNodeType(node);
             if (ent.includesNodeType(QName.MIX_REFERENCEABLE)) {
-                refTracker.mappedUUID(nodeInfo.getUUID(), node.getUUID());
+                refTracker.mappedUUID(nodeInfo.getId().getUUID(), node.getNodeId().getUUID());
             }
         } else if (uuidBehavior == ImportUUIDBehavior.IMPORT_UUID_COLLISION_THROW) {
-            String msg = "a node with uuid " + nodeInfo.getUUID()
+            String msg = "a node with uuid " + nodeInfo.getId()
                     + " already exists!";
             log.debug(msg);
             throw new ItemExistsException(msg);
         } else if (uuidBehavior == ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING) {
             // make sure conflicting node is not importTarget or an ancestor thereof
-            Path p0 = hierMgr.getPath(importTarget.getId());
-            Path p1 = hierMgr.getPath(conflicting.getId());
+            Path p0 = hierMgr.getPath(importTarget.getNodeId());
+            Path p1 = hierMgr.getPath(conflicting.getNodeId());
             try {
                 if (p1.equals(p0) || p1.isAncestorOf(p0)) {
                     String msg = "cannot remove ancestor node";
@@ -205,15 +205,15 @@
             // do create new node
             node = itemOps.createNodeState(parent, nodeInfo.getName(),
                     nodeInfo.getNodeTypeName(), nodeInfo.getMixinNames(),
-                    nodeInfo.getUUID());
+                    nodeInfo.getId());
         } else if (uuidBehavior == ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING) {
-            if (conflicting.getParentUUID() == null) {
+            NodeId parentId = conflicting.getParentId();
+            if (parentId == null) {
                 String msg = "root node cannot be replaced";
                 log.debug(msg);
                 throw new RepositoryException(msg);
             }
             // 'replace' current parent with parent of conflicting
-            NodeId parentId = new NodeId(conflicting.getParentUUID());
             try {
                 parent = itemOps.getNodeState(parentId);
             } catch (ItemNotFoundException infe) {
@@ -244,7 +244,7 @@
             // do create new node
             node = itemOps.createNodeState(parent, nodeInfo.getName(),
                     nodeInfo.getNodeTypeName(), nodeInfo.getMixinNames(),
-                    nodeInfo.getUUID());
+                    nodeInfo.getId());
         } else {
             String msg = "unknown uuidBehavior: " + uuidBehavior;
             log.debug(msg);
@@ -364,7 +364,7 @@
             // process node
 
             NodeState node = null;
-            String uuid = nodeInfo.getUUID();
+            NodeId id = nodeInfo.getId();
             QName nodeName = nodeInfo.getName();
             QName ntName = nodeInfo.getNodeTypeName();
             QName[] mixins = nodeInfo.getMixinNames();
@@ -380,7 +380,7 @@
                 // a node with that name already exists...
                 NodeState.ChildNodeEntry entry =
                         parent.getChildNodeEntry(nodeName, 1);
-                NodeId idExisting = new NodeId(entry.getUUID());
+                NodeId idExisting = entry.getId();
                 NodeState existing = (NodeState) itemOps.getItemState(idExisting);
                 NodeDef def = ntReg.getNodeDef(existing.getDefinitionId());
 
@@ -394,7 +394,7 @@
                         parents.push(null); // push null onto stack for skipped node
                         succeeded = true;
                         log.debug("skipping protected node "
-                                + itemOps.safeGetJCRPath(existing.getId()));
+                                + itemOps.safeGetJCRPath(existing.getNodeId()));
                         return;
                     }
                     if (def.isAutoCreated() && entExisting.includesNodeType(ntName)) {
@@ -402,14 +402,14 @@
                         // no need to create it
                         node = existing;
                     } else {
-                        throw new ItemExistsException(itemOps.safeGetJCRPath(existing.getId()));
+                        throw new ItemExistsException(itemOps.safeGetJCRPath(existing.getNodeId()));
                     }
                 }
             }
 
             if (node == null) {
                 // there's no node with that name...
-                if (uuid == null) {
+                if (id == null) {
                     // no potential uuid conflict, always create new node
 
                     NodeDef def =
@@ -431,7 +431,7 @@
                          *
                          * see http://issues.apache.org/jira/browse/JCR-61
                          */
-                        PropertyId propId = new PropertyId(parent.getUUID(), nodeName);
+                        PropertyId propId = new PropertyId(parent.getNodeId(), nodeName);
                         PropertyState conflicting = itemOps.getPropertyState(propId);
                         if (conflicting.getStatus() == ItemState.STATUS_NEW) {
                             // assume this property has been imported as well;
@@ -464,7 +464,7 @@
                     NodeState conflicting;
 
                     try {
-                        conflicting = itemOps.getNodeState(new NodeId(uuid));
+                        conflicting = itemOps.getNodeState(id);
                     } catch (ItemNotFoundException infe) {
                         conflicting = null;
                     }
@@ -491,7 +491,7 @@
                                 BatchedItemOperations.CHECK_ACCESS
                                 | BatchedItemOperations.CHECK_CONSTRAINTS);
                         // do create new node
-                        node = itemOps.createNodeState(parent, nodeName, ntName, mixins, uuid, def);
+                        node = itemOps.createNodeState(parent, nodeName, ntName, mixins, id, def);
                     }
                 }
             }
@@ -510,7 +510,7 @@
 
                 if (node.hasPropertyName(propName)) {
                     // a property with that name already exists...
-                    PropertyId idExisting = new PropertyId(node.getUUID(), propName);
+                    PropertyId idExisting = new PropertyId(node.getNodeId(), propName);
                     PropertyState existing =
                             (PropertyState) itemOps.getItemState(idExisting);
                     def = ntReg.getPropDef(existing.getDefinitionId());
@@ -527,7 +527,7 @@
                         // no need to create it
                         prop = existing;
                     } else {
-                        throw new ItemExistsException(itemOps.safeGetJCRPath(existing.getId()));
+                        throw new ItemExistsException(itemOps.safeGetJCRPath(existing.getPropertyId()));
                     }
                 }
                 if (prop == null) {
@@ -557,7 +557,7 @@
 
                 // check multi-valued characteristic
                 if ((tva.length == 0 || tva.length > 1) && !def.isMultiple()) {
-                    throw new ConstraintViolationException(itemOps.safeGetJCRPath(prop.getId())
+                    throw new ConstraintViolationException(itemOps.safeGetJCRPath(prop.getPropertyId())
                             + " is not multi-valued");
                 }
 
@@ -720,10 +720,10 @@
                 InternalValue[] newVals = new InternalValue[values.length];
                 for (int i = 0; i < values.length; i++) {
                     InternalValue val = values[i];
-                    String original = ((UUID) val.internalValue()).toString();
-                    String adjusted = refTracker.getMappedUUID(original);
+                    UUID original = (UUID) val.internalValue();
+                    UUID adjusted = refTracker.getMappedUUID(original);
                     if (adjusted != null) {
-                        newVals[i] = InternalValue.create(UUID.fromString(adjusted));
+                        newVals[i] = InternalValue.create(adjusted);
                         modified = true;
                     } else {
                         // reference doesn't need adjusting, just copy old value