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 17:11:55 UTC
svn commit: r219049 [2/2] - in
/cocoon/branches/BRANCH_2_1_X/src/blocks/portal: conf/
java/org/apache/cocoon/portal/ java/org/apache/cocoon/portal/acting/
java/org/apache/cocoon/portal/coplet/adapter/impl/
java/org/apache/cocoon/portal/coplets/basket/ ...
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java Thu Jul 14 08:11:52 2005
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2002,2004 The Apache Software Foundation.
+ * 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.
@@ -15,7 +15,9 @@
*/
package org.apache.cocoon.portal.event.impl;
+import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -42,10 +44,12 @@
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;
+import org.apache.cocoon.util.Deprecation;
/**
* This is the default implementation of the event manager.
@@ -53,7 +57,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: DefaultEventManager.java,v 1.14 2004/03/05 13:02:12 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class DefaultEventManager
extends AbstractLogEnabled
@@ -68,7 +72,11 @@
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();
+
private ServiceManager manager;
private Configuration configuration;
@@ -77,12 +85,19 @@
protected ServiceSelector aspectSelector;
protected Context context;
-
- /* (non-Javadoc)
+
+ /** The portal service */
+ protected PortalService service;
+
+ /** Introspected receiver classes */
+ protected Map receiverClasses = new HashMap();
+
+ /**
* @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
public void service(ServiceManager manager) throws ServiceException {
this.manager = manager;
+ this.service = (PortalService)manager.lookup(PortalService.ROLE);
}
/* (non-Javadoc)
@@ -124,6 +139,8 @@
}
this.manager.release( this.aspectSelector );
this.aspectSelector = null;
+ this.manager.release(this.service);
+ this.service = null;
this.manager = null;
}
}
@@ -143,18 +160,17 @@
Configuration roles = this.configuration.getChild("subscriber-roles", false);
if ( roles != null ) {
Configuration[] rolesConf = roles.getChildren("role");
- if ( rolesConf != null ) {
- 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);
- }
+ 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);
+ Deprecation.logger.warn("Subscriber is deprecated. Please convert the following component to a Receiver: " + subscriber.getClass().getName());
+ this.subscribe(subscriber);
+ } finally {
+ this.manager.release(subscriber);
}
}
}
@@ -162,39 +178,60 @@
Configuration classes = this.configuration.getChild("subscriber-classes", false);
if ( classes != null ) {
Configuration[] classesConf = classes.getChildren("class");
- if ( classesConf != null ) {
- 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.service(subscriber, this.manager );
- ContainerUtil.initialize(subscriber);
- this.subscribe(subscriber);
+ for(int i=0; i<classesConf.length;i++) {
+ final Configuration current = classesConf[i];
+ final String name = current.getAttribute("name");
+
+ Deprecation.logger.warn("Subscriber is deprecated. Please convert the following component to a Receiver: " + 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);
+ 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");
+
+ Receiver receiver = null;
+ try {
+ receiver = (Receiver) this.manager.lookup(name);
+ this.subscribe(receiver);
+ } finally {
+ this.manager.release(receiver);
}
}
}
+ // subscribe all configured receiver classes
+ classes = this.configuration.getChild("receiver-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");
+
+ Receiver receiver = (Receiver)ClassUtils.newInstance(name);
+ ContainerUtil.enableLogging(receiver, this.getLogger());
+ ContainerUtil.contextualize(receiver, this.context);
+ ContainerUtil.service(receiver, this.manager );
+ ContainerUtil.initialize(receiver);
+ this.subscribe(receiver);
+ }
+ }
+
}
/* (non-Javadoc)
* @see org.apache.cocoon.portal.event.Publisher#publish(org.apache.cocoon.portal.event.Event)
*/
public void publish( final Event event ) {
-
- 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);
- }
- }
+ this.send(event);
}
/* (non-Javadoc)
@@ -284,12 +321,117 @@
}
- /* (non-Javadoc)
+ /**
* @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
*/
public void contextualize(Context context)
throws ContextException {
this.context = context;
+ }
+
+ /**
+ * @see org.apache.cocoon.portal.event.EventManager#send(org.apache.cocoon.portal.event.Event)
+ */
+ public void send(Event event) {
+ 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();
+ final List methodInfos = (List)current.getValue();
+ boolean found = false;
+ final Iterator ci = methodInfos.iterator();
+ while ( !found && ci.hasNext() ) {
+ final MethodInfo info = (MethodInfo)ci.next();
+ if ( info.eventClass.isAssignableFrom(event.getClass()) ) {
+ if ( getLogger().isDebugEnabled() ) {
+ getLogger().info("Informing receiver "+receiver+" of event "+event.getClass());
+ }
+ try {
+ info.method.invoke(receiver, new Object[] {event, this.service});
+ } catch (Exception ignore) {
+ this.getLogger().warn("Exception during event dispatching on receiver " + receiver
+ +" and event " + event, ignore);
+ }
+ found = true;
+ }
+ }
+ }
+ }
+
+ protected static final class MethodInfo {
+
+ public Class eventClass;
+ public Method method;
+ }
+
+ protected synchronized List introspect(Class receiverClass) {
+ List result = (List)this.receiverClasses.get(receiverClass.getName());
+ if ( result == null ) {
+ result = new ArrayList();
+ Method[] methods = receiverClass.getMethods();
+ for(int i=0; i<methods.length; i++ ) {
+ final Method current = methods[i];
+ if ( current.getName().equals("inform") ) {
+ final Class[] params = current.getParameterTypes();
+ if ( params.length == 2
+ && params[1].getName().equals(PortalService.class.getName())) {
+ if ( eventClass.isAssignableFrom( params[0] ) ) {
+ MethodInfo info = new MethodInfo();
+ info.eventClass = params[0];
+ info.method = current;
+ result.add(info);
+ }
+ }
+ }
+ }
+ if ( result.size() == 0 ) {
+ result = null;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @see org.apache.cocoon.portal.event.EventManager#subscribe(org.apache.cocoon.portal.event.Receiver)
+ */
+ public void subscribe(Receiver receiver) {
+ List infos = this.introspect(receiver.getClass());
+ if ( infos == null ) {
+ throw new RuntimeException("Invalid event receiver type: " + receiver);
+ }
+
+ // Add to list but prevent duplicate subscriptions
+ List eventClassesForReceiver = (List)this.receivers.get(receiver);
+ if ( eventClassesForReceiver == null ) {
+ this.receivers.put(receiver, infos);
+ }
+ if ( getLogger().isDebugEnabled() ) {
+ for(int i=0; i<infos.size();i++) {
+ getLogger().debug( "Receiver " + receiver + " subscribed for event: " + ((MethodInfo)infos.get(i)).eventClass.getName() );
+ }
+ }
+ }
+
+ /**
+ * @see org.apache.cocoon.portal.event.EventManager#unsubscribe(org.apache.cocoon.portal.event.Receiver)
+ */
+ public void unsubscribe(Receiver receiver) {
+ if ( getLogger().isDebugEnabled() ) {
+ getLogger().debug( "Receiver " + receiver + " unsubscribed.");
+ }
+ this.receivers.remove(receiver);
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/FullScreenCopletEvent.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/FullScreenCopletEvent.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/FullScreenCopletEvent.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/impl/FullScreenCopletEvent.java Thu Jul 14 08:11:52 2005
@@ -26,17 +26,17 @@
*
* @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$
*/
-public class FullScreenCopletEvent
- extends CopletStatusEvent
+public class FullScreenCopletEvent
+ extends CopletStatusEvent
implements RequestEvent, ConvertableEvent {
public static final String REQUEST_PARAMETER_NAME = "cocoon-portal-fs";
-
+
protected Layout layout;
-
+
public FullScreenCopletEvent(CopletInstanceData data, Layout layout) {
this.coplet = data;
this.layout = layout;
@@ -67,7 +67,7 @@
public String getRequestParameterName() {
return REQUEST_PARAMETER_NAME;
}
-
+
public Layout getLayout() {
return this.layout;
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaulCopletDataEventSubscriber.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaulCopletDataEventSubscriber.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaulCopletDataEventSubscriber.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaulCopletDataEventSubscriber.java Thu Jul 14 08:11:52 2005
@@ -18,18 +18,13 @@
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.Receiver;
import org.apache.cocoon.portal.event.impl.ChangeCopletsJXPathEvent;
import org.apache.cocoon.portal.event.impl.CopletJXPathEvent;
import org.apache.cocoon.portal.profile.ProfileManager;
@@ -41,11 +36,8 @@
* @version CVS $Id$
*/
public final class DefaulCopletDataEventSubscriber
-implements Subscriber, Serviceable {
+implements Receiver {
- /** The service manager */
- protected ServiceManager manager;
-
/**
* Constructor
*/
@@ -53,67 +45,26 @@
// nothing to do
}
- /* (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)
+ /**
+ * @see Receiver
*/
- public void inform(Event e) {
- CopletData data = (CopletData) ((CopletDataEvent)e).getTarget();
- PortalService service = null;
+ public void inform(CopletDataEvent e, PortalService service) {
+ CopletData data = (CopletData)e.getTarget();
List instances = null;
- try {
- service = (PortalService) this.manager.lookup(PortalService.ROLE);
- ProfileManager profileManager = service.getComponentManager().getProfileManager();
- instances = profileManager.getCopletInstanceData(data);
- } catch (Exception ignore) {
- // ignore exception
- } 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) {
- // ignore exception
- } finally {
- this.manager.release(eventManager);
- }
- if ( publisher != null ) {
- if ( e instanceof ChangeCopletsJXPathEvent ) {
- final String path = ((ChangeCopletsJXPathEvent)e).getPath();
- final Object value = ((ChangeCopletsJXPathEvent)e).getValue();
+ ProfileManager profileManager = service.getComponentManager().getProfileManager();
+ instances = profileManager.getCopletInstanceData(data);
+
+ if ( instances != null && e instanceof ChangeCopletsJXPathEvent ) {
+ EventManager eventManager = service.getComponentManager().getEventManager();
+ 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);
- }
- }
+ Iterator i = instances.iterator();
+ while ( i.hasNext() ) {
+ CopletInstanceData current = (CopletInstanceData) i.next();
+ Event event = new CopletJXPathEvent(current, path, value);
+ eventManager.send(event);
}
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaultChangeAspectDataEventSubscriber.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaultChangeAspectDataEventSubscriber.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaultChangeAspectDataEventSubscriber.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaultChangeAspectDataEventSubscriber.java Thu Jul 14 08:11:52 2005
@@ -15,10 +15,9 @@
*/
package org.apache.cocoon.portal.event.subscriber.impl;
+import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.aspect.Aspectalizable;
-import org.apache.cocoon.portal.event.Event;
-import org.apache.cocoon.portal.event.Filter;
-import org.apache.cocoon.portal.event.Subscriber;
+import org.apache.cocoon.portal.event.Receiver;
import org.apache.cocoon.portal.event.impl.ChangeAspectDataEvent;
/**
@@ -28,31 +27,16 @@
* @version CVS $Id$
*/
public final class DefaultChangeAspectDataEventSubscriber
- implements Subscriber {
+ implements Receiver {
public DefaultChangeAspectDataEventSubscriber() {
// nothing to do
}
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.Subscriber#getEventType()
+ /**
+ * @see Receiver
*/
- public Class getEventType() {
- return ChangeAspectDataEvent.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) {
- final ChangeAspectDataEvent event = (ChangeAspectDataEvent)e;
+ public void inform(ChangeAspectDataEvent event, PortalService service) {
final Aspectalizable target = event.getAspectalizable();
target.setAspectData(event.getAspectName(), event.getData());
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaultJXPathEventSubscriber.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaultJXPathEventSubscriber.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaultJXPathEventSubscriber.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/event/subscriber/impl/DefaultJXPathEventSubscriber.java Thu Jul 14 08:11:52 2005
@@ -15,44 +15,28 @@
*/
package org.apache.cocoon.portal.event.subscriber.impl;
-import org.apache.cocoon.portal.event.Event;
-import org.apache.cocoon.portal.event.Filter;
-import org.apache.cocoon.portal.event.Subscriber;
+import org.apache.cocoon.portal.PortalService;
+import org.apache.cocoon.portal.event.Receiver;
import org.apache.cocoon.portal.event.impl.JXPathEvent;
import org.apache.commons.jxpath.JXPathContext;
/**
- * This subscriber processes JXPath events
+ * This subscriber processes JXPath events.
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
- *
+ *
* @version CVS $Id$
*/
public final class DefaultJXPathEventSubscriber
- implements Subscriber {
+ implements Receiver {
public DefaultJXPathEventSubscriber() {
// nothing to do
}
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.Subscriber#getEventType()
+ /**
+ * @see Receiver
*/
- public Class getEventType() {
- return JXPathEvent.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) {
- final JXPathEvent event = (JXPathEvent)e;
+ public void inform(JXPathEvent event, PortalService service) {
final Object target = event.getTarget();
if ( target != null ) {
final JXPathContext jxpathContext = JXPathContext.newContext(target);
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/generation/AbstractCopletGenerator.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/generation/AbstractCopletGenerator.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/generation/AbstractCopletGenerator.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/generation/AbstractCopletGenerator.java Thu Jul 14 08:11:52 2005
@@ -17,7 +17,6 @@
import java.util.Map;
-import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
@@ -46,8 +45,7 @@
* @version CVS $Id: AbstractCopletTransformer.java 30941 2004-07-29 19:56:58Z vgritsenko $
*/
public abstract class AbstractCopletGenerator
-extends ServiceableGenerator
-implements Disposable {
+extends ServiceableGenerator {
/**
* Parameter name.
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java Thu Jul 14 08:11:52 2005
@@ -43,10 +43,8 @@
import org.apache.cocoon.portal.PortalManagerAspectPrepareContext;
import org.apache.cocoon.portal.PortalManagerAspectRenderContext;
import org.apache.cocoon.portal.PortalService;
-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.Subscriber;
+import org.apache.cocoon.portal.event.Receiver;
import org.apache.cocoon.portal.pluto.PortletContainerEnvironmentImpl;
import org.apache.cocoon.portal.pluto.PortletURLProviderImpl;
import org.apache.cocoon.portal.pluto.servlet.ServletRequestImpl;
@@ -67,7 +65,7 @@
* This aspect provides the JSR-168 support by initializing Pluto.
* The aspect can be configured at the portal manager.
*
- * @version SVN $Id:$
+ * @version SVN $Id$
*/
public class PortletPortalManagerAspect
extends AbstractLogEnabled
@@ -76,7 +74,7 @@
Serviceable,
Initializable,
Disposable,
- Subscriber {
+ Receiver {
public static final ThreadLocal copletInstanceData = new InheritableThreadLocal();
@@ -122,7 +120,7 @@
EventManager eventManager = null;
try {
eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
- eventManager.getRegister().subscribe(this);
+ eventManager.subscribe(this);
} finally {
this.manager.release(eventManager);
}
@@ -136,7 +134,7 @@
EventManager eventManager = null;
try {
eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
- eventManager.getRegister().unsubscribe(this);
+ eventManager.unsubscribe(this);
} catch (Exception ignore) {
// let's ignore it
} finally {
@@ -216,30 +214,15 @@
}
/**
- * @see org.apache.cocoon.portal.event.Subscriber#getEventType()
+ * @see Receiver
*/
- public Class getEventType() {
- return PortletURLProviderImpl.class;
- }
-
- /**
- * @see org.apache.cocoon.portal.event.Subscriber#getFilter()
- */
- public Filter getFilter() {
- return null;
- }
-
- /**
- * @see org.apache.cocoon.portal.event.Subscriber#inform(org.apache.cocoon.portal.event.Event)
- */
- public void inform(Event e) {
- PortletURLProviderImpl event = (PortletURLProviderImpl)e;
+ public void inform(PortletURLProviderImpl event, PortalService service) {
final Map objectModel = ContextHelper.getObjectModel(this.context);
final ServletRequestImpl req = new ServletRequestImpl((HttpServletRequest) objectModel.get(HttpEnvironment.HTTP_REQUEST_OBJECT), event);
final HttpServletResponse res = new ServletResponseImpl((HttpServletResponse) objectModel.get(HttpEnvironment.HTTP_RESPONSE_OBJECT));
objectModel.put("portlet-response", res);
objectModel.put("portlet-request", req);
-
+
if ( event.isAction() ) {
// This means we can only have ONE portlet event per request!
objectModel.put("portlet-event", event);
@@ -247,7 +230,7 @@
DynamicInformationProvider dynProv;
InformationProviderService ips;
PortletActionProvider pap;
-
+
ips = (InformationProviderService)this.portletContainerEnvironment.getContainerService(InformationProviderService.class);
dynProv = ips.getDynamicProvider(req);
pap = dynProv.getPortletActionProvider(event.getPortletWindow());
@@ -319,6 +302,7 @@
aspectContext.invokeNext(ch, parameters);
}
}
+
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/CompositeLayout.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/CompositeLayout.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/CompositeLayout.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/CompositeLayout.java Thu Jul 14 08:11:52 2005
@@ -79,7 +79,7 @@
String getItemClassName();
/**
- * @param itemClassName The item class name to set.
+ * @param value The item class name to set.
*/
void setItemClassName(String value);
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java Thu Jul 14 08:11:52 2005
@@ -120,7 +120,7 @@
}
/**
- * @param itemClassName The item class name to set.
+ * @param value The item class name to set.
*/
public void setItemClassName(String value) {
this.itemClassName = value;
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java Thu Jul 14 08:11:52 2005
@@ -45,11 +45,9 @@
import org.apache.cocoon.portal.coplet.CopletFactory;
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.LayoutEvent;
-import org.apache.cocoon.portal.event.Subscriber;
+import org.apache.cocoon.portal.event.Receiver;
import org.apache.cocoon.portal.event.impl.FullScreenCopletEvent;
-import org.apache.cocoon.portal.event.impl.LayoutRemoveEvent;
import org.apache.cocoon.portal.layout.CompositeLayout;
import org.apache.cocoon.portal.layout.Item;
import org.apache.cocoon.portal.layout.Layout;
@@ -134,7 +132,7 @@
Disposable,
Serviceable,
Initializable,
- Subscriber {
+ Receiver {
protected Map layouts = new HashMap();
@@ -362,7 +360,7 @@
EventManager eventManager = null;
try {
eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
- eventManager.getRegister().unsubscribe( this );
+ eventManager.unsubscribe( this );
} catch (Exception ignore) {
// ignore
} finally {
@@ -382,39 +380,21 @@
EventManager eventManager = null;
try {
eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
- eventManager.getRegister().subscribe( this );
+ eventManager.subscribe( this );
} finally {
this.manager.release( eventManager );
}
}
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.Subscriber#getFilter()
- */
- public Filter getFilter() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.Subscriber#getEventType()
- */
- public Class getEventType() {
- return LayoutEvent.class;
- }
-
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.event.Subscriber#inform(org.apache.cocoon.portal.event.Event)
+ /**
+ * @see Receiver
*/
- public void inform(Event e) {
- // event dispatching
- if ( e instanceof LayoutRemoveEvent ) {
- LayoutRemoveEvent event = (LayoutRemoveEvent)e;
- Layout layout = (Layout)event.getTarget();
- try {
- this.remove( layout );
- } catch (ProcessingException pe) {
- throw new CascadingRuntimeException("Exception during removal.", pe);
- }
+ public void inform(LayoutEvent event, PortalService service) {
+ Layout layout = (Layout)event.getTarget();
+ try {
+ this.remove( layout );
+ } catch (ProcessingException pe) {
+ throw new CascadingRuntimeException("Exception during removal.", pe);
}
}
@@ -447,7 +427,7 @@
if ( layout.equals(service.getEntryLayout(null)) ) {
Event event = new FullScreenCopletEvent(((CopletLayout)layout).getCopletInstanceData(), null);
eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
- eventManager.getPublisher().publish(event);
+ eventManager.send(event);
service.getComponentManager().getLinkService().addEventToLink(event);
}
CopletFactory factory = service.getComponentManager().getCopletFactory();
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractActionAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractActionAspect.java?rev=219049&r1=219048&r2=219049&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractActionAspect.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractActionAspect.java Thu Jul 14 08:11:52 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 );
}