Skeleton project for an ant-based Spring PorletMVC portlet
Download the skeleton portlet project
Attached is a skeleton portlet that lays out a recommended directory structure for a portlet using the Spring Portlet MVC and Ant as the build system. Included in the portlet is the following information in a README.txt:
This is a skeleton directory structure for a Spring MVC based portlet. It includes the needed
directory structure, build script, base set of libraries and Eclipse project configuration for
starting a portlet.
********** Project Structure **********
The structure of this project follows the Maven Web Application project structure recommendations
1. Libraries
lib/compile - libraries only needed at compile time but are not deployed with the portlet.
ex: servlet API and portlet API
lib/runtime - libraries needed for compilation and runtime that are deployed with the portlet,
most libraries fall into this location.
lib/test - libraries needed for running unit tests. These are not deployed with the portlet.
2. Source
src/main/java - Java source files used at runtime
src/main/resources - non-Java files that need to be on the classpath at runtime
src/test/java - Java source files used for unit tests
src/test/resources - non-Java files that need to be on the classpath for unit tests
3. Spring Configuration
src/main/webapp/WEB-INF/context/applicationContext.xml - The root Spring application context.
DAOs, buisness logic and controllers should all be declared in this file.
src/main/webapp/WEB-INF/context/portlet/ - Per-portlet Spring contexts go here. There should be
one file for each <portlet> definition in the portlet.xml. A handler-mapping with the
nessesary controllers should be defined in each of these files.
4. JSPs
src/main/webapp/WEB-INF/jsp - All JSPs used when rendering the application are placed under
this directory.
5. Web Resources
src/main/webapp/css - CSS files
src/main/webapp/js - JavaScript files
src/main/webapp/img - Images
********** Getting Started **********
1. Update the name of your portlet. There are several files that need to be updated with the
name of your portlet.
-build.xml
-build.properties
-src/main/webapp/WEB-INF/web.xml
-src/main/webapp/WEB-INF/portlet.xml
2. Rename this file to match the portlet application context setting in portlet.xml
-src/main/webapp/WEB-INF/context/portlet/skeletonPortletContext.xml
The directory structure of the portlet looks like:
PortletSkeleton
|-- .classpath
|-- .project
|-- .settings
| `-- org.eclipse.jdt.core.prefs
|-- README.txt
|-- build.properties
|-- build.xml
|-- lib
| |-- compile
| | |-- portlet-api-1.0.jar
| | `-- servlet-api-2.4.jar
| |-- provided
| |-- runtime
| | |-- aopalliance-1.0.jar
| | |-- commons-collections-3.2.1.jar
| | |-- commons-lang-2.4.jar
| | |-- commons-logging-1.1.1.jar
| | |-- jstl-1.1.2.jar
| | |-- log4j-1.2.15.jar
| | |-- spring-beans-2.5.jar
| | |-- spring-context-2.5.jar
| | |-- spring-context-support-2.5.jar
| | |-- spring-core-2.5.jar
| | |-- spring-web-2.5.jar
| | |-- spring-webmvc-2.5.jar
| | |-- spring-webmvc-portlet-2.5.jar
| | `-- standard-1.1.2.jar
| `-- test
| |-- easymock-2.3.jar
| |-- junit-4.2.jar
| `-- spring-test-2.5.jar
`-- src
|-- main
| |-- java
| |-- resources
| | `-- messages.properties
| `-- webapp
| |-- WEB-INF
| | |-- context
| | | |-- applicationContext.xml
| | | `-- portlet
| | | `-- skeletonPortletContext.xml
| | |-- jsp
| | | `-- include.jsp
| | |-- log4j.properties
| | |-- portlet.xml
| | `-- web.xml
| |-- css
| |-- img
| `-- js
`-- test
|-- java
`-- resources
