Author: julien(a)jboss.com
Date: 2008-03-17 10:23:26 -0400 (Mon, 17 Mar 2008)
New Revision: 10291
Added:
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/admin/ui/DebuggerPortlet.java
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventAcknowledgement.java
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventProduction.java
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventRoute.java
Modified:
modules/portlet/trunk/portal/pom.xml
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/ControllerFilter.java
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/PageEventControllerContext.java
modules/portlet/trunk/portal/src/main/resources/simple-portal-war/WEB-INF/portlet.xml
modules/portlet/trunk/portal/src/main/resources/simple-portal-war/demo/demo1.jsp
modules/portlet/trunk/samples/src/main/artifacts/basic-portlet-war/WEB-INF/portlet.xml
Log:
updated debugger portlet
Modified: modules/portlet/trunk/portal/pom.xml
===================================================================
--- modules/portlet/trunk/portal/pom.xml 2008-03-17 12:49:18 UTC (rev 10290)
+++ modules/portlet/trunk/portal/pom.xml 2008-03-17 14:23:26 UTC (rev 10291)
@@ -17,7 +17,6 @@
<groupId>org.jboss.portal.portlet</groupId>
<artifactId>portlet-portlet</artifactId>
<version>${project.version}</version>
- <type>test-jar</type>
</dependency>
<dependency>
<groupId>org.jboss.portal.portlet</groupId>
@@ -26,11 +25,6 @@
</dependency>
<dependency>
<groupId>org.jboss.portal.portlet</groupId>
- <artifactId>portlet-portlet</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.portal.portlet</groupId>
<artifactId>portlet-mc</artifactId>
<version>${project.version}</version>
</dependency>
Added:
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/admin/ui/DebuggerPortlet.java
===================================================================
---
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/admin/ui/DebuggerPortlet.java
(rev 0)
+++
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/admin/ui/DebuggerPortlet.java 2008-03-17
14:23:26 UTC (rev 10291)
@@ -0,0 +1,58 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2008, 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. *
+ ******************************************************************************/
+package org.jboss.portal.portlet.portal.admin.ui;
+
+import org.jboss.portal.portlet.portal.jsp.PageEventControllerContext;
+import org.jboss.portal.portlet.portal.jsp.EventRoute;
+
+import javax.portlet.GenericPortlet;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.PortletException;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
+ * @version $Revision: 630 $
+ */
+public class DebuggerPortlet extends GenericPortlet
+{
+
+ protected void doView(RenderRequest req, RenderResponse resp) throws PortletException,
IOException
+ {
+ PageEventControllerContext eventCC =
(PageEventControllerContext)req.getAttribute("bilto");
+
+ //
+ if (eventCC != null)
+ {
+ PrintWriter writer = resp.getWriter();
+
+// for (EventRoute route : eventCC.getRoutings())
+// {
+// writer.println("from:" + route.getSource() + " to:" +
route.getDestination() + " acknowledgement:" + route.getAcknowledgment());
+// writer.println("<hr/>");
+// }
+ }
+ }
+}
Modified:
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/ControllerFilter.java
===================================================================
---
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/ControllerFilter.java 2008-03-17
12:49:18 UTC (rev 10290)
+++
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/ControllerFilter.java 2008-03-17
14:23:26 UTC (rev 10291)
@@ -71,6 +71,9 @@
/** . */
private FilterConfig config;
+ /** . */
+ private boolean redirectAfterAction = false;
+
private ServletContext getServletContext()
{
return config.getServletContext();
@@ -133,10 +136,15 @@
{
PageUpdateResponse pageUpdate = (PageUpdateResponse)controllerResponse;
+ //
+ pageNavigationalState = pageUpdate.getPageNavigationalState();
+
+ //
+ req.setAttribute("bilto", context.getEventControllerContext());
+
// We perform a send redirect on actions
- if (request instanceof PortletActionRequest)
+ if (request instanceof PortletActionRequest && redirectAfterAction)
{
- //
PortletURLRenderer renderer = new PortletURLRenderer(
pageUpdate.getPageNavigationalState(),
context.getClientRequest(),
@@ -145,17 +153,9 @@
//
String url = renderer.renderURL(new URLFormat(null, null, true, null));
-
- //
resp.sendRedirect(url);
-
- //
return;
}
- else
- {
- pageNavigationalState = pageUpdate.getPageNavigationalState();
- }
}
else if (controllerResponse instanceof ResourceResponse)
{
Added:
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventAcknowledgement.java
===================================================================
---
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventAcknowledgement.java
(rev 0)
+++
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventAcknowledgement.java 2008-03-17
14:23:26 UTC (rev 10291)
@@ -0,0 +1,100 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2008, 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. *
+ ******************************************************************************/
+package org.jboss.portal.portlet.portal.jsp;
+
+import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+
+/**
+ * @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
+ * @version $Revision: 630 $
+ */
+public class EventAcknowledgement
+{
+
+ public static class Consumed extends EventAcknowledgement
+ {
+
+ /** . */
+ private final PortletInvocationResponse response;
+
+ public Consumed(PortletInvocationResponse response)
+ {
+ this.response = response;
+ }
+
+ public PortletInvocationResponse getResponse()
+ {
+ return response;
+ }
+
+ public String toString()
+ {
+ return "Consumed " + response.toString();
+ }
+ }
+
+ public static class Failed extends EventAcknowledgement
+ {
+
+ /** . */
+ private final Throwable throwable;
+
+ public Failed(Throwable throwable)
+ {
+ this.throwable = throwable;
+ }
+
+ public Throwable getThrowable()
+ {
+ return throwable;
+ }
+
+ public String toString()
+ {
+ return "Failed";
+ }
+ }
+
+ public static class Discarded extends EventAcknowledgement
+ {
+
+ /** . */
+ private final int cause;
+
+ public Discarded(int cause)
+ {
+ this.cause = cause;
+ }
+
+ public int getCause()
+ {
+ return cause;
+ }
+
+ public String toString()
+ {
+ return "Discarded";
+ }
+ }
+
+}
Added:
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventProduction.java
===================================================================
---
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventProduction.java
(rev 0)
+++
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventProduction.java 2008-03-17
14:23:26 UTC (rev 10291)
@@ -0,0 +1,60 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2008, 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. *
+ ******************************************************************************/
+package org.jboss.portal.portlet.portal.jsp;
+
+import org.jboss.portal.portlet.controller.event.Event;
+
+import java.util.Map;
+import java.util.LinkedHashMap;
+
+/**
+ * The production of an event by a portlet.
+ *
+ * @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
+ * @version $Revision: 630 $
+ */
+public class EventProduction
+{
+
+ /** . */
+ private final Event event;
+
+ /** . */
+ final Map<Event, EventRoute> routings;
+
+ public EventProduction(Event event)
+ {
+ this.event = event;
+ this.routings = new LinkedHashMap<Event, EventRoute>();
+ }
+
+ public Event getEvent()
+ {
+ return event;
+ }
+
+ public Iterable<EventRoute> getRoutings()
+ {
+ return routings.values();
+ }
+}
Added:
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventRoute.java
===================================================================
---
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventRoute.java
(rev 0)
+++
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/EventRoute.java 2008-03-17
14:23:26 UTC (rev 10291)
@@ -0,0 +1,75 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2008, 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. *
+ ******************************************************************************/
+package org.jboss.portal.portlet.portal.jsp;
+
+import org.jboss.portal.portlet.controller.event.Event;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
+ * @version $Revision: 630 $
+ */
+public class EventRoute
+{
+
+ /** . */
+ private final EventProduction parent;
+
+ /** . */
+ private final Event destination;
+
+ /** . */
+ final LinkedList<EventProduction> children;
+
+ /** . */
+ EventAcknowledgement acknowledgement;
+
+ public EventRoute(EventProduction parent, Event destination)
+ {
+ this.parent = parent;
+ this.destination = destination;
+ this.children = new LinkedList<EventProduction>();
+ }
+
+ public EventProduction getParent()
+ {
+ return parent;
+ }
+
+ public List<EventProduction> getChildren()
+ {
+ return children;
+ }
+
+ public Event getDestination()
+ {
+ return destination;
+ }
+
+ public EventAcknowledgement getAcknowledgment()
+ {
+ return acknowledgement;
+ }
+}
Modified:
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/PageEventControllerContext.java
===================================================================
---
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/PageEventControllerContext.java 2008-03-17
12:49:18 UTC (rev 10290)
+++
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/jsp/PageEventControllerContext.java 2008-03-17
14:23:26 UTC (rev 10291)
@@ -30,6 +30,9 @@
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.info.PortletInfo;
+import java.util.Map;
+import java.util.LinkedHashMap;
+
/**
* Route events according to the portlets discovered on the page. For now it is pretty
trivial.
* We could leverage JSP tags to 'wire' portlets on the same page for instance.
@@ -46,16 +49,30 @@
/** . */
private final PagePortletControllerContext context;
+ /** Used internally. */
+ private final Map<Event, EventRoute> routings;
+
public PageEventControllerContext(
PagePortletControllerContext context,
PortalPrepareResponse prepareResponse)
{
this.context = context;
this.prepareResponse = prepareResponse;
+ this.routings = new LinkedHashMap<Event, EventRoute>();
}
- public void eventProduced(EventPhaseContext context, Event producedEvent, Event
sourceEvent)
+ public void eventProduced(EventPhaseContext context, Event producedEvent, Event
causeEvent)
{
+ EventProduction production = new EventProduction(producedEvent);
+
+ //
+ EventRoute relatedRoute = routings.get(causeEvent);
+ if (relatedRoute != null)
+ {
+ relatedRoute.children.add(production);
+ }
+
+ //
for (String windowId : prepareResponse.getWindowIds())
{
try
@@ -70,8 +87,14 @@
//
if
(portletInfo.getEventing().getConsumedEvents().containsKey(producedEvent.getName()))
{
- Event distributedEvent = new Event(producedEvent.getName(),
producedEvent.getPayload(), windowId);
- context.queueEvent(distributedEvent);
+ Event destinationEvent = new Event(producedEvent.getName(),
producedEvent.getPayload(), windowId);
+
+ //
+ EventRoute eventRoute = new EventRoute(production, destinationEvent);
+ production.routings.put(destinationEvent, eventRoute);
+
+ //
+ context.queueEvent(destinationEvent);
}
}
}
@@ -85,13 +108,19 @@
public void eventConsumed(EventPhaseContext context, Event consumedEvent,
PortletInvocationResponse consumerResponse)
{
+ EventRoute route = routings.get(consumedEvent);
+ route.acknowledgement = new EventAcknowledgement.Consumed(consumerResponse);
}
public void eventFailed(EventPhaseContext context, Event failedEvent, Throwable
throwable)
{
+ EventRoute route = routings.get(failedEvent);
+ route.acknowledgement = new EventAcknowledgement.Failed(throwable);
}
public void eventDiscarded(EventPhaseContext context, Event discardedEvent, int
cause)
{
+ EventRoute route = routings.get(discardedEvent);
+ route.acknowledgement = new EventAcknowledgement.Discarded(cause);
}
}
Modified:
modules/portlet/trunk/portal/src/main/resources/simple-portal-war/WEB-INF/portlet.xml
===================================================================
---
modules/portlet/trunk/portal/src/main/resources/simple-portal-war/WEB-INF/portlet.xml 2008-03-17
12:49:18 UTC (rev 10290)
+++
modules/portlet/trunk/portal/src/main/resources/simple-portal-war/WEB-INF/portlet.xml 2008-03-17
14:23:26 UTC (rev 10291)
@@ -41,5 +41,20 @@
</portlet-info>
</portlet>
+ <portlet>
+ <description>Debugger Portlet</description>
+ <portlet-name>DebuggerPortlet</portlet-name>
+ <display-name>Debugger Portlet</display-name>
+
<portlet-class>org.jboss.portal.portlet.portal.admin.ui.DebuggerPortlet</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ </supports>
+ <portlet-info>
+ <title>Debugger Portlet</title>
+ <keywords>admin</keywords>
+ </portlet-info>
+ </portlet>
+
</portlet-app>
Modified:
modules/portlet/trunk/portal/src/main/resources/simple-portal-war/demo/demo1.jsp
===================================================================
---
modules/portlet/trunk/portal/src/main/resources/simple-portal-war/demo/demo1.jsp 2008-03-17
12:49:18 UTC (rev 10290)
+++
modules/portlet/trunk/portal/src/main/resources/simple-portal-war/demo/demo1.jsp 2008-03-17
14:23:26 UTC (rev 10291)
@@ -16,6 +16,7 @@
<xportal:portlet name="Catalog"
applicationName="samples-shoppingcart-portlet"/>
</jsp:attribute>
</xportal:2columns>
+ <xportal:portlet name="DebuggerPortlet"
applicationName="simple-portal"/>
</portal:page>
<%@ include file="/layouts/footer.jsp" %>
\ No newline at end of file
Modified:
modules/portlet/trunk/samples/src/main/artifacts/basic-portlet-war/WEB-INF/portlet.xml
===================================================================
---
modules/portlet/trunk/samples/src/main/artifacts/basic-portlet-war/WEB-INF/portlet.xml 2008-03-17
12:49:18 UTC (rev 10290)
+++
modules/portlet/trunk/samples/src/main/artifacts/basic-portlet-war/WEB-INF/portlet.xml 2008-03-17
14:23:26 UTC (rev 10291)
@@ -27,6 +27,8 @@
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2...
http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
version="2.0">
+ <default-namespace>urn:jboss:portal:samples:basic</default-namespace>
+
<portlet>
<portlet-name>ExceptionPortlet</portlet-name>
<portlet-class>org.jboss.portal.portlet.samples.basic.ExceptionPortlet</portlet-class>
@@ -58,14 +60,104 @@
<supports>
<mime-type>text/html</mime-type>
</supports>
+ <portlet-info>
+ <title>Fail during init portlet</title>
+ </portlet-info>
+ </portlet>
+
+ <portlet>
+ <portlet-name>RandomEventPortlet1</portlet-name>
+
<portlet-class>org.jboss.portal.portlet.samples.basic.RandomEventPortlet</portlet-class>
<supports>
- <mime-type>text/javascript</mime-type>
+ <mime-type>text/html</mime-type>
</supports>
<portlet-info>
- <title>Fail during init portlet</title>
+ <title>A portlet that generate events randomly</title>
</portlet-info>
+<!--
+ <supported-processing-event>
+ <name>Event1</name>
+ </supported-processing-event>
+-->
+ <supported-processing-event>
+ <name>Event2</name>
+ </supported-processing-event>
+ <supported-processing-event>
+ <name>Event3</name>
+ </supported-processing-event>
+ <supported-publishing-event>
+ <name>Event1</name>
+ </supported-publishing-event>
+ <supported-publishing-event>
+ <name>Event2</name>
+ </supported-publishing-event>
+ <supported-publishing-event>
+ <name>Event3</name>
+ </supported-publishing-event>
</portlet>
+ <portlet>
+ <portlet-name>RandomEventPortlet2</portlet-name>
+
<portlet-class>org.jboss.portal.portlet.samples.basic.RandomEventPortlet</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+ <portlet-info>
+ <title>A portlet that generate events randomly</title>
+ </portlet-info>
+ <supported-processing-event>
+ <name>Event1</name>
+ </supported-processing-event>
+<!--
+ <supported-processing-event>
+ <name>Event2</name>
+ </supported-processing-event>
+-->
+ <supported-processing-event>
+ <name>Event3</name>
+ </supported-processing-event>
+ <supported-publishing-event>
+ <name>Event1</name>
+ </supported-publishing-event>
+ <supported-publishing-event>
+ <name>Event2</name>
+ </supported-publishing-event>
+ <supported-publishing-event>
+ <name>Event3</name>
+ </supported-publishing-event>
+ </portlet>
+
+ <portlet>
+ <portlet-name>RandomEventPortlet3</portlet-name>
+
<portlet-class>org.jboss.portal.portlet.samples.basic.RandomEventPortlet</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+ <portlet-info>
+ <title>A portlet that generate events randomly</title>
+ </portlet-info>
+ <supported-processing-event>
+ <name>Event1</name>
+ </supported-processing-event>
+ <supported-processing-event>
+ <name>Event2</name>
+ </supported-processing-event>
+<!--
+ <supported-processing-event>
+ <name>Event3</name>
+ </supported-processing-event>
+-->
+ <supported-publishing-event>
+ <name>Event1</name>
+ </supported-publishing-event>
+ <supported-publishing-event>
+ <name>Event2</name>
+ </supported-publishing-event>
+ <supported-publishing-event>
+ <name>Event3</name>
+ </supported-publishing-event>
+ </portlet>
+
<filter>
<filter-name>FilterA</filter-name>
<filter-class>org.jboss.portal.portlet.samples.basic.NullFilter</filter-class>
@@ -94,4 +186,19 @@
<portlet-name>HeaderPortlet</portlet-name>
</filter-mapping>
+ <event-definition>
+ <name>Event1</name>
+ <value-type>java.lang.Integer</value-type>
+ </event-definition>
+
+ <event-definition>
+ <name>Event2</name>
+ <value-type>java.lang.Integer</value-type>
+ </event-definition>
+
+ <event-definition>
+ <name>Event3</name>
+ <value-type>java.lang.Integer</value-type>
+ </event-definition>
+
</portlet-app>