[exo-jcr-commits] exo-jcr SVN: r985 - in jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: dataflow/persistent and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Dec 10 09:13:57 EST 2009
Author: tolusha
Date: 2009-12-10 09:13:56 -0500 (Thu, 10 Dec 2009)
New Revision: 985
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
Log:
EXOJCR-300: adoption
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java 2009-12-10 12:17:44 UTC (rev 984)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java 2009-12-10 14:13:56 UTC (rev 985)
@@ -2421,14 +2421,23 @@
// change same name index
if (sdata.getQPath().getName().equals(srcPath.getName()) && sdata.getQPath().getIndex() != sameNameIndex)
{
- newData = ((TransientNodeData)sdata).cloneAsSibling(sameNameIndex);
+ // update with new index
+ QPath siblingPath =
+ QPath.makeChildPath(newData.getQPath().makeParentPath(), newData.getQPath().getName(), sameNameIndex);
+
+ newData =
+ new TransientNodeData(siblingPath, newData.getIdentifier(), newData.getPersistedVersion(), newData
+ .getPrimaryTypeName(), newData.getMixinTypeNames(), j, newData.getParentIdentifier(), newData
+ .getACL());
}
+ else
+ {
+ newData =
+ new TransientNodeData(newData.getQPath(), newData.getIdentifier(), newData.getPersistedVersion(),
+ newData.getPrimaryTypeName(), newData.getMixinTypeNames(), j, newData.getParentIdentifier(), newData
+ .getACL());
+ }
- // create update
- newData =
- new TransientNodeData(newData.getQPath(), newData.getIdentifier(), newData.getPersistedVersion(), newData
- .getPrimaryTypeName(), newData.getMixinTypeNames(), j, newData.getParentIdentifier(), newData.getACL());
-
/*
* 8.3.7.8 Re-ordering a set of Child Nodes. When an orderBefore(A, B) is
* performed, an implementation must generate a NODE_REMOVED for node A
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java 2009-12-10 12:17:44 UTC (rev 984)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java 2009-12-10 14:13:56 UTC (rev 985)
@@ -26,6 +26,7 @@
import org.exoplatform.services.jcr.datamodel.ItemData;
import org.exoplatform.services.jcr.datamodel.NodeData;
import org.exoplatform.services.jcr.datamodel.PropertyData;
+import org.exoplatform.services.jcr.datamodel.ValueData;
import org.exoplatform.services.jcr.impl.Constants;
import org.exoplatform.services.jcr.impl.core.nodetype.PropertyDefinitionImpl;
import org.exoplatform.services.jcr.impl.core.value.BaseValue;
@@ -357,7 +358,7 @@
{
throw new ConstraintViolationException("Definition for property " + getPath() + " not found.");
}
-
+
propertyDef = definitions.getDefinition(multiple);
}
@@ -549,8 +550,7 @@
Value[] values = new Value[propertyData.getValues().size()];
for (int i = 0; i < values.length; i++)
{
- values[i] =
- valueFactory.loadValue((TransientValueData)propertyData.getValues().get(i), propertyData.getType());
+ values[i] = valueFactory.loadValue((ValueData)propertyData.getValues().get(i), propertyData.getType());
}
return values;
}
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2009-12-10 12:17:44 UTC (rev 984)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2009-12-10 14:13:56 UTC (rev 985)
@@ -1038,9 +1038,9 @@
NodeData parentNodeData = (NodeData)dataManager.getItemData(cause.getParentIdentifier());
- TransientNodeData nextSibling =
- (TransientNodeData)dataManager.getItemData(parentNodeData, new QPathEntry(cause.getQPath().getName(), cause
- .getQPath().getIndex() + 1));
+ NodeData nextSibling =
+ (NodeData)dataManager.getItemData(parentNodeData, new QPathEntry(cause.getQPath().getName(), cause.getQPath()
+ .getIndex() + 1));
String reindexedId = null;
// repeat till next sibling exists and it's not a caused Node (deleted or moved to) or just
// reindexed
@@ -1048,7 +1048,15 @@
&& !nextSibling.getIdentifier().equals(reindexedId))
{
// update with new index
- NodeData reindexed = nextSibling.cloneAsSibling(nextSibling.getQPath().getIndex() - 1);
+ QPath siblingPath =
+ QPath.makeChildPath(nextSibling.getQPath().makeParentPath(), nextSibling.getQPath().getName(), nextSibling
+ .getQPath().getIndex() - 1);
+
+ NodeData reindexed =
+ new TransientNodeData(siblingPath, nextSibling.getIdentifier(), nextSibling.getPersistedVersion(),
+ nextSibling.getPrimaryTypeName(), nextSibling.getMixinTypeNames(), nextSibling.getOrderNumber(),
+ nextSibling.getParentIdentifier(), nextSibling.getACL());
+
reindexedId = reindexed.getIdentifier();
ItemState reindexedState = ItemState.createUpdatedState(reindexed);
@@ -1062,7 +1070,7 @@
// next...
nextSibling =
- (TransientNodeData)dataManager.getItemData(parentNodeData, new QPathEntry(nextSibling.getQPath().getName(),
+ (NodeData)dataManager.getItemData(parentNodeData, new QPathEntry(nextSibling.getQPath().getName(),
nextSibling.getQPath().getIndex() + 1));
}
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java 2009-12-10 12:17:44 UTC (rev 984)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java 2009-12-10 14:13:56 UTC (rev 985)
@@ -416,44 +416,59 @@
{
PropertyData prevData = (PropertyData)prevState.getData();
- List<ValueData> values = new ArrayList<ValueData>();
- for (ValueData vd : prevData.getValues())
- {
- if (vd.isByteArray())
- {
- values.add(new ByteArrayPersistedValueData(vd.getAsByteArray(), vd.getOrderNumber()));
- }
- else
- {
- // TODO ask dest file from VS provider, can be null after
- // TODO what if JDBC spool used, i.e. without VS = storage will setPersistedFile()
- // TODO for JBC case, the storage connection will evict the replicated Value to read it from the DB
- File destFile = null;
-
- if (vd instanceof TransientValueData)
- {
- TransientValueData tvd = (TransientValueData)vd;
- // TODO review TransientValueData logic about spool file and stream
- values.add(new StreamPersistedValueData(destFile, tvd.getSpoolFile(),
- tvd.getSpoolFile() == null ? tvd.getAsStream(false) : null, vd.getOrderNumber()));
- }
- else if (vd instanceof PersistedValueData)
- {
- values.add(((PersistedValueData)vd).createTransientCopy());
- }
- else
- {
- throw new RepositoryException(
- "Unexpected ValueData implementaion on persistent level, only TransientValueData or PersistedValueData allowed. "
- + vd.getClass());
- }
- }
- }
-
newData =
new PersistedPropertyData(prevData.getIdentifier(), prevData.getQPath(), prevData
.getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getType(), prevData
- .isMultiValued(), values);
+ .isMultiValued(), prevData.getValues());
+
+ // if (prevData.getValues() != null)
+ // {
+ // List<ValueData> values = new ArrayList<ValueData>();
+ // for (ValueData vd : prevData.getValues())
+ // {
+ // if (vd.isByteArray())
+ // {
+ // values.add(new ByteArrayPersistedValueData(vd.getAsByteArray(), vd.getOrderNumber()));
+ // }
+ // else
+ // {
+ // // TODO ask dest file from VS provider, can be null after
+ // // TODO what if JDBC spool used, i.e. without VS = storage will setPersistedFile()
+ // // TODO for JBC case, the storage connection will evict the replicated Value to read it from the DB
+ // File destFile = null;
+ //
+ // if (vd instanceof TransientValueData)
+ // {
+ // TransientValueData tvd = (TransientValueData)vd;
+ // // TODO review TransientValueData logic about spool file and stream
+ // values.add(new StreamPersistedValueData(destFile, tvd.getSpoolFile(),
+ // tvd.getSpoolFile() == null ? tvd.getAsStream(false) : null, vd.getOrderNumber()));
+ // }
+ // else if (vd instanceof PersistedValueData)
+ // {
+ // values.add(((PersistedValueData)vd).createTransientCopy());
+ // }
+ // else
+ // {
+ // throw new RepositoryException(
+ // "Unexpected ValueData implementaion on persistent level, only TransientValueData or PersistedValueData allowed. "
+ // + vd.getClass());
+ // }
+ // }
+ // }
+ //
+ // newData =
+ // new PersistedPropertyData(prevData.getIdentifier(), prevData.getQPath(), prevData
+ // .getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getType(), prevData
+ // .isMultiValued(), values);
+ // }
+ // else
+ // {
+ // newData =
+ // new PersistedPropertyData(prevData.getIdentifier(), prevData.getQPath(), prevData
+ // .getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getType(), prevData
+ // .isMultiValued(), null);
+ // }
}
ItemState itemState =
More information about the exo-jcr-commits
mailing list