[Zope-dev] moment when zope was started.
Victor Safronovich
vsafronovich at naumen.ru
Tue Nov 8 01:54:15 EST 2005
VS> How could i find the moment when zope was started in Zope 2.8?
VS> in Zope 2.7 was the variable 'Zope.Startup.started', which setted to True when
VS> zope was started.
VS> But in Zope 2.8 the variable 'Zope2.Startup.started' not changed its value to
VS> True, because Zope2.Startup.start_zope was never called, instead of that called
VS> Zope2.Startup.run.run function.
this may be fixed like in attachment.
--
Best regards,
Victor Safronovich
NauMen.NauDoc.SoftwareDeveloper http://www.naumen.ru
-------------- next part --------------
Index: __init__.py
===================================================================
--- __init__.py (revision 39858)
+++ __init__.py (working copy)
@@ -28,13 +28,17 @@
logger = logging.getLogger("Zope")
started = False
+starter = None
def get_starter():
- check_python_version()
- if sys.platform[:3].lower() == "win":
- return WindowsZopeStarter()
- else:
- return UnixZopeStarter()
+ global starter
+ if starter is None:
+ check_python_version()
+ if sys.platform[:3].lower() == "win":
+ starter = WindowsZopeStarter()
+ else:
+ starter = UnixZopeStarter()
+ return starter
def start_zope(cfg, debug_handler):
"""The function called by run.py which starts a Zope appserver."""
@@ -47,11 +51,11 @@
starter.setConfiguration(cfg)
starter.prepare()
- started = True
+ starter.start()
try:
starter.run()
finally:
- started = False
+ starter.finish()
class ZopeStarter:
@@ -59,6 +63,8 @@
Making it a class makes it easier to test.
"""
+ started = False
+
def __init__(self):
self.event_logger = logging.getLogger()
# We log events to the root logger, which is backed by a
@@ -81,6 +87,14 @@
def setConfiguration(self, cfg):
self.cfg = cfg
+ def start(self):
+ global started
+ self.started = started = True
+
+ def finish(self)
+ global started
+ self.started = started = False
+
def prepare(self):
self.setupInitialLogging()
self.setupLocale()
Index: run.py
===================================================================
--- run.py (revision 39858)
+++ run.py (working copy)
@@ -15,11 +15,7 @@
def run():
""" Start a Zope instance """
import Zope2.Startup
- starter = Zope2.Startup.get_starter()
- opts = _setconfig()
- starter.setConfiguration(opts.configroot)
- starter.prepare()
- starter.run()
+ Zope2.Startup.start_zope(_setconfig().configroot, None)
def configure(configfile):
""" Provide an API which allows scripts like zopectl to configure
More information about the Zope-Dev
mailing list