You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2009/09/04 18:33:20 UTC

svn commit: r811475 [2/2] - in /cocoon/cocoon3/trunk: cocoon-docs/ cocoon-docs/src/docbkx/reference/ cocoon-monitoring/ cocoon-monitoring/src/main/java/org/apache/cocoon/monitoring/cache/ cocoon-monitoring/src/main/java/org/apache/cocoon/monitoring/cac...

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/CompleteCacheValue.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/CompleteCacheValue.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/CompleteCacheValue.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/CompleteCacheValue.java Fri Sep  4 16:33:16 2009
@@ -18,15 +18,20 @@
  */
 package org.apache.cocoon.pipeline.caching;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 
 import org.apache.cocoon.pipeline.util.StringRepresentation;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 public class CompleteCacheValue extends AbstractCacheValue {
 
     private static final long serialVersionUID = 1L;
-    private final byte[] content;
+    private final Log logger = LogFactory.getLog(this.getClass());
+    private byte[] content;
 
     public CompleteCacheValue(byte[] content, CacheKey cacheKey) {
         super(cacheKey);
@@ -36,13 +41,36 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.pipeline.caching.CacheValue#getValue()
      */
     public Object getValue() {
         return this.content;
     }
 
+    /**
+     * {@inheritDoc}
+     *
+     * @see org.apache.cocoon.pipeline.caching.CacheValue#setValue()
+     */
+    public void setValue(Object value) {
+        if (value instanceof String) {
+            this.content = ((String) value).getBytes();
+        } else { // or maybe we should throw exception instead of serializing object ?
+            ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+            try {
+                ObjectOutputStream objectOut = new ObjectOutputStream(byteOut);
+                objectOut.writeObject(value);
+                objectOut.flush();
+                objectOut.close();
+            } catch (IOException e) {
+                this.logger.error("Some thing goes wrong during calculating setting value of: " + getCacheKey(), e);
+                return;
+            }
+            this.content = byteOut.toByteArray();
+        }
+    }
+
     @Override
     public String toString() {
         return StringRepresentation.buildString(this, "content.length=" + this.content.length, "cacheKey=" + this.getCacheKey());
@@ -50,10 +78,20 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
+     * @see org.apache.cocoon.pipeline.caching.CacheValue#size()
+     */
+    public double size() {
+        return this.content.length;
+    }
+
+    /**
+     * {@inheritDoc}
+     *
      * @see org.apache.cocoon.pipeline.caching.CacheValue#writeTo(java.io.OutputStream)
      */
     public void writeTo(OutputStream outputStream) throws IOException {
         outputStream.write(this.content);
     }
+
 }

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/CompoundCacheKey.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/CompoundCacheKey.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/CompoundCacheKey.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/CompoundCacheKey.java Fri Sep  4 16:33:16 2009
@@ -26,7 +26,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-public class CompoundCacheKey implements CacheKey {
+public class CompoundCacheKey extends AbstractCacheKey {
 
     private static final long serialVersionUID = 1L;
 

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ExpiresCacheKey.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ExpiresCacheKey.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ExpiresCacheKey.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ExpiresCacheKey.java Fri Sep  4 16:33:16 2009
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 /**
- * 
+ *
  */
 package org.apache.cocoon.pipeline.caching;
 
 /**
  * A cache key implementation that expires after a defined number of seconds.
  */
-public final class ExpiresCacheKey implements CacheKey {
+public final class ExpiresCacheKey extends AbstractCacheKey {
 
     private static final long serialVersionUID = 1L;
     private final CacheKey cacheKey;
@@ -56,16 +56,20 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.pipeline.caching.CacheKey#getLastModified()
      */
     public long getLastModified() {
         return this.cacheKey.getLastModified();
     }
 
+    public long getExpirationTimestamp() {
+        return this.expirationTimestamp;
+    }
+
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see java.lang.Object#equals(java.lang.Object)
      */
     @Override

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/InvalidCacheKey.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/InvalidCacheKey.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/InvalidCacheKey.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/InvalidCacheKey.java Fri Sep  4 16:33:16 2009
@@ -18,7 +18,7 @@
 
 import java.io.Serializable;
 
-public class InvalidCacheKey implements CacheKey {
+public class InvalidCacheKey extends AbstractCacheKey {
 
     private static final long serialVersionUID = 1L;
     private final Serializable expiresCacheKey;

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ObjectCacheValue.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ObjectCacheValue.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ObjectCacheValue.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ObjectCacheValue.java Fri Sep  4 16:33:16 2009
@@ -18,9 +18,14 @@
  */
 package org.apache.cocoon.pipeline.caching;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
 /**
  * An implementation of the {@link CacheValue} interface that can hold an arbitrary value.
  */
@@ -30,6 +35,8 @@
 
     private final Object value;
 
+    private final Log logger = LogFactory.getLog(this.getClass());
+
     public ObjectCacheValue(Object value, CacheKey cacheKey) {
         super(cacheKey);
 
@@ -47,7 +54,35 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
+     * @see org.apache.cocoon.pipeline.caching.CacheValue#setValue()
+     */
+    public void setValue(Object value) {
+        throw new UnsupportedOperationException("Cannot set the content of ObjectCacheValue to OutputStream.");
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @see org.apache.cocoon.pipeline.caching.CacheValue#size()
+     */
+    public double size() {
+        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+        try {
+            ObjectOutputStream objectOut = new ObjectOutputStream(byteOut);
+            objectOut.writeObject(this.value);
+            objectOut.flush();
+            objectOut.close();
+        } catch (IOException e) {
+            this.logger.error("Some thing goes wrong during calculating size of: " + getCacheKey(), e);
+            return -1;
+        }
+        return byteOut.toByteArray().length;
+    }
+
+    /**
+     * {@inheritDoc}
+     *
      * @see org.apache.cocoon.pipeline.caching.CacheValue#writeTo(java.io.OutputStream)
      */
     public void writeTo(OutputStream outputStream) throws IOException {

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ParameterCacheKey.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ParameterCacheKey.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ParameterCacheKey.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ParameterCacheKey.java Fri Sep  4 16:33:16 2009
@@ -22,7 +22,7 @@
 /**
  * A {@link CacheKey} that contains a {@link Map} of parameters.
  */
-public class ParameterCacheKey implements CacheKey {
+public class ParameterCacheKey extends AbstractCacheKey {
 
     private static final long serialVersionUID = 1L;
     private final Map<String, Object> parameters;

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/SimpleCache.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/SimpleCache.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/SimpleCache.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/SimpleCache.java Fri Sep  4 16:33:16 2009
@@ -19,6 +19,7 @@
 package org.apache.cocoon.pipeline.caching;
 
 import java.util.Map;
+import java.util.Set;
 import java.util.WeakHashMap;
 
 import org.apache.cocoon.pipeline.util.StringRepresentation;
@@ -62,4 +63,37 @@
     protected synchronized void store(CacheKey cacheKey, CacheValue cacheValue) {
         this.map.put(cacheKey, cacheValue);
     }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @see org.apache.cocoon.pipeline.caching.AbstractCach#doClear()
+     */
+    @Override
+    protected synchronized void doClear() {
+        this.map.clear();
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @see org.apache.cocoon.pipeline.caching.AbstractCach#doRemove(org.apache.cocoon.pipeline.caching.CacheKey)
+     */
+    @Override
+    protected synchronized boolean doRemove(CacheKey cacheKey) {
+        Object pattern = this.map.get(cacheKey);
+        Object removed = this.map.remove(cacheKey);
+        return pattern == null && removed == null ? true : pattern == null && removed != null ? false : pattern
+                .equals(removed);
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @see org.apache.cocoon.pipeline.caching.AbstractCach#retrieve()
+     */
+    @Override
+    protected synchronized Set<CacheKey> retrieveKeySet() {
+        return this.map.keySet();
+    }
 }

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/SimpleCacheKey.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/SimpleCacheKey.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/SimpleCacheKey.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/SimpleCacheKey.java Fri Sep  4 16:33:16 2009
@@ -20,7 +20,7 @@
 
 import org.apache.cocoon.pipeline.util.StringRepresentation;
 
-public class SimpleCacheKey implements CacheKey {
+public class SimpleCacheKey extends AbstractCacheKey {
 
     private static final long serialVersionUID = 1L;
 

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/TimestampCacheKey.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/TimestampCacheKey.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/TimestampCacheKey.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/TimestampCacheKey.java Fri Sep  4 16:33:16 2009
@@ -24,7 +24,7 @@
 
 import org.apache.cocoon.pipeline.util.StringRepresentation;
 
-public class TimestampCacheKey implements CacheKey {
+public class TimestampCacheKey extends AbstractCacheKey {
 
     private static final long serialVersionUID = 1L;
     private final long timestamp;

Modified: cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java (original)
+++ cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java Fri Sep  4 16:33:16 2009
@@ -68,7 +68,7 @@
 
     /**
      * Create a {@link InvocationImpl} object using the given output stream.
-     * 
+     *
      * @param outputStream The {@link OutputStream} where the result is written
      *            to.
      */
@@ -80,7 +80,7 @@
     /**
      * Create a {@link InvocationImpl} object using the given output stream and
      * requestURI.
-     * 
+     *
      * @param outputStream The {@link OutputStream} where the result is written
      *            to.
      * @param requestURI The requested path.
@@ -94,7 +94,7 @@
     /**
      * Create a {@link InvocationImpl} object using the given output stream,
      * requestURI and parameters.
-     * 
+     *
      * @param outputStream The {@link OutputStream} where the result is written
      *            to.
      * @param requestURI The requested path.
@@ -110,7 +110,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#reset()
      */
     public void reset() {
@@ -120,7 +120,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#execute()
      */
     public void execute() throws Exception {
@@ -143,7 +143,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#getOutputStream()
      */
     public OutputStream getOutputStream() {
@@ -152,7 +152,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#getParameter(java.lang.String)
      */
     public Object getParameter(String name) {
@@ -164,7 +164,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#getParameters()
      */
     public Map<String, Object> getParameters() {
@@ -173,7 +173,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#getRequestURI()
      */
     public String getRequestURI() {
@@ -182,7 +182,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#getThrowable()
      */
     public Throwable getThrowable() {
@@ -191,7 +191,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#hasCompletePipeline()
      */
     public boolean hasCompletePipeline() {
@@ -200,7 +200,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#installAction(java.lang.String)
      */
     public void installAction(String type) {
@@ -214,7 +214,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#installComponent(java.lang.String,
      *      java.util.Map)
      */
@@ -235,7 +235,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#installPipeline(java.lang.String,
      *      java.util.Map)
      */
@@ -247,7 +247,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#isErrorInvocation()
      */
     public boolean isErrorInvocation() {
@@ -256,7 +256,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#popSitemapParameters()
      */
     public void popSitemapParameters() {
@@ -265,7 +265,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#pushSitemapParameters(java.lang.String,
      *      java.util.Map)
      */
@@ -275,7 +275,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#resolve(java.lang.String)
      */
     public URL resolve(String resource) {
@@ -292,7 +292,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#setOutputStream(java.io.OutputStream)
      */
     public void setOutputStream(OutputStream outputStream) {
@@ -301,7 +301,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#setParameters(java.util.Map)
      */
     public void setParameters(Map<String, Object> parameters) {
@@ -314,7 +314,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#setThrowable(java.lang.Throwable)
      */
     public void setThrowable(final Throwable throwable) {
@@ -333,7 +333,7 @@
 
     /**
      * {@inheritDoc}
-     * 
+     *
      * @see org.apache.cocoon.sitemap.Invocation#resolveParameter(java.lang.String)
      */
     public String resolveParameter(final String parameter) {

Modified: cocoon/cocoon3/trunk/cocoon-sitemap/src/main/resources/cocoon-sitemap-1.0.xsd
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-sitemap/src/main/resources/cocoon-sitemap-1.0.xsd?rev=811475&r1=811474&r2=811475&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-sitemap/src/main/resources/cocoon-sitemap-1.0.xsd (original)
+++ cocoon/cocoon3/trunk/cocoon-sitemap/src/main/resources/cocoon-sitemap-1.0.xsd Fri Sep  4 16:33:16 2009
@@ -69,6 +69,13 @@
           </xsd:documentation>
         </xsd:annotation>
       </xsd:attribute>
+      <xsd:attribute name="jmx-group-name" type="xsd:string" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>
+            Name of group in with this cache entry's would be publish.
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
     </xsd:complexType>
   </xsd:element>