From 0b562a83baf6c605aace2a3587ab2096d0b71b94 Mon Sep 17 00:00:00 2001
From: Julien Muchembled <jm@nexedi.com>
Date: Mon, 6 Jun 2016 14:09:48 +0200
Subject: [PATCH] Partial support for more recent versions of ZODB

---
 product/ERP5Type/patches/DemoStorage.py     | 6 +++---
 product/ERP5Type/patches/XMLExportImport.py | 6 +++++-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/product/ERP5Type/patches/DemoStorage.py b/product/ERP5Type/patches/DemoStorage.py
index f521562220..87ce80303f 100644
--- a/product/ERP5Type/patches/DemoStorage.py
+++ b/product/ERP5Type/patches/DemoStorage.py
@@ -16,8 +16,6 @@ from ZODB import DemoStorage as _DemoStorage
 from ZODB.ConflictResolution import ConflictResolvingStorage, ResolvedSerial
 from ZODB.POSException import ConflictError
 
-assert not issubclass(_DemoStorage.DemoStorage, ConflictResolvingStorage)
-
 class DemoStorage(_DemoStorage.DemoStorage, ConflictResolvingStorage):
     ##
     # Implement conflict resolution for DemoStorage
@@ -33,4 +31,6 @@ class DemoStorage(_DemoStorage.DemoStorage, ConflictResolvingStorage):
             self.changes.store(oid, old, rdata, '', transaction)
             return ResolvedSerial
 
-_DemoStorage.DemoStorage = DemoStorage
+if not issubclass(_DemoStorage.DemoStorage, ConflictResolvingStorage):
+    # BBB: ZODB < 4.3
+    _DemoStorage.DemoStorage = DemoStorage
diff --git a/product/ERP5Type/patches/XMLExportImport.py b/product/ERP5Type/patches/XMLExportImport.py
index c72b3ceaf7..e23922441a 100644
--- a/product/ERP5Type/patches/XMLExportImport.py
+++ b/product/ERP5Type/patches/XMLExportImport.py
@@ -59,7 +59,11 @@ class OrderedPickler(Pickler):
         dispatch[PyStringMap] = save_dict
 
 def reorderPickle(jar, p):
-    from ZODB.ExportImport import Ghost, Unpickler, Pickler, StringIO, persistent_id
+    try:
+        from ZODB._compat import Unpickler, Pickler
+    except ImportError: # BBB: ZODB 3.10
+        from ZODB.ExportImport import Unpickler, Pickler
+    from ZODB.ExportImport import Ghost, persistent_id
 
     oids = {}
     storage = jar._storage
-- 
2.30.9