[exo-jcr-commits] exo-jcr SVN: r2458 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Jun 3 05:41:41 EDT 2010
Author: natasha.vakulenko
Date: 2010-06-03 05:41:41 -0400 (Thu, 03 Jun 2010)
New Revision: 2458
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util/VersionHistoryImporter.java
Log:
JCR-1390: Added Logging Information for indicating that a Node with its versionHistory import was successfully done or not.
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util/VersionHistoryImporter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util/VersionHistoryImporter.java 2010-06-03 08:40:09 UTC (rev 2457)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util/VersionHistoryImporter.java 2010-06-03 09:41:41 UTC (rev 2458)
@@ -98,6 +98,16 @@
private final String versionHistory;
/**
+ * Versionable node uuid.
+ */
+ private String uuid;
+
+ /**
+ * Versionable node path.
+ */
+ private String path;
+
+ /**
* VersionHistoryImporter constructor.
*
* @param versionableNode - versionable node.
@@ -130,53 +140,72 @@
*/
public void doImport() throws RepositoryException, IOException
{
- String path = versionableNode.getVersionHistory().getParent().getPath();
+ try
+ {
+ uuid = versionableNode.getUUID();
+ path = versionableNode.getVersionHistory().getParent().getPath();
+ LOG.info("Started: Import version history for node wiht path=" + path + " and UUID=" + uuid);
- NodeData versionable = (NodeData)versionableNode.getData();
- // ----- VERSIONABLE properties -----
- // jcr:versionHistory
- TransientPropertyData vh =
- TransientPropertyData.createPropertyData(versionable, Constants.JCR_VERSIONHISTORY, PropertyType.REFERENCE,
- false, new TransientValueData(new Identifier(versionHistory)));
+ NodeData versionable = (NodeData)versionableNode.getData();
+ // ----- VERSIONABLE properties -----
+ // jcr:versionHistory
+ TransientPropertyData vh =
+ TransientPropertyData.createPropertyData(versionable, Constants.JCR_VERSIONHISTORY, PropertyType.REFERENCE,
+ false, new TransientValueData(new Identifier(versionHistory)));
- // jcr:baseVersion
- TransientPropertyData bv =
- TransientPropertyData.createPropertyData(versionable, Constants.JCR_BASEVERSION, PropertyType.REFERENCE,
- false, new TransientValueData(new Identifier(baseVersionUuid)));
+ // jcr:baseVersion
+ TransientPropertyData bv =
+ TransientPropertyData.createPropertyData(versionable, Constants.JCR_BASEVERSION, PropertyType.REFERENCE,
+ false, new TransientValueData(new Identifier(baseVersionUuid)));
- // jcr:predecessors
- List<ValueData> values = new ArrayList<ValueData>();
- for (int i = 0; i < predecessors.length; i++)
+ // jcr:predecessors
+ List<ValueData> values = new ArrayList<ValueData>();
+ for (int i = 0; i < predecessors.length; i++)
+ {
+ values.add(new TransientValueData(new Identifier(predecessors[i])));
+ }
+ TransientPropertyData pd =
+ TransientPropertyData.createPropertyData(versionable, Constants.JCR_PREDECESSORS, PropertyType.REFERENCE,
+ true, values);
+
+ PlainChangesLog changesLog = new PlainChangesLogImpl();
+ RemoveVisitor rv = new RemoveVisitor();
+ rv.visit((NodeData)((NodeImpl)versionableNode.getVersionHistory()).getData());
+ changesLog.addAll(rv.getRemovedStates());
+ changesLog.add(ItemState.createAddedState(vh));
+ changesLog.add(ItemState.createAddedState(bv));
+ changesLog.add(ItemState.createAddedState(pd));
+ // remove version properties to avoid referential integrety check
+ PlainChangesLog changesLogDeltete = new PlainChangesLogImpl();
+
+ changesLogDeltete.add(ItemState.createDeletedState(((PropertyImpl)versionableNode
+ .getProperty("jcr:versionHistory")).getData()));
+ changesLogDeltete.add(ItemState.createDeletedState(((PropertyImpl)versionableNode
+ .getProperty("jcr:baseVersion")).getData()));
+ changesLogDeltete.add(ItemState.createDeletedState(((PropertyImpl)versionableNode
+ .getProperty("jcr:predecessors")).getData()));
+ dataKeeper.save(changesLogDeltete);
+ // remove version history
+ dataKeeper.save(changesLog);
+ userSession.save();
+ // import new version history
+ userSession.getWorkspace().importXML(path, versionHistoryStream, 0);
+ userSession.save();
+
+ LOG.info("Completed: Import version history for node wiht path=" + path + " and UUID=" + uuid);
+ }
+ catch (RepositoryException exception)
{
- values.add(new TransientValueData(new Identifier(predecessors[i])));
+ LOG.error("Failed: Import version history for node wiht path=" + path + " and UUID=" + uuid, exception);
+ throw new RepositoryException(exception);
}
- TransientPropertyData pd =
- TransientPropertyData.createPropertyData(versionable, Constants.JCR_PREDECESSORS, PropertyType.REFERENCE,
- true, values);
-
- PlainChangesLog changesLog = new PlainChangesLogImpl();
- RemoveVisitor rv = new RemoveVisitor();
- rv.visit((NodeData)((NodeImpl)versionableNode.getVersionHistory()).getData());
- changesLog.addAll(rv.getRemovedStates());
- changesLog.add(ItemState.createAddedState(vh));
- changesLog.add(ItemState.createAddedState(bv));
- changesLog.add(ItemState.createAddedState(pd));
- // remove version properties to avoid referential integrety check
- PlainChangesLog changesLogDeltete = new PlainChangesLogImpl();
-
- changesLogDeltete.add(ItemState.createDeletedState(((PropertyImpl)versionableNode
- .getProperty("jcr:versionHistory")).getData()));
- changesLogDeltete.add(ItemState.createDeletedState(((PropertyImpl)versionableNode.getProperty("jcr:baseVersion"))
- .getData()));
- changesLogDeltete.add(ItemState
- .createDeletedState(((PropertyImpl)versionableNode.getProperty("jcr:predecessors")).getData()));
- dataKeeper.save(changesLogDeltete);
- // remove version history
- dataKeeper.save(changesLog);
- userSession.save();
- // import new version history
- userSession.getWorkspace().importXML(path, versionHistoryStream, 0);
- userSession.save();
+ catch (IOException exception)
+ {
+ LOG.error("Failed: Import version history for node wiht path=" + path + " and UUID=" + uuid, exception);
+ IOException newException = new IOException();
+ newException.initCause(exception);
+ throw newException;
+ }
}
/**
More information about the exo-jcr-commits
mailing list