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/07/14 16:57:41 UTC
svn commit: r219046 - in /cocoon:
blocks/portal/trunk/java/org/apache/cocoon/portal/event/
blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/
blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/
blocks/portal/trunk/java/org...
Author: cziegeler
Date: Thu Jul 14 07:57:39 2005
New Revision: 219046
URL: http://svn.apache.org/viewcvs?rev=219046&view=rev
Log:
Remove deprecated event handling
Removed:
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/Filter.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/Publisher.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/Register.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/Subscriber.java
Modified:
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/EventManager.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/EventAspectContext.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractActionAspect.java
cocoon/trunk/status.xml
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/EventManager.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/EventManager.java?rev=219046&r1=219045&r2=219046&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/EventManager.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/EventManager.java Thu Jul 14 07:57:39 2005
@@ -25,18 +25,6 @@
* All Events have a common ancestor type {@link Event} and the event types are
* identified by a (sub)class
*
- * The old design which is now deprecated has been inspired by the paper by
- * Gupta, S., J. M. Hartkopf, and S. Ramaswamy, in Java Report, Vol. 3, No. 7, July 1998, 19-36,
- * "Event Notifier: A Pattern for Event Notification".
- *
- * EventManager brokers events between a <tt>Publisher</tt>, which produces events,
- * and a <tt>Subscriber</tt>, which handles the notification of events.
- * A <tt>Filter</tt> discards events not of interest to a subscriber.
- *
- * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
- * @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- * @author Mauro Talevi
- *
* @version CVS $Id$
*/
public interface EventManager {
@@ -46,19 +34,6 @@
*/
String ROLE = EventManager.class.getName();
- /**
- * Returns the Publisher with which events can be published.
- * @deprecated Use {@link #send(Event)} instead.
- */
- Publisher getPublisher();
-
- /**
- * Returns the Register with which subscribers can
- * subscribe and unsubscribe interest to given Events.
- * @deprecated Use {@link #subscribe(Receiver)} and {@link #unsubscribe(Receiver)}.
- */
- Register getRegister();
-
/**
* Process the events
*/
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/EventAspectContext.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/EventAspectContext.java?rev=219046&r1=219045&r2=219046&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/EventAspectContext.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/EventAspectContext.java Thu Jul 14 07:57:39 2005
@@ -20,7 +20,6 @@
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.event.EventConverter;
-import org.apache.cocoon.portal.event.Publisher;
/**
*
@@ -46,12 +45,6 @@
*/
EventConverter getEventConverter();
- /**
- * Get the publisher.
- * @deprecated The aspect can use the portal service to publish events.
- */
- Publisher getEventPublisher();
-
/**
* Get the object model
*/
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java?rev=219046&r1=219045&r2=219046&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java Thu Jul 14 07:57:39 2005
@@ -26,7 +26,7 @@
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.event.Event;
-import org.apache.cocoon.portal.event.Publisher;
+import org.apache.cocoon.portal.event.EventManager;
import org.apache.cocoon.portal.event.aspect.EventAspect;
import org.apache.cocoon.portal.event.aspect.EventAspectContext;
import org.apache.cocoon.portal.layout.Layout;
@@ -62,7 +62,7 @@
* @param layout The corresponding layout
* @param values The values contained in the request
*/
- protected abstract void publish(Publisher publisher, Layout layout, String[] values);
+ protected abstract void publish(EventManager publisher, Layout layout, String[] values);
/**
* Publish the event.
@@ -70,7 +70,7 @@
* values and invokes {@link #publish(Publisher, Layout, String[])}.
* @param values The values contained in the request
*/
- protected void publish( PortalService service, Publisher publisher, String[] values) {
+ protected void publish( PortalService service, EventManager publisher, String[] values) {
Layout layout = service.getComponentManager().getProfileManager().getPortalLayout(values[0], values[1] );
if ( layout != null ) {
this.publish( publisher, layout, values);
@@ -84,7 +84,7 @@
final Request request = ObjectModelHelper.getRequest(context.getObjectModel());
String[] values = request.getParameterValues(this.getRequestParameterName());
if (values != null) {
- final Publisher publisher = context.getEventPublisher();
+ final EventManager publisher = service.getComponentManager().getEventManager();
for (int i = 0; i < values.length; i++) {
// first try to make an event out of the value of the parameter
final String value = values[i];
@@ -92,7 +92,7 @@
try {
e = context.getEventConverter().decode(value);
if (null != e) {
- publisher.publish(e);
+ publisher.send(e);
}
} catch (Exception ignore) {
// ignroe it
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java?rev=219046&r1=219045&r2=219046&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java Thu Jul 14 07:57:39 2005
@@ -16,7 +16,7 @@
package org.apache.cocoon.portal.event.aspect.impl;
import org.apache.cocoon.portal.event.Event;
-import org.apache.cocoon.portal.event.Publisher;
+import org.apache.cocoon.portal.event.EventManager;
import org.apache.cocoon.portal.event.impl.ChangeAspectDataEvent;
import org.apache.cocoon.portal.layout.Layout;
import org.apache.cocoon.portal.layout.impl.FrameLayout;
@@ -27,7 +27,7 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: FrameEventAspect.java,v 1.9 2004/03/05 13:02:12 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class FrameEventAspect extends AbstractContentEventAspect {
@@ -43,12 +43,12 @@
/* (non-Javadoc)
* @see org.apache.cocoon.portal.event.aspect.impl.AbstractContentEventAspect#publish(org.apache.cocoon.portal.event.Publisher, org.apache.cocoon.portal.layout.Layout, java.lang.String[])
*/
- protected void publish(Publisher publisher,
+ protected void publish(EventManager publisher,
Layout layout,
String[] values) {
if (layout instanceof FrameLayout) {
final Event e = new ChangeAspectDataEvent(layout, "frame", values[2]);
- publisher.publish(e);
+ publisher.send(e);
} else {
this.getLogger().warn(
"the configured layout: "
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java?rev=219046&r1=219045&r2=219046&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java Thu Jul 14 07:57:39 2005
@@ -16,7 +16,7 @@
package org.apache.cocoon.portal.event.aspect.impl;
import org.apache.cocoon.portal.event.Event;
-import org.apache.cocoon.portal.event.Publisher;
+import org.apache.cocoon.portal.event.EventManager;
import org.apache.cocoon.portal.event.impl.ChangeAspectDataEvent;
import org.apache.cocoon.portal.layout.Layout;
import org.apache.cocoon.portal.layout.impl.LinkLayout;
@@ -25,7 +25,7 @@
*
* @author <a href="mailto:juergen.seitz@basf-it-services.com">Jürgen Seitz</a>
*
- * @version CVS $Id: LinkEventAspect.java,v 1.3 2004/03/05 13:02:12 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class LinkEventAspect extends AbstractContentEventAspect {
@@ -41,7 +41,7 @@
/* (non-Javadoc)
* @see org.apache.cocoon.portal.event.aspect.impl.AbstractContentEventAspect#publish(org.apache.cocoon.portal.event.Publisher, org.apache.cocoon.portal.layout.Layout, java.lang.String[])
*/
- protected void publish(Publisher publisher,
+ protected void publish(EventManager publisher,
Layout layout,
String[] values) {
if (layout instanceof LinkLayout) {
@@ -49,11 +49,11 @@
Event e = new ChangeAspectDataEvent(linkLayout,
"link-layout-key",
values[2]);
- publisher.publish(e);
+ publisher.send(e);
e = new ChangeAspectDataEvent(linkLayout,
"link-layout-id",
values[3]);
- publisher.publish(e);
+ publisher.send(e);
} else {
this.getLogger().warn(
"the configured layout: "
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java?rev=219046&r1=219045&r2=219046&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java Thu Jul 14 07:57:39 2005
@@ -21,10 +21,8 @@
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.event.EventConverter;
-import org.apache.cocoon.portal.event.Publisher;
import org.apache.cocoon.portal.event.aspect.EventAspect;
import org.apache.cocoon.portal.event.aspect.EventAspectContext;
-import org.apache.cocoon.util.Deprecation;
/**
*
@@ -40,7 +38,6 @@
private Iterator configIterator;
private Parameters config;
- private Publisher publisher;
private Map objectModel;
private EventConverter converter;
@@ -76,14 +73,6 @@
}
/**
- * Get the publisher
- */
- public Publisher getEventPublisher() {
- Deprecation.logger.info("The getEventPublisher() method in the EventAspectContext is deprecated.");
- return this.publisher;
- }
-
- /**
* Get the object model
*/
public Map getObjectModel() {
@@ -102,13 +91,6 @@
*/
public void setObjectModel(Map map) {
objectModel = map;
- }
-
- /**
- * @param publisher
- */
- public void setEventPublisher(Publisher publisher) {
- this.publisher = publisher;
}
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java?rev=219046&r1=219045&r2=219046&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java Thu Jul 14 07:57:39 2005
@@ -43,10 +43,7 @@
import org.apache.cocoon.portal.event.Event;
import org.apache.cocoon.portal.event.EventConverter;
import org.apache.cocoon.portal.event.EventManager;
-import org.apache.cocoon.portal.event.Publisher;
import org.apache.cocoon.portal.event.Receiver;
-import org.apache.cocoon.portal.event.Register;
-import org.apache.cocoon.portal.event.Subscriber;
import org.apache.cocoon.portal.event.aspect.EventAspect;
import org.apache.cocoon.util.ClassUtils;
@@ -66,13 +63,11 @@
ThreadSafe,
Configurable,
Disposable,
- Contextualizable,
- Publisher, Register {
+ Contextualizable {
private final String rootEventType = Event.class.getName();
private Class eventClass;
- /** The list of all subscribers. */
- private List subscribers = new ArrayList();
+
/** The list of all receivers */
private Map receivers = new HashMap();
@@ -99,20 +94,6 @@
this.service = (PortalService)manager.lookup(PortalService.ROLE);
}
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.EventManager#getPublisher()
- */
- public Publisher getPublisher() {
- return this;
- }
-
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.EventManager#getRegister()
- */
- public Register getRegister() {
- return this;
- }
-
/**
* Helper method to get the current object model
*/
@@ -154,42 +135,8 @@
this.getLogger().debug("Initialising eventClass " + eventClass);
}
- // FIXME - the following configuration is not portal specific, it's global!
- // subscribe all configured roles
- Configuration roles = this.configuration.getChild("subscriber-roles", false);
- if ( roles != null ) {
- Configuration[] rolesConf = roles.getChildren("role");
- for(int i=0; i<rolesConf.length;i++) {
- final Configuration current = rolesConf[i];
- final String name = current.getAttribute("name");
-
- Subscriber subscriber = null;
- try {
- subscriber = (Subscriber) this.manager.lookup(name);
- this.subscribe(subscriber);
- } finally {
- this.manager.release(subscriber);
- }
- }
- }
- // subscribe all configured classes
- Configuration classes = this.configuration.getChild("subscriber-classes", false);
- if ( classes != null ) {
- Configuration[] classesConf = classes.getChildren("class");
- for(int i=0; i<classesConf.length;i++) {
- final Configuration current = classesConf[i];
- final String name = current.getAttribute("name");
-
- Subscriber subscriber = (Subscriber) ClassUtils.newInstance(name);
- ContainerUtil.enableLogging(subscriber, this.getLogger());
- ContainerUtil.contextualize(subscriber, this.context);
- ContainerUtil.service(subscriber, this.manager );
- ContainerUtil.initialize(subscriber);
- this.subscribe(subscriber);
- }
- }
// subscribe all configured receiver roles
- roles = this.configuration.getChild("receiver-roles", false);
+ Configuration roles = this.configuration.getChild("receiver-roles", false);
if ( roles != null ) {
Configuration[] rolesConf = roles.getChildren("role");
for(int i=0; i<rolesConf.length;i++) {
@@ -206,7 +153,7 @@
}
}
// subscribe all configured receiver classes
- classes = this.configuration.getChild("receiver-classes", false);
+ Configuration classes = this.configuration.getChild("receiver-classes", false);
if ( classes != null ) {
Configuration[] classesConf = classes.getChildren("class");
for(int i=0; i<classesConf.length;i++) {
@@ -231,50 +178,7 @@
this.send(event);
}
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.Register#subscribe(org.apache.cocoon.portal.event.Subscriber)
- */
- public void subscribe( final Subscriber subscriber ) {
- if ( !eventClass.isAssignableFrom( subscriber.getEventType() ) ) {
- throw new RuntimeException("Invalid event type " + subscriber.getEventType()
- +" for subscriber " + subscriber);
- }
-
- if ( getLogger().isDebugEnabled() ) {
- getLogger().debug( "Subscribing event " + subscriber.getEventType().getName() );
- }
-
- // Add to list but prevent duplicate subscriptions
- if ( !subscribers.contains( subscriber ) ) {
- subscribers.add( subscriber );
- if ( getLogger().isDebugEnabled() ) {
- getLogger().debug( "Subscribed Event " + subscriber.getEventType().getName() );
- getLogger().debug( "Subscribers now active: " + subscribers.size() );
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.Register#unsubscribe(org.apache.cocoon.portal.event.Subscriber)
- */
- public void unsubscribe( Subscriber subscriber ) {
-
- if ( !eventClass.isAssignableFrom( subscriber.getEventType() ) ) {
- throw new RuntimeException("Invalid event type " + subscriber.getEventType()
- +" for unsubscribing " + subscriber);
- }
- if ( subscribers.contains( subscriber ) ) {
- subscribers.remove( subscriber );
- if ( getLogger().isDebugEnabled() ) {
- getLogger().debug( "Unsubscribed Event " + subscriber.getEventType().getName() );
- getLogger().debug( "Subscribers now active: " + subscribers.size() );
- }
- } else {
- getLogger().warn( "Subscriber " + subscriber + " not found" );
- }
- }
-
- /* (non-Javadoc)
+ /**
* @see org.apache.cocoon.portal.event.EventManager#processEvents()
*/
public void processEvents()
@@ -297,12 +201,10 @@
try {
service = (PortalService)this.manager.lookup(PortalService.ROLE);
converter = (EventConverter) this.manager.lookup(EventConverter.ROLE);
- Publisher publisher = this.getPublisher();
converter.start();
// Invoke aspects
- context.setEventPublisher( publisher );
context.setObjectModel(this.getObjectModel());
context.setEventConverter(converter);
context.invokeNext( service );
@@ -333,16 +235,6 @@
if ( getLogger().isDebugEnabled() ) {
getLogger().debug("Publishing event " + event.getClass());
}
- for ( Iterator e = subscribers.iterator(); e.hasNext(); ){
- Subscriber subscriber = (Subscriber)e.next();
- if (subscriber.getEventType().isAssignableFrom(event.getClass())
- && (subscriber.getFilter() == null || subscriber.getFilter().filter(event))) {
- if ( getLogger().isDebugEnabled() ) {
- getLogger().info("Informing subscriber "+subscriber+" of event "+event.getClass());
- }
- subscriber.inform(event);
- }
- }
for (Iterator re = receivers.entrySet().iterator(); re.hasNext(); ) {
final Map.Entry current = (Map.Entry)re.next();
final Receiver receiver = (Receiver)current.getKey();
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractActionAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractActionAspect.java?rev=219046&r1=219045&r2=219046&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractActionAspect.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractActionAspect.java Thu Jul 14 07:57:39 2005
@@ -18,8 +18,7 @@
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.cocoon.portal.event.EventManager;
-import org.apache.cocoon.portal.event.Filter;
-import org.apache.cocoon.portal.event.Subscriber;
+import org.apache.cocoon.portal.event.Receiver;
/**
* This aspect creates an event and subscribes to it as well
@@ -30,14 +29,7 @@
*/
public abstract class AbstractActionAspect
extends AbstractAspect
- implements Subscriber, Disposable, Initializable {
-
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.Subscriber#getFilter()
- */
- public Filter getFilter() {
- return null;
- }
+ implements Receiver, Disposable, Initializable {
/* (non-Javadoc)
* @see org.apache.avalon.framework.activity.Disposable#dispose()
@@ -47,7 +39,7 @@
EventManager eventManager = null;
try {
eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
- eventManager.getRegister().unsubscribe( this );
+ eventManager.unsubscribe( this );
} catch (Exception ignore) {
// ignore exceptions
} finally {
@@ -65,7 +57,7 @@
EventManager eventManager = null;
try {
eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
- eventManager.getRegister().subscribe( this );
+ eventManager.subscribe( this );
} finally {
this.manager.release( eventManager );
}
Modified: cocoon/trunk/status.xml
URL: http://svn.apache.org/viewcvs/cocoon/trunk/status.xml?rev=219046&r1=219045&r2=219046&view=diff
==============================================================================
--- cocoon/trunk/status.xml (original)
+++ cocoon/trunk/status.xml Thu Jul 14 07:57:39 2005
@@ -198,6 +198,9 @@
<changes>
<release version="@version@" date="@date@">
<action dev="CZ" type="add">
+ Portal block: Remove deprecated Publisher, Subscriber, Filter and Register.
+ </action>
+ <action dev="CZ" type="add">
Portal block: Remove deprecated PortletPortalManager.
</action>
<action dev="UH" type="add" due-to="Johan Stuyts">
@@ -483,6 +486,10 @@
</action>
</release>
<release version="2.1.8" date="TBD">
+ <action dev="CZ" type="add">
+ Portal block: Add easier to use event handling mechanism by introducing the new Receiver interface.
+ Deprecated Publisher, Subscriber, Filter and Register.
+ </action>
<action dev="CZ" type="add">
Portal block: Convert PortletPortalManager into portal manager aspect.
</action>