Add means of optionally merging handlers from parent context into a child
context.
----------------------------------------------------------------------------------
Key: MODPYTHON-162
URL: http://issues.apache.org/jira/browse/MODPYTHON-162
Project: mod_python
Type: New Feature
Components: core
Reporter: Graham Dumpleton
Blantently stealing documentation from mod_perl, would be nice to have an
equivalent to the following feature.
MergeHandlers
Turn on merging of Perl*Handler arrays. For example with a setting:
PerlFixupHandler Apache2::FixupA
<Location /inside>
PerlFixupHandler Apache2::FixupB
</Location>
a request for /inside only runs Apache2::FixupB (mod_perl 1.0 behavior). But
with this configuration:
PerlFixupHandler Apache2::FixupA
<Location /inside>
PerlOptions +MergeHandlers
PerlFixupHandler Apache2::FixupB
</Location>
a request for /inside will run both Apache2::FixupA and Apache2::FixupB
handlers.
Currently mod_python behaves like mod_perl 1.0 in that specifing a handler in a
child context will cause any handler for the same phase in a parent context to
be totally ignored. In mod_perl 2.0, you can use the MergeHandlers option to
say that list of handlers for a parent can be merged with those a of a parent
context.
In mod_perl 2.0 it is an all or nothing affair. Ie., you cant say that you only
want handlers for specific phases merged. It might be worth investigating
whether it could be more flexible. For example:
PythonFixupHandler FixupA
<Location /inside>
PythonMergeHandlers +PythonFixupHandler
PythonFixupHandler FixupB
</Location>
<Location /inside/inside>
PythonMergeHandlers -PythonFixupHandler
PythonFixupHandler FixupC
</Location>
Thus, if /, runs FixupA, if /inside, runs FixupA and FixupB. If /inside/inside,
runs FixupC. Ie., '-' resets back to default of not merging with parent.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira