From 875b87cfd53fc417a9c2a33dd8924d0cace1d7b0 Mon Sep 17 00:00:00 2001 From: "Donald J. Brown" Date: Wed, 27 Sep 2006 05:59:22 +0000 Subject: [PATCH] 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 git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@450330 13f79535-47bb-0310-9956-ffa450edef68 --- apps/showcase/pom.xml | 2 +- .../src/main/resources/struts-integration.xml | 2 +- .../apache/struts2/dispatcher/Dispatcher.java | 6 +- core/src/main/resources/struts-default.xml | 1 - .../main/resources/struts-portlet-default.xml | 4 +- extras/pom.xml | 73 ------------------- .../src/main/resources/struts-default.xml | 16 ---- plugins/jasperreports/pom.xml | 30 ++++++++ .../views/jasperreports/CompileReport.java | 0 .../jasperreports/JasperReportConstants.java | 0 .../jasperreports/JasperReportsResult.java | 0 .../OgnlValueStackDataSource.java | 0 .../OgnlValueStackShadowMap.java | 0 .../src/main/resources/struts-plugin.xml | 15 ++++ plugins/jfreechart/pom.xml | 56 ++++++++++++++ .../struts2/dispatcher/ChartResult.java | 0 .../src/main/resources/struts-plugin.xml | 18 +++++ .../struts2/dispatcher/ChartResultTest.java | 0 plugins/pell-multipart/pom.xml | 30 ++++++++ .../multipart/PellMultiPartRequest.java | 0 plugins/pom.xml | 57 +++++++++++++++ {integration => plugins/struts1}/pom.xml | 28 +------ .../s1/ActionFormResetInterceptor.java | 0 .../s1/ActionFormValidationInterceptor.java | 0 .../struts2/s1/DynaBeanPropertyAccessor.java | 0 .../org/apache/struts2/s1/Struts1Action.java | 0 .../org/apache/struts2/s1/Struts1Factory.java | 0 .../struts2/s1/WrapperActionForward.java | 0 .../struts2/s1/WrapperActionMapping.java | 0 .../struts2/s1/WrapperExceptionConfig.java | 0 .../struts2/s1/WrapperMessageResources.java | 0 .../struts2/s1/WrapperModuleConfig.java | 0 .../src/main/resources/struts-plugin.xml | 29 ++++++++ .../s1/DynaBeanPropertyAccessorTest.java | 0 .../apache/struts2/s1/Struts1FactoryTest.java | 0 .../apache/struts2/s1/test-struts-factory.xml | 0 36 files changed, 245 insertions(+), 122 deletions(-) delete mode 100644 extras/pom.xml delete mode 100644 integration/src/main/resources/struts-default.xml create mode 100644 plugins/jasperreports/pom.xml rename {extras => plugins/jasperreports}/src/main/java/org/apache/struts2/views/jasperreports/CompileReport.java (100%) rename {extras => plugins/jasperreports}/src/main/java/org/apache/struts2/views/jasperreports/JasperReportConstants.java (100%) rename {extras => plugins/jasperreports}/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java (100%) rename {extras => plugins/jasperreports}/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackDataSource.java (100%) rename {extras => plugins/jasperreports}/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackShadowMap.java (100%) create mode 100644 plugins/jasperreports/src/main/resources/struts-plugin.xml create mode 100644 plugins/jfreechart/pom.xml rename {extras => plugins/jfreechart}/src/main/java/org/apache/struts2/dispatcher/ChartResult.java (100%) create mode 100644 plugins/jfreechart/src/main/resources/struts-plugin.xml rename {extras => plugins/jfreechart}/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java (100%) create mode 100644 plugins/pell-multipart/pom.xml rename {extras => plugins/pell-multipart}/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java (100%) create mode 100644 plugins/pom.xml rename {integration => plugins/struts1}/pom.xml (61%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/ActionFormResetInterceptor.java (100%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/ActionFormValidationInterceptor.java (100%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/DynaBeanPropertyAccessor.java (100%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/Struts1Action.java (100%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/Struts1Factory.java (100%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/WrapperActionForward.java (100%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/WrapperActionMapping.java (100%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/WrapperExceptionConfig.java (100%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/WrapperMessageResources.java (100%) rename {integration => plugins/struts1}/src/main/java/org/apache/struts2/s1/WrapperModuleConfig.java (100%) create mode 100644 plugins/struts1/src/main/resources/struts-plugin.xml rename {integration => plugins/struts1}/src/test/java/org/apache/struts2/s1/DynaBeanPropertyAccessorTest.java (100%) rename {integration => plugins/struts1}/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java (100%) rename {integration => plugins/struts1}/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml (100%) diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml index ca1e63cc3..8db25884a 100644 --- a/apps/showcase/pom.xml +++ b/apps/showcase/pom.xml @@ -26,7 +26,7 @@ org.apache.struts - struts2-integration + struts2-struts1-plugin ${pom.version} diff --git a/apps/showcase/src/main/resources/struts-integration.xml b/apps/showcase/src/main/resources/struts-integration.xml index e6fdbe647..66f28d2d7 100644 --- a/apps/showcase/src/main/resources/struts-integration.xml +++ b/apps/showcase/src/main/resources/struts-integration.xml @@ -5,7 +5,7 @@ "http://struts.apache.org/dtds/struts-2.0.dtd"> - + diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java index 46c5d80b3..11190754f 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java @@ -251,9 +251,9 @@ public class Dispatcher { } 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) { diff --git a/core/src/main/resources/struts-default.xml b/core/src/main/resources/struts-default.xml index 3be176aed..c3a1b863e 100644 --- a/core/src/main/resources/struts-default.xml +++ b/core/src/main/resources/struts-default.xml @@ -20,7 +20,6 @@ diff --git a/core/src/main/resources/struts-portlet-default.xml b/core/src/main/resources/struts-portlet-default.xml index 31fb7de64..1154ba7f4 100644 --- a/core/src/main/resources/struts-portlet-default.xml +++ b/core/src/main/resources/struts-portlet-default.xml @@ -5,8 +5,6 @@ "http://struts.apache.org/dtds/struts-2.0.dtd"> - - @@ -25,4 +23,4 @@ ${location} - \ No newline at end of file + diff --git a/extras/pom.xml b/extras/pom.xml deleted file mode 100644 index 6ee070a69..000000000 --- a/extras/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - org.apache.struts - struts2-parent - 2.0.1-SNAPSHOT - - org.apache.struts - struts2-extras - jar - Struts Extras - - - - apache-site - scp://people.apache.org/www/struts.apache.org/2.x/struts-extras - - - - - - junit - junit - 3.8.1 - test - - - - javax.servlet - servlet-api - 2.4 - provided - - - - org.apache.struts - struts2-core - ${pom.version} - - - - jasperreports - jasperreports - 1.2.1 - provided - - - - mockobjects - mockobjects-core - 0.09 - test - - - - opensymphony - pell-multipart - 2.1.5 - provided - true - - - - commons-logging - commons-logging - 1.0.4 - provided - - - - diff --git a/integration/src/main/resources/struts-default.xml b/integration/src/main/resources/struts-default.xml deleted file mode 100644 index 77213fc4b..000000000 --- a/integration/src/main/resources/struts-default.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - diff --git a/plugins/jasperreports/pom.xml b/plugins/jasperreports/pom.xml new file mode 100644 index 000000000..c45996b82 --- /dev/null +++ b/plugins/jasperreports/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + org.apache.struts + struts2-plugins + 2.0.1-SNAPSHOT + + org.apache.struts + struts2-jasperreports-plugin + jar + Struts 2 Jasper Reports Plugin + + + + apache-site + scp://people.apache.org/www/struts.apache.org/2.x/plugins/jasperreports + + + + + + jasperreports + jasperreports + 1.2.1 + provided + + + diff --git a/extras/src/main/java/org/apache/struts2/views/jasperreports/CompileReport.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/CompileReport.java similarity index 100% rename from extras/src/main/java/org/apache/struts2/views/jasperreports/CompileReport.java rename to plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/CompileReport.java diff --git a/extras/src/main/java/org/apache/struts2/views/jasperreports/JasperReportConstants.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportConstants.java similarity index 100% rename from extras/src/main/java/org/apache/struts2/views/jasperreports/JasperReportConstants.java rename to plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportConstants.java diff --git a/extras/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java similarity index 100% rename from extras/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java rename to plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java diff --git a/extras/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackDataSource.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackDataSource.java similarity index 100% rename from extras/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackDataSource.java rename to plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackDataSource.java diff --git a/extras/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackShadowMap.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackShadowMap.java similarity index 100% rename from extras/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackShadowMap.java rename to plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/OgnlValueStackShadowMap.java diff --git a/plugins/jasperreports/src/main/resources/struts-plugin.xml b/plugins/jasperreports/src/main/resources/struts-plugin.xml new file mode 100644 index 000000000..4837a842f --- /dev/null +++ b/plugins/jasperreports/src/main/resources/struts-plugin.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/plugins/jfreechart/pom.xml b/plugins/jfreechart/pom.xml new file mode 100644 index 000000000..015dde473 --- /dev/null +++ b/plugins/jfreechart/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + + org.apache.struts + struts2-plugins + 2.0.1-SNAPSHOT + + org.apache.struts + struts2-jfreechart-plugin + jar + Struts 2 JFreeChart Plugin + + + + apache-site + scp://people.apache.org/www/struts.apache.org/2.x/plugins/jfreechart + + + + + + jfree + jcommon + [1.0.0,) + provided + + + gnujaxp + gnujaxp + + + + + jfree + jfreechart + [1.0.0,) + provided + + + gnujaxp + gnujaxp + + + + + mockobjects + mockobjects-core + 0.09 + test + + + + + diff --git a/extras/src/main/java/org/apache/struts2/dispatcher/ChartResult.java b/plugins/jfreechart/src/main/java/org/apache/struts2/dispatcher/ChartResult.java similarity index 100% rename from extras/src/main/java/org/apache/struts2/dispatcher/ChartResult.java rename to plugins/jfreechart/src/main/java/org/apache/struts2/dispatcher/ChartResult.java diff --git a/plugins/jfreechart/src/main/resources/struts-plugin.xml b/plugins/jfreechart/src/main/resources/struts-plugin.xml new file mode 100644 index 000000000..4c8e64154 --- /dev/null +++ b/plugins/jfreechart/src/main/resources/struts-plugin.xml @@ -0,0 +1,18 @@ + + + + + + + + + + 150 + 200 + + + + + diff --git a/extras/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java b/plugins/jfreechart/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java similarity index 100% rename from extras/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java rename to plugins/jfreechart/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java diff --git a/plugins/pell-multipart/pom.xml b/plugins/pell-multipart/pom.xml new file mode 100644 index 000000000..99539616c --- /dev/null +++ b/plugins/pell-multipart/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + org.apache.struts + struts2-plugins + 2.0.1-SNAPSHOT + + org.apache.struts + struts2-pell-multipart-plugin + jar + Struts 2 Pell Multipart Plugin + + + + apache-site + scp://people.apache.org/www/struts.apache.org/2.x/plugins/pell-multipart + + + + + + opensymphony + pell-multipart + 2.1.5 + provided + + + diff --git a/extras/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java b/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java similarity index 100% rename from extras/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java rename to plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java diff --git a/plugins/pom.xml b/plugins/pom.xml new file mode 100644 index 000000000..43893a1af --- /dev/null +++ b/plugins/pom.xml @@ -0,0 +1,57 @@ + + + 4.0.0 + + org.apache.struts + struts2-parent + 2.0.1-SNAPSHOT + + org.apache.struts + struts2-plugins + pom + Struts Plugins + + struts1 + pell-multipart + jasperreports + jfreechart + + + + + apache-site + scp://people.apache.org/www/struts.apache.org/2.x/plugins + + + + + + + org.apache.struts + struts2-core + ${pom.version} + + + + + junit + junit + compile + 3.8.1 + + true + + + + + javax.servlet + servlet-api + 2.4 + provided + + + + + + diff --git a/integration/pom.xml b/plugins/struts1/pom.xml similarity index 61% rename from integration/pom.xml rename to plugins/struts1/pom.xml index 24399d4f1..42cc1d8a1 100644 --- a/integration/pom.xml +++ b/plugins/struts1/pom.xml @@ -4,42 +4,22 @@ 4.0.0 org.apache.struts - struts2-parent + struts2-plugins 2.0.1-SNAPSHOT org.apache.struts - struts2-integration + struts2-struts1-plugin jar - Struts 2 Integration + Struts 2 Struts 1 Plugin apache-site - scp://people.apache.org/www/struts.apache.org/2.x/struts-integration + scp://people.apache.org/www/struts.apache.org/2.x/plugins/struts1 - - junit - junit - 3.8.1 - test - - - - javax.servlet - servlet-api - 2.4 - provided - - - - org.apache.struts - struts2-core - ${pom.version} - - org.apache.struts struts-core diff --git a/integration/src/main/java/org/apache/struts2/s1/ActionFormResetInterceptor.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/ActionFormResetInterceptor.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/ActionFormResetInterceptor.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/ActionFormResetInterceptor.java diff --git a/integration/src/main/java/org/apache/struts2/s1/ActionFormValidationInterceptor.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/ActionFormValidationInterceptor.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/ActionFormValidationInterceptor.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/ActionFormValidationInterceptor.java diff --git a/integration/src/main/java/org/apache/struts2/s1/DynaBeanPropertyAccessor.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/DynaBeanPropertyAccessor.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/DynaBeanPropertyAccessor.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/DynaBeanPropertyAccessor.java diff --git a/integration/src/main/java/org/apache/struts2/s1/Struts1Action.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/Struts1Action.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/Struts1Action.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/Struts1Action.java diff --git a/integration/src/main/java/org/apache/struts2/s1/Struts1Factory.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/Struts1Factory.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/Struts1Factory.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/Struts1Factory.java diff --git a/integration/src/main/java/org/apache/struts2/s1/WrapperActionForward.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperActionForward.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/WrapperActionForward.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperActionForward.java diff --git a/integration/src/main/java/org/apache/struts2/s1/WrapperActionMapping.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperActionMapping.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/WrapperActionMapping.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperActionMapping.java diff --git a/integration/src/main/java/org/apache/struts2/s1/WrapperExceptionConfig.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperExceptionConfig.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/WrapperExceptionConfig.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperExceptionConfig.java diff --git a/integration/src/main/java/org/apache/struts2/s1/WrapperMessageResources.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperMessageResources.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/WrapperMessageResources.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperMessageResources.java diff --git a/integration/src/main/java/org/apache/struts2/s1/WrapperModuleConfig.java b/plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperModuleConfig.java similarity index 100% rename from integration/src/main/java/org/apache/struts2/s1/WrapperModuleConfig.java rename to plugins/struts1/src/main/java/org/apache/struts2/s1/WrapperModuleConfig.java diff --git a/plugins/struts1/src/main/resources/struts-plugin.xml b/plugins/struts1/src/main/resources/struts-plugin.xml new file mode 100644 index 000000000..9114f590c --- /dev/null +++ b/plugins/struts1/src/main/resources/struts-plugin.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + /org/apache/struts/validator/validator-rules.xml,/WEB-INF/validation.xml + + + + + + + + + + + + + + + diff --git a/integration/src/test/java/org/apache/struts2/s1/DynaBeanPropertyAccessorTest.java b/plugins/struts1/src/test/java/org/apache/struts2/s1/DynaBeanPropertyAccessorTest.java similarity index 100% rename from integration/src/test/java/org/apache/struts2/s1/DynaBeanPropertyAccessorTest.java rename to plugins/struts1/src/test/java/org/apache/struts2/s1/DynaBeanPropertyAccessorTest.java diff --git a/integration/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java b/plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java similarity index 100% rename from integration/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java rename to plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java diff --git a/integration/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml b/plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml similarity index 100% rename from integration/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml rename to plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml