Author: mrdon
Date: Tue Sep 26 22:59:22 2006
New Revision: 450330
URL: http://svn.apache.org/viewvc?view=rev&rev=450330
Log:
First cut at a simple plugin framework. The config files are loaded in the
following order:
struts-default.xml, struts-plugin.xml, struts.xml, xwork.xml. This allows
plugins to define
a config file that uses core interceptors, but make their results,
interceptors, etc available
to application configurations. The extras and integration modules have been
decomposed into their
own plugins.
WW-1457
Added:
struts/struts2/trunk/plugins/
struts/struts2/trunk/plugins/jasperreports/
struts/struts2/trunk/plugins/jasperreports/pom.xml
struts/struts2/trunk/plugins/jasperreports/src/
- copied from r450303, struts/struts2/trunk/extras/src/
struts/struts2/trunk/plugins/jasperreports/src/main/resources/
struts/struts2/trunk/plugins/jasperreports/src/main/resources/struts-plugin.xml
struts/struts2/trunk/plugins/jfreechart/
struts/struts2/trunk/plugins/jfreechart/pom.xml
struts/struts2/trunk/plugins/jfreechart/src/
- copied from r450303, struts/struts2/trunk/extras/src/
struts/struts2/trunk/plugins/jfreechart/src/main/resources/
struts/struts2/trunk/plugins/jfreechart/src/main/resources/struts-plugin.xml
struts/struts2/trunk/plugins/pell-multipart/
struts/struts2/trunk/plugins/pell-multipart/pom.xml
struts/struts2/trunk/plugins/pell-multipart/src/
- copied from r450303, struts/struts2/trunk/extras/src/
struts/struts2/trunk/plugins/pom.xml
struts/struts2/trunk/plugins/struts1/
- copied from r450303, struts/struts2/trunk/integration/
struts/struts2/trunk/plugins/struts1/src/main/resources/struts-plugin.xml
- copied, changed from r450288,
struts/struts2/trunk/integration/src/main/resources/struts-default.xml
Removed:
struts/struts2/trunk/extras/
struts/struts2/trunk/integration/
struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/dispatcher/
struts/struts2/trunk/plugins/jasperreports/src/test/java/org/
struts/struts2/trunk/plugins/jfreechart/src/main/java/org/apache/struts2/dispatcher/multipart/
struts/struts2/trunk/plugins/jfreechart/src/main/java/org/apache/struts2/views/
struts/struts2/trunk/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/ChartResult.java
struts/struts2/trunk/plugins/pell-multipart/src/main/java/org/apache/struts2/views/
struts/struts2/trunk/plugins/pell-multipart/src/test/java/org/
struts/struts2/trunk/plugins/struts1/src/main/resources/struts-default.xml
Modified:
struts/struts2/trunk/apps/showcase/pom.xml
struts/struts2/trunk/apps/showcase/src/main/resources/struts-integration.xml
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
struts/struts2/trunk/core/src/main/resources/struts-default.xml
struts/struts2/trunk/core/src/main/resources/struts-portlet-default.xml
struts/struts2/trunk/plugins/struts1/pom.xml
Modified: struts/struts2/trunk/apps/showcase/pom.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/pom.xml?view=diff&rev=450330&r1=450329&r2=450330
==============================================================================
--- struts/struts2/trunk/apps/showcase/pom.xml (original)
+++ struts/struts2/trunk/apps/showcase/pom.xml Tue Sep 26 22:59:22 2006
@@ -26,7 +26,7 @@
<dependency>
<groupId>org.apache.struts</groupId>
- <artifactId>struts2-integration</artifactId>
+ <artifactId>struts2-struts1-plugin</artifactId>
<version>${pom.version}</version>
</dependency>
Modified:
struts/struts2/trunk/apps/showcase/src/main/resources/struts-integration.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/resources/struts-integration.xml?view=diff&rev=450330&r1=450329&r2=450330
==============================================================================
---
struts/struts2/trunk/apps/showcase/src/main/resources/struts-integration.xml
(original)
+++
struts/struts2/trunk/apps/showcase/src/main/resources/struts-integration.xml
Tue Sep 26 22:59:22 2006
@@ -5,7 +5,7 @@
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
- <package name="integration"
extends="struts-default,struts-integration-default" namespace="/integration">
+ <package name="integration" extends="struts1-default"
namespace="/integration">
<interceptors>
<interceptor name="gangsterForm"
class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor">
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?view=diff&rev=450330&r1=450329&r2=450330
==============================================================================
---
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
(original)
+++
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
Tue Sep 26 22:59:22 2006
@@ -251,9 +251,9 @@
}
configurationManager = new ConfigurationManager();
- String configFiles =
Settings.get(StrutsConstants.STRUTS_CONFIGURATION_FILES);
- if (configFiles == null) {
- configFiles = "struts-default.xml,struts-plugins.xml,struts.xml";
+ String configFiles = "struts-default.xml,struts-plugin.xml,struts.xml";
+ if (Settings.isSet(StrutsConstants.STRUTS_CONFIGURATION_FILES)) {
+ configFiles =
Settings.get(StrutsConstants.STRUTS_CONFIGURATION_FILES);
}
String[] files = configFiles.split("\\s*[,]\\s*");
for (String file : files) {
Modified: struts/struts2/trunk/core/src/main/resources/struts-default.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/struts-default.xml?view=diff&rev=450330&r1=450329&r2=450330
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/struts-default.xml (original)
+++ struts/struts2/trunk/core/src/main/resources/struts-default.xml Tue Sep 26
22:59:22 2006
@@ -20,7 +20,6 @@
<result-type name="plaintext"
class="org.apache.struts2.dispatcher.PlainTextResult" />
<!-- third party integration
- <result-type name="jasper"
class="org.apache.struts2.views.jasperreports.JasperReportsResult"/>
<result-type name="jsf" class="org.apache.struts2.jsf.FacesResult"
/>
-->
</result-types>
Modified:
struts/struts2/trunk/core/src/main/resources/struts-portlet-default.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/struts-portlet-default.xml?view=diff&rev=450330&r1=450329&r2=450330
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/struts-portlet-default.xml
(original)
+++ struts/struts2/trunk/core/src/main/resources/struts-portlet-default.xml Tue
Sep 26 22:59:22 2006
@@ -5,8 +5,6 @@
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
- <include file="struts-default.xml"/>
-
<package name="struts-portlet-default" extends="struts-default">
<result-types>
@@ -25,4 +23,4 @@
<result type="velocity"
name="success">${location}</result>
</action>
</package>
-</struts>
\ No newline at end of file
+</struts>
Added: struts/struts2/trunk/plugins/jasperreports/pom.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/jasperreports/pom.xml?view=auto&rev=450330
==============================================================================
--- struts/struts2/trunk/plugins/jasperreports/pom.xml (added)
+++ struts/struts2/trunk/plugins/jasperreports/pom.xml Tue Sep 26 22:59:22 2006
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-plugins</artifactId>
+ <version>2.0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-jasperreports-plugin</artifactId>
+ <packaging>jar</packaging>
+ <name>Struts 2 Jasper Reports Plugin</name>
+
+ <distributionManagement>
+ <site>
+ <id>apache-site</id>
+
<url>scp://people.apache.org/www/struts.apache.org/2.x/plugins/jasperreports</url>
+ </site>
+ </distributionManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>jasperreports</groupId>
+ <artifactId>jasperreports</artifactId>
+ <version>1.2.1</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
Added:
struts/struts2/trunk/plugins/jasperreports/src/main/resources/struts-plugin.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/jasperreports/src/main/resources/struts-plugin.xml?view=auto&rev=450330
==============================================================================
---
struts/struts2/trunk/plugins/jasperreports/src/main/resources/struts-plugin.xml
(added)
+++
struts/struts2/trunk/plugins/jasperreports/src/main/resources/struts-plugin.xml
Tue Sep 26 22:59:22 2006
@@ -0,0 +1,15 @@
+<?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="extras-default">
+
+ <result-types>
+ <result-type name="jasper"
class="org.apache.struts2.views.jasperreports.JasperReportsResult"/>
+ </result-types>
+ </package>
+
+</struts>
Added: struts/struts2/trunk/plugins/jfreechart/pom.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/jfreechart/pom.xml?view=auto&rev=450330
==============================================================================
--- struts/struts2/trunk/plugins/jfreechart/pom.xml (added)
+++ struts/struts2/trunk/plugins/jfreechart/pom.xml Tue Sep 26 22:59:22 2006
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-plugins</artifactId>
+ <version>2.0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-jfreechart-plugin</artifactId>
+ <packaging>jar</packaging>
+ <name>Struts 2 JFreeChart Plugin</name>
+
+ <distributionManagement>
+ <site>
+ <id>apache-site</id>
+
<url>scp://people.apache.org/www/struts.apache.org/2.x/plugins/jfreechart</url>
+ </site>
+ </distributionManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>jfree</groupId>
+ <artifactId>jcommon</artifactId>
+ <version>[1.0.0,)</version>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>gnujaxp</groupId>
+ <artifactId>gnujaxp</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>jfree</groupId>
+ <artifactId>jfreechart</artifactId>
+ <version>[1.0.0,)</version>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>gnujaxp</groupId>
+ <artifactId>gnujaxp</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>mockobjects</groupId>
+ <artifactId>mockobjects-core</artifactId>
+ <version>0.09</version>
+ <scope>test</scope>
+ </dependency>
+
+
+ </dependencies>
+</project>
Added:
struts/struts2/trunk/plugins/jfreechart/src/main/resources/struts-plugin.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/jfreechart/src/main/resources/struts-plugin.xml?view=auto&rev=450330
==============================================================================
---
struts/struts2/trunk/plugins/jfreechart/src/main/resources/struts-plugin.xml
(added)
+++
struts/struts2/trunk/plugins/jfreechart/src/main/resources/struts-plugin.xml
Tue Sep 26 22:59:22 2006
@@ -0,0 +1,18 @@
+<?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="extras-default">
+
+ <result-types>
+ <result-type name="chart"
class="org.apache.struts2.dispatcher.ChartResult">
+ <param name="height">150</param>
+ <param name="width">200</param>
+ </result-type>
+ </result-types>
+ </package>
+
+</struts>
Added: struts/struts2/trunk/plugins/pell-multipart/pom.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/pell-multipart/pom.xml?view=auto&rev=450330
==============================================================================
--- struts/struts2/trunk/plugins/pell-multipart/pom.xml (added)
+++ struts/struts2/trunk/plugins/pell-multipart/pom.xml Tue Sep 26 22:59:22 2006
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-plugins</artifactId>
+ <version>2.0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-pell-multipart-plugin</artifactId>
+ <packaging>jar</packaging>
+ <name>Struts 2 Pell Multipart Plugin</name>
+
+ <distributionManagement>
+ <site>
+ <id>apache-site</id>
+
<url>scp://people.apache.org/www/struts.apache.org/2.x/plugins/pell-multipart</url>
+ </site>
+ </distributionManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>opensymphony</groupId>
+ <artifactId>pell-multipart</artifactId>
+ <version>2.1.5</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
Added: struts/struts2/trunk/plugins/pom.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/pom.xml?view=auto&rev=450330
==============================================================================
--- struts/struts2/trunk/plugins/pom.xml (added)
+++ struts/struts2/trunk/plugins/pom.xml Tue Sep 26 22:59:22 2006
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-parent</artifactId>
+ <version>2.0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-plugins</artifactId>
+ <packaging>pom</packaging>
+ <name>Struts Plugins</name>
+ <modules>
+ <module>struts1</module>
+ <module>pell-multipart</module>
+ <module>jasperreports</module>
+ <module>jfreechart</module>
+ </modules>
+
+ <distributionManagement>
+ <site>
+ <id>apache-site</id>
+
<url>scp://people.apache.org/www/struts.apache.org/2.x/plugins</url>
+ </site>
+ </distributionManagement>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-core</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>compile</scope>
+ <version>3.8.1</version>
+ <!-- has to be compile for StrutsTestCase, which is part of the
base package so others can write unit tests -->
+ <optional>true</optional>
+ </dependency>
+
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+
+
+ </dependencies>
+
+</project>
Modified: struts/struts2/trunk/plugins/struts1/pom.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/struts1/pom.xml?view=diff&rev=450330&r1=450303&r2=450330
==============================================================================
--- struts/struts2/trunk/plugins/struts1/pom.xml (original)
+++ struts/struts2/trunk/plugins/struts1/pom.xml Tue Sep 26 22:59:22 2006
@@ -4,42 +4,22 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.struts</groupId>
- <artifactId>struts2-parent</artifactId>
+ <artifactId>struts2-plugins</artifactId>
<version>2.0.1-SNAPSHOT</version>
</parent>
<groupId>org.apache.struts</groupId>
- <artifactId>struts2-integration</artifactId>
+ <artifactId>struts2-struts1-plugin</artifactId>
<packaging>jar</packaging>
- <name>Struts 2 Integration</name>
+ <name>Struts 2 Struts 1 Plugin</name>
<distributionManagement>
<site>
<id>apache-site</id>
-
<url>scp://people.apache.org/www/struts.apache.org/2.x/struts-integration</url>
+
<url>scp://people.apache.org/www/struts.apache.org/2.x/plugins/struts1</url>
</site>
</distributionManagement>
<dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.4</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.struts</groupId>
- <artifactId>struts2-core</artifactId>
- <version>${pom.version}</version>
- </dependency>
-
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-core</artifactId>
Copied:
struts/struts2/trunk/plugins/struts1/src/main/resources/struts-plugin.xml (from
r450288, struts/struts2/trunk/integration/src/main/resources/struts-default.xml)
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/struts1/src/main/resources/struts-plugin.xml?view=diff&rev=450330&p1=struts/struts2/trunk/integration/src/main/resources/struts-default.xml&r1=450288&p2=struts/struts2/trunk/plugins/struts1/src/main/resources/struts-plugin.xml&r2=450330
==============================================================================
--- struts/struts2/trunk/integration/src/main/resources/struts-default.xml
(original)
+++ struts/struts2/trunk/plugins/struts1/src/main/resources/struts-plugin.xml
Tue Sep 26 22:59:22 2006
@@ -5,12 +5,25 @@
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
- <package name="struts-integration-default">
+ <package name="struts1-default" extends="struts-default">
<interceptors>
<interceptor name="actionForm-reset"
class="org.apache.struts2.s1.ActionFormResetInterceptor"/>
<interceptor name="actionForm-validation"
class="org.apache.struts2.s1.ActionFormValidationInterceptor"/>
+ <interceptor name="actionForm-commonsValidation"
class="org.apache.struts2.s1.ActionFormValidationInterceptor">
+ <param
name="pathnames">/org/apache/struts/validator/validator-rules.xml,/WEB-INF/validation.xml</param>
+ </interceptor>
+ <interceptor-stack name="struts1-default">
+ <interceptor-ref name="static-params"/>
+ <interceptor-ref name="scoped-model-driven"/>
+ <interceptor-ref name="model-driven"/>
+ <interceptor-ref name="actionForm-reset"/>
+ <interceptor-ref name="basicStack"/>
+ <interceptor-ref name="actionForm-validation"/>
+ <interceptor-ref name="workflow"/>
+ </interceptor-stack>
</interceptors>
+
</package>
</struts>