From c76e84572aba31dc74f0fe3c17fa48cf5ea82573 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Tue, 18 Dec 2012 20:37:23 +0000 Subject: [PATCH] WW-3947 improves Portlet Archetype git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1423630 13f79535-47bb-0310-9956-ffa450edef68 --- .../struts2-archetype-portlet/README.txt | 54 ++++---- .../META-INF/maven/archetype-metadata.xml | 2 +- .../resources/archetype-resources/pom.xml | 127 ++++++------------ .../src/main/java/HelloAction.java | 4 +- .../src/main/java/UpdateNameAction.java | 2 +- .../src/main/resources/struts.xml | 4 +- .../src/main/webapp/WEB-INF/portlet.xml | 18 ++- .../src/main/webapp/WEB-INF/web.xml | 20 ++- .../src/test/java/JettyPlutoLauncher.java | 21 --- 9 files changed, 102 insertions(+), 150 deletions(-) delete mode 100644 archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/test/java/JettyPlutoLauncher.java diff --git a/archetypes/struts2-archetype-portlet/README.txt b/archetypes/struts2-archetype-portlet/README.txt index f6a13464f..e2be0b610 100644 --- a/archetypes/struts2-archetype-portlet/README.txt +++ b/archetypes/struts2-archetype-portlet/README.txt @@ -1,42 +1,38 @@ INFORMATION =========== - This is Struts 2's "Portlet" Maven Archetype -- To be used to create a simple portlet that can be deployed as a webapp or JSR168 portlet. +- To be used to create a simple portlet that can be deployed as JSR286 portlet. +- There is a maven profile in order to test this portlet on Pluto Portal. USAGE ===== -- change directory to where the portlet template is to be created, - for example, a 'projects' directory (which you may need to create): - - cd /home/tmjee/projects - -- run the following command to generate the sample portlet template, assuming :- - - root java package -> com.myCompany.myPortlet +1- Generate your archetype +- mvn archetype:generate -DartifactId=struts2-portlet-helloworld -DgroupId=com.mycompany.struts2.portlet -Dversion=1.0.0-SNAPSHOT -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-portlet -DarchetypeVersion=2.3.8 - - the portlet war name -> myWebApp +2- Build your portlet project for Pluto Portal +- cd struts2-portlet-helloworld +- mvn clean package -Ppluto-embedded + +3- Download and install Pluto Portal +- cd .. +- curl -v -H "Accept-Encoding: gzip" "http://apache.opensourcemirror.com/portals/pluto/pluto-2.0.3-bundle.zip" > pluto-2.0.3.zip +- unzip pluto-2.0.3.zip -d . + +4- Deploy your portlet app +- cp struts2-portlet-helloworld/target/struts2-portlet-helloworld-1.0.0-SNAPSHOT.war pluto-2.0.3/webapps + +5- Start Pluto Portal and create a page for your portlet +- ./pluto-2.0.3/bin/startup.sh +- Go to http://localhost:8080/pluto/portal (login: pluto / pwd: pluto) +- Click on "Pluto Admin" (http://localhost:8080/pluto/portal/Pluto%20Admin) +- On "Portal Pages" section : Add page "Struts2" +- On "Portlet Applications" section : select "/struts2-portlet-helloworld" and "HelloPortlet" then click "Add Portlet" + +6- Test your portlet app +- Go to your Struts2 page http://localhost:8080/pluto/portal/Struts2 and play with your portlet !! - mvn archetype:create -DgroupId=com.myCompany.myPortlet \ - -DartifactId=myWebApp \ - -DarchetypeGroupId=org.apache.struts \ - -DarchetypeArtifactId=struts2-archetype-portlet \ - -DarchetypeVersion=2.0.9-SNAPSHOT \ - -DremoteRepositories=http://people.apache.org/maven-snapshot-repository -- to compile, execute - mvn compile - -- to run test cases execute - mvn test - -- to clean execute - mvn clean - -- to package execute - mvn package - -- to start it with jetty execute as a servlet - mvn jetty:run diff --git a/archetypes/struts2-archetype-portlet/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/struts2-archetype-portlet/src/main/resources/META-INF/maven/archetype-metadata.xml index c0dade51c..28576e623 100644 --- a/archetypes/struts2-archetype-portlet/src/main/resources/META-INF/maven/archetype-metadata.xml +++ b/archetypes/struts2-archetype-portlet/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -16,7 +16,7 @@ - + src/main/resources **/*.xml diff --git a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/pom.xml b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/pom.xml index 1a6bd00ca..fe6699595 100644 --- a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/pom.xml @@ -10,7 +10,13 @@ \${artifactId} + UTF-8 ${project.version} + 2.0 + + 3.0 + 2.3 + 2.0.3 @@ -28,105 +34,58 @@ \${struts2.version} - - org.apache.struts - struts2-config-browser-plugin - \${struts2.version} - - javax.portlet portlet-api - 2.0 + ${portlet.api.version} provided - - - com.bekk.boss - maven-jetty-pluto-embedded - 1.0.1 - test - - - - org.mortbay.jetty - jetty - 6.1.21 - provided - - - - org.mortbay.jetty - jsp-2.1 - 6.1.14 - provided - - + + org.apache.maven.plugins maven-compiler-plugin + ${plugin.compiler.version} - 1.5 - 1.5 + 1.6 + 1.6 - - - pluto-embedded - - - - org.apache.pluto - maven-pluto-plugin - 1.1.6 - - - generate-resources - - assemble - - - - - - org.mortbay.jetty - maven-jetty-plugin - 6.1.21 - - ${project.build.directory}/pluto-resources/web.xml - - /${project.artifactId} - /WEB-INF/jetty-pluto-web-default.xml - - - - org.apache.pluto.embedded.portletIds - HelloPortlet - - - 10 - - src/main/webapp/WEB-INF - src/main/webapp/WEB-INF/web.xml - src/main/resources/struts.xml - - - - - com.bekk.boss - maven-jetty-pluto-embedded - 1.0.1 - - - - - - - + + + pluto-embedded + + + + + org.apache.maven.plugins + maven-war-plugin + ${plugin.war.version} + + \${project.build.directory}/pluto-resources/web.xml + + + + + org.apache.portals.pluto + maven-pluto-plugin + ${plugin.pluto.version} + + + + assemble + + + + + + + + diff --git a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/java/HelloAction.java b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/java/HelloAction.java index 1190a8c95..8886c62b1 100644 --- a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/java/HelloAction.java +++ b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/java/HelloAction.java @@ -1,12 +1,10 @@ -package ${packageName}; +package ${package}; import javax.portlet.PortletPreferences; import org.apache.struts2.dispatcher.DefaultActionSupport; import org.apache.struts2.portlet.interceptor.PortletPreferencesAware; -import com.opensymphony.xwork2.Preparable; - public class HelloAction extends DefaultActionSupport implements PortletPreferencesAware { private static final long serialVersionUID = 1L; diff --git a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/java/UpdateNameAction.java b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/java/UpdateNameAction.java index c5e7f60a8..daebc6735 100644 --- a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/java/UpdateNameAction.java +++ b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/java/UpdateNameAction.java @@ -1,4 +1,4 @@ -package ${packageName}; +package ${package}; import javax.portlet.PortletPreferences; diff --git a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/resources/struts.xml b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/resources/struts.xml index ed73ed727..5a7c38ed3 100644 --- a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/resources/struts.xml +++ b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/resources/struts.xml @@ -5,14 +5,14 @@ - + /WEB-INF/jsp/view/index.jsp - + index view diff --git a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/portlet.xml b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/portlet.xml index 6eb30b3e0..3856c8fb9 100644 --- a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/portlet.xml +++ b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/portlet.xml @@ -1,19 +1,23 @@ - + Simple hello world portlet HelloPortlet - ${artifactId} + \${artifactId} org.apache.struts2.portlet.dispatcher.Jsr286Dispatcher + + actionPackages + ${package} + + viewNamespace diff --git a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml index be25681ae..3492c91f5 100644 --- a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml +++ b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml @@ -1,5 +1,21 @@ - - + + Struts2 Hello World Portlet + + + struts2 + + org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter + + + + + struts2 + /* + + + + index.html + diff --git a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/test/java/JettyPlutoLauncher.java b/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/test/java/JettyPlutoLauncher.java deleted file mode 100644 index edcd340ad..000000000 --- a/archetypes/struts2-archetype-portlet/src/main/resources/archetype-resources/src/test/java/JettyPlutoLauncher.java +++ /dev/null @@ -1,21 +0,0 @@ -package ${packageName}; - -import org.apache.pluto.core.PortletServlet; -import org.mortbay.jetty.Server; -import org.mortbay.jetty.servlet.ServletHolder; -import org.mortbay.jetty.webapp.WebAppContext; - -public class JettyPlutoLauncher { - public static void main(String[] args) throws Exception { - System.setProperty("org.apache.pluto.embedded.portletIds", "HelloPortlet"); - Server server = new Server(8080); - WebAppContext webapp = new WebAppContext("src/main/webapp", "/${artifactId}"); - webapp.setDefaultsDescriptor("/WEB-INF/jetty-pluto-web-default.xml"); - ServletHolder portletServlet = new ServletHolder(new PortletServlet()); - portletServlet.setInitParameter("portlet-name", "HelloPortlet"); - portletServlet.setInitOrder(1); - webapp.addServlet(portletServlet, "/PlutoInvoker/HelloPortlet"); - server.addHandler(webapp); - server.start(); - } -}