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>


Reply via email to