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 13:07:42 UTC
svn commit: r291597 - in /cocoon/blocks:
portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/
portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/events/
portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/
Author: cziegeler
Date: Mon Sep 26 04:07:33 2005
New Revision: 291597
URL: http://svn.apache.org/viewcvs?rev=291597&view=rev
Log:
Consider coplet attributes for global caching
Fix some java docs
Modified:
cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java
cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java
cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java
Modified: cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java?rev=291597&r1=291596&r2=291597&view=diff
==============================================================================
--- cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java (original)
+++ cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManager.java Mon Sep 26 04:07:33 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/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java?rev=291597&r1=291596&r2=291597&view=diff
==============================================================================
--- cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java (original)
+++ cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java Mon Sep 26 04:07:33 2005
@@ -250,7 +250,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/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java?rev=291597&r1=291596&r2=291597&view=diff
==============================================================================
--- cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java (original)
+++ cocoon/blocks/portal-sample/trunk/java/org/apache/cocoon/portal/coplets/basket/events/CleanBriefcaseEvent.java Mon Sep 26 04:07:33 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/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java?rev=291597&r1=291596&r2=291597&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java Mon Sep 26 04:07:33 2005
@@ -1,12 +1,12 @@
/*
* Copyright 1999-2002,2004-2005 The Apache Software Foundation.
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -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.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.ProcessingException;
@@ -26,6 +32,7 @@
import org.apache.cocoon.portal.coplet.CopletInstanceData;
import org.apache.cocoon.portal.event.CopletInstanceEvent;
import org.apache.cocoon.portal.event.impl.ChangeCopletInstanceAspectDataEvent;
+import org.apache.cocoon.util.NetUtils;
import org.apache.excalibur.source.SourceValidity;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
@@ -52,6 +59,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";
@@ -211,6 +222,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();
}
}