cziegeler    02/01/07 04:34:13

  Modified:    src/java/org/apache/cocoon Cocoon.java
               src/java/org/apache/cocoon/sitemap AbstractSitemap.java
                        Handler.java
               src/scratchpad/src/org/apache/cocoon/components
                        CocoonComponentManager.java
                        RequestLifecycleComponent.java
  Added:       src/java/org/apache/cocoon/components
                        CocoonComponentManager.java
                        RequestLifecycleComponent.java
  Log:
  Finished RequestLifecycleComponent handling
  
  Revision  Changes    Path
  1.2       +2 -2      xml-cocoon2/src/java/org/apache/cocoon/Cocoon.java
  
  Index: Cocoon.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/Cocoon.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Cocoon.java       3 Jan 2002 12:31:06 -0000       1.1
  +++ Cocoon.java       7 Jan 2002 12:34:12 -0000       1.2
  @@ -55,8 +55,8 @@
   
   package org.apache.cocoon;
   
  -import org.apache.avalon.excalibur.component.DefaultRoleManager;
   import org.apache.avalon.excalibur.component.ExcaliburComponentManager;
  +import org.apache.avalon.excalibur.component.DefaultRoleManager;
   import org.apache.avalon.excalibur.logger.LogKitManageable;
   import org.apache.avalon.excalibur.logger.LogKitManager;
   import org.apache.avalon.framework.activity.Disposable;
  @@ -104,7 +104,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Pierpaolo Fumagalli</a> (Apache 
Software Foundation, Exoffice Technologies)
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stefano Mazzocchi</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Leo Sutic</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:06 $
  + * @version CVS $Revision: 1.2 $ $Date: 2002/01/07 12:34:12 $
    */
   public class Cocoon
           extends AbstractLoggable
  
  
  
  1.1                  
xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java
  
  Index: CocoonComponentManager.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included  with this distribution in
   * the LICENSE file.
   */
  package org.apache.cocoon.components;
  
  import java.io.IOException;
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.Map;
  import java.util.Stack;
  import org.apache.avalon.excalibur.component.ExcaliburComponentManager;
  import org.apache.avalon.framework.component.Component;
  import org.apache.avalon.framework.component.ComponentException;
  import org.apache.avalon.framework.component.ComponentManager;
  import org.apache.cocoon.ProcessingException;
  import org.apache.cocoon.environment.Source;
  import org.apache.cocoon.environment.SourceResolver;
  
  import org.xml.sax.SAXException;
  
  /**
   * Cocoon Component Manager.
   * This manager extends the <code>ExcaliburComponentManager</code>
   * by a special lifecycle handling for a RequestLifecycleComponent.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
   * @version CVS $Revision: 1.1 $ $Date: 2002/01/07 12:34:12 $
   */
  public final class CocoonComponentManager
  extends ExcaliburComponentManager
  {
      /** The environment information */
      private static InheritableThreadLocal environmentStack = new 
InheritableThreadLocal();
  
      /** Create the ComponentManager */
      public CocoonComponentManager()
      {
          super( null, Thread.currentThread().getContextClassLoader() );
      }
  
      /** Create the ComponentManager with a Classloader */
      public CocoonComponentManager( final ClassLoader loader )
      {
          super( null, loader );
      }
  
      /** Create the ComponentManager with a Classloader and parent ComponentManager */
      public CocoonComponentManager( final ComponentManager manager, final ClassLoader 
loader )
      {
          super(manager, loader);
      }
  
      /** Create the ComponentManager with a parent ComponentManager */
      public CocoonComponentManager(final ComponentManager manager)
      {
          super(manager);
      }
  
      /**
       * This hook must be called by the sitemap each time a sitemap is entered
       */
      public static void enterEnvironment(SourceResolver resolver, Map objectModel) {
          if (environmentStack.get() == null) {
              environmentStack.set(new Stack());
          }
          final Stack stack = (Stack)environmentStack.get();
          stack.push(new Object[] {resolver, objectModel, new HashMap(5)});
      }
  
      /**
       * This hook must be called by the sitemap each time a sitemap is left
       */
      public static void leaveEnvironment() {
          final Stack stack = (Stack)environmentStack.get();
          if ( null != stack && !stack.empty()) {
              final Object[] objects = (Object[])stack.pop();
              final Map components = (Map)objects[2];
              final Iterator iter = components.values().iterator();
              while (iter.hasNext() == true) {
                  final Object[] o = (Object[])iter.next();
                  final Component component = (Component)o[0];
                  ((ComponentManager)o[1]).release( component );
              }
          }
      }
  
      /**
       * 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.
       */
      public Component lookup( final String role )
      throws ComponentException {
          final Stack stack = (Stack)environmentStack.get();
          if ( null != stack && !stack.empty()) {
              final Object[] objects = (Object[])stack.peek();
              final Map components = (Map)objects[2];
              final Object[] o = (Object[])components.get(role);
              if ( null != o  ) {
                  final Component component = (Component) o[0];
                  if ( null != component ) {
                      return component;
                  }
              }
          }
  
          final Component component = super.lookup( role );
          if ( null != component && component instanceof RequestLifecycleComponent) {
              if ( stack == null || stack.empty() ) {
                  throw new ComponentException("ComponentManager has no Environment 
Stack.");
              }
              final Object[] objects = (Object[]) stack.peek();
              final Map components = (Map)objects[2];
              try {
                  ((RequestLifecycleComponent) component).setup( 
(SourceResolver)objects[0],
                                                                 (Map)objects[1]);
              } catch (Exception local) {
                  throw new ComponentException("Exception during setup of 
RequestLifecycleComponent with role '"+role+"'", local);
              }
              components.put( role, new Object[] {component, this});
          }
          return component;
      }
  
      /**
       * Release a Component.  This implementation makes sure it has a handle on the 
propper
       * ComponentHandler, and let's the ComponentHandler take care of the actual work.
       */
      public void release( final Component component )
      {
          if( null == component )
          {
              return;
          }
  
          if ( component instanceof RequestLifecycleComponent) {
              return;
          }
          super.release( component);
      }
  
  }
  
  
  
  1.1                  
xml-cocoon2/src/java/org/apache/cocoon/components/RequestLifecycleComponent.java
  
  Index: RequestLifecycleComponent.java
  ===================================================================
  /*****************************************************************************
   * Copyright (C) The Apache Software Foundation. All rights reserved.        *
   * ------------------------------------------------------------------------- *
   * This software is published under the terms of the Apache Software License *
   * version 1.1, a copy of which has been included  with this distribution in *
   * the LICENSE file.                                                         *
   *****************************************************************************/
  
  package org.apache.cocoon.components;
  
  import org.apache.avalon.framework.component.Component;
  import org.apache.cocoon.ProcessingException;
  import org.apache.cocoon.environment.SourceResolver;
  import org.xml.sax.SAXException;
  
  import java.io.IOException;
  import java.util.Map;
  
  /**
   * Objects implementing this marker interface have a lifecycle of one
   * request. This means if one request is looking up several times
   * an object implementing this interface, it's always the same object.
   * In addition, the first time this object is looked up during a request,
   * the setup() method is called
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
   * @version CVS $Revision: 1.1 $ $Date: 2002/01/07 12:34:12 $
   */
  public interface RequestLifecycleComponent extends Component {
  
      /**
       * Set the <code>SourceResolver</code>, objectModel <code>Map</code>,
       * used to process the request.
       */
      void setup(SourceResolver resolver, Map objectModel)
      throws ProcessingException, SAXException, IOException;
  }
  
  
  
  1.2       +9 -9      
xml-cocoon2/src/java/org/apache/cocoon/sitemap/AbstractSitemap.java
  
  Index: AbstractSitemap.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/sitemap/AbstractSitemap.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractSitemap.java      3 Jan 2002 12:31:20 -0000       1.1
  +++ AbstractSitemap.java      7 Jan 2002 12:34:13 -0000       1.2
  @@ -8,7 +8,6 @@
   
   package org.apache.cocoon.sitemap;
   
  -import org.apache.avalon.excalibur.component.ExcaliburComponentManager;
   import org.apache.avalon.excalibur.component.RoleManager;
   import org.apache.avalon.excalibur.logger.LogKitManager;
   import org.apache.avalon.framework.activity.Disposable;
  @@ -22,6 +21,7 @@
   import org.apache.avalon.framework.thread.ThreadSafe;
   import org.apache.cocoon.Constants;
   import org.apache.cocoon.acting.Action;
  +import org.apache.cocoon.components.CocoonComponentManager;
   import org.apache.cocoon.components.classloader.RepositoryClassLoader;
   import org.apache.cocoon.components.pipeline.EventPipeline;
   import org.apache.cocoon.components.pipeline.StreamPipeline;
  @@ -48,7 +48,7 @@
    * Base class for generated <code>Sitemap</code> classes
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Giacomo Pati</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:20 $
  + * @version CVS $Revision: 1.2 $ $Date: 2002/01/07 12:34:13 $
    */
   public abstract class AbstractSitemap extends AbstractLoggable implements Sitemap, 
Disposable, ThreadSafe {
       private Context context;
  @@ -58,7 +58,7 @@
       private static Configuration defaultConfig;
   
       /** The component manager instance */
  -    protected ExcaliburComponentManager manager;
  +    protected CocoonComponentManager manager;
   
       /** The sitemap manager instance */
       protected Manager sitemapManager;
  @@ -96,7 +96,7 @@
        * <code>Composable</code>.
        */
       public void compose(ComponentManager manager) throws ComponentException {
  -        this.manager = new ExcaliburComponentManager(manager);
  +        this.manager = new CocoonComponentManager(manager);
           this.manager.setLogger(getLogger());
           this.manager.contextualize(this.context);
           this.manager.setRoleManager(AbstractSitemap.roleManager);
  @@ -323,7 +323,7 @@
           }
       }
   
  -    /** 
  +    /**
        * Dumps all sitemap parameters to log
        */
       protected void dumpParameters(List list) {
  @@ -414,16 +414,16 @@
               manager.release((Component)this.selectors);
           }
       }
  -    
  +
       /**
         Reset the response if possible. This allows error handlers to have
         a higher chance to produce clean output if the pipeline that raised
         the error has already output some data.
  -      
  +
         @param objectModel the object model
         @return true if the response was successfully reset
         */
  -    
  +
       protected boolean tryResetResponse(Map objectModel)
       {
           try {
  @@ -440,7 +440,7 @@
               // Log the error, but don't transmit it
               getLogger().warn("Problem resetting response", e);
           }
  -        
  +
           getLogger().debug("Response wasn't reset");
           return false;
       }
  
  
  
  1.2       +8 -3      xml-cocoon2/src/java/org/apache/cocoon/sitemap/Handler.java
  
  Index: Handler.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/sitemap/Handler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Handler.java      3 Jan 2002 12:31:20 -0000       1.1
  +++ Handler.java      7 Jan 2002 12:34:13 -0000       1.2
  @@ -19,6 +19,7 @@
   import org.apache.avalon.framework.logger.AbstractLoggable;
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.Processor;
  +import org.apache.cocoon.components.CocoonComponentManager;
   import org.apache.cocoon.components.language.generator.CompiledComponent;
   import org.apache.cocoon.components.language.generator.ProgramGenerator;
   import org.apache.cocoon.components.pipeline.EventPipeline;
  @@ -41,7 +42,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Giacomo Pati</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stefano Mazzocchi</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:20 $
  + * @version CVS $Revision: 1.2 $ $Date: 2002/01/07 12:34:13 $
    */
   public class Handler extends AbstractLoggable
   implements Runnable, Contextualizable, Composable, Processor, Disposable, 
SourceResolver {
  @@ -74,7 +75,7 @@
       // FIXME : ugly hack to pass delay information from the main sitemap 
configuration
       // (the way to pass it cleanly from SitemapManager isn't obvious).
       private static long sitemapCheckDelay = 10000L; // default is 10 secs.
  -    
  +
       static void setSitemapCheckDelay(long delay) {
           sitemapCheckDelay = delay;
       }
  @@ -83,7 +84,7 @@
           this.check_reload = check_reload;
           this.sourceFileName = sourceFileName;
       }
  -    
  +
       /**
        * Contextualizable
        */
  @@ -166,10 +167,12 @@
       public boolean process(Environment environment) throws Exception {
           checkSanity();
           SourceHandler oldSourceHandler = environment.getSourceHandler();
  +        CocoonComponentManager.enterEnvironment(environment, 
environment.getObjectModel());
           try {
               environment.setSourceHandler(this.sourceHandler);
               return sitemap.process(environment);
           } finally {
  +            CocoonComponentManager.leaveEnvironment();
               environment.setSourceHandler(oldSourceHandler);
           }
       }
  @@ -178,10 +181,12 @@
           EventPipeline eventPipeline) throws Exception {
           checkSanity();
           SourceHandler oldSourceHandler = environment.getSourceHandler();
  +        CocoonComponentManager.enterEnvironment(environment, 
environment.getObjectModel());
           try {
               environment.setSourceHandler(this.sourceHandler);
               return sitemap.process(environment, pipeline, eventPipeline);
           } finally {
  +            CocoonComponentManager.leaveEnvironment();
               environment.setSourceHandler(oldSourceHandler);
           }
       }
  
  
  
  1.2       +73 -38    
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/CocoonComponentManager.java
  
  Index: CocoonComponentManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/CocoonComponentManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CocoonComponentManager.java       3 Jan 2002 12:31:36 -0000       1.1
  +++ CocoonComponentManager.java       7 Jan 2002 12:34:13 -0000       1.2
  @@ -7,115 +7,150 @@
    */
   package org.apache.cocoon.components;
   
  +import java.io.IOException;
   import java.util.HashMap;
   import java.util.Iterator;
   import java.util.Map;
   import java.util.Stack;
  +import org.apache.avalon.excalibur.component.ExcaliburComponentManager;
   import org.apache.avalon.framework.component.Component;
   import org.apache.avalon.framework.component.ComponentException;
   import org.apache.avalon.framework.component.ComponentManager;
  -import org.apache.avalon.excalibur.component.ExcaliburComponentManager;
  +import org.apache.cocoon.ProcessingException;
  +import org.apache.cocoon.environment.Source;
   import org.apache.cocoon.environment.SourceResolver;
   
  +import org.xml.sax.SAXException;
  +
   /**
    * Cocoon Component Manager.
    * This manager extends the <code>ExcaliburComponentManager</code>
  - * by a special lifecycle handling for RequestLifecycleComponent.
  + * by a special lifecycle handling for a RequestLifecycleComponent.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:36 $
  + * @version CVS $Revision: 1.2 $ $Date: 2002/01/07 12:34:13 $
    */
   public final class CocoonComponentManager
   extends ExcaliburComponentManager
  +implements SourceResolver
   {
  -
       /** The environment information */
  -    private InheritableThreadLocal environmentStack = new InheritableThreadLocal();
  +    private static InheritableThreadLocal environmentStack = new 
InheritableThreadLocal();
  +
  +    /** The parent manager */
  +    private ComponentManager parentManager;
   
       /** Create the ComponentManager */
       public CocoonComponentManager()
       {
  -        super();
  +        super( null, Thread.currentThread().getContextClassLoader() );
       }
   
       /** Create the ComponentManager with a Classloader */
       public CocoonComponentManager( final ClassLoader loader )
       {
  -        super(loader);
  +        super( null, loader );
       }
   
       /** Create the ComponentManager with a Classloader and parent ComponentManager 
*/
       public CocoonComponentManager( final ComponentManager manager, final 
ClassLoader loader )
       {
  -        super(manager, loader);
  +        super(manager instanceof CocoonComponentManager ? 
((CocoonComponentManager)manager).getParentManager() : manager, loader);
  +        this.parentManager = manager instanceof CocoonComponentManager ? 
((CocoonComponentManager)manager).getParentManager() : manager;
       }
   
       /** Create the ComponentManager with a parent ComponentManager */
       public CocoonComponentManager(final ComponentManager manager)
       {
  -        super(manager);
  +        super(manager instanceof CocoonComponentManager ? 
((CocoonComponentManager)manager).getParentManager() : manager);
  +        this.parentManager = manager instanceof CocoonComponentManager ? 
((CocoonComponentManager)manager).getParentManager() : manager;
       }
   
  -    public void enterEnvironment(SourceResolver resolver, Map objectModel) {
  -        System.out.println("Entering environment");
  -        if (this.environmentStack.get() == null) {
  -            this.environmentStack.set(new Stack());
  +    /**
  +     * This hook must be called by the sitemap each time a sitemap is entered
  +     */
  +    public static void enterEnvironment(SourceResolver resolver, Map objectModel) {
  +        System.out.println("Entering environment"+ " - " + 
Thread.currentThread().getName());
  +        if (environmentStack.get() == null) {
  +            environmentStack.set(new Stack());
           }
  -        final Stack stack = (Stack)this.environmentStack.get();
  +        final Stack stack = (Stack)environmentStack.get();
           stack.push(new Object[] {resolver, objectModel, new HashMap(5)});
       }
   
  -    public void leaveEnvironment() {
  -        System.out.println("Leaving environment");
  -        final Stack stack = (Stack)this.environmentStack.get();
  -        if (stack != null) {
  +    /**
  +     * This hook must be called by the sitemap each time a sitemap is left
  +     */
  +    public static void leaveEnvironment() {
  +        System.out.println("Leaving environment"+ " - " + 
Thread.currentThread().getName());
  +        final Stack stack = (Stack)environmentStack.get();
  +        if ( null != stack && !stack.empty()) {
               final Object[] objects = (Object[])stack.pop();
               final Map components = (Map)objects[2];
               final Iterator iter = components.values().iterator();
               while (iter.hasNext() == true) {
  -                final Component component = (Component)iter.next();
  +                final Object[] o = (Object[])iter.next();
  +                final Component component = (Component)o[0];
                   System.out.println("RELEASING COMPONENT: " + component);
  -                super.release( component );
  +                ((ComponentManager)o[1]).release( component );
               }
  +        } else {
  +            System.out.println("*** UNBALANCED LEAVE ENVIRONMENT ***");
           }
       }
   
       /**
  +     * Resolve the source.
  +     * @param systemID This is either a system identifier
  +     * (<code>java.net.URL</code> or a local file.
  +     */
  +    public Source resolve(String systemID)
  +    throws ProcessingException, SAXException, IOException {
  +        System.out.println("Resolving source:" + systemID);
  +        return null;
  +    }
  +
  +
  +    ComponentManager getParentManager() {
  +        System.out.println("Getting parent!");
  +        return this.parentManager;
  +    }
  +
  +    /**
        * 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.
        */
       public Component lookup( final String role )
       throws ComponentException {
  -        final Stack stack = (Stack)this.environmentStack.get();
  -        if ( stack != null ) {
  -            final Object[] objects = (Object[])stack.pop();
  +        System.out.println("Looking up: " + role + " - " + 
Thread.currentThread().getName());
  +        final Stack stack = (Stack)environmentStack.get();
  +        if ( null != stack && !stack.empty()) {
  +            final Object[] objects = (Object[])stack.peek();
               final Map components = (Map)objects[2];
  -            if ( components != null ) {
  -                final Component component = (Component) components.get(role);
  -                if ( component != null) {
  -                    System.out.println("Looked up RequestLifecycleComponent again: 
" + role);
  -                    return component;
  -                }
  +            final Object[] o = (Object[])components.get(role);
  +            final Component component = (Component) o[0];
  +            if ( component != null) {
  +                System.out.println("Looked up RequestLifecycleComponent again: " + 
role);
  +                return component;
               }
           }
   
           final Component component = super.lookup( role );
  -        if ( component != null  && component instanceof RequestLifecycleComponent) {
  -            if ( stack == null) {
  -                throw new ComponentException("ComponentManager has no Environment 
Stack");
  +        if ( null != component && component instanceof RequestLifecycleComponent) {
  +            if ( stack == null || stack.empty() ) {
  +                System.out.println("No env");
  +                return component;
  +                //throw new ComponentException("ComponentManager has no Environment 
Stack");
               }
  -            final Object[] objects = (Object[]) stack.pop();
  +            final Object[] objects = (Object[]) stack.peek();
               final Map components = (Map)objects[2];
  -            if ( components == null ) {
  -                throw new ComponentException("ComponentManager has no Environment 
Stack");
  -            }
  -            components.put( role, component);
               try {
  -                ((RequestLifecycleComponent) 
component).setup((SourceResolver)objects[0], (Map)objects[1]);
  +                ((RequestLifecycleComponent) component).setup(this);
               } catch (Exception local) {
                   throw new ComponentException("Exception during setup of 
RequestLifecycleComponent with role '"+role+"'", local);
               }
  +            components.put( role, new Object[] {component, this});
               System.out.println("New RequestModelComponent :" + component);
           }
           return component;
  
  
  
  1.2       +2 -2      
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/RequestLifecycleComponent.java
  
  Index: RequestLifecycleComponent.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/RequestLifecycleComponent.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RequestLifecycleComponent.java    3 Jan 2002 12:31:36 -0000       1.1
  +++ RequestLifecycleComponent.java    7 Jan 2002 12:34:13 -0000       1.2
  @@ -24,7 +24,7 @@
    * the setup() method is called
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:36 $
  + * @version CVS $Revision: 1.2 $ $Date: 2002/01/07 12:34:13 $
    */
   public interface RequestLifecycleComponent extends Component {
   
  @@ -32,6 +32,6 @@
        * Set the <code>SourceResolver</code>, objectModel <code>Map</code>,
        * used to process the request.
        */
  -    void setup(SourceResolver resolver, Map objectModel)
  +    void setup(SourceResolver resolver)
       throws ProcessingException, SAXException, IOException;
   }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to