Hi Leo, Thanks very much for your input. Much appreciated. :-)
On Thu, Nov 01, 2001 at 06:11:58PM +0100, Leo Sutic wrote: > Marcus, > > the ParentCM was intended to be used with JNDI. The rationale is as follows: > Component settings for the individual servlet is specified in cocoon.xconf. > Therefore, the per-servlet settings are already addressed and there is no > need for a ParentCM. However, in order to configure multiple servlets you > need to break out of the webapp context, and then JNDI is the only safe and > standard way. (There is, of course, more to the security aspects, but I > won't pretend to know it. The above was the reasons I implemented it as I > did.) *nod*. I understand your rationale. I had intended to use the parent CM concept to create a second CM that would manage my application's components, separately from cocoon's CM. I had thought that using cocoon's CM to manage my application's components was the wrong thing to do, because it required modifying the cocoon.xconf and cocoon.roles files - part of cocoon and not our application. Was this assumption false ? > That said, the string being passed *is* a general string argument. You can > use it as you see fit. As for the resolving of paths relative to the webapp > context, currently Cocoon will only honor Loggable and Initializable > contracts, but this is not an obstacle - it would be relatively simple to > make it honor another contract as well, maybe Contextualizable (?), and pass > the servlet context. Ok. Thanks for the tip mate - How does this patch look ? :-) Cheers, Marcus Index: src/org/apache/cocoon/servlet/CocoonServlet.java =================================================================== RCS file: /home/cvspublic/xml-cocoon2/src/org/apache/cocoon/servlet/CocoonServlet.java,v retrieving revision 1.13.2.28 diff -u -r1.13.2.28 CocoonServlet.java --- src/org/apache/cocoon/servlet/CocoonServlet.java 2001/10/11 09:11:02 1.13.2.28 +++ src/org/apache/cocoon/servlet/CocoonServlet.java 2001/11/02 15:45:40 @@ -14,6 +14,7 @@ import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; import org.apache.avalon.framework.context.DefaultContext; +import org.apache.avalon.framework.context.Contextualizable; import org.apache.avalon.framework.logger.Loggable; import org.apache.cocoon.*; import org.apache.cocoon.components.classloader.RepositoryClassLoader; @@ -731,12 +732,17 @@ parentComponentManagerClass = parentComponentManagerClass.substring (0, dividerPos); } + log.debug("Creating parent component manager."); + Class pcm = ClassUtils.loadClass(parentComponentManagerClass); Constructor pcmc = pcm.getConstructor(new Class[]{String.class}); parentComponentManager = (ComponentManager) pcmc.newInstance(new Object[]{initParam}); if (parentComponentManager instanceof Loggable) { ((Loggable) parentComponentManager).setLogger(log); + } + if (parentComponentManager instanceof Contextualizable) { + ((Contextualizable) +parentComponentManager).contextualize(this.appContext); } if (parentComponentManager instanceof Initializable) { ((Initializable) parentComponentManager).initialize(); -- ..... ,,$$$$$$$$$, Marcus Crafter ;$' '$$$$: Computer Systems Engineer $: $$$$: Managesoft GmbH $ o_)$$$: 82-84 Mainzer Landstrasse ;$, _/\ &&:' 60327 Frankfurt Germany ' /( &&& \_&&&&' Email : [EMAIL PROTECTED] &&&&. Business Hours : +49 69 9757 200 &&&&&&&: --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]