From aaa8483d99bb67574161da2ac25519052dd62c00 Mon Sep 17 00:00:00 2001
From: Kazuhiko Shiozaki <kazuhiko@nexedi.com>
Date: Thu, 12 Feb 2009 19:43:57 +0000
Subject: [PATCH] these patches are no longer required because Zope 2.7 is no
 longer supported.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@25552 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5Type/ZopePatch.py                |  5 --
 product/ERP5Type/patches/Connection.py       | 74 --------------------
 product/ERP5Type/patches/PersistencePatch.py | 39 -----------
 product/ERP5Type/patches/Transaction.py      | 54 --------------
 product/ERP5Type/patches/copy_reg_patch.py   | 62 ----------------
 product/ERP5Type/patches/persistent_patch.py | 39 -----------
 6 files changed, 273 deletions(-)
 delete mode 100644 product/ERP5Type/patches/Connection.py
 delete mode 100644 product/ERP5Type/patches/PersistencePatch.py
 delete mode 100644 product/ERP5Type/patches/Transaction.py
 delete mode 100644 product/ERP5Type/patches/copy_reg_patch.py
 delete mode 100644 product/ERP5Type/patches/persistent_patch.py

diff --git a/product/ERP5Type/ZopePatch.py b/product/ERP5Type/ZopePatch.py
index 81d8fd1087..0856bd0ae8 100644
--- a/product/ERP5Type/ZopePatch.py
+++ b/product/ERP5Type/ZopePatch.py
@@ -25,7 +25,6 @@ from Products.ERP5Type.patches import PropertyManager
 from Products.ERP5Type.patches import DA
 from Products.ERP5Type.patches import DCWorkflow
 from Products.ERP5Type.patches import BTreeFolder2
-from Products.ERP5Type.patches import Transaction
 from Products.ERP5Type.patches import WorkflowTool
 from Products.ERP5Type.patches import XMLExportImport
 from Products.ERP5Type.patches import ppml
@@ -47,14 +46,10 @@ from Products.ERP5Type.patches import CMFCoreSkinnable
 from Products.ERP5Type.patches import CMFCoreSkinsTool
 from Products.ERP5Type.patches import CMFBTreeFolder
 from Products.ERP5Type.patches import OFSFolder
-from Products.ERP5Type.patches import Connection
-from Products.ERP5Type.patches import copy_reg_patch
-from Products.ERP5Type.patches import PersistencePatch
 from Products.ERP5Type.patches import PersistentMapping
 from Products.ERP5Type.patches import DateTimePatch
 from Products.ERP5Type.patches import PythonScript
 from Products.ERP5Type.patches import MailTemplates
-from Products.ERP5Type.patches import persistent_patch
 from Products.ERP5Type.patches import http_server
 
 # These symbols are required for backward compatibility
diff --git a/product/ERP5Type/patches/Connection.py b/product/ERP5Type/patches/Connection.py
deleted file mode 100644
index 7cc78557c8..0000000000
--- a/product/ERP5Type/patches/Connection.py
+++ /dev/null
@@ -1,74 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# Copyright (c) 2007 Nexedi SA
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE
-#
-##############################################################################
-
-"""This patch is for importing Business Templates generated by Zope 2.8
-into Zope 2.7.
-
-In Zope 2.7, the class of an object was represented by a tuple (module, name),
-but this has been changed to just a class name itself.
-"""
-
-try:
-    # This portion depends on ZODB, so the version test is based on
-    # the ZODB's structure. In ZODB 3.4 and later, the object serialization
-    # is segregated to serialize.py, while it is in Connection.py in ZODB 3.2.
-    from ZODB import serialize
-    del serialize
-except ImportError:
-    from ZODB.Connection import Connection, StringIO, Unpickler, ExtensionKlass
-
-    def __getitem__(self, oid, tt=type(())):
-        obj = self._cache.get(oid, None)
-        if obj is not None:
-            return obj
-
-        __traceback_info__ = (oid)
-        p, serial = self._storage.load(oid, self._version)
-        __traceback_info__ = (oid, p)
-        file=StringIO(p)
-        unpickler=Unpickler(file)
-        unpickler.persistent_load=self._persistent_load
-
-        object = unpickler.load()
-
-        # <patch author="yo">
-        if type(object) is tt:
-            klass, args = object
-        else:
-            klass = object
-            args = None
-        # </patch>
-
-        if type(klass) is tt:
-            module, name = klass
-            klass=self._db._classFactory(self, module, name)
-
-        if (args is None or
-            not args and not hasattr(klass,'__getinitargs__')):
-            object=klass.__basicnew__()
-        else:
-            object = klass(*args)
-            if klass is not ExtensionKlass:
-                object.__dict__.clear()
-
-        object._p_oid=oid
-        object._p_jar=self
-        object._p_changed=None
-        object._p_serial=serial
-
-        self._cache[oid] = object
-        return object
-
-    Connection.__getitem__ = __getitem__
diff --git a/product/ERP5Type/patches/PersistencePatch.py b/product/ERP5Type/patches/PersistencePatch.py
deleted file mode 100644
index 359196f3f3..0000000000
--- a/product/ERP5Type/patches/PersistencePatch.py
+++ /dev/null
@@ -1,39 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Nexedi SARL and Contributors. All Rights Reserved.
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-
-# Add compatibility for importing business template generated from
-# Zope 2.8 in Zope 2.7
-try:
-  from Persistence import mapping
-except ImportError:
-  import Persistence
-  from PersistentMapping import PersistentMapping
-  import imp
-  import sys
-  Persistence.mapping = imp.new_module('Persistence.mapping')
-  sys.modules['Persistence.mapping'] = Persistence.mapping
-  Persistence.mapping.PersistentMapping = PersistentMapping
diff --git a/product/ERP5Type/patches/Transaction.py b/product/ERP5Type/patches/Transaction.py
deleted file mode 100644
index 09ef72aa8b..0000000000
--- a/product/ERP5Type/patches/Transaction.py
+++ /dev/null
@@ -1,54 +0,0 @@
-############################################################################
-#
-# Copyright (c) 2004 Zope Corporation and Contributors.
-# Copyright (c) 2002,2005,2007 Nexedi SA and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-############################################################################
-
-# Add beforeCommitHook into Transaction under Zope 2.7. This API is compatible
-# with Zope 2.8.
-try:
-    from ZODB.Transaction import Transaction
-    
-    super__commit = Transaction.commit
-    super__init = Transaction.__init__
-
-    def __init__(self, *args, **kw):
-      super__init(self, *args, **kw)
-      self._before_commit = []
-
-    def commit(self, subtransaction=None):
-      """Finalize the transaction."""
-      if not subtransaction:
-        self._callBeforeCommitHooks()
-
-      return super__commit(self, subtransaction=subtransaction)
-   
-    def beforeCommitHook(self, hook, *args, **kws):
-        self._before_commit.append((hook, args, kws))
-
-    def _callBeforeCommitHooks(self):
-        # Call all hooks registered, allowing further registrations
-        # during processing.
-        while self._before_commit:
-            hook, args, kws = self._before_commit.pop(0)
-            hook(*args, **kws)
-
-    from new import instancemethod
-    Transaction.__init__ = instancemethod(__init__, None, Transaction)
-    Transaction.commit = instancemethod(commit, None, Transaction)
-    Transaction.beforeCommitHook = instancemethod(beforeCommitHook, None, 
-                                                  Transaction)
-    Transaction._callBeforeCommitHooks = instancemethod(_callBeforeCommitHooks,
-                                                        None, Transaction)
-except ImportError:
-    # On Zope 2.8, do not patch Transaction.
-    pass
diff --git a/product/ERP5Type/patches/copy_reg_patch.py b/product/ERP5Type/patches/copy_reg_patch.py
deleted file mode 100644
index ae7d16c55e..0000000000
--- a/product/ERP5Type/patches/copy_reg_patch.py
+++ /dev/null
@@ -1,62 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.
-#                    Yoshinori Okuji <yo@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-
-"""This is another patch for importing Business Templates generated by Zope 2.8
-into Zope 2.7. Also, look at Connection.py for the other part.
-
-In Zope 2.8 (i.e. ZODB 3.4), persistent objects are based on new-style class,
-while Zope 2.7 (i.e. ZODB 3.2) uses old-style class only. To instantiate
-objects in ZODB 3.4 and later, copy_reg.__newobj__ is utilized, which
-supports only new-style class. On the other hand, ZODB 3.2 makes an empty
-object by calling the class object with None.
-
-However, this is based on the analysis of some observation, and theoretically
-not very certain. There might be an occasion where non-None arguments are
-used to instantiate a ghost object. I am not sure. If this is not true,
-we must patch __newobj__ differently.
-
-Note that this file is named copy_reg_patch instead of copy_reg by intention.
-Otherwise, importing copy_reg results in importing itself. SO DO NOT RENAME
-THIS FILE TO copy_reg.py.
-"""
-
-try:
-    from ZODB import serialize
-    del serialize
-except ImportError:
-    import copy_reg
-
-    original_newobj = copy_reg.__newobj__
-    def __newobj__(cls, *args):
-        # If this method is used for new-style class, call the original.
-        # Otherwise, just call the class object with None.
-        if issubclass(cls, object):
-            return original_newobj(cls, *args)
-        return cls(None)
-
-    copy_reg.__newobj__ = __newobj__
diff --git a/product/ERP5Type/patches/persistent_patch.py b/product/ERP5Type/patches/persistent_patch.py
deleted file mode 100644
index b2a85a2b87..0000000000
--- a/product/ERP5Type/patches/persistent_patch.py
+++ /dev/null
@@ -1,39 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2008 Nexedi SA and Contributors. All Rights Reserved.
-#                    TAHARA Yusei <yusei@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-
-# This patch provides forward compatibility between 2.7 and 2.8.
-try:
-  import persistent
-except ImportError:
-  import sys
-  import types
-  from ZODB import PersistentList
-  persistent = types.ModuleType('persistent')
-  persistent.list = PersistentList
-  sys.modules['persistent'] = persistent
-  sys.modules['persistent.list'] = persistent.list
-- 
2.30.9