You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mr...@apache.org on 2007/01/18 09:20:35 UTC
svn commit: r497343 - in /struts/maven/trunk:
struts2-archetype-dbportlet/src/main/resources/META-INF/
struts2-archetype-dbportlet/src/main/resources/archetype-resources/
struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/java/...
Author: mrdon
Date: Thu Jan 18 00:20:34 2007
New Revision: 497343
URL: http://svn.apache.org/viewvc?view=rev&rev=497343
Log:
Finished up simple database portlet archetype, minor cleanups to blank portlet archetype
Added:
struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/applicationContext.xml
Modified:
struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/META-INF/archetype.xml
struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/pom.xml
struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/java/view/IndexAction.java
struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/resources/struts.xml
struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/portlet.xml
struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/view/index.jsp
struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
struts/maven/trunk/struts2-archetype-portlet/src/main/resources/META-INF/archetype.xml
struts/maven/trunk/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/resources/struts.xml
Modified: struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/META-INF/archetype.xml
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/META-INF/archetype.xml?view=diff&rev=497343&r1=497342&r2=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/META-INF/archetype.xml (original)
+++ struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/META-INF/archetype.xml Thu Jan 18 00:20:34 2007
@@ -8,6 +8,7 @@
</sources>
<resources>
<resource>src/main/resources/struts.xml</resource>
+ <resource>src/main/webapp/index.jsp</resource>
<resource>src/main/webapp/WEB-INF/web.xml</resource>
<resource>src/main/webapp/WEB-INF/portlet.xml</resource>
<resource>src/main/webapp/WEB-INF/applicationContext.xml</resource>
Modified: struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/pom.xml
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/pom.xml?view=diff&rev=497343&r1=497342&r2=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/pom.xml (original)
+++ struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/pom.xml Thu Jan 18 00:20:34 2007
@@ -6,9 +6,9 @@
<artifactId>${artifactId}</artifactId>
<packaging>war</packaging>
<version>${version}</version>
- <name>Struts 2 Portlet</name>
+ <name>Struts 2 Database Portlet</name>
<url>http://www.myComp.com</url>
- <description>Struts 2 Portlet</description>
+ <description>Struts 2 Database Portlet</description>
<dependencies>
<!-- Junit -->
@@ -35,6 +35,25 @@
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.1</version>
+ </dependency>
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-spring-plugin</artifactId>
+ <version>2.0.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+
+ <!-- Database driver (change for your specific database) -->
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.7</version>
</dependency>
<!-- Servlet, Jsp, and Portlet API's -->
Modified: struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/java/view/IndexAction.java
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/java/view/IndexAction.java?view=diff&rev=497343&r1=497342&r2=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/java/view/IndexAction.java (original)
+++ struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/java/view/IndexAction.java Thu Jan 18 00:20:34 2007
@@ -1,20 +1,51 @@
package ${package}.view;
import org.apache.struts2.dispatcher.DefaultActionSupport;
+import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
+
+import javax.sql.DataSource;
+import java.util.Map;
+import java.util.List;
/**
- *
+ * Loads and displays the contents of a database table
*/
public class IndexAction extends DefaultActionSupport {
- private String name = "My Name";
+
+ private static boolean initialized = false;
+ private DataSource ds;
+ private static List<Map<String,Object>> data;
+ private static long lastLoaded;
+ private static long CACHE_TIME = 1000 * 60;
+
+ public void setDataSource(DataSource ds) {
+
+ // Initializes the in-memory database (not necessary in production)
+ if (!initialized) {
+ SimpleJdbcTemplate jt = new SimpleJdbcTemplate(ds);
+ jt.update("CREATE TABLE sample_table ( id INTEGER IDENTITY, str_col VARCHAR(256), num_col INTEGER)");
+ jt.update("INSERT INTO sample_table(str_col,num_col) VALUES('Ford', 100)");
+ jt.update("INSERT INTO sample_table(str_col,num_col) VALUES('Toyota', 200)");
+ jt.update("INSERT INTO sample_table(str_col,num_col) VALUES('Mazda', 300)");
+ initialized = true;
+ }
+ this.ds = ds;
+ }
public String execute() {
- // Preform any logic here
+ // Only refresh the data every minute as needed
+ long now = System.currentTimeMillis();
+ if (lastLoaded + CACHE_TIME < now) {
+ SimpleJdbcTemplate jt = new SimpleJdbcTemplate(ds);
+ data = jt.queryForList("SELECT * FROM sample_table");
+ lastLoaded = now;
+ }
return SUCCESS;
}
- public String getName() {
- return name;
+ public List<Map<String,Object>> getData() {
+ return data;
}
}
+
Modified: struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/resources/struts.xml?view=diff&rev=497343&r1=497342&r2=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/resources/struts.xml (original)
+++ struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/resources/struts.xml Thu Jan 18 00:20:34 2007
@@ -7,6 +7,7 @@
<struts>
<constant name="struts.codebehind.defaultPackage" value="struts-portlet-default" />
<constant name="struts.codebehind.pathPrefix" value="/WEB-INF/" />
+ <constant name="struts.devMode" value="true" />
<include file="struts-portlet-default.xml" />
</struts>
Added: struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/applicationContext.xml
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/applicationContext.xml?view=auto&rev=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/applicationContext.xml (added)
+++ struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/applicationContext.xml Thu Jan 18 00:20:34 2007
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<!--
+ Defines the datasource that will be injected into your Actions
+-->
+
+<beans default-autowire="byName">
+
+ <!-- Change for your database -->
+ <bean id="dataSource"
+ class="org.springframework.jdbc.datasource.DriverManagerDataSource"
+ destroy-method="close">
+ <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
+ <property name="url" value="jdbc:hsqldb:mem:example"/>
+ <property name="username" value="sa"/>
+ <property name="password" value=""/>
+ </bean>
+
+</beans>
Modified: struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/portlet.xml?view=diff&rev=497343&r1=497342&r2=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/portlet.xml (original)
+++ struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/portlet.xml Thu Jan 18 00:20:34 2007
@@ -1,10 +1,10 @@
<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">
- <portlet id="StrutsPortlet">
- <description xml:lang="EN">Blank Struts Portlet</description>
- <portlet-name>StrutsPortlet</portlet-name>
- <display-name xml:lang="EN">Blank Struts Portlet</display-name>
+ <portlet id="StrutsDBPortlet">
+ <description xml:lang="EN">Struts Database Portlet</description>
+ <portlet-name>StrutsDBPortlet</portlet-name>
+ <display-name xml:lang="EN">Struts Database Portlet</display-name>
<portlet-class>org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher</portlet-class>
@@ -54,9 +54,9 @@
<supported-locale>en</supported-locale>
<portlet-info>
- <title>Struts Blank Porlet</title>
- <short-title>SB</short-title>
- <keywords>struts,portlet</keywords>
+ <title>Struts Database Porlet</title>
+ <short-title>DB</short-title>
+ <keywords>struts,portlet,database</keywords>
</portlet-info>
</portlet>
Modified: struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/view/index.jsp
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/view/index.jsp?view=diff&rev=497343&r1=497342&r2=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/view/index.jsp (original)
+++ struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/view/index.jsp Thu Jan 18 00:20:34 2007
@@ -1,12 +1,18 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
-<H2>Welcome to the Struts blank portlet</H2>
+<H2>Welcome to the Struts data table portlet</H2>
<p/>
-This is an example of accessing the action's properties:
+This a simple table showing the database data:
<table>
<tr>
<th>Name</th>
- <td><s:property value="%{name}" /></td>
+ <th>Value</th>
</tr>
+ <s:iterator id="row" value="%{data}">
+ <tr>
+ <td><s:property value="%{STR_COL}" /></td>
+ <td><s:property value="%{NUM_COL}" /></td>
+ </tr>
+ </s:iterator>
</table>
<ul>
<li><a href="<s:url action="index" portletMode="edit"/>">Go to edit mode and see what's there</a></li>
Modified: struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml?view=diff&rev=497343&r1=497342&r2=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml (original)
+++ struts/maven/trunk/struts2-archetype-dbportlet/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml Thu Jan 18 00:20:34 2007
@@ -2,6 +2,11 @@
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
+ <context-param>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>/WEB-INF/applicationContext*.xml</param-value>
+ </context-param>
+
<filter id="filterdispatcher">
<filter-name>struts</filter-name>
<filter-class>
@@ -17,8 +22,14 @@
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+
+ <listener>
+ <listener-class>
+ org.springframework.web.context.ContextLoaderListener
+ </listener-class>
+ </listener>
- <listener>
+ <listener>
<listener-class>
org.apache.struts2.portlet.context.ServletContextHolderListener
</listener-class>
Modified: struts/maven/trunk/struts2-archetype-portlet/src/main/resources/META-INF/archetype.xml
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-portlet/src/main/resources/META-INF/archetype.xml?view=diff&rev=497343&r1=497342&r2=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-portlet/src/main/resources/META-INF/archetype.xml (original)
+++ struts/maven/trunk/struts2-archetype-portlet/src/main/resources/META-INF/archetype.xml Thu Jan 18 00:20:34 2007
@@ -8,6 +8,7 @@
</sources>
<resources>
<resource>src/main/resources/struts.xml</resource>
+ <resource>src/main/webapp/index.jsp</resource>
<resource>src/main/webapp/WEB-INF/web.xml</resource>
<resource>src/main/webapp/WEB-INF/portlet.xml</resource>
<resource>src/main/webapp/WEB-INF/view/index.jsp</resource>
Modified: struts/maven/trunk/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/resources/struts.xml?view=diff&rev=497343&r1=497342&r2=497343
==============================================================================
--- struts/maven/trunk/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/resources/struts.xml (original)
+++ struts/maven/trunk/struts2-archetype-portlet/src/main/resources/archetype-resources/src/main/resources/struts.xml Thu Jan 18 00:20:34 2007
@@ -7,6 +7,7 @@
<struts>
<constant name="struts.codebehind.defaultPackage" value="struts-portlet-default" />
<constant name="struts.codebehind.pathPrefix" value="/WEB-INF/" />
+ <constant name="struts.devMode" value="true" />
<include file="struts-portlet-default.xml" />
</struts>