You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jo...@apache.org on 2011/11/14 21:24:57 UTC
svn commit: r1201876 - in /struts/struts2/trunk/apps/portlet/src/main:
java/org/apache/struts2/portlet/example/eventing/ resources/
webapp/WEB-INF/ webapp/WEB-INF/eventing/
Author: jogep
Date: Mon Nov 14 20:24:57 2011
New Revision: 1201876
URL: http://svn.apache.org/viewvc?rev=1201876&view=rev
Log:
WW-3707: Extend the Portlet Showcase with an Portlet Event Example
Added:
struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/
struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/ProcessAction.java
struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/PublishAction.java
struts/struts2/trunk/apps/portlet/src/main/resources/struts-eventing.xml
struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/
struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/index.jsp
struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/process.jsp
Modified:
struts/struts2/trunk/apps/portlet/src/main/resources/struts.xml
struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/portlet.xml
Added: struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/ProcessAction.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/ProcessAction.java?rev=1201876&view=auto
==============================================================================
--- struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/ProcessAction.java (added)
+++ struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/ProcessAction.java Mon Nov 14 20:24:57 2011
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.struts2.portlet.example.eventing;
+
+import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts2.portlet.interceptor.PortletRequestAware;
+import org.apache.struts2.portlet.interceptor.PortletResponseAware;
+
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletResponse;
+
+public class ProcessAction extends ActionSupport implements PortletRequestAware, PortletResponseAware {
+
+ private PortletRequest request;
+ private PortletResponse response;
+ private String name;
+
+ public String execute() throws Exception {
+
+ if (request instanceof EventRequest) {
+ EventRequest req = (EventRequest) request;
+ EventResponse res = (EventResponse) response;
+ res.setRenderParameter("eventName", (String) req.getEvent().getValue());
+ return "forward";
+ } else {
+ name = request.getParameter("eventName");
+ }
+
+ return SUCCESS;
+ }
+
+ public void setPortletRequest(PortletRequest request) {
+ this.request = request;
+ }
+
+ public void setPortletResponse(PortletResponse response) {
+ this.response = response;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+}
Added: struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/PublishAction.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/PublishAction.java?rev=1201876&view=auto
==============================================================================
--- struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/PublishAction.java (added)
+++ struts/struts2/trunk/apps/portlet/src/main/java/org/apache/struts2/portlet/example/eventing/PublishAction.java Mon Nov 14 20:24:57 2011
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.struts2.portlet.example.eventing;
+
+import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts2.portlet.interceptor.PortletResponseAware;
+
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletResponse;
+import javax.xml.namespace.QName;
+
+public class PublishAction extends ActionSupport implements PortletResponseAware {
+
+ private PortletResponse response;
+ private String name;
+
+ public String execute() throws Exception {
+
+ if (name != null) {
+ ((ActionResponse) response).setEvent(new QName("http://org.apache.struts2.portlets/events", "name"), name);
+
+ addActionMessage("Publishing Event with Parameter name : " + name);
+ }
+
+ return SUCCESS;
+ }
+
+ public void setPortletResponse(PortletResponse response) {
+ this.response = response;
+
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Added: struts/struts2/trunk/apps/portlet/src/main/resources/struts-eventing.xml
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/portlet/src/main/resources/struts-eventing.xml?rev=1201876&view=auto
==============================================================================
--- struts/struts2/trunk/apps/portlet/src/main/resources/struts-eventing.xml (added)
+++ struts/struts2/trunk/apps/portlet/src/main/resources/struts-eventing.xml Mon Nov 14 20:24:57 2011
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE struts PUBLIC
+ "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
+ "http://struts.apache.org/dtds/struts-2.0.dtd">
+
+<struts>
+ <package name="eventing" extends="struts-portlet-default" namespace="/eventing">
+
+ <action name="publish" class="org.apache.struts2.portlet.example.eventing.PublishAction">
+ <result name="success">/WEB-INF/eventing/index.jsp</result>
+ </action>
+
+ <action name="process" class="org.apache.struts2.portlet.example.eventing.ProcessAction">
+ <result name="success">/WEB-INF/eventing/process.jsp</result>
+ <result name="forward" type="redirectAction">
+ <param name="actionName">process</param>
+ <param name="namespace">/eventing</param>
+ </result>
+ </action>
+ </package>
+</struts>
Modified: struts/struts2/trunk/apps/portlet/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/portlet/src/main/resources/struts.xml?rev=1201876&r1=1201875&r2=1201876&view=diff
==============================================================================
--- struts/struts2/trunk/apps/portlet/src/main/resources/struts.xml (original)
+++ struts/struts2/trunk/apps/portlet/src/main/resources/struts.xml Mon Nov 14 20:24:57 2011
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.0.dtd">
+ "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
+ "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
- <include file="struts-view.xml"/>
- <include file="struts-edit.xml"/>
- <include file="struts-help.xml"/>
+ <include file="struts-view.xml"/>
+ <include file="struts-edit.xml"/>
+ <include file="struts-help.xml"/>
+ <include file="struts-eventing.xml"/>
</struts>
Added: struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/index.jsp
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/index.jsp?rev=1201876&view=auto
==============================================================================
--- struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/index.jsp (added)
+++ struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/index.jsp Mon Nov 14 20:24:57 2011
@@ -0,0 +1,11 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>
+
+<h2>Input your name</h2>
+
+<s:actionmessage/>
+
+<s:form action="publish" method="POST">
+ <s:textfield label="Please enter your name" name="name" value="%{name}"/>
+ <s:submit value="Submit the form"/>
+</s:form>
+
Added: struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/process.jsp
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/process.jsp?rev=1201876&view=auto
==============================================================================
--- struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/process.jsp (added)
+++ struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/eventing/process.jsp Mon Nov 14 20:24:57 2011
@@ -0,0 +1,12 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>
+
+<s:if test="%{name != null}">
+ <h2>Welcome <s:property value="name"/></h2>
+</s:if>
+<s:else>
+ <h2>Please insert a Name in the Publish Portlet Form</h2>
+</s:else>
+
+<s:actionmessage/>
+
+
Modified: struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/portlet.xml?rev=1201876&r1=1201875&r2=1201876&view=diff
==============================================================================
--- struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/portlet.xml (original)
+++ struts/struts2/trunk/apps/portlet/src/main/webapp/WEB-INF/portlet.xml Mon Nov 14 20:24:57 2011
@@ -1,17 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app
- version="1.0"
- xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
- id="struts-portlet">
+ id="struts-portlet"
+ xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ version="2.0"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+ >
<portlet id="StrutsPortlet">
<description xml:lang="EN">Struts Test Portlet</description>
<portlet-name>StrutsPortlet</portlet-name>
<display-name xml:lang="EN">Struts Test Portlet</display-name>
-
+
<portlet-class>org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher</portlet-class>
<!-- The view mode namespace. Maps to a namespace in the Struts 2 config file. -->
@@ -49,12 +50,12 @@
<name>defaultHelpAction</name>
<value>index</value>
</init-param>
-
+
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
- <portlet-mode>view</portlet-mode>
+ <portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
<portlet-mode>help</portlet-mode>
</supports>
@@ -62,17 +63,17 @@
<supported-locale>en</supported-locale>
<portlet-info>
- <title>My StrutsPortlet portlet</title>
- <short-title>SP</short-title>
+ <title>My Struts2 Portlet</title>
+ <short-title>SP2</short-title>
<keywords>struts,portlet</keywords>
</portlet-info>
</portlet>
-
+
<portlet id="StrutsPortlet2">
- <description xml:lang="EN">Struts Test Portlet2</description>
+ <description xml:lang="EN">Struts Test Portlet with JSR 286 Dispatcher</description>
<portlet-name>StrutsPortlet2</portlet-name>
- <display-name xml:lang="EN">Struts Test Portlet2</display-name>
-
+ <display-name xml:lang="EN">Struts Test Portlet with JSR 286 Dispatcher</display-name>
+
<portlet-class>org.apache.struts2.portlet.dispatcher.Jsr286Dispatcher</portlet-class>
<!-- The view mode namespace. Maps to a namespace in the Struts 2 config file. -->
@@ -122,10 +123,92 @@
<supported-locale>en</supported-locale>
<portlet-info>
- <title>My StrutsPortlet portlet2</title>
- <short-title>SP2</short-title>
+ <title>My Struts2 Portlet with JSR 286 Dispatcher</title>
+ <short-title>SP2JSR286</short-title>
<keywords>struts,portlet</keywords>
</portlet-info>
</portlet>
+
+ <portlet id="Struts2PublishPortlet">
+ <description xml:lang="EN">Struts2 Publish Portlet</description>
+ <portlet-name>Struts2PublishPortlet</portlet-name>
+ <display-name xml:lang="EN">Struts2 Publish Portlet</display-name>
+
+ <portlet-class>org.apache.struts2.portlet.dispatcher.Jsr286Dispatcher</portlet-class>
+
+ <!-- The view mode namespace. Maps to a namespace in the Struts 2 config file. -->
+ <init-param>
+ <name>viewNamespace</name>
+ <value>/eventing</value>
+ </init-param>
+
+ <!-- The default action to invoke in view mode. -->
+ <init-param>
+ <name>defaultViewAction</name>
+ <value>publish</value>
+ </init-param>
+
+ <expiration-cache>0</expiration-cache>
+
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+
+ <supported-locale>en</supported-locale>
+
+ <portlet-info>
+ <title>Struts2 Publish Portlet</title>
+ <short-title>S2PUB</short-title>
+ <keywords>struts,publish,portlet</keywords>
+ </portlet-info>
+
+ <supported-publishing-event xmlns:x="http://org.apache.struts2.portlets/events">
+ <qname>x:name</qname>
+ </supported-publishing-event>
+ </portlet>
+
+ <portlet id="Struts2ProcessPortlet">
+ <description xml:lang="EN">Struts2 Process Portlet</description>
+ <portlet-name>Struts2ProcessPortlet</portlet-name>
+ <display-name xml:lang="EN">Struts2 Process Portlet</display-name>
+
+ <portlet-class>org.apache.struts2.portlet.dispatcher.Jsr286Dispatcher</portlet-class>
+
+ <!-- The view mode namespace. Maps to a namespace in the Struts 2 config file. -->
+ <init-param>
+ <name>viewNamespace</name>
+ <value>/eventing</value>
+ </init-param>
+
+ <!-- The default action to invoke in view mode. -->
+ <init-param>
+ <name>defaultViewAction</name>
+ <value>process</value>
+ </init-param>
+
+ <expiration-cache>0</expiration-cache>
+
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+
+ <supported-locale>en</supported-locale>
+
+ <portlet-info>
+ <title>Struts2 Process Portlet</title>
+ <short-title>S2PRO</short-title>
+ <keywords>struts,process,portlet</keywords>
+ </portlet-info>
+
+ <supported-processing-event xmlns:x="http://org.apache.struts2.portlets/events">
+ <qname>x:name</qname>
+ </supported-processing-event>
+ </portlet>
+
+ <event-definition>
+ <qname xmlns:x="http://org.apache.struts2.portlets/events">x:name</qname>
+ <value-type>java.lang.String</value-type>
+ </event-definition>
+
</portlet-app>