[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