E&S CVS Commit: PEAK - Significant refactoring of skin/layer/resource/interaction/service classes

pje at eby-sarna.com pje at eby-sarna.com
Sun Dec 21 16:45:00 EST 2003

Module Name:	PEAK
Committed By:	pje
Date:		Sun Dec 21 21:44:27 UTC 2003

Modified Files:
	PEAK/src/peak: peak.ini
	PEAK/src/peak/config: config_components.py
	PEAK/src/peak/web: interfaces.py publish.py resources.py skins.py

Log Message:
Significant refactoring of skin/layer/resource/interaction/service classes
in 'peak.web'.  Primary goal was to allow layers to be shared between
skins, but several other things were also accomplished:

 * Got rid of properties to configure services and factories, using
   "[Component Factories]" mechanism instead.

 * Added explicit interfaces for auth/skin/layer/resource services

 * Interaction and InteractionPolicy implement various services by
   delegation, so things like 'interaction.skin.getResource()' are
   now 'interaction.getResource()' and 'policy.skinSvc.getSkin()'
   is now 'policy.getSkin()', etc.

 * Cleaned up various "spaghetti bindings" that wandered all over the

 * Added 'IInteractionPolicy.newInteraction()' for cleaner creation of
   interaction instances.

 * Added layer service mechanism to allow layers to be reused among skins.
   Layers are defined in the 'peak.web.layers' property namespace.

 * Added skin service mechanism that locates skins using
   'interaction.skinName' (which defaults to '"default"').  Skins are
   defined in the 'peak.web.skins' property namespace.

 * Simplified 'config.CreateViaFactory' to allow factories with
   no arguments.

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

To generate a diff of this commit:
cvs rdiff -r1.84 -r1.85 PEAK/TODO.txt
cvs rdiff -r1.103 -r1.104 PEAK/src/peak/peak.ini
cvs rdiff -r1.69 -r1.70 PEAK/src/peak/config/config_components.py
cvs rdiff -r1.23 -r1.24 PEAK/src/peak/web/interfaces.py
cvs rdiff -r1.29 -r1.30 PEAK/src/peak/web/publish.py
cvs rdiff -r1.18 -r1.19 PEAK/src/peak/web/resources.py
cvs rdiff -r1.11 -r1.12 PEAK/src/peak/web/skins.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