E&S CVS Commit: PEAK - Added 'config.registeredProtocol()' API, that supports defining named and

pje at eby-sarna.com pje at eby-sarna.com
Mon Aug 30 10:44:00 EDT 2004

Module Name:	PEAK
Committed By:	pje
Date:		Mon Aug 30 14:43:51 UTC 2004

Modified Files:
	PEAK/src/peak/binding: components.py interfaces.py
	PEAK/src/peak/config: api_impl.py config_components.py interfaces.py
	PEAK/src/peak/config/tests: __init__.py test_keys.py
	PEAK/src/peak/running/tests: __init__.py
	PEAK/src/peak/web: resources.py

Log Message:
Added 'config.registeredProtocol()' API, that supports defining named and
local protocols.  This allows easy emulation of Zope 3's "named" and
"local" adapters and views.

'binding.Component' objects no longer support instance configuration at
runtime (i.e., they no longer implement 'config.IConfigurable').  If you
need a component to be configurable at runtime, you must now derive from
(or mix in) 'binding.Configurable' instead.  If you get errors about
a missing 'registerProvider' attribute, or about being unable to adapt to
'IConfigurable', try changing your base class from 'binding.Component'
to 'binding.Configurable', or add it as a mixin if you're deriving from
a class that uses 'binding.Component' as its base.

'binding.IComponent' no longer derives from 'config.IConfigurable' or
'config.IConfigMap', only 'config.IConfigSource'.  This means that
'IComponent' no longer guarantees or requires the presence of the
'registerProvider()' method: now only 'config.IConfigurable' does that.

The 'config.IConfigMap' interface is now DEPRECATED.  Use
'config.IConfigurable' instead.  The '_configKeysMatching()' method
of 'IConfigMap' was moved to 'config.IConfigSource', so if you've
implemented a custom 'IConfigSource', be sure to add this method.

To view diffs of this commit, you can use the following URL(s):

To generate a diff of this commit:
cvs rdiff -r1.143 -r1.144 PEAK/CHANGES.txt
cvs rdiff -r1.137 -r1.138 PEAK/src/peak/binding/components.py
cvs rdiff -r1.19 -r1.20 PEAK/src/peak/binding/interfaces.py
cvs rdiff -r1.24 -r1.25 PEAK/src/peak/config/api_impl.py
cvs rdiff -r1.80 -r1.81 PEAK/src/peak/config/config_components.py
cvs rdiff -r1.37 -r1.38 PEAK/src/peak/config/interfaces.py
cvs rdiff -r1.33 -r1.34 PEAK/src/peak/config/tests/__init__.py
cvs rdiff -r1.5 -r1.6 PEAK/src/peak/config/tests/test_keys.py
cvs rdiff -r1.20 -r1.21 PEAK/src/peak/running/tests/__init__.py
cvs rdiff -r1.23 -r1.24 PEAK/src/peak/web/resources.py

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

More information about the source-changes mailing list