You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2002/08/04 06:11:53 UTC

cvs commit: xml-cocoon2/src/java/org/apache/cocoon/sitemap Handler.java

vgritsenko    2002/08/03 21:11:53

  Modified:    .        Tag: cocoon_2_0_3_branch changes.xml
               src/java/org/apache/cocoon/components Tag:
                        cocoon_2_0_3_branch CocoonComponentManager.java
               src/java/org/apache/cocoon/components/source Tag:
                        cocoon_2_0_3_branch CocoonSourceFactory.java
                        SitemapSource.java
               src/java/org/apache/cocoon/components/treeprocessor Tag:
                        cocoon_2_0_3_branch TreeProcessor.java
               src/java/org/apache/cocoon/environment Tag:
                        cocoon_2_0_3_branch AbstractEnvironment.java
                        Environment.java
               src/java/org/apache/cocoon/environment/wrapper Tag:
                        cocoon_2_0_3_branch EnvironmentWrapper.java
               src/java/org/apache/cocoon/sitemap Tag: cocoon_2_0_3_branch
                        Handler.java
  Log:
  Fixed bug in cocoon pseudo protocol involving aggregation of aggregated
  resources spanning several sitemaps.
  Fix partially backported from 2.1
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.138.2.43 +9 -4      xml-cocoon2/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/changes.xml,v
  retrieving revision 1.138.2.42
  retrieving revision 1.138.2.43
  diff -u -r1.138.2.42 -r1.138.2.43
  --- changes.xml	3 Aug 2002 16:44:13 -0000	1.138.2.42
  +++ changes.xml	4 Aug 2002 04:11:51 -0000	1.138.2.43
  @@ -39,6 +39,10 @@
    </devs>
   
    <release version="@version@" date="@date@">
  +  <action dev="VG" type="fix" fixes-bug="9288">
  +    Fixed bug in cocoon pseudo protocol involving aggregation of aggregated
  +    resources spanning several sitemaps.
  +  </action>
     <action dev="VG" type="fix">
       Conect to the XML:DB once, from the XMLDBSourceFactory.
     </action>
  @@ -91,7 +95,7 @@
      When building Cocoon it is required to set the targetted JVM (either 1.3 (means 1.3 or lower) or 1.4.
     </action>
     <action dev="VG" type="fix" fixes-bug="10311" due-to="Joachim Piketz" due-to-email="pik@uniquare.com">
  -   Fix NullPointerException in Notifier.
  +   Fixed NullPointerException in Notifier.
     </action>
     <action dev="CH" type="update">
      Multiple results seem not to be supported by some DBMSs (i.e. Oracle and
  @@ -109,10 +113,11 @@
      returning an error.
     </action>
     <action dev="VG" type="fix" fixes-bug="8658" due-to="Michael Melhem" due-to-email="michaelm@fztig938.bank.dresdner.net">
  -   Fix sitemap compilation error when matchers are used within view or resource.
  +   Fixed sitemap compilation error when matchers are used within view or
  +   resource.
     </action>
     <action dev="VG" type="fix" fixes-bug="8509" due-to="Michael Melhem" due-to-email="michaelm@fztig938.bank.dresdner.net">
  -   Fix sitemap compilation error when actions are used within view.
  +   Fixed sitemap compilation error when actions are used within view.
     </action>
     <action dev="VG" type="fix" fixes-bug="3782">
      TraxTransformer and XSLTProcessor components now correctly handle
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.13.2.3  +31 -7     xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java
  
  Index: CocoonComponentManager.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java,v
  retrieving revision 1.13.2.2
  retrieving revision 1.13.2.3
  diff -u -r1.13.2.2 -r1.13.2.3
  --- CocoonComponentManager.java	7 Jun 2002 10:22:42 -0000	1.13.2.2
  +++ CocoonComponentManager.java	4 Aug 2002 04:11:52 -0000	1.13.2.3
  @@ -61,6 +61,7 @@
   import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.component.Recomposable;
   import org.apache.cocoon.ProcessingException;
  +import org.apache.cocoon.Processor;
   import org.apache.cocoon.environment.Environment;
   import java.net.MalformedURLException;
   
  @@ -110,19 +111,21 @@
       /**
        * This hook must be called by the sitemap each time a sitemap is entered
        */
  -    public static void enterEnvironment(Environment env, Map objectModel) {
  +    public static void enterEnvironment(Environment env,
  +                                        Map         objectModel,
  +                                        Processor   processor) {
           if (environmentStack.get() == null) {
               environmentStack.set(new Stack());
           }
           final Stack stack = (Stack)environmentStack.get();
  -        if ( !stack.empty() ) {
  +        if (!stack.empty() ) {
               final Object[] objects = (Object[])stack.peek();
               if ( objects[1] == objectModel ) {
  -                stack.push(new Object[] {env, objectModel, objects[2], TWO});
  +                stack.push(new Object[] {env, objectModel, objects[2], TWO, processor});
                   return;
               }
           }
  -        stack.push(new Object[] {env, objectModel, new HashMap(5), ONE});
  +        stack.push(new Object[] {env, objectModel, new HashMap(5), ONE, processor});
       }
   
       /**
  @@ -130,7 +133,7 @@
        */
       public static void leaveEnvironment() {
           final Stack stack = (Stack)environmentStack.get();
  -        if ( null != stack && !stack.empty()) {
  +        if (null != stack && !stack.empty()) {
               final Object[] objects = (Object[])stack.pop();
               if (objects[3] == ONE) {
                   final Map components = (Map)objects[2];
  @@ -145,6 +148,28 @@
       }
   
       /**
  +     * Return the current environment object (for the cocoon: protocol)
  +     */
  +    public static Environment getCurrentEnvironment() {
  +        final Stack stack = (Stack)environmentStack.get();
  +        if (null != stack && !stack.empty()) {
  +            return (Environment) ((Object[])stack.peek())[0];
  +        }
  +        return null;
  +    }
  +
  +    /**
  +     * Return the current processor object (for the cocoon: protocol)
  +     */
  +    public static Processor getCurrentProcessor() {
  +        final Stack stack = (Stack)environmentStack.get();
  +        if (null != stack && !stack.empty()) {
  +            return (Processor) ((Object[])stack.peek())[4];
  +        }
  +        return null;
  +    }
  +
  +    /**
        * Return an instance of a component based on a Role.  The Role is usually the Interface's
        * Fully Qualified Name(FQN)--unless there are multiple Components for the same Role.  In that
        * case, the Role's FQN is appended with "Selector", and we return a ComponentSelector.
  @@ -209,5 +234,4 @@
       protected void releaseRLComponent( final Component component ) {
           super.release( component );
       }
  -
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.4.2.1   +3 -10     xml-cocoon2/src/java/org/apache/cocoon/components/source/CocoonSourceFactory.java
  
  Index: CocoonSourceFactory.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/source/CocoonSourceFactory.java,v
  retrieving revision 1.4
  retrieving revision 1.4.2.1
  diff -u -r1.4 -r1.4.2.1
  --- CocoonSourceFactory.java	22 Feb 2002 07:00:13 -0000	1.4
  +++ CocoonSourceFactory.java	4 Aug 2002 04:11:52 -0000	1.4.2.1
  @@ -56,6 +56,7 @@
   import org.apache.cocoon.environment.Environment;
   import org.apache.cocoon.environment.Source;
   import org.apache.cocoon.Processor;
  +import org.apache.cocoon.components.CocoonComponentManager;
   
   import java.io.IOException;
   import java.net.MalformedURLException;
  @@ -74,15 +75,11 @@
   extends AbstractLoggable
   implements SourceFactory {
   
  -    /** The processor */
  -    private Processor    processor;
  -
       /** The component manager */
       private ComponentManager  manager;
   
       public CocoonSourceFactory(Processor processor,
                                  ComponentManager manager) {
  -        this.processor = processor;
           this.manager = manager;
       }
   
  @@ -91,11 +88,7 @@
        */
       public Source getSource(Environment environment, String location)
       throws ProcessingException, IOException, MalformedURLException {
  -        if (environment == null)
  -            throw new ProcessingException("CocoonSourceFactory: environment is required.");
  -        return new SitemapSource(environment,
  -                                 this.manager,
  -                                 this.processor,
  +        return new SitemapSource(this.manager,
                                    location,
                                    this.getLogger());
       }
  
  
  
  1.9.2.3   +31 -19    xml-cocoon2/src/java/org/apache/cocoon/components/source/SitemapSource.java
  
  Index: SitemapSource.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/source/SitemapSource.java,v
  retrieving revision 1.9.2.2
  retrieving revision 1.9.2.3
  diff -u -r1.9.2.2 -r1.9.2.3
  --- SitemapSource.java	19 Apr 2002 23:48:41 -0000	1.9.2.2
  +++ SitemapSource.java	4 Aug 2002 04:11:52 -0000	1.9.2.3
  @@ -52,8 +52,6 @@
   
   import org.apache.avalon.framework.component.ComponentException;
   import org.apache.avalon.framework.component.ComponentManager;
  -import org.apache.avalon.framework.component.ComponentSelector;
  -import org.apache.cocoon.Constants;
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.Processor;
   import org.apache.cocoon.caching.PipelineCacheKey;
  @@ -63,10 +61,8 @@
   import org.apache.cocoon.components.pipeline.StreamPipeline;
   import org.apache.cocoon.environment.Environment;
   import org.apache.cocoon.environment.ModifiableSource;
  -import org.apache.cocoon.environment.Request;
   import org.apache.cocoon.environment.Source;
   import org.apache.cocoon.environment.wrapper.EnvironmentWrapper;
  -import org.apache.cocoon.serialization.Serializer;
   import org.apache.cocoon.util.HashUtil;
   import org.apache.cocoon.xml.AbstractXMLConsumer;
   import org.apache.cocoon.xml.ContentHandlerWrapper;
  @@ -82,8 +78,8 @@
   import java.io.ByteArrayOutputStream;
   import java.io.IOException;
   import java.io.InputStream;
  -import java.io.OutputStream;
   import java.util.Map;
  +import java.net.MalformedURLException;
   
   /**
    * Description of a source which is defined by a pipeline.
  @@ -111,6 +107,8 @@
       /** The processor */
       private Processor processor;
   
  +    private Processor pipelineProcessor;
  +
       /** The environment */
       private EnvironmentWrapper environment;
   
  @@ -135,13 +133,16 @@
       /**
        * Construct a new object
        */
  -    public SitemapSource(Environment      env,
  -                         ComponentManager manager,
  -                         Processor        sitemap,
  +    public SitemapSource(ComponentManager manager,
                            String           uri,
                            Logger           logger)
       throws IOException, ProcessingException {
   
  +        Environment env = CocoonComponentManager.getCurrentEnvironment();
  +        if (env == null) {
  +            throw new MalformedURLException("The cocoon protocol can not be used outside an environment.");
  +        }
  +
           this.manager = manager;
           this.setLogger(logger);
           boolean rawMode = false;
  @@ -159,18 +160,18 @@
           // does the uri point to this sitemap or to the root sitemap?
           if (uri.startsWith("//", position)) {
               position += 2;
  -            Processor processor = null;
               try {
  -                processor = (Processor)this.manager.lookup(Processor.ROLE);
  +                this.processor = (Processor)this.manager.lookup(Processor.ROLE);
               } catch (ComponentException e) {
                   throw new ProcessingException("Cannot get Processor instance", e);
               }
               this.prefix = ""; // start at the root
  -            this.processor = processor;
           } else if (uri.startsWith("/", position)) {
               position ++;
               this.prefix = null;
  -            this.processor = sitemap;
  +            // BUG#9288: Get proper processor, passed either by processor
  +            // or other cocoon source
  +            this.processor = CocoonComponentManager.getCurrentProcessor();
           } else {
               throw new ProcessingException("Malformed cocoon URI.");
           }
  @@ -240,7 +241,6 @@
               this.environment.setOutputStream(os);
               this.pipeline.process(this.environment);
               return new ByteArrayInputStream(os.toByteArray());
  -
           } catch (ProcessingException e) {
               throw e;
           } catch (Exception e) {
  @@ -276,11 +276,19 @@
   
               this.environment.setURI(this.prefix, this.uri);
               this.processor.process(this.environment, pipeline, eventPipeline);
  -            this.environment.changeToLastContext();
  -                String redirectURL = this.environment.getRedirectURL();
  +            // BUG#9288: Get processor which was used to build this pipeline
  +            this.pipelineProcessor = this.environment.changeToLastContext();
  +            String redirectURL = this.environment.getRedirectURL();
  +            try {
  +                // BUG#9288: Set proper processor before setting up the pipeline
  +                // (will be needed if pipeline has CocoonSource, see <init>)
  +                CocoonComponentManager.enterEnvironment(this.environment,
  +                                                        this.environment.getObjectModel(),
  +                                                        this.pipelineProcessor);
                   if (redirectURL == null) {
                       if (this.eventPipeline.getGenerator() != null &&
  -                        this.eventPipeline instanceof CacheableEventPipeline) {
  +                        this.eventPipeline instanceof CacheableEventPipeline)
  +                    {
                           CacheableEventPipeline cep = (CacheableEventPipeline)this.eventPipeline;
                           PipelineCacheKey pck = cep.generateKey(this.environment);
                           Map validity = null;
  @@ -294,13 +302,16 @@
                               }
                           }
                       }
  -                } else {
  +               } else {
                       if (redirectURL.indexOf(":") == -1) {
                           redirectURL = "cocoon:/" + redirectURL;
                       }
                       this.redirectSource = this.environment.resolve(redirectURL);
                       this.lastModificationDate = this.redirectSource.getLastModified();
                   }
  +            } finally {
  +                CocoonComponentManager.leaveEnvironment();
  +            }
           } catch (ProcessingException e) {
               reset();
               this.exception = e;
  @@ -348,7 +359,8 @@
               } else {
                   try {
                       CocoonComponentManager.enterEnvironment(this.environment,
  -                                                            this.environment.getObjectModel());
  +                                                            this.environment.getObjectModel(),
  +                                                            this.pipelineProcessor);
                       ((XMLProducer)eventPipeline).setConsumer(consumer);
                       eventPipeline.process(this.environment);
                   } finally {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.4.2.3   +9 -5      xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java
  
  Index: TreeProcessor.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java,v
  retrieving revision 1.4.2.2
  retrieving revision 1.4.2.3
  diff -u -r1.4.2.2 -r1.4.2.3
  --- TreeProcessor.java	9 Jun 2002 00:23:26 -0000	1.4.2.2
  +++ TreeProcessor.java	4 Aug 2002 04:11:52 -0000	1.4.2.3
  @@ -299,11 +299,13 @@
       public boolean process(Environment environment, StreamPipeline pipeline, EventPipeline eventPipeline)
         throws Exception {
           InvokeContext context = new InvokeContext(pipeline, eventPipeline);
  -
           context.setLogger(getLogger());
   
           SourceHandler oldSourceHandler = environment.getSourceHandler();
  -        CocoonComponentManager.enterEnvironment(environment, environment.getObjectModel());
  +        CocoonComponentManager.enterEnvironment(environment,
  +                                                environment.getObjectModel(),
  +                                                this);
  +        environment.setComponentManager(this.manager);
           try {
               environment.setSourceHandler(this.sourceHandler);
               return process(environment, context);
  @@ -318,8 +320,10 @@
         throws Exception {
   
           SourceHandler oldSourceHandler = environment.getSourceHandler();
  -        CocoonComponentManager.enterEnvironment(environment, environment.getObjectModel());
  -
  +        CocoonComponentManager.enterEnvironment(environment,
  +                                                environment.getObjectModel(),
  +                                                this);
  +        environment.setComponentManager(this.manager);
           try {
               environment.setSourceHandler(this.sourceHandler);
               if (this.rootNode == null || this.source.getLastModified() > this.lastModified) {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.12.2.5  +21 -1     xml-cocoon2/src/java/org/apache/cocoon/environment/AbstractEnvironment.java
  
  Index: AbstractEnvironment.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/AbstractEnvironment.java,v
  retrieving revision 1.12.2.4
  retrieving revision 1.12.2.5
  diff -u -r1.12.2.4 -r1.12.2.5
  --- AbstractEnvironment.java	15 Jul 2002 14:42:49 -0000	1.12.2.4
  +++ AbstractEnvironment.java	4 Aug 2002 04:11:52 -0000	1.12.2.5
  @@ -52,6 +52,7 @@
   
   import org.apache.avalon.excalibur.collections.IteratorEnumeration;
   import org.apache.avalon.framework.component.ComponentException;
  +import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.logger.AbstractLoggable;
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.components.source.SourceHandler;
  @@ -100,6 +101,25 @@
   
       /** The attributes */
       private Map attributes = new HashMap();
  +
  +    /** The current manager */
  +    protected ComponentManager manager = null;
  +
  +    /**
  +     * The sitemap processor sets up new managers per sitemap. Get the
  +     * "current" one for this environment.
  +     */
  +    public ComponentManager getComponentManager(){
  +        return this.manager;
  +    }
  +
  +    /**
  +     * The sitemap sets up new managers per sitemap. Set the
  +     * "current" one for this environment.
  +     */
  +    public void setComponentManager(ComponentManager manager){
  +        this.manager = manager;
  +    }
   
       /**
        * Constructs the abstract environment
  
  
  
  1.6.2.3   +8 -1      xml-cocoon2/src/java/org/apache/cocoon/environment/Environment.java
  
  Index: Environment.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/Environment.java,v
  retrieving revision 1.6.2.2
  retrieving revision 1.6.2.3
  diff -u -r1.6.2.2 -r1.6.2.3
  --- Environment.java	15 Jul 2002 14:42:49 -0000	1.6.2.2
  +++ Environment.java	4 Aug 2002 04:11:52 -0000	1.6.2.3
  @@ -50,6 +50,8 @@
   */
   package org.apache.cocoon.environment;
   
  +import org.apache.avalon.framework.component.ComponentManager;
  +
   import org.apache.cocoon.components.source.SourceHandler;
   
   import java.io.IOException;
  @@ -163,6 +165,11 @@
        *         environment is not able to test it
        */
       boolean isResponseModified(long lastModified);
  +
  +    /**
  +     * Set the <code>ComponentManager</code> for the current request.
  +     */
  +    void setComponentManager(ComponentManager manager);
   
       /**
        * Mark the response as not modified.
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.11.2.2  +29 -9     xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
  
  Index: EnvironmentWrapper.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java,v
  retrieving revision 1.11.2.1
  retrieving revision 1.11.2.2
  diff -u -r1.11.2.1 -r1.11.2.2
  --- EnvironmentWrapper.java	21 Apr 2002 17:36:05 -0000	1.11.2.1
  +++ EnvironmentWrapper.java	4 Aug 2002 04:11:53 -0000	1.11.2.2
  @@ -50,10 +50,15 @@
   */
   package org.apache.cocoon.environment.wrapper;
   
  +import org.apache.avalon.framework.component.ComponentManager;
  +
   import org.apache.cocoon.environment.AbstractEnvironment;
   import org.apache.cocoon.environment.Environment;
   import org.apache.cocoon.environment.ObjectModelHelper;
   import org.apache.cocoon.environment.Request;
  +import org.apache.cocoon.Processor;
  +import org.apache.cocoon.components.CocoonComponentManager;
  +
   import org.apache.log.Logger;
   
   import java.io.IOException;
  @@ -99,6 +104,9 @@
       /** The stream to output to */
       private OutputStream outputStream;
   
  +    /** The processor used */
  +    private Processor processor;
  +
       /**
        * Constructs an EnvironmentWrapper object from a Request
        * and Response objects
  @@ -144,7 +152,6 @@
                                             this,
                                             rawMode);
           this.objectModel.put(ObjectModelHelper.REQUEST_OBJECT, this.request);
  -
           this.objectModel.put("Internal-Request", "true");
       }
   
  @@ -167,12 +174,23 @@
        */
       public void globalRedirect(boolean sessionmode, String newURL)
       throws IOException {
  -       if (environment instanceof EnvironmentWrapper) {
  -         ((EnvironmentWrapper)environment).globalRedirect(sessionmode, newURL);
  -       }
  -       else {
  -         environment.redirect(sessionmode,newURL);
  -       }
  +        if (environment instanceof EnvironmentWrapper) {
  +            ((EnvironmentWrapper)environment).globalRedirect(sessionmode, newURL);
  +        }  else {
  +            environment.redirect(sessionmode,newURL);
  +        }
  +    }
  +
  +    /**
  +     * The sitemap processor sets up new managers per sitemap. Set the
  +     * "current" one for this environment.
  +     */
  +    public void setComponentManager(ComponentManager manager) {
  +        super.setComponentManager( manager );
  +        // HACK: As processing enters sitemap, capture current processor.
  +        // If pipeline is successfully assembled, this will contain proper processor.
  +        // Used by cocoon protocol.
  +        this.processor = CocoonComponentManager.getCurrentProcessor();
       }
   
       /**
  @@ -266,11 +284,13 @@
   
       /**
        * Change the current context to the last one set by changeContext()
  +     * and return last processor.
        */
  -    public void changeToLastContext() {
  +    public Processor changeToLastContext() {
           this.setContext(this.lastContext);
           this.setURIPrefix(this.lastPrefix);
           this.uris = this.lastURI;
  +        return this.processor;
       }
   
       /**
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.14.2.2  +13 -5     xml-cocoon2/src/java/org/apache/cocoon/sitemap/Attic/Handler.java
  
  Index: Handler.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/sitemap/Attic/Handler.java,v
  retrieving revision 1.14.2.1
  retrieving revision 1.14.2.2
  diff -u -r1.14.2.1 -r1.14.2.2
  --- Handler.java	7 Jun 2002 09:34:24 -0000	1.14.2.1
  +++ Handler.java	4 Aug 2002 04:11:53 -0000	1.14.2.2
  @@ -218,7 +218,10 @@
       public boolean process(Environment environment) throws Exception {
           checkSanity();
           SourceHandler oldSourceHandler = environment.getSourceHandler();
  -        CocoonComponentManager.enterEnvironment(environment, environment.getObjectModel());
  +        CocoonComponentManager.enterEnvironment(environment,
  +                                                environment.getObjectModel(),
  +                                                this);
  +        environment.setComponentManager(this.manager);
           try {
               environment.setSourceHandler(this.sourceHandler);
               return sitemap.process(environment);
  @@ -228,11 +231,16 @@
           }
       }
   
  -    public boolean process(Environment environment, StreamPipeline pipeline,
  -        EventPipeline eventPipeline) throws Exception {
  +    public boolean process(Environment environment,
  +                           StreamPipeline pipeline,
  +                           EventPipeline eventPipeline) throws Exception
  +    {
           checkSanity();
           SourceHandler oldSourceHandler = environment.getSourceHandler();
  -        CocoonComponentManager.enterEnvironment(environment, environment.getObjectModel());
  +        CocoonComponentManager.enterEnvironment(environment,
  +                                                environment.getObjectModel(),
  +                                                this);
  +        environment.setComponentManager(this.manager);
           try {
               environment.setSourceHandler(this.sourceHandler);
               return sitemap.process(environment, pipeline, eventPipeline);
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org