[z3-checkins] r31268 - z3/jsonserver/branch/merge/concatresource
reebalazs at codespeak.net
reebalazs at codespeak.net
Sat Aug 12 16:20:35 CEST 2006
Author: reebalazs
Date: Sat Aug 12 16:20:32 2006
New Revision: 31268
Added:
z3/jsonserver/branch/merge/concatresource/resource.py
- copied unchanged from r28077, z3/jsonserver/branch/merge/concatresource/concatresource.py
Removed:
z3/jsonserver/branch/merge/concatresource/concatresource.py
Modified:
z3/jsonserver/branch/merge/concatresource/__init__.py
z3/jsonserver/branch/merge/concatresource/concatfileresource.py
z3/jsonserver/branch/merge/concatresource/meta.py
Log:
Enhance z3-compatibility: aliasing is not done to Products but to python module root
Modified: z3/jsonserver/branch/merge/concatresource/__init__.py
==============================================================================
--- z3/jsonserver/branch/merge/concatresource/__init__.py (original)
+++ z3/jsonserver/branch/merge/concatresource/__init__.py Sat Aug 12 16:20:32 2006
@@ -1,11 +1,11 @@
'''\
Product init
'''
-# alias myself to Products, directly
+# alias myself to python import root, directly
try:
- import sys, Products
- if not hasattr(Products, 'concatresource'):
+ import sys
+ if not 'concatresource' in sys.modules:
# only 1st import is aliased.
- Products.concatresource = sys.modules['Products.concatresource'] = sys.modules[globals()['__name__']]
+ sys.modules['concatresource'] = sys.modules[globals()['__name__']]
except ImportError:
pass
Modified: z3/jsonserver/branch/merge/concatresource/concatfileresource.py
==============================================================================
--- z3/jsonserver/branch/merge/concatresource/concatfileresource.py (original)
+++ z3/jsonserver/branch/merge/concatresource/concatfileresource.py Sat Aug 12 16:20:32 2006
@@ -9,10 +9,7 @@
from zope.interface import implements
from interfaces import IContextFile
# we are aliased to Products, hence the following absolute import
-try:
- from Products.concatresource.interfaces import IConcatResourceAddon
-except ImportError:
- from interfaces import IConcatResourceAddon
+from concatresource.interfaces import IConcatResourceAddon
from fileresource import File
from compression import compress
import time
Deleted: /z3/jsonserver/branch/merge/concatresource/concatresource.py
==============================================================================
--- /z3/jsonserver/branch/merge/concatresource/concatresource.py Sat Aug 12 16:20:32 2006
+++ (empty file)
@@ -1,134 +0,0 @@
-from zope.app.publisher.browser import BrowserView
-from zope.publisher.interfaces.browser import IBrowserPublisher
-from zope.app.datetimeutils import time as timeFromDateTimeString
-from zope.interface import implements
-from concatfileresource import ConcatFiles
-from interfaces import ICachedResource
-import cachingadapter # force adapter registration
-
-try:
- import Products.Five
-except ImportError:
- __five__ = False
- from zope.app.publisher.browser.resource import Resource
-else:
- __five__ = True
- try:
- # Zope 2.8 / Five 1.0.2
- from Products.Five.resource import Resource
- __five_pre_1_3_ = True
- except ImportError:
- # Zope 2.9 / Five 1.3
- from Products.Five.browser.resource import Resource
- __five_pre_1_3__ = False
-
-class GenericResource(BrowserView, Resource):
- """A publishable resource"""
-
- if __five__:
- #implements(IBrowserPublisher)
-
- def __browser_default__(self, request):
- return self, (request.REQUEST_METHOD,)
-
- else:
- implements(IBrowserPublisher)
-
- def publishTraverse(self, request, name):
- '''See interface IBrowserPublisher'''
- raise LookupError(name)
-
- def browserDefault(self, request):
- '''See interface IBrowserPublisher'''
- return getattr(self, request.method), ()
-
- # for unit tests
- def _testData(self):
- return self.context.data
-
- def chooseContext(self):
- """Choose the appropriate context"""
- return self.context
-
- def GET(self):
- """Default document"""
-
- file = self.chooseContext()
- request = self.request
- response = request.response
-
- # HTTP If-Modified-Since header handling. This is duplicated
- # from OFS.Image.Image - it really should be consolidated
- # somewhere...
- if __five__:
- header = request.get_header('If-Modified-Since')
- else:
- header = request.getHeader('If-Modified-Since', None)
- if header is not None:
- header = header.split(';')[0]
- # Some proxies seem to send invalid date strings for this
- # header. If the date string is not valid, we ignore it
- # rather than raise an error to be generally consistent
- # with common servers such as Apache (which can usually
- # understand the screwy date string as a lucky side effect
- # of the way they parse it).
- try: mod_since=long(timeFromDateTimeString(header))
- except: mod_since=None
- if mod_since is not None:
- last_mod = file.lmt
- if last_mod > 0 and last_mod <= mod_since:
- response.setStatus(304)
- return ''
-
- response.setHeader('Content-Type', file.content_type)
- response.setHeader('Last-Modified', file.lmh)
- # Cache for one day
- response.setHeader('Cache-Control', 'public,max-age=86400')
- data = file.data
- # force delete file contents
- file.purgeData()
-
- return data
-
- def HEAD(self):
- file = self.chooseContext()
- response = self.request.response
- response.setHeader('Content-Type', file.content_type)
- response.setHeader('Last-Modified', file.lmh)
- # Cache for one day
- response.setHeader('Cache-Control', 'public,max-age=86400')
- return ''
-
-class ResourceFactory(object):
-
- factory = None
- resource = None
-
- def __init__(self, path, name, compress_level, resource_factory=None, checker=None):
- self.__name = name
- self.__path = path
- self.__compress_level = compress_level
- if resource_factory is not None:
- self.resource = resource_factory
- # z3 only
- self.__checker = checker
-
- def __call__(self, request):
- try:
- rsrc = self.__rsrc
- except AttributeError:
- # Delayed creation. That assures that registry is set up by this time.
- rsrc = self.__rsrc = ICachedResource(self.factory(self.__path, self.__name, self.__compress_level))
- resource = self.resource(rsrc, request)
- # z3 only
- resource.__name__ = self.__name
- if self.__checker is not None:
- # z3 only
- resource.__Security_checker__ = self.__checker
- return resource
-
-class ConcatResourceFactory(ResourceFactory):
- """A factory for concat resources"""
-
- factory = ConcatFiles
- resource = GenericResource
Modified: z3/jsonserver/branch/merge/concatresource/meta.py
==============================================================================
--- z3/jsonserver/branch/merge/concatresource/meta.py (original)
+++ z3/jsonserver/branch/merge/concatresource/meta.py Sat Aug 12 16:20:32 2006
@@ -5,7 +5,7 @@
from zope.publisher.interfaces.browser import IBrowserRequest
from zope.app.component.metaconfigure import handler
from zope.interface import Interface
-from concatresource import ConcatResourceFactory
+from resource import ConcatResourceFactory
try:
import Products.Five
More information about the z3-checkins
mailing list