[Checkins] SVN: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/ * Get rid of zope.paste by including the actual application bootstrapping

Philipp von Weitershausen philikon at philikon.de
Wed Jul 11 16:18:35 EDT 2007


Log message for revision 77696:
  * Get rid of zope.paste by including the actual application bootstrapping
    in the skeleton app.  While this duplicates a few lines of code for each
    app, it greatly increases the flexibility (you can, for example, create
    ZODB-less apps more easily this way).
  
  * Use a traditional zope.conf file (except that you can't specify any servers
    nor an accesslog). The file_storage shortcut is gone.
  
  * Use the Paste#http server by default
  

Changed:
  U   Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/buildout.cfg_tmpl
  D   Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/deploy.ini
  A   Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/deploy.ini_tmpl
  A   Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/log/
  A   Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/log/README.txt
  A   Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/zope.conf
  A   Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/make_zope_app/+package+/application.py
  U   Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/make_zope_app/setup.py_tmpl

-=-
Modified: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/buildout.cfg_tmpl
===================================================================
--- Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/buildout.cfg_tmpl	2007-07-11 19:13:14 UTC (rev 77695)
+++ Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/buildout.cfg_tmpl	2007-07-11 20:18:34 UTC (rev 77696)
@@ -5,7 +5,6 @@
 [app]
 recipe = zc.recipe.egg
 eggs = {{egg}}
+       Paste
        PasteScript
        PasteDeploy
-       zope.paste
-       WSGIUtils

Deleted: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/deploy.ini
===================================================================
--- Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/deploy.ini	2007-07-11 19:13:14 UTC (rev 77695)
+++ Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/deploy.ini	2007-07-11 20:18:34 UTC (rev 77696)
@@ -1,9 +0,0 @@
-[app:main]
-use = egg:zope.paste
-site_definition = site.zcml
-file_storage = var/Data.fs
-
-[server:main]
-use = egg:PasteScript#wsgiutils
-host = 127.0.0.1
-port = 8080

Copied: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/deploy.ini_tmpl (from rev 77678, Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/deploy.ini)
===================================================================
--- Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/deploy.ini_tmpl	                        (rev 0)
+++ Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/deploy.ini_tmpl	2007-07-11 20:18:34 UTC (rev 77696)
@@ -0,0 +1,7 @@
+[app:main]
+use = egg:{{egg}}
+
+[server:main]
+use = egg:Paste#http
+host = 127.0.0.1
+port = 8080

Added: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/log/README.txt
===================================================================
--- Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/log/README.txt	                        (rev 0)
+++ Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/log/README.txt	2007-07-11 20:18:34 UTC (rev 77696)
@@ -0,0 +1 @@
+This directory contains logs such as the event log.


Property changes on: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/log/README.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/zope.conf
===================================================================
--- Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/zope.conf	                        (rev 0)
+++ Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/deploy_zope_app/zope.conf	2007-07-11 20:18:34 UTC (rev 77696)
@@ -0,0 +1,46 @@
+# Identify the component configuration used to define the site:
+#
+site-definition site.zcml
+
+# Standard Filestorage
+<zodb>
+  <filestorage>
+    path var/Data.fs
+  </filestorage>
+
+# uncomment this if you want to connect to a local ZEO server
+# instead:
+#  <zeoclient>
+#    server localhost:8100
+#    storage 1
+#    # ZEO client cache, in bytes
+#    cache-size 20MB
+#    # Uncomment to have a persistent disk cache
+#    #client zeo1
+#  </zeoclient>
+</zodb>
+
+<eventlog>
+  # This sets up logging to both a file and to standard output
+  # (STDOUT).  The "path" setting can be a relative or absolute
+  # filesystem path or the tokens STDOUT or STDERR.
+
+  <logfile>
+    path log/z3.log
+    formatter zope.exceptions.log.Formatter
+  </logfile>
+
+  <logfile>
+    path STDOUT
+    formatter zope.exceptions.log.Formatter
+  </logfile>
+</eventlog>
+
+# devmode
+#
+#   Switches the Developer Mode on and off.
+#
+# Default:
+#   devmode on
+#
+#devmode on

Added: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/make_zope_app/+package+/application.py
===================================================================
--- Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/make_zope_app/+package+/application.py	                        (rev 0)
+++ Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/make_zope_app/+package+/application.py	2007-07-11 20:18:34 UTC (rev 77696)
@@ -0,0 +1,32 @@
+import sys, os
+import ZConfig
+import zope.event
+import zope.app.appsetup
+from zope.app.wsgi import WSGIPublisherApplication
+from zope.app.appsetup.appsetup import multi_database
+from zope.app.appsetup.interfaces import DatabaseOpened, ProcessStarting
+
+def application_factory(global_conf, conf='zope.conf'):
+    # load 'zope.conf' configuration
+    schema_xml = os.path.join(
+        os.path.dirname(zope.app.appsetup.__file__), 'schema', 'schema.xml')
+    schema = ZConfig.loadSchema(schema_xml)
+    options, handlers = ZConfig.loadConfig(
+        schema, os.path.join(global_conf['here'], conf))
+
+    if options.path:
+        sys.path[0:0] = [os.path.abspath(p) for p in options.path]
+    options.eventlog()
+
+    # load ZCML configuration
+    features = ()
+    if options.devmode:
+        features += ('devmode',)
+    zope.app.appsetup.config(options.site_definition, features)
+
+    # notify of ZODB database opening
+    db = multi_database(options.databases)[0][0]
+    zope.event.notify(DatabaseOpened(db))
+
+    zope.event.notify(ProcessStarting())
+    return WSGIPublisherApplication(db)


Property changes on: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/make_zope_app/+package+/application.py
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/make_zope_app/setup.py_tmpl
===================================================================
--- Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/make_zope_app/setup.py_tmpl	2007-07-11 19:13:14 UTC (rev 77695)
+++ Sandbox/philikon/mkzopeapp/trunk/mkzopeapp/make_zope_app/setup.py_tmpl	2007-07-11 20:18:34 UTC (rev 77696)
@@ -19,12 +19,26 @@
       zip_safe=False,
       install_requires=['setuptools',
                         'ZODB3',
-                        'zope.interface',
-                        'zope.schema',
-                        'zope.component',
+                        'ZConfig',
+                        'zope.annotation',
+                        'zope.copypastemove',
+                        'zope.event',
+                        'zope.formlib',
+                        'zope.i18n',
+                        'zope.publisher',
+                        'zope.size',
+                        'zope.traversing',
+                        'zope.app.wsgi',
+                        'zope.app.appsetup',
                         'zope.app.authentication',
+                        'zope.app.traversing',
                         'zope.app.security',
                         'zope.app.securitypolicy',
+                        'zope.app.session',
                         'zope.app.zcmlfiles',
                         ],
+      entry_points = """
+      [paste.app_factory]
+      main = {{package}}.application:application_factory
+      """
       )



More information about the Checkins mailing list