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 2005/09/26 12:50:06 UTC
svn commit: r291593 - in
/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal:
coplet/adapter/impl/ coplets/basket/ coplets/basket/events/
event/aspect/impl/
Author: cziegeler
Date: Mon Sep 26 03:49:55 2005
New Revision: 291593
URL: http://svn.apache.org/viewcvs?rev=291593&view=rev
Log:
Consider coplet attributes for global caching
Fix some java docs
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java?rev=291593&r1=291592&r2=291593&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java Mon Sep 26 03:49:55 2005
@@ -15,6 +15,12 @@
*/
package org.apache.cocoon.portal.coplet.adapter.impl;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.ServiceException;
@@ -29,6 +35,7 @@
import org.apache.cocoon.portal.event.CopletInstanceEvent;
import org.apache.cocoon.portal.event.impl.ChangeCopletInstanceAspectDataEvent;
import org.apache.cocoon.util.Deprecation;
+import org.apache.cocoon.util.NetUtils;
import org.apache.excalibur.source.SourceValidity;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
@@ -56,6 +63,10 @@
/** The configuration name for using the global cache. */
public static final String CONFIGURATION_CACHE_GLOBAL= "cache-global";
+ /** The configuration name for querying instance attributes to generate the key
+ * for the global cache. */
+ public static final String CONFIGURATION_CACHE_GLOBAL_USE_ATTRIBUTES= "cache-global-use-attributes";
+
/** The configuration name for ignoring sizing events to clear the cache. */
public static final String CONFIGURATION_IGNORE_SIZING_EVENTS = "ignore-sizing-events";
@@ -240,6 +251,64 @@
* Build the key for the global cache.
*/
protected String getCacheKey(CopletInstanceData coplet, String uri) {
- return "coplet:" + coplet.getCopletData().getId() + '/' + uri;
+ final Boolean useAttributes = (Boolean)this.getConfiguration(coplet,
+ CONFIGURATION_CACHE_GLOBAL_USE_ATTRIBUTES,
+ Boolean.FALSE);
+ if ( !useAttributes.booleanValue() ) {
+ return "coplet:" + coplet.getCopletData().getId() + '/' + uri;
+ }
+ final StringBuffer buffer = new StringBuffer("coplet:");
+ buffer.append(coplet.getCopletData().getId());
+ buffer.append('/');
+ buffer.append(uri);
+ boolean hasParams = false;
+ // first add attributes:
+ // sort the keys
+ List keyList = new ArrayList(coplet.getAttributes().keySet());
+ Collections.sort(keyList);
+ Iterator i = keyList.iterator();
+ while ( i.hasNext() ) {
+ final Object name = i.next();
+ final Object value = coplet.getAttribute(name.toString());
+ if ( hasParams ) {
+ buffer.append('&');
+ } else {
+ buffer.append('?');
+ hasParams = true;
+ }
+ buffer.append(name.toString());
+ buffer.append('=');
+ if ( value != null ) {
+ try {
+ buffer.append(NetUtils.encode(value.toString(), "utf-8"));
+ } catch (UnsupportedEncodingException ignore) {
+ // we ignore this
+ }
+ }
+ }
+ // second add temporary attributes
+ keyList = new ArrayList(coplet.getTemporaryAttributes().keySet());
+ Collections.sort(keyList);
+ i = keyList.iterator();
+ while ( i.hasNext() ) {
+ final Object name = i.next();
+ final Object value = coplet.getTemporaryAttribute(name.toString());
+ if ( hasParams ) {
+ buffer.append('&');
+ } else {
+ buffer.append('?');
+ hasParams = true;
+ }
+ buffer.append(name.toString());
+ buffer.append('=');
+ if ( value != null ) {
+ try {
+ buffer.append(NetUtils.encode(value.toString(), "utf-8"));
+ } catch (UnsupportedEncodingException ignore) {
+ // we ignore this
+ }
+ }
+ }
+ return buffer.toString();
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java?rev=291593&r1=291592&r2=291593&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java Mon Sep 26 03:49:55 2005
@@ -77,7 +77,7 @@
/**
* Return all configured actions for a basket - this is a list of
- * {@link #ActionInfo}s.
+ * {@link ActionInfo}s.
*/
List getBasketActions();
@@ -88,7 +88,7 @@
/**
* Return all configured actions for a briefcase - this is a list of
- * {@link #ActionInfo}s.
+ * {@link ActionInfo}s.
*/
List getBriefcaseActions();
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java?rev=291593&r1=291592&r2=291593&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java Mon Sep 26 03:49:55 2005
@@ -251,7 +251,6 @@
/**
* Show one item of the basket
* @param event The event triggering the action
- * @param basket The basket
*/
protected void processShowItemEvent(ShowItemEvent event) {
if ( event.getItem() instanceof ContentItem ) {
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java?rev=291593&r1=291592&r2=291593&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java Mon Sep 26 03:49:55 2005
@@ -35,7 +35,7 @@
/**
* Constructor
* One briefcase will be cleaned
- * @param briefcaseId The briefcase
+ * @param briefcase The briefcase
*/
public CleanBriefcaseEvent(Briefcase briefcase) {
super(briefcase);
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java?rev=291593&r1=291592&r2=291593&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java Mon Sep 26 03:49:55 2005
@@ -67,7 +67,7 @@
/**
* Publish the event.
* This method gets the layout object from the first two
- * values and invokes {@link #publish(Publisher, Layout, String[])}.
+ * values and invokes {@link #publish(EventManager, Layout, String[])}.
* @param values The values contained in the request
*/
protected void publish( PortalService service, EventManager publisher, String[] values) {