[Yanel-commits] rev 41267 - in public/yanel/trunk/src: core/java/org/wyona/yanel/core/util webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Mon Feb 2 14:33:39 CET 2009


Author: michi
Date: 2009-02-02 14:33:38 +0100 (Mon, 02 Feb 2009)
New Revision: 41267

Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/util/VersioningUtil.java
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
checkout and checkin implemented

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/util/VersioningUtil.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/util/VersioningUtil.java	2009-02-02 11:58:51 UTC (rev 41266)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/util/VersioningUtil.java	2009-02-02 13:33:38 UTC (rev 41267)
@@ -33,8 +33,24 @@
     /**
      * @param resource Resource which shall be rolled back
      * @param revisionName Revision name to which shall be rolled back
+     * @param userName User who is executing the roll back
      */
-    public static void rollBack(Resource resource, String revisionName) {
-        log.error("DEBUG: Implementation not finished yet!");
+    public static void rollBack(Resource resource, String revisionName, String userName) {
+        if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2")) {
+            try {
+                VersionableV2 versionableRes = (VersionableV2) resource;
+                if (!versionableRes.isCheckedOut()) {
+                    versionableRes.checkout(userName);
+                    versionableRes.restore(revisionName);
+                    versionableRes.checkin("Rolled back to revision '" + revisionName + "'");
+                } else {
+                    log.warn("Resource is already checked out by user '" + versionableRes.getCheckoutUserID() + "' and hence cannot be rolled back at the moment!");
+                }
+            } catch(Exception e) {
+                log.error(e, e);
+            }
+        } else {
+            log.warn("Cannot be rolled back, because resource is not VersionableV2");
+        }
     }
 }

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2009-02-02 11:58:51 UTC (rev 41266)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2009-02-02 13:33:38 UTC (rev 41267)
@@ -273,7 +273,7 @@
                 return;
 	    } else if (value != null && value.equals("roll-back")) {
                 log.debug("Roll back ...");
-                org.wyona.yanel.core.util.VersioningUtil.rollBack(resource, request.getParameter(YANEL_RESOURCE_REVN));
+                org.wyona.yanel.core.util.VersioningUtil.rollBack(resource, request.getParameter(YANEL_RESOURCE_REVN), getIdentity(request).getUsername());
                 // TODO: Send confirmation screen
                 getContent(request, response);
                 return;



More information about the Yanel-commits mailing list