From jeremy at zope.com Fri Nov 2 15:54:18 2001 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:16 2008 Subject: [ZEO-Checkins] CVS: ZEO/ZEO - ClientCache.py:1.18 ClientStorage.py:1.35 Invalidator.py:1.6 StorageServer.py:1.30 start.py:1.26 trigger.py:1.3 zrpc.py:1.20 Message-ID: <200111022054.fA2KsIx14467@cvs.baymountain.com> Update of /cvs-repository/ZEO/ZEO In directory cvs.zope.org:/tmp/cvs-serv14443 Modified Files: ClientCache.py ClientStorage.py Invalidator.py StorageServer.py start.py trigger.py zrpc.py Log Message: Merge changes from zeo-1_0-branch to the trunk. The trunk now has the same code ZEO 1.0b5 plus a few minor changes. === ZEO/ZEO/ClientCache.py 1.17 => 1.18 === try: self._f[self._current].close() - except OSError: + except (os.error, ValueError): pass def open(self): @@ -373,6 +373,8 @@ self._f[current]=open(self._p[current],'w+b') else: # Temporary cache file: + if self._f[current] is not None: + self._f[current].close() self._f[current] = tempfile.TemporaryFile(suffix='.zec') self._f[current].write(magic) self._pos=pos=4 === ZEO/ZEO/ClientStorage.py 1.34 => 1.35 === """Network ZODB storage client """ + __version__='$Revision$'[11:-2] import struct, time, os, socket, string, Sync, zrpc, ClientCache @@ -168,17 +169,16 @@ # Among other things, we know that our data methods won't get # called until after this call. - invalidator=Invalidator.Invalidator( - db.invalidate, - self._cache.invalidate) + self.invalidator = Invalidator.Invalidator(db.invalidate, + self._cache.invalidate) def out_of_band_hook( code, args, get_hook={ - 'b': (invalidator.begin, 0), - 'i': (invalidator.invalidate, 1), - 'e': (invalidator.end, 0), - 'I': (invalidator.Invalidate, 1), + 'b': (self.invalidator.begin, 0), + 'i': (self.invalidator.invalidate, 1), + 'e': (self.invalidator.end, 0), + 'I': (self.invalidator.Invalidate, 1), 'U': (self._commit_lock_release, 0), 's': (self._serials.append, 1), 'S': (self._info.update, 1), @@ -307,8 +307,18 @@ try: LOG("ClientStorage", INFO, "close") self._call.closeIntensionally() + try: + self._tfile.close() + except os.error: + # On Windows, this can fail if it is called more than + # once, because it tries to delete the file each + # time. + pass self._cache.close() - self.closed = 1 + if self.invalidator is not None: + self.invalidator.close() + self.invalidator = None + self.closed = 1 finally: self._lock_release() def commitVersion(self, src, dest, transaction): @@ -317,7 +327,6 @@ self._lock_acquire() try: oids=self._call('commitVersion', src, dest, self._serial) - invalidate=self._cache.invalidate if dest: vlen = pack(">H", len(src)) # just invalidate our version data @@ -436,12 +445,17 @@ finally: self._lock_release() - - - def supportsUndo(self): return self._info['supportsUndo'] - def supportsVersions(self): return self._info['supportsVersions'] + def supportsUndo(self): + return self._info['supportsUndo'] + + def supportsVersions(self): + return self._info['supportsVersions'] + def supportsTransactionalUndo(self): - return self._info['supportsTransactionalUndo'] + try: + return self._info['supportsTransactionalUndo'] + except KeyError: + return 0 def tpc_abort(self, transaction): self._lock_acquire() @@ -522,7 +536,6 @@ seek=tfile.seek read=tfile.read cache=self._cache - update=cache.update size=tfile.tell() cache.checkSize(size) seek(0) @@ -543,9 +556,9 @@ "temporary file." ) if s==ResolvedSerial: - cache.invalidate(oid, v) + self._cache.invalidate(oid, v) else: - update(oid, s, v, p) + self._cache.update(oid, s, v, p) i=i+15+vlen+dlen elif opcode == "i": oid=read(8) @@ -578,7 +591,8 @@ try: oids=self._call('undo', transaction_id) cinvalidate=self._cache.invalidate - for oid in oids: cinvalidate(oid,'') + for oid in oids: + cinvalidate(oid,'') return oids finally: self._lock_release() === ZEO/ZEO/Invalidator.py 1.5 => 1.6 === self.cinvalidate=cinvalidate + def close(self): + self.dinvalidate = None + self.cinvalidate = None + def begin(self): self._tfile=tempfile.TemporaryFile() pickler=cPickle.Pickler(self._tfile, 1) === ZEO/ZEO/StorageServer.py 1.29 => 1.30 === max_blather=120 def blather(*args): - m=string.join(map(str,args)) - if len(m) > max_blather: m=m[:max_blather]+' ...' + accum = [] + total_len = 0 + for arg in args: + if not isinstance(arg, StringType): + arg = str(arg) + accum.append(arg) + total_len = total_len + len(arg) + if total_len >= max_blather: + break + m = string.join(accum) + if len(m) > max_blather: m = m[:max_blather] + ' ...' LOG('ZEO Server', TRACE, m) @@ -121,11 +130,13 @@ def __init__(self, connection, storages): self.__storages=storages - for n, s in storages.items(): init_storage(s) + for n, s in storages.items(): + init_storage(s) self.__connections={} self.__get_connections=self.__connections.get + self._pack_trigger = trigger.trigger() asyncore.dispatcher.__init__(self) if type(connection) is type(''): @@ -258,7 +269,12 @@ def message_input(self, message, dump=dump, Unpickler=Unpickler, StringIO=StringIO, None=None): - if __debug__: blather('message_input', id(self), `message`) + if __debug__: + if len(message) > max_blather: + tmp = `message[:max_blather]` + else: + tmp = `message` + blather('message_input', id(self), tmp) if self.__storage is None: # This is the first communication from the client @@ -276,7 +292,9 @@ args=unpickler.load() name, args = args[0], args[1:] - if __debug__: blather('call %s: %s%s' % (id(self), name, `args`)) + if __debug__: + apply(blather, + ("call", id(self), ":", name,) + args) if not storage_method(name): raise 'Invalid Method Name', name @@ -294,7 +312,8 @@ self.return_error(sys.exc_info()[0], sys.exc_info()[1]) return - if __debug__: blather("%s R: %s" % (id(self), `r`)) + if __debug__: + blather("%s R: %s" % (id(self), `r`)) r=dump(r,1) self.message_output('R'+r) @@ -303,7 +322,8 @@ if type(err_value) is not type(self): err_value = err_type, err_value - if __debug__: blather("%s E: %s" % (id(self), `err_value`)) + if __debug__: + blather("%s E: %s" % (id(self), `err_value`)) try: r=dump(err_value, 1) except: @@ -396,11 +416,12 @@ error=sys.exc_info()) if wait: self.return_error(sys.exc_info()[0], sys.exc_info()[1]) - self._pack_trigger.pull_trigger() + self.__server._pack_trigger.pull_trigger() else: if wait: self.message_output('RN.') - self._pack_trigger.pull_trigger() + self.__server._pack_trigger.pull_trigger() + else: # Broadcast new size statistics self.__server.invalidate(0, self.__storage_id, (), @@ -582,6 +603,8 @@ port='', int(port) except: pass - - StorageServer(port, ZODB.FileStorage.FileStorage(name)) + + d = {'1': ZODB.FileStorage.FileStorage(name)} + StorageServer(port, d) asyncwrap.loop() + === ZEO/ZEO/start.py 1.25 => 1.26 === for storage in storages.values(): try: storage.close() - finally: pass + except: pass try: from zLOG import LOG, INFO === ZEO/ZEO/trigger.py 1.2 => 1.3 === def __init__ (self): - r, w = os.pipe() + r, w = self._fds = os.pipe() self.trigger = w asyncore.file_dispatcher.__init__ (self, r) self.lock = thread.allocate_lock() self.thunks = [] + + def __del__(self): + os.close(self._fds[0]) + os.close(self._fds[1]) def __repr__ (self): return '' % id(self) === ZEO/ZEO/zrpc.py 1.19 => 1.20 === def finishConnect(self, s): - if self.__haveMainLoop: map=None # use the main loop map - else: map = {} # provide a dummy map + if self.__haveMainLoop: + map = None # use the main loop map + else: + map = {} # provide a dummy map SizedMessageAsyncConnection.__init__(self, s, '', map) # we are our own socket map! @@ -221,12 +223,21 @@ if c=='R': if r=='RN.': return None # Common case! return loads(r[1:]) + + # If c == 'E', an error occured on the server. In + # this case, the return value is a pickled exception. + # Unpickle it and raise it on the client side. The + # traceback for this exception ends at this method, + # but the real error occurred somewhere in the server + # code. To diagnose the error, look for the real + # traceback in the server's zLOG output. if c=='E': try: r=loads(r[1:]) except: raise UnUnPickleableError(r[1:]) - if type(r) is TupleType: raise r[0], r[1] - raise r + if type(r) is TupleType: + raise r[0], r[1] # see server log for real traceback + raise r oob=self._outOfBand if oob is not None: r=r[1:] @@ -260,8 +271,10 @@ def message_input(self, m): if self._debug: - md=`m` - if len(m) > 60: md=md[:60]+' ...' + if len(m) > 60: + md = repr(m[:60]) + ' ...' + else: + md = repr(m) LOG(self._debug, TRACE, 'message_input %s' % md) c=m[:1] @@ -292,6 +305,7 @@ self.__Wakeup(lambda self=self: self.close()) else: self.close() + self._outOfBand = None self.__closed = 1 def close(self): @@ -299,6 +313,8 @@ self.aq_parent.notifyDisconnected(self) # causes read call to raise last exception, which should be # the socket error that caused asyncore to close the socket. - self.__r='E'+dump(sys.exc_info()[:2], 1) - try: self.__lr() - except: pass + self.__r = 'E' + dump(sys.exc_info()[:2], 1) + try: + self.__lr() + except: + pass From jeremy at zope.com Fri Nov 2 15:54:21 2001 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:16 2008 Subject: [ZEO-Checkins] CVS: ZEO/ZEO/tests - stress.py:1.2 Cache.py:1.4 forker.py:1.10 testZEO.py:1.16 Message-ID: <200111022054.fA2KsLU14491@cvs.baymountain.com> Update of /cvs-repository/ZEO/ZEO/tests In directory cvs.zope.org:/tmp/cvs-serv14473 Modified Files: Cache.py forker.py testZEO.py Added Files: stress.py Log Message: Merge changes from zeo-1_0-branch to the trunk. The trunk now has the same code ZEO 1.0b5 plus a few minor changes. === ZEO/ZEO/tests/stress.py 1.1 => 1.2 === + +The stress test should run in an infinite loop and should involve +multiple connections. +""" +from __future__ import nested_scopes + +import ZODB +from ZEO.ClientStorage import ClientStorage +from ZODB.MappingStorage import MappingStorage +from ZEO.tests import forker +from ZODB.tests import MinPO +import zLOG + +import os +import random +import sys +import types + +NUM_TRANSACTIONS_PER_CONN = 10 +NUM_CONNECTIONS = 10 +NUM_ROOTS = 20 +MAX_DEPTH = 20 +MIN_OBJSIZE = 128 +MAX_OBJSIZE = 2048 + +def an_object(): + """Return an object suitable for a PersistentMapping key""" + size = random.randrange(MIN_OBJSIZE, MAX_OBJSIZE) + if os.path.exists("/dev/urandom"): + f = open("/dev/urandom") + buf = f.read(size) + f.close() + return buf + else: + f = open(MinPO.__file__) + l = list(f.read(size)) + f.close() + random.shuffle(l) + return "".join(l) + +def setup(cn): + """Initialize the database with some objects""" + root = cn.root() + for i in range(NUM_ROOTS): + prev = an_object() + for j in range(random.randrange(1, MAX_DEPTH)): + o = MinPO.MinPO(prev) + prev = o + root[an_object()] = o + get_transaction().commit() + cn.close() + +def work(cn): + """Do some work with a transaction""" + cn.sync() + root = cn.root() + obj = random.choice(root.values()) + # walk down to the bottom + while not isinstance(obj.value, types.StringType): + obj = obj.value + obj.value = an_object() + get_transaction().commit() + +def main(): + # Yuck! Need to cleanup forker so that the API is consistent + # across Unix and Windows, at least if that's possible. + if os.name == "nt": + zaddr, tport, pid = forker.start_zeo_server('MappingStorage', ()) + def exitserver(): + import socket + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect(tport) + s.close() + else: + zaddr = '', random.randrange(20000, 30000) + pid, exitobj = forker.start_zeo_server(MappingStorage(), zaddr) + def exitserver(): + exitobj.close() + + while 1: + pid = start_child(zaddr) + print "started", pid + os.waitpid(pid, 0) + + exitserver() + +def start_child(zaddr): + + pid = os.fork() + if pid != 0: + return pid + + storage = ClientStorage(zaddr, debug=1, min_disconnect_poll=0.5) + db = ZODB.DB(storage, pool_size=NUM_CONNECTIONS) + setup(db.open()) + conns = [] + conn_count = 0 + + for i in range(NUM_CONNECTIONS): + c = db.open() + c.__count = 0 + conns.append(c) + conn_count += 1 + + while conn_count < 25: + c = random.choice(conns) + if c.__count > NUM_TRANSACTIONS_PER_CONN: + conns.remove(c) + c.close() + conn_count += 1 + c = db.open() + c.__count = 0 + conns.append(c) + else: + c.__count += 1 + work(c) + + os._exit(0) + +if __name__ == "__main__": + main() === ZEO/ZEO/tests/Cache.py 1.3 => 1.4 === info = self._storage.undoInfo() + if not info: + # XXX perhaps we have an old storage implementation that + # does do the negative nonsense + info = self._storage.undoInfo(0, 20) tid = info[0]['id'] + + # We may need to bail at this point if the storage doesn't + # support transactional undo + if not self._storage.supportsTransactionalUndo(): + return + # Now start an undo transaction self._transaction.note('undo1') self._storage.tpc_begin(self._transaction) === ZEO/ZEO/tests/forker.py 1.9 => 1.10 === s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: - s.connect(('localhost', port)) - except socket.error: - # XXX check value of error? - return port + try: + s.connect(('localhost', port)) + except socket.error: + # XXX check value of error? + return port + finally: + s.close() raise RuntimeError, "Can't find port" if os.name == "nt": @@ -37,14 +40,15 @@ Returns the ZEO port, the test server port, and the pid. """ import ZEO.tests.winserver - port = get_port() + if port is None: + port = get_port() script = ZEO.tests.winserver.__file__ if script.endswith('.pyc'): script = script[:-1] args = (sys.executable, script, str(port), storage_name) + args d = os.environ.copy() d['PYTHONPATH'] = os.pathsep.join(sys.path) - pid = os.spawnve(os.P_NOWAIT, sys.executable, args, d) + pid = os.spawnve(os.P_NOWAIT, sys.executable, args, os.environ) return ('localhost', port), ('localhost', port + 1), pid else: @@ -74,6 +78,7 @@ def close(self): os.write(self.pipe, "done") + os.close(self.pipe) def start_zeo_server(storage, addr): rd, wr = os.pipe() @@ -97,6 +102,7 @@ ZEOServerExit(rd) serv = ZEO.StorageServer.StorageServer(addr, {'1':storage}) asyncore.loop() + os.close(rd) storage.close() if isinstance(addr, types.StringType): os.unlink(addr) === ZEO/ZEO/tests/testZEO.py 1.15 => 1.16 === d[oid] = serial return d + +# Some of the ZEO tests depend on the version of FileStorage available +# for the tests. If we run these tests using Zope 2.3, FileStorage +# doesn't support TransactionalUndo. + +if hasattr(FileStorage, 'supportsTransactionalUndo'): + # XXX Assume that a FileStorage that supports transactional undo + # also supports conflict resolution. + class VersionDependentTests( + TransactionalUndoStorage.TransactionalUndoStorage, + TransactionalUndoVersionStorage.TransactionalUndoVersionStorage, + ConflictResolution.ConflictResolvingStorage, + ConflictResolution.ConflictResolvingTransUndoStorage): + pass +else: + class VersionDependentTests: + pass class GenericTests(ZEOTestBase, + VersionDependentTests, Cache.StorageWithCache, Cache.TransUndoStorageWithCache, BasicStorage.BasicStorage, @@ -107,10 +125,6 @@ RevisionStorage.RevisionStorage, PackableStorage.PackableStorage, Synchronization.SynchronizedStorage, - ConflictResolution.ConflictResolvingStorage, - ConflictResolution.ConflictResolvingTransUndoStorage, - TransactionalUndoStorage.TransactionalUndoStorage, - TransactionalUndoVersionStorage.TransactionalUndoVersionStorage, ): """An abstract base class for ZEO tests @@ -187,7 +201,7 @@ zeo_addr, self.test_addr, self.test_pid = \ forker.start_zeo_server(name, args) storage = ZEO.ClientStorage.ClientStorage(zeo_addr, debug=1, - min_disconnect_poll=0.5) + min_disconnect_poll=0.1) self._storage = PackWaitWrapper(storage) storage.registerDB(DummyDB(), None) @@ -195,6 +209,7 @@ self._storage.close() s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(self.test_addr) + s.close() # the connection should cause the storage server to die ## os.waitpid(self.test_pid, 0) time.sleep(0.5) From jeremy at zope.com Fri Nov 2 16:00:34 2001 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:16 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO - StorageServer.py:1.31 Message-ID: <200111022100.fA2L0YV15654@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO In directory cvs.zope.org:/tmp/cvs-serv15643 Modified Files: StorageServer.py Log Message: Finish merging changes from the zeo-1_0-branch. Not sure how this one got missed. === StandaloneZODB/ZEO/StorageServer.py 1.30 => 1.31 === from ZEO import trigger from ZEO import asyncwrap +from types import StringType class StorageServerError(POSException.StorageError): pass @@ -421,7 +422,6 @@ if wait: self.message_output('RN.') self.__server._pack_trigger.pull_trigger() - else: # Broadcast new size statistics self.__server.invalidate(0, self.__storage_id, (), @@ -607,4 +607,3 @@ d = {'1': ZODB.FileStorage.FileStorage(name)} StorageServer(port, d) asyncwrap.loop() - From jeremy at zope.com Wed Nov 7 14:52:57 2001 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:16 2008 Subject: [ZEO-Checkins] CVS: ZEO/ZEO - StorageServer.py:1.32 Message-ID: <200111071952.fA7JqvU00468@cvs.baymountain.com> Update of /cvs-repository/ZEO/ZEO In directory cvs.zope.org:/tmp/cvs-serv455 Modified Files: StorageServer.py Log Message: Really stop the leak of file descriptors! The previous checkin stopped using the per-connection trigger, but didn't stop creating it. (Dang.) Thanks to Shane for noticing. === ZEO/ZEO/StorageServer.py 1.31 => 1.32 === self.__invalidated=[] self.__closed=None - self._pack_trigger = trigger.trigger() if __debug__: debug='ZEO Server' else: debug=0 SizedMessageAsyncConnection.__init__(self, sock, addr, debug=debug) From jeremy at zope.com Tue Nov 27 18:28:40 2001 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:17 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO - ClientCache.py:1.18.4.1 ClientStorage.py:1.35.4.1 Invalidator.py:1.6.4.1 __init__.py:1.7.4.1 fap.py:1.5.4.1 smac.py:1.11.2.1 start.py:1.26.2.1 trigger.py:1.3.2.1 zrpc.py:1.20.2.1 Message-ID: <200111272328.fARNSe903010@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO In directory cvs.zope.org:/tmp/cvs-serv2982/ZEO Modified Files: Tag: StandaloneZODB-1_0-branch ClientCache.py ClientStorage.py Invalidator.py __init__.py fap.py smac.py start.py trigger.py zrpc.py Log Message: Convert to ZPL 1.1 === StandaloneZODB/ZEO/ClientCache.py 1.18 => 1.18.4.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Implement a client cache The cache is managed as two files, var/c0.zec and var/c1.zec. === StandaloneZODB/ZEO/ClientStorage.py 1.35 => 1.35.4.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Network ZODB storage client """ === StandaloneZODB/ZEO/Invalidator.py 1.6 => 1.6.4.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Facility for (roughly) atomically invalidating cache entries. Note that this is not *really* atomic, but it is close enough. === StandaloneZODB/ZEO/__init__.py 1.7 => 1.7.4.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + import fap === StandaloneZODB/ZEO/fap.py 1.5 => 1.5.4.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """ZEO depends on recent versions of asyncore and cPickle === StandaloneZODB/ZEO/smac.py 1.11 => 1.11.2.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Sized message async connections """ === StandaloneZODB/ZEO/start.py 1.26 => 1.26.2.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Start the server storage. """ === StandaloneZODB/ZEO/trigger.py 1.3 => 1.3.2.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + # This module is a simplified version of the select_trigger module # from Sam Rushing's Medusa server. === StandaloneZODB/ZEO/zrpc.py 1.20 => 1.20.2.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Simple rpc mechanisms """ From jeremy at zope.com Tue Nov 27 18:28:56 2001 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:17 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO/tests - speed.py:1.5.2.1 Message-ID: <200111272328.fARNSuJ03295@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO/tests In directory cvs.zope.org:/tmp/cvs-serv3275/ZEO/tests Modified Files: Tag: StandaloneZODB-1_0-branch speed.py Log Message: Convert to ZPL 1.1 === StandaloneZODB/ZEO/tests/speed.py 1.5 => 1.5.2.1 === -# -# Zope Public License (ZPL) Version 1.0 -# ------------------------------------- -# -# Copyright (c) Digital Creations. All rights reserved. -# -# This license has been certified as Open Source(tm). -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions in source code must retain the above copyright -# notice, this list of conditions, and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions, and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. Digital Creations requests that attribution be given to Zope -# in any manner possible. Zope includes a "Powered by Zope" -# button that is installed by default. While it is not a license -# violation to remove this button, it is requested that the -# attribution remain. A significant investment has been put -# into Zope, and this effort will continue if the Zope community -# continues to grow. This is one way to assure that growth. -# -# 4. All advertising materials and documentation mentioning -# features derived from or use of this software must display -# the following acknowledgement: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# In the event that the product being advertised includes an -# intact Zope distribution (with copyright and license included) -# then this clause is waived. -# -# 5. Names associated with Zope or Digital Creations must not be used to -# endorse or promote products derived from this software without -# prior written permission from Digital Creations. -# -# 6. Modified redistributions of any form whatsoever must retain -# the following acknowledgment: -# -# "This product includes software developed by Digital Creations -# for use in the Z Object Publishing Environment -# (http://www.zope.org/)." -# -# Intact (re-)distributions of any official Zope release do not -# require an external acknowledgement. -# -# 7. Modifications are encouraged but must be packaged separately as -# patches to official Zope releases. Distributions that do not -# clearly separate the patches from the original work must be clearly -# labeled as unofficial distributions. Modifications which do not -# carry the name Zope may be packaged in any form, as long as they -# conform to all of the clauses above. -# -# -# Disclaimer -# -# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -# This software consists of contributions made by Digital Creations and -# many individuals on behalf of Digital Creations. Specific -# attributions are listed in the accompanying credits file. -# -############################################################################## +# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + usage="""Test speed of a ZODB storage Options: From jeremy at zope.com Tue Nov 27 18:31:52 2001 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:17 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO - asyncwrap.py:1.2.2.1 Message-ID: <200111272331.fARNVqJ03762@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO In directory cvs.zope.org:/tmp/cvs-serv3751 Modified Files: Tag: StandaloneZODB-1_0-branch asyncwrap.py Log Message: Add ZPL 1.1 === StandaloneZODB/ZEO/asyncwrap.py 1.2 => 1.2.2.1 === +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """A wrapper for asyncore that provides robust exception handling. The poll() and loop() calls exported by asyncore can raise exceptions. From jeremy at zope.com Tue Nov 27 18:32:12 2001 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:17 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO - asyncwrap.py:1.2.2.2 Message-ID: <200111272332.fARNWCo03838@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO In directory cvs.zope.org:/tmp/cvs-serv3827 Modified Files: Tag: StandaloneZODB-1_0-branch asyncwrap.py Log Message: Remove out-of-date comment. This code works with 1.5.2. === StandaloneZODB/ZEO/asyncwrap.py 1.2.2.1 => 1.2.2.2 === """ -# XXX The current implementation requires Python 2.0. Not sure if -# that's acceptable, depends on how many users want to combine ZEO 1.0 -# and Zope 2.3. - import asyncore import errno import select From jeremy at zope.com Tue Nov 27 18:35:41 2001 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:17 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO/tests - Cache.py:1.4.2.1 forker.py:1.10.2.1 multi.py:1.4.2.1 stress.py:1.2.2.1 testZEO.py:1.16.2.1 winserver.py:1.2.4.1 Message-ID: <200111272335.fARNZfG04878@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO/tests In directory cvs.zope.org:/tmp/cvs-serv4856/ZEO/tests Modified Files: Tag: StandaloneZODB-1_0-branch Cache.py forker.py multi.py stress.py testZEO.py winserver.py Log Message: Add ZPL 1.1 === StandaloneZODB/ZEO/tests/Cache.py 1.4 => 1.4.2.1 === +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Tests of the ZEO cache""" from ZODB.Transaction import Transaction === StandaloneZODB/ZEO/tests/forker.py 1.10 => 1.10.2.1 === +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Library for forking storage server and connecting client storage""" import asyncore === StandaloneZODB/ZEO/tests/multi.py 1.4 => 1.4.2.1 === +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """A multi-client test of the ZEO storage server""" import ZODB, ZODB.DB, ZODB.FileStorage, ZODB.POSException === StandaloneZODB/ZEO/tests/stress.py 1.2 => 1.2.2.1 === +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """A ZEO client-server stress test to look for leaks. The stress test should run in an infinite loop and should involve === StandaloneZODB/ZEO/tests/testZEO.py 1.16 => 1.16.2.1 === +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Test suite for ZEO based on ZODB.tests""" import asyncore === StandaloneZODB/ZEO/tests/winserver.py 1.2 => 1.2.4.1 === +# +# This software is subject to the provisions of the Zope Public License, +# Version 1.1 (ZPL). A copy of the ZPL should accompany this +# distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL +# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST +# INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + """Helper file used to launch ZEO server for Windows tests""" import asyncore