You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2004/09/29 16:34:39 UTC

svn commit: rev 47487 - cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/components/pipeline/impl

Author: cziegeler
Date: Wed Sep 29 07:34:38 2004
New Revision: 47487

Modified:
   cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/components/pipeline/impl/ExpiresCachingProcessingPipeline.java
Log:
Support of caching the mime-type

Modified: cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/components/pipeline/impl/ExpiresCachingProcessingPipeline.java
==============================================================================
--- cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/components/pipeline/impl/ExpiresCachingProcessingPipeline.java	(original)
+++ cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/components/pipeline/impl/ExpiresCachingProcessingPipeline.java	Wed Sep 29 07:34:38 2004
@@ -91,12 +91,18 @@
                 byte[] content = cachedResponse.getResponse();
 
                 if ( this.serializer == this.lastConsumer ) {
+                    if ( cachedResponse.getContentType() != null ) {
+                        environment.setContentType(cachedResponse.getContentType());
+                    } else {
+                        this.setMimeTypeForSerializer(environment);
+                    }
                     final OutputStream outputStream = environment.getOutputStream(0);
                     if (content.length > 0) {
                         environment.setContentLength(content.length);
                         outputStream.write(content);
                     }
                 } else {
+                    this.setMimeTypeForSerializer(environment);
                     this.xmlDeserializer.setConsumer( this.lastConsumer );
                     this.xmlDeserializer.deserialize( content );
                 }
@@ -109,6 +115,7 @@
                     return super.processXMLPipeline( environment );
                 }
 
+                this.setMimeTypeForSerializer(environment);
                 byte[] cachedData;
                 if ( this.serializer == this.lastConsumer ) {
 
@@ -145,6 +152,7 @@
                 if (this.cacheValidity != null) {
                     cachedResponse = new CachedResponse(this.cacheValidity,
                                                         cachedData);
+                    cachedResponse.setContentType(environment.getContentType());
                     this.cache.store(this.cacheKey, cachedResponse);
                 }
             }
@@ -287,6 +295,12 @@
     throws ProcessingException {
         try {
             if (this.cachedResponse != null) {
+                if ( cachedResponse.getContentType() != null ) {
+                    environment.setContentType(cachedResponse.getContentType());
+                } else {
+                    this.setMimeTypeForReader(environment);
+                }
+
                 final byte[] content = cachedResponse.getResponse();
                 environment.setContentLength(content.length);
 
@@ -302,6 +316,7 @@
 
                 byte[] cachedData;
 
+                this.setMimeTypeForReader(environment);
                 if (this.reader.shouldSetContentLength()) {
                     final OutputStream os = environment.getOutputStream(this.outputBufferSize);
 
@@ -330,6 +345,7 @@
                 if (this.cacheValidity != null) {
                     cachedResponse = new CachedResponse(this.cacheValidity,
                                                         cachedData);
+                    cachedResponse.setContentType(environment.getContentType());
                     this.cache.store(this.cacheKey, cachedResponse);
                 }
             }