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 2006/09/27 07:59:23 UTC

svn commit: r450330 - in /struts/struts2/trunk: apps/showcase/ apps/showcase/src/main/resources/ core/src/main/java/org/apache/struts2/dispatcher/ core/src/main/resources/ extras/ integration/ plugins/ plugins/jasperreports/ plugins/jasperreports/src/ ...

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>