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