[Zope3-checkins] CVS: Zope3/src/zope/app/startup - bootstrap.py:1.3.4.2 configure.zcml:1.3.2.1 metaconfigure.py:1.2.4.1 requestfactory.py:1.2.4.1 requestfactoryregistry.py:1.2.4.1 simpleregistry.py:1.2.4.1 sitedefinition.py:1.5.2.1

Sidnei da Silva sidnei@x3ng.com.br
Tue, 11 Feb 2003 09:42:03 -0500


Update of /cvs-repository/Zope3/src/zope/app/startup
In directory cvs.zope.org:/tmp/cvs-serv18615/src/zope/app/startup

Modified Files:
      Tag: paris-copypasterename-branch
	bootstrap.py configure.zcml metaconfigure.py requestfactory.py 
	requestfactoryregistry.py simpleregistry.py sitedefinition.py 
Log Message:
Updating from HEAD to make sure everything still works before merging

=== Zope3/src/zope/app/startup/bootstrap.py 1.3.4.1 => 1.3.4.2 ===
--- Zope3/src/zope/app/startup/bootstrap.py:1.3.4.1	Wed Feb  5 11:06:10 2003
+++ Zope3/src/zope/app/startup/bootstrap.py	Tue Feb 11 09:41:31 2003
@@ -24,6 +24,8 @@
 from zope.app.traversing import traverse, traverseName
 from zope.app.publication.zopepublication import ZopePublication
 from zope.app.content.folder import RootFolder
+from zope.component.servicenames import Events, HubIds, Subscription
+from zope.component.servicenames import ErrorReports
 from zope.app.services.service import ServiceManager
 from zope.app.services.service import ServiceConfiguration
 from zope.app.services.hub import ObjectHub
@@ -62,11 +64,11 @@
     """
     service_manager = ServiceManager()
     root_folder.setServiceManager(service_manager)
-    name = addConfigureService(root_folder, 'Events', EventService)
-    configureService(root_folder, 'Subscription', name)
+    name = addConfigureService(root_folder, Events, EventService)
+    configureService(root_folder, Subscription, name)
     
-    addConfigureService(root_folder, 'HubIds', ObjectHub)
-    addConfigureService(root_folder, 'ErrorReportingService',
+    addConfigureService(root_folder, HubIds, ObjectHub)
+    addConfigureService(root_folder, ErrorReports,
                         ErrorReportingService, copy_to_zlog=True)
     addConfigureService(root_folder, 'PrincipalAnnotation', \
                         PrincipalAnnotationService)


=== Zope3/src/zope/app/startup/configure.zcml 1.3 => 1.3.2.1 ===
--- Zope3/src/zope/app/startup/configure.zcml:1.3	Mon Feb  3 10:08:49 2003
+++ Zope3/src/zope/app/startup/configure.zcml	Tue Feb 11 09:41:31 2003
@@ -3,6 +3,12 @@
    xmlns:startup="http://namespaces.zope.org/startup">
 
 
+  <startup:registerRequestFactory 
+    name="HTTPRequestFactory"
+    factory="zope.app.publication.httpfactory"
+  />
+
+
   <startup:registerRequestFactory name="BrowserRequestFactory"
     publication = 
     "zope.app.publication.browser.BrowserPublication"
@@ -22,6 +28,14 @@
     request = "zope.publisher.ftp.FTPRequest" 
   />
 
+
+  <startup:registerServerType 
+    name = "HTTP"
+    factory = "zope.server.http.publisherhttpserver.PublisherHTTPServer"
+    requestFactory="HTTPRequestFactory"
+    logFactory = "zope.server.http.commonhitlogger.CommonHitLogger"
+    defaultPort="8080"
+    defaultVerbose="true" />
 
   <startup:registerServerType 
     name = "Browser"


=== Zope3/src/zope/app/startup/metaconfigure.py 1.2 => 1.2.4.1 ===
--- Zope3/src/zope/app/startup/metaconfigure.py:1.2	Wed Dec 25 09:13:24 2002
+++ Zope3/src/zope/app/startup/metaconfigure.py	Tue Feb 11 09:41:31 2003
@@ -27,10 +27,20 @@
 defineSite = SiteDefinition
 
 
-def registerRequestFactory(_context, name, publication, request):
-    publication = _context.resolve(publication)
-    request = _context.resolve(request)
-    request_factory = RequestFactory(publication, request)
+def registerRequestFactory(_context, name, request=None, publication=None,
+                           factory=None):
+
+    if factory:
+        if request or publication:
+            raise ValuesError(
+                """Can't provide a request or publication (factory) if you
+                provide a (request) factory""")
+        request_factory = _context.resolve(factory)
+
+    else:
+        publication = _context.resolve(publication)
+        request = _context.resolve(request)
+        request_factory = RequestFactory(publication, request)
 
     return [
         Action(


=== Zope3/src/zope/app/startup/requestfactory.py 1.2 => 1.2.4.1 ===
--- Zope3/src/zope/app/startup/requestfactory.py:1.2	Wed Dec 25 09:13:24 2002
+++ Zope3/src/zope/app/startup/requestfactory.py	Tue Feb 11 09:41:31 2003
@@ -14,28 +14,8 @@
 """ctory.py,v 1.1.2.2 2002/04/02 02:20:40 srichter Exp $
 """
 
-from zope.interface import Interface
 import copy
-
-
-class IRequestFactory(Interface):
-    """This is a pure read-only interface, since the values are set through
-       a ZCML directive and we shouldn't be able to change them.
-    """
-
-    def realize(db):
-        """Realize the factory by initalizing the publication.
-
-           The method returns the realized object.
-        """
-
-
-    def __call__(input_stream, output_steam, env):
-        """Call the Request Factory"""
-
-
-
-
+from zope.app.interfaces.startup import IRequestFactory
 
 class RequestFactory:
     """This class will generically create RequestFactories. This way I do


=== Zope3/src/zope/app/startup/requestfactoryregistry.py 1.2 => 1.2.4.1 ===
--- Zope3/src/zope/app/startup/requestfactoryregistry.py:1.2	Wed Dec 25 09:13:24 2002
+++ Zope3/src/zope/app/startup/requestfactoryregistry.py	Tue Feb 11 09:41:31 2003
@@ -16,7 +16,7 @@
 """
 from zope.app.interfaces.startup.simpleregistry import ISimpleRegistry
 from zope.app.startup.simpleregistry import SimpleRegistry
-from zope.app.startup.requestfactory import IRequestFactory
+from zope.app.interfaces.startup import IPublicationRequestFactoryFactory
 
 
 class IRequestFactoryRegistry(ISimpleRegistry):
@@ -32,9 +32,16 @@
 
 
 class RequestFactoryRegistry(SimpleRegistry):
-    __implements__ =  (IRequestFactoryRegistry,)
+    __implements__ =  IRequestFactoryRegistry
 
 
-RequestFactoryRegistry = RequestFactoryRegistry(IRequestFactory)
+RequestFactoryRegistry = RequestFactoryRegistry(
+    IPublicationRequestFactoryFactory)
+
 registerRequestFactory = RequestFactoryRegistry.register
 getRequestFactory = RequestFactoryRegistry.get
+
+# Register our cleanup with Testing.CleanUp to make writing unit tests simpler.
+from zope.testing.cleanup import addCleanUp
+addCleanUp(RequestFactoryRegistry._clear)
+del addCleanUp


=== Zope3/src/zope/app/startup/simpleregistry.py 1.2 => 1.2.4.1 ===
--- Zope3/src/zope/app/startup/simpleregistry.py:1.2	Wed Dec 25 09:13:24 2002
+++ Zope3/src/zope/app/startup/simpleregistry.py	Tue Feb 11 09:41:31 2003
@@ -64,6 +64,8 @@
         self.objects = {}
         self.interface = interface
 
+    def _clear(self):
+        self.objects.clear()
 
     def register(self, name, object):
         '''See ISimpleRegistry'''
@@ -71,17 +73,8 @@
         if name in self.objects.keys():
             raise ZopeDuplicateRegistryEntryError(name)
 
-        # XXX Find the right Interface tools to do that; unfortunately,
-        #     I have not found them
-        # Check whether the object implements the right interface.
-        # Note, that we do *not* know whether the object is an instance
-        # or a class (or worse a Persistent class)
-        if hasattr(object, '__implements__') and \
-               ( self.interface == object.__implements__ or \
-                 ( type(object.__implements__) in ListTypes and
-                   self.interface in object.__implements__ ) ):
+        if self.interface.isImplementedBy(object):
             self.objects[name] = object
-
         else:
             raise ZopeIllegalInterfaceError(name, self.interface)
 


=== Zope3/src/zope/app/startup/sitedefinition.py 1.5 => 1.5.2.1 ===
--- Zope3/src/zope/app/startup/sitedefinition.py:1.5	Tue Jan 28 16:03:10 2003
+++ Zope3/src/zope/app/startup/sitedefinition.py	Tue Feb 11 09:41:31 2003
@@ -38,6 +38,7 @@
 from zope.app.publication.zopepublication import ZopePublication
 from zope.app.browser.undo import ZODBUndoManager
 from zope.component import getService
+from zope.component.servicenames import Utilities
 from zope.server.taskthreads import ThreadedTaskDispatcher
 
 from zodb.code.module import PersistentModuleImporter
@@ -175,7 +176,7 @@
         sys.setcheckinterval(120)
 
         # setup undo fnctionality
-        getService(None,"Utilities").provideUtility(
+        getService(None,Utilities).provideUtility(
             IUndoManager,
             ZODBUndoManager(self._zodb)
             )