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>