You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by st...@apache.org on 2002/08/21 17:37:58 UTC

cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/profiler ProfilerData.java ProfilingCachingProcessingPipeline.java ProfilingNonCachingProcessingPipeline.java

stephan     2002/08/21 08:37:58

  Modified:    src/java/org/apache/cocoon/components/profiler
                        ProfilerData.java
                        ProfilingCachingProcessingPipeline.java
                        ProfilingNonCachingProcessingPipeline.java
  Log:
  Solved Exception from pipelines with readers.
  The profiles profiles now pipeling with readers.
  
  Revision  Changes    Path
  1.8       +6 -8      xml-cocoon2/src/java/org/apache/cocoon/components/profiler/ProfilerData.java
  
  Index: ProfilerData.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/profiler/ProfilerData.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ProfilerData.java	20 Aug 2002 16:15:27 -0000	1.7
  +++ ProfilerData.java	21 Aug 2002 15:37:58 -0000	1.8
  @@ -82,16 +82,13 @@
   
       private long totaltime = 0;
   
  -    public ProfilerData()
  -    {
  +    public ProfilerData() {
           a = new ArrayList();
  -        a.add(null);
  -    }
  -
  -    public void setGenerator(Object generator, String role, String source) {
  -        a.set(0, new Entry(generator, role, source));
       }
   
  +    /**
  +     * Add new component from the pipeling, which should be measured.
  +     */
       public void addComponent(Object component, String role, String source) {
           a.add(new Entry(component, role, source));
       }
  @@ -122,6 +119,7 @@
           StringBuffer key = new StringBuffer(uri);
           for(int i=0; i<a.size(); i++){
               Entry entry = (Entry)a.get(i);
  +
               key.append(':');
               key.append(entry.role);
               key.append(':');
  
  
  
  1.5       +68 -14    xml-cocoon2/src/java/org/apache/cocoon/components/profiler/ProfilingCachingProcessingPipeline.java
  
  Index: ProfilingCachingProcessingPipeline.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/profiler/ProfilingCachingProcessingPipeline.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ProfilingCachingProcessingPipeline.java	20 Aug 2002 16:15:27 -0000	1.4
  +++ ProfilingCachingProcessingPipeline.java	21 Aug 2002 15:37:58 -0000	1.5
  @@ -64,6 +64,7 @@
   
   /**
    * @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
  + * @author <a href="mailto:stephan@apache.org">Stephan Michels</a>
    * @version CVS $Id$
    */
   public class ProfilingCachingProcessingPipeline
  @@ -79,7 +80,8 @@
        * Composable
        */
       public void compose(ComponentManager manager)
  -    throws ComponentException {
  +        throws ComponentException {
  +
           super.compose(manager);
           this.profiler = (Profiler)manager.lookup(Profiler.ROLE);
       }
  @@ -103,17 +105,43 @@
           super.recycle();
       }
   
  +    /**
  +     * Set the generator that will be used as the initial step in the pipeline.
  +     * The generator role is given : the actual <code>Generator</code> is fetched
  +     * from the latest <code>ComponentManager</code> given by <code>compose()</code>
  +     * or <code>recompose()</code>.
  +     *
  +     * @param role the generator role in the component manager.
  +     * @param source the source where to produce XML from, or <code>null</code> if no
  +     *        source is given.
  +     * @param param the parameters for the generator.
  +     * @throws ProcessingException if the generator couldn't be obtained.
  +     */
       public void setGenerator (String role, String source, Parameters param)
  -    throws ProcessingException {
  +        throws ProcessingException {
  +
           super.setGenerator(role, source, param);
   
           if(this.data == null)
               this.data = new ProfilerData();
  -        this.data.setGenerator(super.generator, role, source);
  +        this.data.addComponent(super.generator, role, source);
       }
   
  +    /**
  +     * Add a transformer at the end of the pipeline.
  +     * The transformer role is given : the actual <code>Transformer</code> is fetched
  +     * from the latest <code>ComponentManager</code> given by <code>compose()</code>
  +     * or <code>recompose()</code>.
  +     *
  +     * @param role the transformer role in the component manager.
  +     * @param source the source used to setup the transformer (e.g. XSL file), or
  +     *        <code>null</code> if no source is given.
  +     * @param param the parameters for the transfomer.
  +     * @throws ProcessingException if the generator couldn't be obtained.
  +     */
       public void addTransformer (String role, String source, Parameters param)
  -    throws ProcessingException {
  +        throws ProcessingException {
  +
           super.addTransformer(role, source, param);
   
           if(this.data == null)
  @@ -121,11 +149,42 @@
           this.data.addComponent(super.transformers.get(super.transformers.size()-1), role, source);
       }
   
  +    /**
  +     * Set the serializer for this pipeline
  +     * @param mimeType Can be null
  +     */
  +    public void setSerializer (String role, String source, Parameters param, String mimeType)
  +        throws ProcessingException {
  +
  +        super.setSerializer(role, source, param, mimeType);
  +
  +        if(this.data == null)
  +            this.data = new ProfilerData();
  +        this.data.addComponent(super.serializer, role, source);
  +    }
  +
  +    /** 
  +     * Set the reader for this pipeline
  +     * @param mimeType Can be null
  +     */ 
  +    public void setReader (String role, String source, Parameters param, String mimeType)
  +        throws ProcessingException {
  +
  +        super.setReader(role, source, param, mimeType);
  +
  +        if(this.data == null)
  +            this.data = new ProfilerData();
  +        this.data.addComponent(super.reader, role, source);
  +    }
  +
  +    /**
  +     * Process the given <code>Environment</code>, producing the output.
  +     */
       public boolean process(Environment environment)
  -    throws ProcessingException {
  +        throws ProcessingException {
  +
           this.index = 0;
           if (this.data != null) {
  -            this.data.addComponent(super.lastConsumer, null, null);
   
               // Execute pipeline
               long time = System.currentTimeMillis();
  @@ -136,14 +195,9 @@
               profiler.addResult(environment.getURI(), data);
               return result;
           } else {
  -            this.data = new ProfilerData();
  -            long time = System.currentTimeMillis();
  -            boolean result = super.process( environment );
  -            this.data.setTotalTime(System.currentTimeMillis() - time);
   
  -            // Report
  -            profiler.addResult(environment.getURI(), data);
  -            return result;
  +            getLogger().warn("Profiler Data havn't any components to measure");
  +            return super.process( environment );
           }
       }
   
  
  
  
  1.5       +72 -18    xml-cocoon2/src/java/org/apache/cocoon/components/profiler/ProfilingNonCachingProcessingPipeline.java
  
  Index: ProfilingNonCachingProcessingPipeline.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/profiler/ProfilingNonCachingProcessingPipeline.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ProfilingNonCachingProcessingPipeline.java	20 Aug 2002 16:15:27 -0000	1.4
  +++ ProfilingNonCachingProcessingPipeline.java	21 Aug 2002 15:37:58 -0000	1.5
  @@ -64,6 +64,7 @@
   
   /**
    * @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
  + * @author <a href="mailto:stephan@apache.org">Stephan Michels</a>
    * @version CVS $Id$
    */
   public class ProfilingNonCachingProcessingPipeline
  @@ -80,7 +81,8 @@
        * Composable
        */
       public void compose(ComponentManager manager)
  -    throws ComponentException {
  +        throws ComponentException {
  +
           super.compose(manager);
           this.profiler = (Profiler)manager.lookup(Profiler.ROLE);
       }
  @@ -103,29 +105,86 @@
           super.recycle();
       }
   
  +    /**
  +     * Set the generator that will be used as the initial step in the pipeline.
  +     * The generator role is given : the actual <code>Generator</code> is fetched
  +     * from the latest <code>ComponentManager</code> given by <code>compose()</code>
  +     * or <code>recompose()</code>.
  +     *
  +     * @param role the generator role in the component manager.
  +     * @param source the source where to produce XML from, or <code>null</code> if no
  +     *        source is given.
  +     * @param param the parameters for the generator.
  +     * @throws ProcessingException if the generator couldn't be obtained.
  +     */
       public void setGenerator (String role, String source, Parameters param)
  -    throws ProcessingException {
  +        throws ProcessingException {
  +
           super.setGenerator(role, source, param);
   
  -        if (this.data == null)
  +        if(this.data == null)
               this.data = new ProfilerData();
  -        this.data.setGenerator(super.generator, role, source);
  +        this.data.addComponent(super.generator, role, source);
       }
  -
  +    
  +    /**
  +     * Add a transformer at the end of the pipeline.
  +     * The transformer role is given : the actual <code>Transformer</code> is fetched
  +     * from the latest <code>ComponentManager</code> given by <code>compose()</code>
  +     * or <code>recompose()</code>.
  +     *
  +     * @param role the transformer role in the component manager.
  +     * @param source the source used to setup the transformer (e.g. XSL file), or
  +     *        <code>null</code> if no source is given.
  +     * @param param the parameters for the transfomer.
  +     * @throws ProcessingException if the generator couldn't be obtained.
  +     */
       public void addTransformer (String role, String source, Parameters param)
  -    throws ProcessingException {
  +        throws ProcessingException {
  +
           super.addTransformer(role, source, param);
   
  -        if (this.data == null)
  +        if(this.data == null)
               this.data = new ProfilerData();
           this.data.addComponent(super.transformers.get(super.transformers.size()-1), role, source);
       }
   
  +    /**
  +     * Set the serializer for this pipeline
  +     * @param mimeType Can be null
  +     */
  +    public void setSerializer (String role, String source, Parameters param, String mimeType)
  +        throws ProcessingException {
  +
  +        super.setSerializer(role, source, param, mimeType);
  +
  +        if(this.data == null)
  +            this.data = new ProfilerData();
  +        this.data.addComponent(super.serializer, role, source);
  +    }
  +
  +    /** 
  +     * Set the reader for this pipeline
  +     * @param mimeType Can be null
  +     */
  +    public void setReader (String role, String source, Parameters param, String mimeType)
  +        throws ProcessingException {
  +
  +        super.setReader(role, source, param, mimeType);
  +
  +        if(this.data == null)
  +            this.data = new ProfilerData();
  +        this.data.addComponent(super.reader, role, source);
  +    }
  +
  +    /**
  +     * Process the given <code>Environment</code>, producing the output.
  +     */
       public boolean process(Environment environment)
  -    throws ProcessingException {
  +        throws ProcessingException {
  +
           this.index = 0;
           if (this.data != null) {
  -            this.data.addComponent(super.lastConsumer, null, null);
   
               // Execute pipeline
               long time = System.currentTimeMillis();
  @@ -136,14 +195,9 @@
               profiler.addResult(environment.getURI(), data);
               return result;
           } else {
  -            this.data = new ProfilerData();
  -            long time = System.currentTimeMillis();
  -            boolean result = super.process( environment );
  -            this.data.setTotalTime(System.currentTimeMillis() - time);
   
  -            // Report
  -            profiler.addResult(environment.getURI(), data);
  -            return result;
  +            getLogger().warn("Profiler Data havn't any components to measure");
  +            return super.process( environment );
           }
       }
   
  @@ -154,7 +208,7 @@
                              XMLProducer producer,
                              XMLConsumer consumer)
       throws ProcessingException {
  -        ProfilingSAXBufferConnector connector = new ProfilingSAXBufferConnector();
  +        ProfilingXMLPipe connector = this.profiler.createConnector();
           connector.setup(this.index, this.data);
           this.index++;
           super.connect(environment, producer, connector);
  
  
  

----------------------------------------------------------------------
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