giacomo     01/05/25 09:13:48

  Modified:    .        build.bat build.sh
               src/org/apache/cocoon cocoon.roles
               src/org/apache/cocoon/sitemap ContentAggregator.java
               src/org/apache/cocoon/transformation TraxTransformer.java
               webapp   sitemap.xmap
               webapp/protected sitemap.xmap
  Added:       lib      xerces_1_4_0.jar
               src/org/apache/cocoon/caching AggregatedCacheValidity.java
  Removed:     lib      xerces_1_3_1.jar
  Log:
  - Added Xalan 1.4.0 (and changed the build scripts)
  - Fixed cocoon.roles because NullSAXConnector isn't in the repositorey
    any more
  - Added Vadim Gritsenkos patch for cachable ContentAggregator (with minor
    corrections from my side)
  - Added the ability to parameterize TraxTransformer to eliminate the need
    to specify an additional transformer component (ext-xslt)
  
  Revision  Changes    Path
  1.3       +2 -2      xml-cocoon2/build.bat
  
  Index: build.bat
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/build.bat,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- build.bat 2001/05/23 21:21:44     1.2
  +++ build.bat 2001/05/25 16:13:25     1.3
  @@ -2,7 +2,7 @@
   :: 
-----------------------------------------------------------------------------
   :: build.bat - Win32 Build Script for Apache Cocoon
   ::
  -:: $Id: build.bat,v 1.2 2001/05/23 21:21:44 bloritsch Exp $
  +:: $Id: build.bat,v 1.3 2001/05/25 16:13:25 giacomo Exp $
   :: 
-----------------------------------------------------------------------------
   
   :: ----- Verify and Set Required Environment Variables 
-------------------------
  @@ -18,7 +18,7 @@
   
   :: ----- Set Up The Runtime Classpath 
------------------------------------------
   
  -set 
CP=%JAVA_HOME%\lib\tools.jar;%ANT_HOME%\lib\ant_1_3.jar;%ANT_HOME%\lib\ant_1_3-optional.jar;.\lib\xerces_1_3_1.jar;.\lib\xalan-2.1.0.jar
  +set 
CP=%JAVA_HOME%\lib\tools.jar;%ANT_HOME%\lib\ant_1_3.jar;%ANT_HOME%\lib\ant_1_3-optional.jar;.\lib\xerces_1_4_0.jar;.\lib\xalan-2.1.0.jar
   
   :: ----- Execute The Requested Build 
-------------------------------------------
   
  
  
  
  1.3       +3 -3      xml-cocoon2/build.sh
  
  Index: build.sh
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/build.sh,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- build.sh  2001/05/25 14:25:58     1.2
  +++ build.sh  2001/05/25 16:13:26     1.3
  @@ -2,11 +2,11 @@
   # 
-----------------------------------------------------------------------------
   # build.sh - Unix Build Script for Apache Cocoon
   #
  -# $Id: build.sh,v 1.2 2001/05/25 14:25:58 dims Exp $
  +# $Id: build.sh,v 1.3 2001/05/25 16:13:26 giacomo Exp $
   # 
-----------------------------------------------------------------------------
   
   # ----- Verify and Set Required Environment Variables 
-------------------------
  -   
  +
   if [ "$ANT_HOME" = "" ] ; then
     ANT_HOME=.
   fi
  @@ -18,7 +18,7 @@
   
   # ----- Set Up The Runtime Classpath 
------------------------------------------
   
  
-CP=$JAVA_HOME/lib/tools.jar:$ANT_HOME/lib/ant_1_3.jar:$ANT_HOME/lib/ant_1_3-optional.jar:./lib/xerces_1_3_1.jar:./lib/xalan-2.1.0.jar
  
+CP=$JAVA_HOME/lib/tools.jar:$ANT_HOME/lib/ant_1_3.jar:$ANT_HOME/lib/ant_1_3-optional.jar:./lib/xerces_1_4_0.jar:./lib/xalan-2.1.0.jar
    
   # ----- Make sure Ant script is executable 
------------------------------------
   
  
  
  
  1.1                  xml-cocoon2/lib/xerces_1_4_0.jar
  
        <<Binary file>>
  
  
  1.5       +1 -1      xml-cocoon2/src/org/apache/cocoon/cocoon.roles
  
  Index: cocoon.roles
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/cocoon.roles,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- cocoon.roles      2001/05/23 16:04:34     1.4
  +++ cocoon.roles      2001/05/25 16:13:35     1.5
  @@ -46,7 +46,7 @@
   
    <role name="org.apache.cocoon.components.saxconnector.SAXConnector"
          shorthand="sax-connector"
  -       
default-class="org.apache.cocoon.components.saxconnector.NullSAXConnector"/>
  +       
default-class="org.apache.cocoon.components.saxconnector.CIncludeSAXConnector"/>
   
    <role name="org.apache.cocoon.components.image.ImageEncoderSelector"
          shorthand="image-encoder"/>
  
  
  
  1.1                  
xml-cocoon2/src/org/apache/cocoon/caching/AggregatedCacheValidity.java
  
  Index: AggregatedCacheValidity.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.caching;
  
  import java.util.List;
  import java.util.ArrayList;
  import java.util.Iterator;
  
  /**
   * A validation object using a List.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
   * @version CVS $Revision: 1.1 $ $Date: 2001/05/25 16:13:38 $
   */
  public final class AggregatedCacheValidity
  implements CacheValidity {
  
      private List a;
  
      public AggregatedCacheValidity() {
          this.a = new ArrayList();
      }
  
      public void add(CacheValidity validity) {
          this.a.add(validity);
      }
  
      public boolean isValid(CacheValidity validity) {
          if (validity instanceof AggregatedCacheValidity) {
              List b = ((AggregatedCacheValidity)validity).a;
              if(a.size() != b.size())
                  return false;
              for(Iterator i = a.iterator(), j = b.iterator(); i.hasNext();) {
                  
if(!((CacheValidity)i.next()).isValid((CacheValidity)j.next()))
                      return false;
              }
              return true;
          }
          return false;
      }
  
      public String toString() {
          StringBuffer b = new StringBuffer("AggregatedCacheValidity ");
          for(Iterator i = a.iterator(); i.hasNext();) {
              b.append(i.next());
              if(i.hasNext()) b.append(':');
          }
          return b.toString();
      }
  }
  
  
  
  
  1.4       +50 -4     
xml-cocoon2/src/org/apache/cocoon/sitemap/ContentAggregator.java
  
  Index: ContentAggregator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/ContentAggregator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ContentAggregator.java    2001/05/22 14:45:11     1.3
  +++ ContentAggregator.java    2001/05/25 16:13:39     1.4
  @@ -11,6 +11,7 @@
   import java.io.IOException;
   import java.util.ArrayList;
   import java.util.Map;
  +import java.util.Iterator;
   import org.apache.avalon.framework.component.Component;
   import org.apache.avalon.framework.component.ComponentException;
   import org.apache.avalon.framework.component.ComponentManager;
  @@ -19,9 +20,11 @@
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.Roles;
   import org.apache.cocoon.caching.CacheValidity;
  +import org.apache.cocoon.caching.AggregatedCacheValidity;
   import org.apache.cocoon.caching.Cacheable;
  -import org.apache.cocoon.caching.TimeStampCacheValidity;
  +import org.apache.cocoon.caching.PipelineCacheKey;
   import org.apache.cocoon.components.pipeline.EventPipeline;
  +import org.apache.cocoon.components.pipeline.CacheableEventPipeline;
   import org.apache.cocoon.components.pipeline.StreamPipeline;
   import org.apache.cocoon.environment.Environment;
   import org.apache.cocoon.environment.SourceResolver;
  @@ -30,6 +33,7 @@
   import org.apache.cocoon.xml.ContentHandlerWrapper;
   import org.apache.cocoon.xml.XMLConsumer;
   import org.apache.cocoon.xml.XMLProducer;
  +import org.apache.cocoon.util.HashUtil;
   import org.xml.sax.Attributes;
   import org.xml.sax.ContentHandler;
   import org.xml.sax.SAXException;
  @@ -38,7 +42,7 @@
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Id: ContentAggregator.java,v 1.3 2001/05/22 14:45:11 
cziegeler Exp $
  + * @version CVS $Id: ContentAggregator.java,v 1.4 2001/05/25 16:13:39 
giacomo Exp $
    */
   
   public class ContentAggregator extends ContentHandlerWrapper
  @@ -215,7 +219,28 @@
        * @return The generated key hashes the src
        */
       public long generateKey() {
  -        return 0;
  +        try{
  +            collectParts();
  +            long key = 0;
  +            for (int i = 0; i < this.partEventPipelines.size(); i++) {
  +                EventPipeline ep = 
(EventPipeline)this.partEventPipelines.get(i);
  +                if(ep instanceof CacheableEventPipeline){
  +                    ((XMLProducer)ep).setConsumer(this);
  +                    PipelineCacheKey pck = 
((CacheableEventPipeline)ep).generateKey(environment);
  +                    if (pck == null) {
  +                        return 0;
  +                    } else {
  +                        key += HashUtil.hash(pck.toString());
  +                    }
  +                }else{
  +                    return 0;
  +                }
  +            }
  +            return key;
  +        }catch(Exception e){
  +            getLogger().error("ContentAggregator: could not generateKey", e);
  +            return 0;
  +        }
       }
   
       /**
  @@ -225,7 +250,28 @@
        *         component is currently not cacheable.
        */
       public CacheValidity generateValidity() {
  -        return null;
  +        try{
  +            collectParts();
  +            final AggregatedCacheValidity v = new AggregatedCacheValidity();
  +            for (int i = 0; i < this.parts.size(); i++) {
  +                EventPipeline ep = 
(EventPipeline)this.partEventPipelines.get(i);
  +                if(ep instanceof CacheableEventPipeline){
  +                    Map map = 
((CacheableEventPipeline)ep).generateValidity(environment);
  +                    if(map == null)
  +                        return null;
  +                    for(Iterator j=map.values().iterator(); j.hasNext();){
  +                        CacheValidity epv = (CacheValidity)j.next();
  +                        v.add(epv);
  +                    }
  +                }else{
  +                    return null;
  +                }
  +            }
  +            return v;
  +        }catch(Exception e){
  +            getLogger().error("ContentAggregator: could not 
generateValidity", e);
  +            return null;
  +        }
       }
   
       public void setEnvironment(Environment environment) {
  
  
  
  1.7       +17 -5     
xml-cocoon2/src/org/apache/cocoon/transformation/TraxTransformer.java
  
  Index: TraxTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/org/apache/cocoon/transformation/TraxTransformer.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TraxTransformer.java      2001/05/25 14:25:59     1.6
  +++ TraxTransformer.java      2001/05/25 16:13:42     1.7
  @@ -99,7 +99,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Id: TraxTransformer.java,v 1.6 2001/05/25 14:25:59 dims Exp 
$
  + * @version CVS $Id: TraxTransformer.java,v 1.7 2001/05/25 16:13:42 giacomo 
Exp $
    */
   public class TraxTransformer extends ContentHandlerWrapper
   implements Transformer, Composable, Recyclable, Configurable, Cacheable, 
Disposable {
  @@ -123,9 +123,11 @@
   
       /** Should we make the request parameters available in the stylesheet? 
(default is off) */
       private boolean useParameters = false;
  +    private boolean _useParameters = false;
   
       /** Should we make the browser capability properties available in the 
stylesheet? (default is off) */
       private boolean useBrowserCap = false;
  +    private boolean _useBrowserCap = false;
   
       private ComponentManager manager;
   
  @@ -234,9 +236,11 @@
               getLogger().debug("Use store is " + this.useStore + " for " + 
this);
               child = conf.getChild("use-request-parameters");
               this.useParameters = child.getValueAsBoolean(false);
  +            this._useParameters = this.useParameters;
               getLogger().debug("Use parameters is " + this.useParameters + " 
for " + this);
               child = conf.getChild("use-browser-capabilities-db");
               this.useBrowserCap = child.getValueAsBoolean(false);
  +            this._useBrowserCap = this.useBrowserCap;
               getLogger().debug("Use browser capabilities is " + 
this.useBrowserCap + " for " + this);
           }
       }
  @@ -274,6 +278,8 @@
           this.inputSource = resolver.resolve(src);
           this.resolver = resolver;
           getLogger().debug("Using stylesheet: 
'"+this.inputSource.getSystemId()+"' in " + this + ", last modified: " + 
this.inputSource.getLastModified());
  +        _useParameters = par.getParameterAsBoolean("use-request-parameters", 
this.useParameters);
  +        _useBrowserCap = 
par.getParameterAsBoolean("use-browser-capabilities-db", this.useBrowserCap);
       }
   
       /**
  @@ -284,8 +290,12 @@
        */
       public long generateKey() {
           if (this.inputSource.getLastModified() != 0) {
  -            return HashUtil.hash(this.inputSource.getSystemId());
  -        } else {
  +            HashMap map = getLogicSheetParameters();
  +            if (map == null) {
  +                return HashUtil.hash(this.inputSource.getSystemId());
  +            } else {
  +                return HashUtil.hash(this.inputSource.getSystemId() + map);
  +            }        } else {
               return 0;
           }
       }
  @@ -373,7 +383,7 @@
               }
           }
   
  -        if (this.useParameters) {
  +        if (this._useParameters) {
               /** The Request object */
               Request request = (Request) 
objectModel.get(Constants.REQUEST_OBJECT);
   
  @@ -394,7 +404,7 @@
               }
           }
   
  -        if (this.useBrowserCap) try {
  +        if (this._useBrowserCap) try {
               Request request = (Request) 
objectModel.get(Constants.REQUEST_OBJECT);
               if (map == null) {
                   map = new HashMap();
  @@ -511,6 +521,8 @@
           this.inputSource = null;
           this.par = null;
           this.resolver = null;
  +        this._useParameters = this.useParameters;
  +        this._useBrowserCap = this.useBrowserCap;
           super.recycle();
       }
   }
  
  
  
  1.10      +5 -7      xml-cocoon2/webapp/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/webapp/sitemap.xmap,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- sitemap.xmap      2001/05/23 09:40:54     1.9
  +++ sitemap.xmap      2001/05/25 16:13:45     1.10
  @@ -25,11 +25,6 @@
       <use-request-parameters>false</use-request-parameters>
       <use-browser-capabilities-db>false</use-browser-capabilities-db>
      </map:transformer>
  -   <map:transformer     name="ext-xslt"      
src="org.apache.cocoon.transformation.TraxTransformer">
  -    <use-store>true</use-store>
  -    <use-request-parameters>true</use-request-parameters>
  -    <use-browser-capabilities-db>true</use-browser-capabilities-db>
  -   </map:transformer>
      <map:transformer     name="log"       
src="org.apache.cocoon.transformation.LogTransformer"/>
      <map:transformer     name="sql"       
src="org.apache.cocoon.transformation.SQLTransformer"/>
      <map:transformer     name="extractor" 
src="org.apache.cocoon.transformation.FragmentExtractorTransformer"/>
  @@ -121,7 +116,10 @@
    <map:resources>
     <map:resource name="slides">
      <map:generate src="docs/samples/slides/slides.xml"/>
  -   <map:transform src="stylesheets/slides/slides-navigation.xsl" 
type="ext-xslt"/>
  +   <map:transform src="stylesheets/slides/slides-navigation.xsl">
  +    <map:parameter name="use-request-parameters" value="true"/>
  +    <map:parameter name="use-browser-capabilities-db" value="true"/>
  +   </map:transform>
      <map:transform src="stylesheets/slides/slides-apachecon.xsl"/>
      <map:serialize/>
     </map:resource>
  @@ -404,7 +402,7 @@
      <!-- ========================== Forms ================================= 
-->
      <map:match pattern="forms/employee">
        <map:act set="employee">
  -       <map:parameter name="form-descriptor" 
value="context://docs/samples/forms/employee.xml"/>
  +       <map:parameter name="form-descriptor" 
value="context:///docs/samples/forms/employee.xml"/>
          <map:generate type="serverpages" 
src="docs/samples/forms/employee.xsp"/>
          <map:transform src="stylesheets/dynamic-page2html.xsl">
             <map:parameter name="view-source" 
value="docs/samples/forms/employee.xsp"/>
  
  
  
  1.4       +4 -4      xml-cocoon2/webapp/protected/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/webapp/protected/sitemap.xmap,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- sitemap.xmap      2001/05/22 16:21:24     1.3
  +++ sitemap.xmap      2001/05/25 16:13:47     1.4
  @@ -17,7 +17,7 @@
       <map:selectors default="browser"/>
   
       <map:matchers default="wildcard">
  -      <map:matcher name="wildcard"        
  +      <map:matcher name="wildcard"
           src="org.apache.cocoon.matching.WildcardURIMatcherFactory"/>
       </map:matchers>
   
  @@ -58,11 +58,11 @@
         <map:match pattern="do-login">
           <!-- first validate whether submitted values are ok -->
           <map:act type="form-validator">
  -          <map:parameter name="descriptor" 
value="context://protected/descriptors/params.xml"/>
  +          <map:parameter name="descriptor" 
value="context:///protected/descriptors/params.xml"/>
             <map:parameter name="validate" value="username"/>
             <!-- now try to log in -->
             <map:act type="db-authenticator">
  -            <map:parameter name="descriptor" 
value="context://protected/descriptors/auth.xml"/>
  +            <map:parameter name="descriptor" 
value="context:///protected/descriptors/auth.xml"/>
               <!-- now go to protected area -->
               <map:redirect-to uri="protected"/>
             </map:act>
  @@ -77,7 +77,7 @@
         <map:match pattern="protected">
           <!-- first validate whether user has logged in -->
           <map:act type="session-validator">
  -          <map:parameter name="descriptor" 
value="context://protected//descriptors/params.xml"/>
  +          <map:parameter name="descriptor" 
value="context:///protected//descriptors/params.xml"/>
             <map:parameter name="validate" 
value="username,department_id,theme"/>
             <!-- generate protected content -->
             <map:generate type="serverpages" src="docs/protected.xsp"/>
  
  
  

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