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) {