[Zope-Checkins]
SVN: Zope/branches/regebro-wsgi_support2/lib/python/Zope2/Startup/handlers.py
Made the twisted module optional.
Lennart Regebro
regebro at gmail.com
Sun Apr 30 12:13:47 EDT 2006
Log message for revision 67769:
Made the twisted module optional.
Changed:
U Zope/branches/regebro-wsgi_support2/lib/python/Zope2/Startup/handlers.py
-=-
Modified: Zope/branches/regebro-wsgi_support2/lib/python/Zope2/Startup/handlers.py
===================================================================
--- Zope/branches/regebro-wsgi_support2/lib/python/Zope2/Startup/handlers.py 2006-04-30 15:59:12 UTC (rev 67768)
+++ Zope/branches/regebro-wsgi_support2/lib/python/Zope2/Startup/handlers.py 2006-04-30 16:13:46 UTC (rev 67769)
@@ -5,11 +5,30 @@
from re import compile
from socket import gethostbyaddr
-import twisted.internet
-from twisted.application.service import MultiService
-import zope.app.appsetup.interfaces
-import zope.app.twisted.main
+try:
+ import twisted.internet
+ from twisted.application.service import MultiService
+ import zope.app.appsetup.interfaces
+ import zope.app.twisted.main
+ import twisted.web2.wsgi
+ import twisted.web2.server
+ import twisted.web2.log
+
+ try:
+ from twisted.web2.http import HTTPFactory
+ except ImportError:
+ from twisted.web2.channel.http import HTTPFactory
+
+ from zope.component import provideUtility
+ from zope.app.twisted.server import ServerType, SSLServerType
+ from zope.app.twisted.interfaces import IServerType
+ from ZPublisher.WSGIPublisher import publish_module
+
+ _use_twisted = True
+except ImportError:
+ _use_twisted = False
+
# top-level key handlers
@@ -242,29 +261,15 @@
if isIp_(host): return [host]
return gethostbyaddr(host)[2]
-# XXX Need to find a better place for this.
-import twisted.web2.wsgi
-import twisted.web2.server
-import twisted.web2.log
+# Twisted support:
-try:
- from twisted.web2.http import HTTPFactory
-except ImportError:
- from twisted.web2.channel.http import HTTPFactory
-
-from zope.component import provideUtility
-from zope.app.twisted.server import ServerType, SSLServerType
-from zope.app.twisted.interfaces import IServerType
-from ZPublisher.WSGIPublisher import publish_module
-
def createHTTPFactory(ignored):
- resource = twisted.web2.wsgi.WSGIResource(
- publish_module)
+ resource = twisted.web2.wsgi.WSGIResource(publish_module)
resource = twisted.web2.log.LogWrapperResource(resource)
return HTTPFactory(twisted.web2.server.Site(resource))
-http = ServerType(createHTTPFactory, 8080)
-
-provideUtility(http, IServerType, 'Zope2-HTTP')
+if _use_twisted:
+ http = ServerType(createHTTPFactory, 8080)
+ provideUtility(http, IServerType, 'Zope2-HTTP')
More information about the Zope-Checkins
mailing list