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 2004/02/12 10:33:30 UTC
cvs commit: cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/event CopletDataEvent.java
cziegeler 2004/02/12 01:33:30
Modified: src/blocks/portal/conf portal.samplesxconf portal.xconf
src/blocks/portal/java/org/apache/cocoon/portal/event/impl
DefaultEventManager.java
src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl
AbstractCopletAdapter.java
src/blocks/portal/java/org/apache/cocoon/portal/coplet
CopletInstanceData.java
src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input
CopletModule.java
Added: src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl
DefaulCopletDataEventSubscriber.java
src/blocks/portal/java/org/apache/cocoon/portal/event/impl
ChangeCopletsJXPathEvent.java
src/blocks/portal/java/org/apache/cocoon/portal/event
CopletDataEvent.java
Removed: src/blocks/portal/java/org/apache/cocoon/portal/event/impl
InvalidEventTypeException.java
Log:
Improvements and minor fixes
Revision Changes Path
1.1 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaulCopletDataEventSubscriber.java
Index: DefaulCopletDataEventSubscriber.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
Alternately, this acknowledgment may appear in the software itself, if
and wherever such third-party acknowledgments normally appear.
4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
used to endorse or promote products derived from this software without
prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", nor may
"Apache" appear in their name, without prior written permission of the
Apache Software Foundation.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software consists of voluntary contributions made by many individuals
on behalf of the Apache Software Foundation and was originally created by
Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.cocoon.portal.event.subscriber.impl;
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.avalon.framework.service.Serviceable;
import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.coplet.CopletData;
import org.apache.cocoon.portal.coplet.CopletInstanceData;
import org.apache.cocoon.portal.event.CopletDataEvent;
import org.apache.cocoon.portal.event.Event;
import org.apache.cocoon.portal.event.EventManager;
import org.apache.cocoon.portal.event.Filter;
import org.apache.cocoon.portal.event.Publisher;
import org.apache.cocoon.portal.event.Subscriber;
import org.apache.cocoon.portal.event.impl.ChangeCopletsJXPathEvent;
import org.apache.cocoon.portal.event.impl.CopletJXPathEvent;
import org.apache.cocoon.portal.profile.ProfileManager;
/**
*
* @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
*
* @version CVS $Id: DefaulCopletDataEventSubscriber.java,v 1.1 2004/02/12 09:33:29 cziegeler Exp $
*/
public final class DefaulCopletDataEventSubscriber
implements Subscriber, Serviceable {
/** The service manager */
protected ServiceManager manager;
/**
* Constructor
*/
public DefaulCopletDataEventSubscriber() {
}
/* (non-Javadoc)
* @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
public void service(ServiceManager manager) throws ServiceException {
this.manager = manager;
}
/* (non-Javadoc)
* @see org.apache.cocoon.portal.event.Subscriber#getEventType()
*/
public Class getEventType() {
return CopletDataEvent.class;
}
/* (non-Javadoc)
* @see org.apache.cocoon.portal.event.Subscriber#getFilter()
*/
public Filter getFilter() {
return null;
}
/* (non-Javadoc)
* @see org.apache.cocoon.portal.event.Subscriber#inform(org.apache.cocoon.portal.event.Event)
*/
public void inform(Event e) {
CopletData data = (CopletData) ((CopletDataEvent)e).getTarget();
PortalService service = null;
List instances = null;
try {
service = (PortalService) this.manager.lookup(PortalService.ROLE);
ProfileManager profileManager = service.getComponentManager().getProfileManager();
instances = profileManager.getCopletInstanceData(data);
} catch (Exception ignore) {
} finally {
this.manager.release(service);
}
if ( instances != null ) {
Publisher publisher = null;
EventManager eventManager = null;
try {
eventManager = (EventManager) this.manager.lookup(EventManager.ROLE);
publisher = eventManager.getPublisher();
} catch (Exception ignore) {
} finally {
this.manager.release(eventManager);
}
if ( publisher != null ) {
if ( e instanceof ChangeCopletsJXPathEvent ) {
final String path = ((ChangeCopletsJXPathEvent)e).getPath();
final Object value = ((ChangeCopletsJXPathEvent)e).getValue();
Iterator i = instances.iterator();
while ( i.hasNext() ) {
CopletInstanceData current = (CopletInstanceData) i.next();
Event event = new CopletJXPathEvent(current, path, value);
publisher.publish(event);
}
}
}
}
}
}
1.15 +2 -0 cocoon-2.1/src/blocks/portal/conf/portal.samplesxconf
Index: portal.samplesxconf
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/conf/portal.samplesxconf,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- portal.samplesxconf 23 Jan 2004 01:24:22 -0000 1.14
+++ portal.samplesxconf 12 Feb 2004 09:33:29 -0000 1.15
@@ -96,6 +96,7 @@
<aspect type="coplet-full-screen"/>
<aspect type="coplet-sizing"/>
<aspect type="history"/>
+ <aspect type="basket"/>
<aspect type="coplet-cinclude"/>
</aspects>
</renderer>
@@ -127,6 +128,7 @@
</aspect>
<aspect type="coplet-removing"/>
<aspect type="history"/>
+ <aspect type="basket"/>
<aspect type="coplet-cinclude"/>
</aspects>
</renderer>
1.33 +13 -0 cocoon-2.1/src/blocks/portal/conf/portal.xconf
Index: portal.xconf
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/conf/portal.xconf,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- portal.xconf 23 Jan 2004 01:24:22 -0000 1.32
+++ portal.xconf 12 Feb 2004 09:33:29 -0000 1.33
@@ -22,6 +22,7 @@
<subscriber-classes>
<class name="org.apache.cocoon.portal.event.subscriber.impl.DefaultChangeAspectDataEventSubscriber"/>
<class name="org.apache.cocoon.portal.event.subscriber.impl.DefaultJXPathEventSubscriber"/>
+ <class name="org.apache.cocoon.portal.event.subscriber.impl.DefaulCopletDataEventSubscriber"/>
</subscriber-classes>
<!-- add each component as a subscriber (the component should be thread safe): -->
<subscriber-roles>
@@ -62,6 +63,12 @@
<coplet-adapter name="portlet"
class="org.apache.cocoon.portal.coplet.adapter.impl.PortletAdapter"
logger="portal"/>
+ <!-- This is an extension of the uri adapter -->
+ <coplet-adapter name="caching-uri"
+ class="org.apache.cocoon.portal.coplet.adapter.impl.CachingURICopletAdapter" logger="portal"/>
+ <!-- This is the application adapter -->
+ <coplet-adapter name="application"
+ class="org.apache.cocoon.portal.coplet.adapter.impl.ApplicationCopletAdapter" logger="portal"/>
</component>
@@ -96,6 +103,8 @@
<aspect name="frame" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.FrameAspect"/>
<aspect name="xslt" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.XSLTAspect"/>
<aspect class="org.apache.cocoon.portal.layout.renderer.aspect.impl.ParameterAspect" name="parameter"/>
+ <!-- This is the special basket renderer -->
+ <aspect class="org.apache.cocoon.portal.coplets.basket.AddToBasketAspect" name="basket"/>
</component>
<!-- Aspect Storage configuration -->
@@ -117,4 +126,8 @@
<component class="org.apache.cocoon.portal.profile.impl.MapProfileLS" role="org.apache.cocoon.portal.profile.ProfileLS" />
<component class="org.apache.cocoon.components.variables.DefaultVariableResolverFactory" role="org.apache.cocoon.components.variables.VariableResolverFactory" />
+ <!-- This is the basket manager -->
+ <component class="org.apache.cocoon.portal.coplets.basket.BasketManager"
+ role="org.apache.cocoon.portal.coplets.basket.BasketManager"/>
+
</xconf>
1.13 +7 -13 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java
Index: DefaultEventManager.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- DefaultEventManager.java 10 Dec 2003 14:07:32 -0000 1.12
+++ DefaultEventManager.java 12 Feb 2004 09:33:29 -0000 1.13
@@ -83,12 +83,6 @@
import org.apache.cocoon.util.ClassUtils;
/**
- * @author CZiegeler
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-/**
* This is the default implementation of the event manager.
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
@@ -241,10 +235,10 @@
/* (non-Javadoc)
* @see org.apache.cocoon.portal.event.Register#subscribe(org.apache.cocoon.portal.event.Subscriber)
*/
- public void subscribe( final Subscriber subscriber )
- throws InvalidEventTypeException {
+ public void subscribe( final Subscriber subscriber ) {
if ( !eventClass.isAssignableFrom( subscriber.getEventType() ) ) {
- throw new InvalidEventTypeException();
+ throw new RuntimeException("Invalid event type " + subscriber.getEventType()
+ +" for subscriber " + subscriber);
}
if ( getLogger().isDebugEnabled() ) {
@@ -264,11 +258,11 @@
/* (non-Javadoc)
* @see org.apache.cocoon.portal.event.Register#unsubscribe(org.apache.cocoon.portal.event.Subscriber)
*/
- public void unsubscribe( Subscriber subscriber )
- throws InvalidEventTypeException {
+ public void unsubscribe( Subscriber subscriber ) {
if ( !eventClass.isAssignableFrom( subscriber.getEventType() ) ) {
- throw new InvalidEventTypeException();
+ throw new RuntimeException("Invalid event type " + subscriber.getEventType()
+ +" for unsubscribing " + subscriber);
}
if ( subscribers.contains( subscriber ) ) {
subscribers.remove( subscriber );
1.1 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/ChangeCopletsJXPathEvent.java
Index: ChangeCopletsJXPathEvent.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
Alternately, this acknowledgment may appear in the software itself, if
and wherever such third-party acknowledgments normally appear.
4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
used to endorse or promote products derived from this software without
prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", nor may
"Apache" appear in their name, without prior written permission of the
Apache Software Foundation.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software consists of voluntary contributions made by many individuals
on behalf of the Apache Software Foundation and was originally created by
Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.cocoon.portal.event.impl;
import org.apache.cocoon.portal.coplet.CopletData;
import org.apache.cocoon.portal.event.CopletDataEvent;
/**
* This event changes the value of all instances of a coplet data
*
* @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
*
* @version CVS $Id: ChangeCopletsJXPathEvent.java,v 1.1 2004/02/12 09:33:29 cziegeler Exp $
*/
public class ChangeCopletsJXPathEvent
extends AbstractActionEvent
implements CopletDataEvent {
protected String path;
protected Object value;
/**
* Constructor
* @param target The coplet data
* @param path The path for the instance data
* @param value The value to set
*/
public ChangeCopletsJXPathEvent(CopletData target, String path, Object value) {
super( target );
this.path = path;
this.value = value;
}
/**
* @return Returns the path.
*/
public String getPath() {
return this.path;
}
/**
* @return Returns the value.
*/
public Object getValue() {
return this.value;
}
}
1.7 +25 -1 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/AbstractCopletAdapter.java
Index: AbstractCopletAdapter.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/AbstractCopletAdapter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AbstractCopletAdapter.java 20 Oct 2003 13:36:41 -0000 1.6
+++ AbstractCopletAdapter.java 12 Feb 2004 09:33:30 -0000 1.7
@@ -50,6 +50,9 @@
*/
package org.apache.cocoon.portal.coplet.adapter.impl;
+import java.util.Iterator;
+import java.util.Map;
+
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
@@ -184,15 +187,36 @@
}
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.coplet.adapter.CopletAdapter#init(org.apache.cocoon.portal.coplet.CopletInstanceData)
+ */
public void init(CopletInstanceData coplet) {
}
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.coplet.adapter.CopletAdapter#destroy(org.apache.cocoon.portal.coplet.CopletInstanceData)
+ */
public void destroy(CopletInstanceData coplet) {
}
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.coplet.adapter.CopletAdapter#login(org.apache.cocoon.portal.coplet.CopletInstanceData)
+ */
public void login(CopletInstanceData coplet) {
+ // copy temporary attributes from the coplet data
+ Iterator iter = coplet.getCopletData().getAttributes().entrySet().iterator();
+ while ( iter.hasNext() ) {
+ Map.Entry entry = (Map.Entry)iter.next();
+ if ( entry.getKey().toString().startsWith("temporary:") ) {
+ coplet.setTemporaryAttribute(entry.getKey().toString().substring(10),
+ entry.getValue());
+ }
+ }
}
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.coplet.adapter.CopletAdapter#logout(org.apache.cocoon.portal.coplet.CopletInstanceData)
+ */
public void logout(CopletInstanceData coplet) {
}
1.9 +21 -2 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java
Index: CopletInstanceData.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- CopletInstanceData.java 10 Jul 2003 13:17:02 -0000 1.8
+++ CopletInstanceData.java 12 Feb 2004 09:33:30 -0000 1.9
@@ -71,6 +71,9 @@
protected Map attributes = new HashMap();
+ /** Temporary attributes are not persisted */
+ protected Map temporaryAttributes = new HashMap();
+
/**
* Constructor
*/
@@ -107,4 +110,20 @@
public Map getAttributes() {
return this.attributes;
}
-}
+
+ public Object getTemporaryAttribute(String key) {
+ return this.temporaryAttributes.get(key);
+ }
+
+ public void setTemporaryAttribute(String key, Object value) {
+ this.temporaryAttributes.put(key, value);
+ }
+
+ public void removeTemporaryAttribute(String key) {
+ this.temporaryAttributes.remove(key);
+ }
+
+ public Map getTemporaryAttributes() {
+ return this.temporaryAttributes;
+ }
+}
\ No newline at end of file
1.10 +8 -1 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/CopletModule.java
Index: CopletModule.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/CopletModule.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- CopletModule.java 9 Feb 2004 09:11:12 -0000 1.9
+++ CopletModule.java 12 Feb 2004 09:33:30 -0000 1.10
@@ -92,7 +92,10 @@
* </map:action>
* </map:action></pre>
*
+ * Using the path '#' you get the current copletId: {coplet:#}
+ *
* @author <a href="mailto:bluetkemeier@s-und-n.de">Björn Lütkemeier</a>
+ * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
* @version CVS $Id$
*/
public class CopletModule
@@ -138,6 +141,10 @@
return null;
}
+ // return the coplet id
+ if ( name.equals("#") ) {
+ return copletId;
+ }
JXPathContext jxpathContext = JXPathContext.newContext(portalService.getComponentManager().getProfileManager().getCopletInstanceData(copletId));
Object value = jxpathContext.getValue(name);
1.1 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/event/CopletDataEvent.java
Index: CopletDataEvent.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
Alternately, this acknowledgment may appear in the software itself, if
and wherever such third-party acknowledgments normally appear.
4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
used to endorse or promote products derived from this software without
prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", nor may
"Apache" appear in their name, without prior written permission of the
Apache Software Foundation.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software consists of voluntary contributions made by many individuals
on behalf of the Apache Software Foundation and was originally created by
Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.cocoon.portal.event;
/**
* This interface marks an event as an event for a coplet data (or
* for all coplet instance datas).
*
* @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
*
* @version CVS $Id: CopletDataEvent.java,v 1.1 2004/02/12 09:33:30 cziegeler Exp $
*/
public interface CopletDataEvent
extends ActionEvent {
}