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/10/19 22:11:25 UTC
svn commit: r326672 - in /cocoon/blocks/portal/trunk: ./
java/org/apache/cocoon/portal/coplet/
java/org/apache/cocoon/portal/coplet/adapter/impl/
java/org/apache/cocoon/portal/event/impl/
Author: cziegeler
Date: Wed Oct 19 13:11:10 2005
New Revision: 326672
URL: http://svn.apache.org/viewcvs?rev=326672&view=rev
Log:
Keep track of changed coplets
Modified:
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceDataFeatures.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/InternalEventReceiver.java
cocoon/blocks/portal/trunk/status.xml
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceDataFeatures.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceDataFeatures.java?rev=326672&r1=326671&r2=326672&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceDataFeatures.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceDataFeatures.java Wed Oct 19 13:11:10 2005
@@ -15,8 +15,12 @@
*/
package org.apache.cocoon.portal.coplet;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
+import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.event.CopletInstanceEvent;
import org.apache.cocoon.portal.event.coplet.CopletInstanceSizingEvent;
import org.apache.cocoon.portal.event.impl.CopletJXPathEvent;
@@ -33,6 +37,8 @@
*/
public final class CopletInstanceDataFeatures {
+ protected static final String CHANGED_COPLETS_ATTRIBUTE_NAME = CopletInstanceDataFeatures.class.getName() + "/ChangedCoplets";
+
/**
* Tests if this is a sizing event for a coplet instance.
*/
@@ -68,5 +74,25 @@
}
}
return null;
- }
+ }
+
+ public static List getChangedCopletInstanceDataObjects(PortalService service) {
+ List list = (List)service.getTemporaryAttribute(CHANGED_COPLETS_ATTRIBUTE_NAME);
+ if ( list == null ) {
+ return Collections.EMPTY_LIST;
+ }
+ return list;
+ }
+
+ public static void addChangedCopletInstanceData(PortalService service,
+ CopletInstanceData cid) {
+ List list = (List)service.getTemporaryAttribute(CHANGED_COPLETS_ATTRIBUTE_NAME);
+ if ( list == null ) {
+ list = new ArrayList();
+ }
+ if ( !list.contains(cid) ) {
+ list.add(cid);
+ }
+ service.setTemporaryAttribute(CHANGED_COPLETS_ATTRIBUTE_NAME, list);
+ }
}
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=326672&r1=326671&r2=326672&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 Wed Oct 19 13:11:10 2005
@@ -32,6 +32,7 @@
import org.apache.cocoon.portal.coplet.CopletInstanceData;
import org.apache.cocoon.portal.coplet.CopletInstanceDataFeatures;
import org.apache.cocoon.portal.event.CopletInstanceEvent;
+import org.apache.cocoon.portal.event.Receiver;
import org.apache.cocoon.util.NetUtils;
import org.apache.excalibur.source.SourceValidity;
import org.xml.sax.ContentHandler;
@@ -49,7 +50,8 @@
* @version $Id$
*/
public class CachingURICopletAdapter
- extends URICopletAdapter {
+ extends URICopletAdapter
+ implements Receiver {
/** The configuration name for enabling/disabling the cache. */
public static final String CONFIGURATION_ENABLE_CACHING = "cache-enabled";
@@ -179,7 +181,6 @@
this.getLogger().info("CopletInstanceEvent " + e + " caught by CachingURICopletAdapter");
}
this.handleCopletInstanceEvent(e);
- super.inform(e, service);
}
/**
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java?rev=326672&r1=326671&r2=326672&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java Wed Oct 19 13:11:10 2005
@@ -16,7 +16,6 @@
package org.apache.cocoon.portal.coplet.adapter.impl;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -32,8 +31,7 @@
import org.apache.cocoon.portal.Constants;
import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.coplet.CopletInstanceData;
-import org.apache.cocoon.portal.event.CopletInstanceEvent;
-import org.apache.cocoon.portal.event.Receiver;
+import org.apache.cocoon.portal.coplet.CopletInstanceDataFeatures;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceResolver;
import org.xml.sax.ContentHandler;
@@ -45,8 +43,7 @@
* @version $Id$
*/
public class URICopletAdapter
- extends AbstractCopletAdapter
- implements Receiver {
+ extends AbstractCopletAdapter {
/** The source resolver */
protected SourceResolver resolver;
@@ -86,8 +83,8 @@
String sourceUri = uri;
if ( handlePars.booleanValue() ) {
- List list = (List) portalService.getTemporaryAttribute(URICopletAdapter.class.getName());
- if ( list != null && list.contains( coplet )) {
+ List list = CopletInstanceDataFeatures.getChangedCopletInstanceDataObjects(this.portalService);
+ if ( list.contains( coplet )) {
// add parameters
if ( uri.startsWith("cocoon:raw:") ) {
sourceUri = "cocoon:" + uri.substring(11);
@@ -130,20 +127,6 @@
this.resolver = null;
}
super.dispose();
- }
-
- /**
- * @see Receiver
- */
- public void inform(CopletInstanceEvent event, PortalService service) {
- List list = (List)service.getTemporaryAttribute(URICopletAdapter.class.getName());
- if ( list == null ) {
- list = new ArrayList();
- }
- if ( !list.contains(event.getTarget()) ) {
- list.add(event.getTarget());
- }
- service.setTemporaryAttribute(URICopletAdapter.class.getName(), list);
}
/**
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/InternalEventReceiver.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/InternalEventReceiver.java?rev=326672&r1=326671&r2=326672&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/InternalEventReceiver.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/InternalEventReceiver.java Wed Oct 19 13:11:10 2005
@@ -24,6 +24,7 @@
import org.apache.cocoon.portal.coplet.CopletInstanceData;
import org.apache.cocoon.portal.coplet.CopletInstanceDataFeatures;
import org.apache.cocoon.portal.event.CopletDataEvent;
+import org.apache.cocoon.portal.event.CopletInstanceEvent;
import org.apache.cocoon.portal.event.Event;
import org.apache.cocoon.portal.event.EventManager;
import org.apache.cocoon.portal.event.Receiver;
@@ -42,6 +43,13 @@
public InternalEventReceiver() {
// nothing to do
+ }
+
+ /**
+ * @see Receiver
+ */
+ public void inform(CopletInstanceEvent event, PortalService service) {
+ CopletInstanceDataFeatures.addChangedCopletInstanceData(service, (CopletInstanceData)event.getTarget());
}
/**
Modified: cocoon/blocks/portal/trunk/status.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/status.xml?rev=326672&r1=326671&r2=326672&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/status.xml (original)
+++ cocoon/blocks/portal/trunk/status.xml Wed Oct 19 13:11:10 2005
@@ -66,6 +66,10 @@
<changes>
<release version="@version@" date="@date@">
<action dev="CZ" type="add">
+ Add CopletInstanceDataFeatures and CopletDataFeatures utility classes
+ to query optional features of coplets and to track changed coplets.
+ </action>
+ <action dev="CZ" type="add">
Refactor url creation for events (NOT FINISHED YET).
</action>
<action dev="CZ" type="add">