Author: sdumitriu
Date: 2007-12-19 15:37:26 +0100 (Wed, 19 Dec 2007)
New Revision: 6430

Added:
   
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R6430XWIKI1954Migrator.java
Modified:
   
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/XWikiHibernateMigrationManager.java
Log:
XWIKI-1954: When migrating the document archive format from 1.1 to 1.2, delete 
the contents of the old XWD_ARCHIVE field
Added migrator
Merged from [EMAIL PROTECTED]


Added: 
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R6430XWIKI1954Migrator.java
===================================================================
--- 
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R6430XWIKI1954Migrator.java
                            (rev 0)
+++ 
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R6430XWIKI1954Migrator.java
    2007-12-19 14:37:26 UTC (rev 6430)
@@ -0,0 +1,98 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package com.xpn.xwiki.store.migration.hibernate;
+
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import org.hibernate.HibernateException;
+import org.hibernate.Session;
+
+import com.xpn.xwiki.XWikiContext;
+import com.xpn.xwiki.XWikiException;
+import com.xpn.xwiki.store.XWikiHibernateBaseStore.HibernateCallback;
+import com.xpn.xwiki.store.migration.XWikiDBVersion;
+
+/**
+ * Migration for XWIKI1954: When migrating the document archive format from 
1.1 to 1.2, delete the
+ * contents of the old XWD_ARCHIVE field.
+ * 
+ * Note: This migrator should only be executed if the R4359XWIKI1459 one has 
already been executed
+ * during a previous migration (i.e. if the database is in version >= 4359).
+ *
+ * @version $Id: $
+ */
+public class R6430XWIKI1954Migrator extends AbstractXWikiHibernateMigrator
+{
+    private int startupVersion;
+
+    public R6430XWIKI1954Migrator(int currentVersionBeforeMigratorsExecute)
+    {
+        this.startupVersion = currentVersionBeforeMigratorsExecute;
+    }
+
+    /**
+     * [EMAIL PROTECTED]
+     * 
+     * @see 
com.xpn.xwiki.store.migration.hibernate.AbstractXWikiHibernateMigrator#getName()
+     */
+    public String getName()
+    {
+        return "R6430XWIKI1954";
+    }
+
+    /**
+     * [EMAIL PROTECTED]
+     * 
+     * @see AbstractXWikiHibernateMigrator#getDescription()
+     */
+    public String getDescription()
+    {
+        return "See http://jira.xwiki.org/jira/browse/XWIKI-1954";;
+    }
+
+    /** [EMAIL PROTECTED] */
+    public XWikiDBVersion getVersion()
+    {
+        return new XWikiDBVersion(6430);
+    }
+
+    /** [EMAIL PROTECTED] */
+    public void migrate(XWikiHibernateMigrationManager manager, final 
XWikiContext context)
+        throws XWikiException
+    {
+        if (this.startupVersion >= 4359) {
+            manager.getStore(context).executeWrite(context, true, new 
HibernateCallback() {
+                public Object doInHibernate(Session session) throws 
HibernateException, XWikiException
+                {
+                    try {
+                        Statement stmt = 
session.connection().createStatement();
+                        stmt.executeUpdate("update xwikidoc set 
XWD_ARCHIVE=null");
+                        stmt.close();
+                    } catch (SQLException e) {
+                        throw new 
XWikiException(XWikiException.MODULE_XWIKI_STORE,
+                            XWikiException.ERROR_XWIKI_STORE_MIGRATION, 
getName() + " migration failed", e);
+                    }
+                    return Boolean.TRUE;
+                }
+            });
+        }
+    }
+}

Modified: 
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/XWikiHibernateMigrationManager.java
===================================================================
--- 
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/XWikiHibernateMigrationManager.java
    2007-12-19 14:35:48 UTC (rev 6429)
+++ 
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/XWikiHibernateMigrationManager.java
    2007-12-19 14:37:26 UTC (rev 6430)
@@ -88,6 +88,7 @@
         result.add(new R4359XWIKI1459Migrator());
         result.add(new 
R6079XWIKI1878Migrator(getDBVersion(context).getVersion()));
         result.add(new 
R6405XWIKI1933Migrator(getDBVersion(context).getVersion()));
+        result.add(new 
R6430XWIKI1954Migrator(getDBVersion(context).getVersion()));
         // 2nd way - via classloader
         
         return result;

_______________________________________________
notifications mailing list
notifications@xwiki.org
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to