cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cziege...@apache.org
Subject cvs commit: xml-cocoon2/src/java/org/apache/cocoon/generation FileGenerator.java
Date Fri, 26 Apr 2002 08:41:52 GMT
cziegeler    02/04/26 01:41:52

  Modified:    .        changes.xml
               src/java/org/apache/cocoon/components
                        CocoonComponentManager.java
               src/java/org/apache/cocoon/environment
                        AbstractEnvironment.java SourceResolver.java
               src/java/org/apache/cocoon/environment/wrapper
                        EnvironmentWrapper.java
               src/java/org/apache/cocoon/generation FileGenerator.java
  Added:       .        WARNING
  Log:
  - Activated Avalon source resolving, deactivated Cocoon source resolving
  - Fixed some minor bugs and tested the new cocoon protocol
  - The FileGenerator uses directly the new source resolving, all other
    components still use the deprecated version which creates a wrapper
    object to maintain compatibility
  - Added Alpha Warning
  - Started deprecating code
  
  Revision  Changes    Path
  1.148     +6 -1      xml-cocoon2/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/changes.xml,v
  retrieving revision 1.147
  retrieving revision 1.148
  diff -u -r1.147 -r1.148
  --- changes.xml	25 Apr 2002 05:41:12 -0000	1.147
  +++ changes.xml	26 Apr 2002 08:41:52 -0000	1.148
  @@ -4,7 +4,7 @@
   
   <!--
     History of Cocoon changes
  -  $Id: changes.xml,v 1.147 2002/04/25 05:41:12 crossley Exp $
  +  $Id: changes.xml,v 1.148 2002/04/26 08:41:52 cziegeler Exp $
   -->
   
   <changes title="History of Changes">
  @@ -35,6 +35,11 @@
    </devs>
   
    <release version="@version@" date="@date@">
  +  <action dev="CZ" type="add">
  +    Integrated the new Avalon Excalibur Source Resolving architecture. This deprecates
  +    the now obsolete Cocoon source resolving. Wrapper classes etc. have been provided
  +    for an easy upgrading. In addition the Excalibur XMLizer is added.
  +  </action>
     <action dev="GF" type="add">
      added new Selector component, obtained from maciejka@tiger.com.pl (Maciek Kaminski).
     </action>
  
  
  
  1.3       +6 -4      xml-cocoon2/WARNING
  
  
  
  
  1.18      +2 -2      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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- CocoonComponentManager.java	24 Apr 2002 14:32:52 -0000	1.17
  +++ CocoonComponentManager.java	26 Apr 2002 08:41:52 -0000	1.18
  @@ -76,7 +76,7 @@
    * and by handling the lookup of the <code>SourceResolver</code> (in development)
    *
    * @author <a href="mailto:cziegeler@org.com">Carsten Ziegeler</a>
  - * @version CVS $Id: CocoonComponentManager.java,v 1.17 2002/04/24 14:32:52 cziegeler Exp
$
  + * @version CVS $Id: CocoonComponentManager.java,v 1.18 2002/04/26 08:41:52 cziegeler Exp
$
    */
   public final class CocoonComponentManager
   extends ExcaliburComponentManager
  @@ -160,7 +160,7 @@
       public static Object[] getCurrentEnvironment() {
           final Stack stack = (Stack)environmentStack.get();
           if ( null != stack && !stack.empty()) {
  -            return (Object[])stack.pop();
  +            return (Object[])stack.peek();
           }
           return null;
       }
  
  
  
  1.18      +7 -24     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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- AbstractEnvironment.java	25 Apr 2002 14:53:15 -0000	1.17
  +++ AbstractEnvironment.java	26 Apr 2002 08:41:52 -0000	1.18
  @@ -73,7 +73,7 @@
    *
    * @author <a href="mailto:Giacomo.Pati@pwr.ch">Giacomo Pati</a>
    * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
  - * @version CVS $Id: AbstractEnvironment.java,v 1.17 2002/04/25 14:53:15 cziegeler Exp
$
  + * @version CVS $Id: AbstractEnvironment.java,v 1.18 2002/04/26 08:41:52 cziegeler Exp
$
    */
   public abstract class AbstractEnvironment extends AbstractLoggable implements Environment
{
   
  @@ -350,6 +350,7 @@
   
       /**
        * Resolve an entity.
  +     * @deprecated Use the resolveURI methods instead
        */
       public Source resolve(String systemId)
       throws ProcessingException, SAXException, IOException {
  @@ -358,30 +359,12 @@
           }
           if (systemId == null) throw new SAXException("Invalid System ID");
   
  -        Source source;
  -        if (systemId.length() == 0) {
  -            source = this.sourceHandler.getSource(this, this.context.toExternalForm());
  -        } else if (systemId.charAt(0) == '/') {
  -            // windows: absolute paths can start with / followed by a drive letter
  -            if (systemId.length() > 2 && systemId.charAt(2) == ':') {
  -                source = this.sourceHandler.getSource(this, "file:" + systemId);
  -            } else {
  -                source = this.sourceHandler.getSource(this, this.context.getProtocol()
+
  -                                                  ":" + systemId);
  -            }
  -        } else if (systemId.indexOf(":") > 1) {
  -            source = this.sourceHandler.getSource(this, systemId);
  -        // windows: absolute paths can start with drive letter
  -        } else if (systemId.length() > 1 && systemId.charAt(1) == ':') {
  -            source = this.sourceHandler.getSource(this, "file:/" + systemId);
  -        } else {
  -            source = this.sourceHandler.getSource(this, this.context, systemId);
  -        }
  -
  -        if (getLogger().isDebugEnabled()) {
  -            this.getLogger().debug("Resolved to '"+source.getSystemId()+"'");
  +        try {
  +            org.apache.excalibur.source.Source source = this.resolveURI( systemId );
  +            return new org.apache.cocoon.components.source.impl.AvalonToCocoonSource(source,
this.sourceResolver, this);
  +        } catch (SourceException se) {
  +            throw new ProcessingException("Exception during resolving of " + systemId,
se);
           }
  -        return source;
       }
   
       /**
  
  
  
  1.8       +2 -1      xml-cocoon2/src/java/org/apache/cocoon/environment/SourceResolver.java
  
  Index: SourceResolver.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/SourceResolver.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SourceResolver.java	25 Apr 2002 09:37:01 -0000	1.7
  +++ SourceResolver.java	26 Apr 2002 08:41:52 -0000	1.8
  @@ -59,7 +59,7 @@
    * Base interface for resolving a source by system identifiers.
    *
    * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
  - * @version CVS $Id: SourceResolver.java,v 1.7 2002/04/25 09:37:01 cziegeler Exp $
  + * @version CVS $Id: SourceResolver.java,v 1.8 2002/04/26 08:41:52 cziegeler Exp $
    */
   
   public interface SourceResolver
  @@ -69,6 +69,7 @@
        * Resolve the source.
        * @param systemID This is either a system identifier
        * (<code>java.net.URL</code> or a local file.
  +     * @deprecated Use the resolveURI methods instead
        */
       Source resolve(String systemID)
       throws ProcessingException, SAXException, IOException;
  
  
  
  1.14      +2 -2      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.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- EnvironmentWrapper.java	25 Apr 2002 09:30:48 -0000	1.13
  +++ EnvironmentWrapper.java	26 Apr 2002 08:41:52 -0000	1.14
  @@ -73,7 +73,7 @@
    * contains a <code>RequestWrapper</code> object.
    *
    * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
  - * @version $Id: EnvironmentWrapper.java,v 1.13 2002/04/25 09:30:48 cziegeler Exp $
  + * @version $Id: EnvironmentWrapper.java,v 1.14 2002/04/26 08:41:52 cziegeler Exp $
    */
   public class EnvironmentWrapper extends AbstractEnvironment implements Environment {
   
  @@ -111,7 +111,6 @@
                                 Logger      logger)
       throws MalformedURLException {
           this(env, requestURI, queryString, logger, false);
  -        this.setComponents(env.getSourceResolver(), null);
       }
   
       /**
  @@ -125,6 +124,7 @@
                                 boolean     rawMode)
       throws MalformedURLException {
           super(env.getURI(), env.getView(), env.getRootContext(), env.getAction());
  +        this.setComponents(env.getSourceResolver(), null);
           this.setLogger(logger);
           this.environment = env;
   
  
  
  
  1.9       +15 -20    xml-cocoon2/src/java/org/apache/cocoon/generation/FileGenerator.java
  
  Index: FileGenerator.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/generation/FileGenerator.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- FileGenerator.java	21 Apr 2002 17:34:01 -0000	1.8
  +++ FileGenerator.java	26 Apr 2002 08:41:52 -0000	1.9
  @@ -54,10 +54,11 @@
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.caching.CacheValidity;
   import org.apache.cocoon.caching.Cacheable;
  -import org.apache.cocoon.caching.TimeStampCacheValidity;
  -import org.apache.cocoon.environment.Source;
  +import org.apache.cocoon.caching.SourceCacheValidity;
   import org.apache.cocoon.environment.SourceResolver;
   import org.apache.cocoon.util.HashUtil;
  +import org.apache.excalibur.source.Source;
  +import org.apache.excalibur.source.SourceException;
   import org.xml.sax.SAXException;
   
   import java.io.IOException;
  @@ -73,7 +74,7 @@
    * @author <a href="mailto:fumagalli@exoffice.com">Pierpaolo Fumagalli</a>
    *         (Apache Software Foundation, Exoffice Technologies)
    * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
  - * @version CVS $Id: FileGenerator.java,v 1.8 2002/04/21 17:34:01 vgritsenko Exp $
  + * @version CVS $Id: FileGenerator.java,v 1.9 2002/04/26 08:41:52 cziegeler Exp $
    */
   public class FileGenerator extends ComposerGenerator
   implements Cacheable {
  @@ -86,11 +87,9 @@
        * All instance variables are set to <code>null</code>.
        */
       public void recycle() {
  +        super.resolver.release( this.inputSource );
  +        this.inputSource = null;
           super.recycle();
  -        if (this.inputSource != null) {
  -            this.inputSource.recycle();
  -            this.inputSource = null;
  -        }
       }
   
       /**
  @@ -100,7 +99,11 @@
       public void setup(SourceResolver resolver, Map objectModel, String src, Parameters
par)
           throws ProcessingException, SAXException, IOException {
           super.setup(resolver, objectModel, src, par);
  -        this.inputSource = resolver.resolve(src);
  +        try {
  +            this.inputSource = resolver.resolveURI(src);
  +        } catch (SourceException se) {
  +            throw new ProcessingException("Error during resolving of '" + src + "'.", se);
  +        }
       }
   
       /**
  @@ -110,7 +113,7 @@
        * @return The generated key hashes the src
        */
       public long generateKey() {
  -        if (this.inputSource.getLastModified() != 0) {
  +        if (this.inputSource.getValidity() != null) {
               return HashUtil.hash(this.inputSource.getSystemId());
           }
           return 0;
  @@ -123,9 +126,8 @@
        *         component is currently not cacheable.
        */
       public CacheValidity generateValidity() {
  -        long modified = this.inputSource.getLastModified();
  -        if (modified != 0) {
  -            return new TimeStampCacheValidity(modified);
  +        if (this.inputSource.getValidity() != null) {
  +            return new SourceCacheValidity(this.inputSource.getValidity());
           }
           return null;
       }
  @@ -140,9 +142,7 @@
                   this.getLogger().debug("processing file " + super.source);
                   this.getLogger().debug("file resolved to " + this.inputSource.getSystemId());
               }
  -            this.inputSource.toSAX(super.xmlConsumer);
  -        } catch (ProcessingException e) {
  -            throw e;
  +            this.resolver.toSAX(this.inputSource, super.xmlConsumer);
           } catch (SAXException e) {
               final Exception cause = e.getException();
               if( cause != null ) {
  @@ -157,11 +157,6 @@
                                                 + this.inputSource.getSystemId(), cause);
               }
               throw e;
  -        } catch (Exception e) {
  -            this.getLogger().error("Could not read resource "
  -                              + this.inputSource.getSystemId(), e);
  -            throw new ProcessingException("Could not read resource "
  -                                          + this.inputSource.getSystemId(), e);
           }
       }
   }
  
  
  

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


Mime
View raw message