Author: julien(a)jboss.com
Date: 2008-04-13 16:21:33 -0400 (Sun, 13 Apr 2008)
New Revision: 10560
Added:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/jboss-portlet.xml
Modified:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/default-object.xml
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet-instances.xml
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerPortletControllerContext.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/CoreEventControllerContext.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portlet/JBossPortlet.java
Log:
implicit event handling
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerPortletControllerContext.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerPortletControllerContext.java 2008-04-13
19:41:19 UTC (rev 10559)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerPortletControllerContext.java 2008-04-13
20:21:33 UTC (rev 10560)
@@ -128,7 +128,7 @@
//
this.stateControllerContext = new ControllerStateControllerContext(nsContext,
this);
- this.eventControllerContext = new CoreEventControllerContext();
+ this.eventControllerContext = new CoreEventControllerContext(this);
this.controllerContext = controllerContext;
this.windows = windows;
this.infos = infos;
@@ -178,9 +178,21 @@
return instance.invoke(actionInvocation);
}
+ /**
+ * todo : handle cookies redistribution
+ */
public PortletInvocationResponse invoke(List<Cookie> cookies, EventInvocation
eventInvocation) throws PortletInvokerException
{
- throw new NotYetImplemented();
+ PortletInvocationFactory.contextualize(eventInvocation);
+
+ //
+ Window window = PortletInvocationFactory.getTargetWindow(eventInvocation);
+
+ //
+ Instance instance = instances.get(window.getName());
+
+ //
+ return instance.invoke(eventInvocation);
}
public PortletInvocationResponse invoke(ResourceInvocation resourceInvocation) throws
PortletInvokerException
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/CoreEventControllerContext.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/CoreEventControllerContext.java 2008-04-13
19:41:19 UTC (rev 10559)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/CoreEventControllerContext.java 2008-04-13
20:21:33 UTC (rev 10560)
@@ -26,7 +26,8 @@
import org.jboss.portal.portlet.controller.event.EventPhaseContext;
import org.jboss.portal.portlet.controller.event.Event;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
-import org.jboss.portal.common.NotYetImplemented;
+import org.jboss.portal.portlet.info.PortletInfo;
+import org.apache.log4j.Logger;
/**
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
@@ -34,23 +35,53 @@
*/
public class CoreEventControllerContext implements EventControllerContext
{
- public void eventProduced(EventPhaseContext eventPhaseContext, Event event, Event
event1)
+
+ /** . */
+ private final Logger log = Logger.getLogger(CoreEventControllerContext.class);
+
+ /** . */
+ private final ControllerPortletControllerContext portletControllerContext;
+
+ public CoreEventControllerContext(ControllerPortletControllerContext
portletControllerContext)
{
- throw new NotYetImplemented();
+ this.portletControllerContext = portletControllerContext;
}
- public void eventConsumed(EventPhaseContext eventPhaseContext, Event event,
PortletInvocationResponse portletInvocationResponse)
+ public void eventProduced(EventPhaseContext context, Event producedEvent, Event
sourceEvent)
{
- throw new NotYetImplemented();
+ try
+ {
+ for (String windowName : portletControllerContext.getWindowNames())
+ {
+ PortletInfo info = portletControllerContext.getPortletInfo(windowName);
+
+ //
+ if
(info.getEventing().getConsumedEvents().containsKey(producedEvent.getName()))
+ {
+ Event distributedEvent = new Event(producedEvent.getName(),
producedEvent.getPayload(), windowName);
+ context.queueEvent(distributedEvent);
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ log.error("An error occured when an event was routed", e);
+
+ //
+ context.interrupt();
+ }
}
- public void eventFailed(EventPhaseContext eventPhaseContext, Event event, Throwable
throwable)
+ public void eventConsumed(EventPhaseContext context, Event consumedEvent,
PortletInvocationResponse consumerResponse)
{
- throw new NotYetImplemented();
}
- public void eventDiscarded(EventPhaseContext eventPhaseContext, Event event, int i)
+ public void eventFailed(EventPhaseContext context, Event failedEvent, Throwable
throwable)
{
- throw new NotYetImplemented();
+ log.error("Could not deliver event " + failedEvent.getName() + " to
portlet window " + failedEvent.getWindowId(), throwable);
}
+
+ public void eventDiscarded(EventPhaseContext context, Event discardedEvent, int
cause)
+ {
+ }
}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portlet/JBossPortlet.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portlet/JBossPortlet.java 2008-04-13
19:41:19 UTC (rev 10559)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portlet/JBossPortlet.java 2008-04-13
20:21:33 UTC (rev 10560)
@@ -386,11 +386,11 @@
public void render(RenderRequest req, RenderResponse resp) throws PortletException,
PortletSecurityException, IOException
{
- try
+ if (req instanceof JBossRenderRequest && resp instanceof
JBossRenderResponse)
{
render((JBossRenderRequest)req, (JBossRenderResponse)resp);
}
- catch (ClassCastException e)
+ else
{
throw new PortletException("The request isn't a JBossRenderRequest, you
probably need to activate the JBoss Portlet Filter:
org.jboss.portlet.filter.JBossPortletFilter on " + getPortletName());
}
Modified:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/default-object.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/default-object.xml 2008-04-13
19:41:19 UTC (rev 10559)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/default-object.xml 2008-04-13
20:21:33 UTC (rev 10560)
@@ -43,6 +43,19 @@
</properties>
-->
<window>
+ <window-name>RemoteControlPortletWindow</window-name>
+ <instance-ref>RemoteControlPortletInstance</instance-ref>
+ <region>left</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow</window-name>
+ <instance-ref>ShoppingCartPortletInstance</instance-ref>
+ <region>left</region>
+ <height>1</height>
+ </window>
+
+ <window>
<window-name>GoogleMapPortletWindow</window-name>
<instance-ref>GoogleMapPortletInstance</instance-ref>
<region>center</region>
@@ -67,8 +80,8 @@
<height>4</height>
</window>
<window>
- <window-name>RemoteControlPortletWindow</window-name>
- <instance-ref>RemoteControlPortletInstance</instance-ref>
+ <window-name>ShoppingCatalogPortletWindow</window-name>
+ <instance-ref>ShoppingCatalogPortletInstance</instance-ref>
<region>center</region>
<height>5</height>
</window>
Added:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/jboss-portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/jboss-portlet.xml
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/jboss-portlet.xml 2008-04-13
20:21:33 UTC (rev 10560)
@@ -0,0 +1,31 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<!DOCTYPE portlet-app PUBLIC
+ "-//JBoss Portal//DTD JBoss Portlet 2.6//EN"
+ "http://www.jboss.org/portal/dtd/jboss-portlet_2_6.dtd">
+
+<portlet-app>
+ <app-id>portlet-samples</app-id>
+ <remotable>false</remotable>
+</portlet-app>
Modified:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet-instances.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet-instances.xml 2008-04-13
19:41:19 UTC (rev 10559)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet-instances.xml 2008-04-13
20:21:33 UTC (rev 10560)
@@ -43,9 +43,23 @@
</deployment>
<deployment>
<instance>
- <display-name xml:lang="en">Remote
Controler</display-name>
+ <display-name xml:lang="en">Remote
Controller</display-name>
<instance-id>RemoteControlPortletInstance</instance-id>
<portlet-ref>RemoteControl</portlet-ref>
</instance>
</deployment>
+ <deployment>
+ <instance>
+ <display-name xml:lang="en">Catalog
Portlet</display-name>
+ <instance-id>ShoppingCatalogPortletInstance</instance-id>
+ <portlet-ref>ShoppingCatalog</portlet-ref>
+ </instance>
+ </deployment>
+ <deployment>
+ <instance>
+ <display-name xml:lang="en">Cart Portlet</display-name>
+ <instance-id>ShoppingCartPortletInstance</instance-id>
+ <portlet-ref>ShoppingCart</portlet-ref>
+ </instance>
+ </deployment>
</deployments>
\ No newline at end of file
Modified:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet.xml 2008-04-13
19:41:19 UTC (rev 10559)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet.xml 2008-04-13
20:21:33 UTC (rev 10560)
@@ -76,9 +76,9 @@
</portlet>
<portlet>
- <description>Catalog Portlet</description>
- <portlet-name>Catalog</portlet-name>
- <display-name>Catalog Portlet</display-name>
+ <description>Shopping Catalog Portlet</description>
+ <portlet-name>ShoppingCatalog</portlet-name>
+ <display-name>Shopping Catalog Portlet</display-name>
<portlet-class>org.jboss.portal.portlet.samples.shoppingcart.CatalogPortlet</portlet-class>
<supports>
<mime-type>text/html</mime-type>
@@ -117,9 +117,9 @@
</portlet>
<portlet>
- <description>Cart Portlet</description>
- <portlet-name>Cart</portlet-name>
- <display-name>Cart Portlet</display-name>
+ <description>Shopping Cart Portlet</description>
+ <portlet-name>ShoppingCart</portlet-name>
+ <display-name>Shopping Cart Portlet</display-name>
<portlet-class>org.jboss.portal.portlet.samples.shoppingcart.CartPortlet</portlet-class>
<supports>
<mime-type>text/html</mime-type>