From 641c148c74d4881a583477cb3ed850c2912aa226 Mon Sep 17 00:00:00 2001
From: Kazuhiko Shiozaki <kazuhiko@nexedi.com>
Date: Sun, 2 Jan 2011 21:09:19 +0000
Subject: [PATCH] make timerserver works in Zope-2.12 too.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@41931 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/TimerService/timerserver/setup.py         |  2 +-
 .../timerserver/timerserver/TimerServer.py        | 15 +++++++++++++++
 product/TimerService/timerserver/version.txt      |  2 +-
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/product/TimerService/timerserver/setup.py b/product/TimerService/timerserver/setup.py
index 6841b1f0c2..49f2ba059b 100644
--- a/product/TimerService/timerserver/setup.py
+++ b/product/TimerService/timerserver/setup.py
@@ -23,7 +23,7 @@ except ImportError:
   from distutils.core import setup
 
 setup(name='timerserver',
-      version='2.0',
+      version=version,
       license='GPL',
       description='Timer Server for Zope',
       long_description='',
diff --git a/product/TimerService/timerserver/timerserver/TimerServer.py b/product/TimerService/timerserver/timerserver/TimerServer.py
index 40f3f543b9..536de3bd6d 100644
--- a/product/TimerService/timerserver/timerserver/TimerServer.py
+++ b/product/TimerService/timerserver/timerserver/TimerServer.py
@@ -15,6 +15,7 @@ from ZServer.PubCore import handle
 from ZPublisher.BaseRequest import BaseRequest
 from ZPublisher.BaseResponse import BaseResponse
 from ZPublisher.HTTPRequest import HTTPRequest
+from ZPublisher.HTTPResponse import HTTPResponse
 import ZPublisher.HTTPRequest
 
 class TimerServer:
@@ -147,3 +148,17 @@ class TimerRequest(HTTPRequest):
 
         env['PATH_INFO']= '/Control_Panel/timer_service/process_timer'
         return env
+
+    def clone(self):
+        # This method is a dumb copy of Zope-2.8's one that makes timerserver
+        # works in Zope-2.12 too.
+        #
+        # Return a clone of the current request object
+        # that may be used to perform object traversal.
+        environ = self.environ.copy()
+        environ['REQUEST_METHOD'] = 'GET'
+        if self._auth:
+            environ['HTTP_AUTHORIZATION'] = self._auth
+        clone = HTTPRequest(None, environ, HTTPResponse(), clean=1)
+        clone['PARENTS'] = [self['PARENTS'][-1]]
+        return clone
diff --git a/product/TimerService/timerserver/version.txt b/product/TimerService/timerserver/version.txt
index 3b04cfb60d..38f77a65b3 100644
--- a/product/TimerService/timerserver/version.txt
+++ b/product/TimerService/timerserver/version.txt
@@ -1 +1 @@
-0.2
+2.0.1
-- 
2.30.9