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]