From commits-return-17719-archive-asf-public=cust-asf.ponee.io@struts.apache.org Fri Jan 26 18:31:31 2018 Return-Path: X-Original-To: archive-asf-public@eu.ponee.io Delivered-To: archive-asf-public@eu.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by mx-eu-01.ponee.io (Postfix) with ESMTP id 6A2B3180657 for ; Fri, 26 Jan 2018 18:31:31 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 5A343160C3E; Fri, 26 Jan 2018 17:31:31 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id AE80C160C2E for ; Fri, 26 Jan 2018 18:31:29 +0100 (CET) Received: (qmail 89271 invoked by uid 500); 26 Jan 2018 17:31:28 -0000 Mailing-List: contact commits-help@struts.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@struts.apache.org Delivered-To: mailing list commits@struts.apache.org Received: (qmail 89262 invoked by uid 99); 26 Jan 2018 17:31:28 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 26 Jan 2018 17:31:28 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id A4F06820A9; Fri, 26 Jan 2018 17:31:27 +0000 (UTC) Date: Fri, 26 Jan 2018 17:31:27 +0000 To: "commits@struts.apache.org" Subject: [struts-site] branch asf-site updated: Updates production by Jenkins MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <151698788762.17576.9516535815296643428@gitbox.apache.org> From: git-site-role@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: struts-site X-Git-Refname: refs/heads/asf-site X-Git-Reftype: branch X-Git-Oldrev: db366d432e4427ab2d2796c2313af8542a5207a3 X-Git-Newrev: 0f9b33bac05ce3c932e46a89e8f3984411d830cf X-Git-Rev: 0f9b33bac05ce3c932e46a89e8f3984411d830cf X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. git-site-role pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/struts-site.git The following commit(s) were added to refs/heads/asf-site by this push: new 0f9b33b Updates production by Jenkins 0f9b33b is described below commit 0f9b33bac05ce3c932e46a89e8f3984411d830cf Author: jenkins AuthorDate: Fri Jan 26 17:31:26 2018 +0000 Updates production by Jenkins --- content/plugins/plugins.html | 618 +++++++++++++++++++++---------------------- 1 file changed, 308 insertions(+), 310 deletions(-) diff --git a/content/plugins/plugins.html b/content/plugins/plugins.html index 640dc3d..23bd659 100644 --- a/content/plugins/plugins.html +++ b/content/plugins/plugins.html @@ -134,12 +134,6 @@

Struts 2 plugins contain classes and configuration that extend, replace, or add to existing Struts framework functionality. A plugin can be installed by adding its JAR file to the application’s class path, in addition to the JAR files to fulfill whatever dependencies the plugin itself may have. To configure the plugin, the JAR should contain a struts-plugin.xml file, which follows the same format as an ordinary str [...] @@ -196,285 +190,287 @@

The following extension points are available in Struts 2:

-
 <table border="1" summary="">
-   <tr>
-     <th>Type</th>
-     <th>Property</th>
-     <th>Scope</th>
-     <th>Description</th>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.ObjectFactory</td>
-     <td>struts.objectFactory</td>
-     <td>singleton</td>
-     <td>Creates actions, results, and interceptors</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.ActionFactory</td>
-     <td>struts.objectFactory.actionFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create Actions, you can implement/extend existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.ResultFactory</td>
-     <td>struts.objectFactory.resultFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create Results, you can implement/extend existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.InterceptorFactory</td>
-     <td>struts.objectFactory.interceptorFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create Interceptors, you can implement/extend existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.ConverterFactory</td>
-     <td>struts.objectFactory.converterFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create TypeConverters, you can implement/extend existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.ValidatorFactory</td>
-     <td>struts.objectFactory.validatorFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create Validators, you can implement/extend existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.ActionProxyFactory</td>
-     <td>struts.actionProxyFactory</td>
-     <td>singleton</td>
-     <td>Creates the ActionProxy</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.util.ObjectTypeDeterminer</td>
-     <td>struts.objectTypeDeterminer</td>
-     <td>singleton</td>
-     <td>Determines what the key and element class of a Map or Collection should be</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.dispatcher.mapper.ActionMapper</td>
-     <td>struts.mapper.class</td>
-     <td>singleton</td>
-     <td>Determines the ActionMapping from a request and a URI from an ActionMapping</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.dispatcher.multipart.MultiPartRequest</td>
-     <td>struts.multipart.parser</td>
-     <td>per request</td>
-     <td>Parses a multipart request (file upload)</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.views.freemarker.FreemarkerManager</td>
-     <td>struts.freemarker.manager.classname</td>
-     <td>singleton</td>
-     <td>Loads and processes Freemarker templates</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.views.velocity.VelocityManager</td>
-     <td>struts.velocity.manager.classname</td>
-     <td>singleton</td>
-     <td>Loads and processes Velocity templates</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.validator.ActionValidatorManager</td>
-     <td>struts.actionValidatorManager</td>
-     <td>singleton</td>
-     <td>Main interface for validation managers (regular and annotation based).  Handles both the loading of
-         configuration and the actual validation (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.util.ValueStackFactory</td>
-     <td>struts.valueStackFactory</td>
-     <td>singleton</td>
-     <td>Creates value stacks (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.reflection.ReflectionProvider</td>
-     <td>struts.reflectionProvider</td>
-     <td>singleton</td>
-     <td>Provides reflection services, key place to plug in a custom expression language (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.reflection.ReflectionContextFactory</td>
-     <td>struts.reflectionContextFactory</td>
-     <td>singleton</td>
-     <td>Creates reflection context maps used for reflection and expression language operations (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.config.PackageProvider</td>
-     <td>N/A</td>
-     <td>singleton</td>
-     <td>All beans registered as PackageProvider implementations will be automatically included in configuration building (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.util.PatternMatcher</td>
-     <td>struts.patternMatcher</td>
-     <td>singleton</td>
-     <td>Matches patterns, such as action names, generally used in configuration (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.views.dispatcher.DefaultStaticContentLoader</td>
-     <td>struts.staticContentLoader</td>
-     <td>singleton</td>
-     <td>Loads static resources (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.impl.XWorkConverter</td>
-     <td>struts.xworkConverter</td>
-     <td>singleton</td>
-     <td>Handles conversion logic and allows to load custom converters per class or per action</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.TextProvider</td>
-     <td>struts.xworkTextProvider</td>
-     <td>default</td>
-     <td>Allows provide custom TextProvider for whole application</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.LocaleProvider</td>
-     <td>struts.localeProvider</td>
-     <td>singleton</td>
-     <td>DEPRECATED! Allows provide custom TextProvider for whole application - instead this endpoint use <b>struts.localeProviderFactory</b></td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.LocaleProviderFactory</td>
-     <td>struts.localeProviderFactory</td>
-     <td>singleton</td>
-     <td>Allows provide custom LocaleProvider for whole application</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.components.UrlRenderer</td>
-     <td>struts.urlRenderer</td>
-     <td>singleton</td>
-     <td>Allows provide custom implementation of environment specific URL rendering/creating class</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.UnknownHandlerManager</td>
-     <td>struts.unknownHandlerManager</td>
-     <td>singleton</td>
-     <td>Implementation of this interface allows handle logic of unknown Actions, Methods or Results</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.views.util.UrlHelper</td>
-     <td>struts.view.urlHelper</td>
-     <td>singleton</td>
-     <td>Helper class used with URLRenderer to provide exact logic for building URLs</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.FileManagerFactory</td>
-     <td>struts.fileManagerFactory</td>
-     <td>singleton</td>
-     <td>Used to create {@link FileManager} instance to access files on the File System as also to monitor if reload is needed,
+
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+   
+     
+     
+     
+     
+   
+ 
+
+
+
+
+
+
+## Plugin Examples
+
+Let's look at two similar but different plugins bundled with the core distribution.
+
+### Sitemesh plugin
+
+[SiteMesh](http://opensymphony.com/sitemesh/) is a popular alternative to Tiles. SiteMesh provides a common look-and-feel to an application's pages by automatically wrapping a plain page with common elements like headers and menubars.
+
+The `sitemesh-plugin.jar` contains several classes, a standard JAR manifest, and a plugin configuration file.
+
+````text
+ + META-INF/
    + manifest.mf
  + org
    + apache
@@ -484,13 +480,15 @@
          + TemplatePageFilter.class
          + VelocityPageFilter.class
  + struts-plugin.xml
-
-
+````
+
+While the SiteMesh Plugin doesn't provide any new results, interceptors, or actions, or even extend any Struts integration points, it does need to know what settings have been enabled in the Struts framework. Therefore, its `struts-plugin.xml` looks like this:
+
 
-

While the SiteMesh Plugin doesn’t provide any new results, interceptors, or actions, or even extend any Struts integration points, it does need to know what settings have been enabled in the Struts framework. Therefore, its struts-plugin.xml looks like this:

-
<?xml version="1.0" encoding="UTF-8" ?>
-<!--
+```xml
+
+
+<!DOCTYPE struts PUBLIC
 	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
-	"http://struts.apache.org/dtds/struts-2.5.dtd">
+	"http://struts.apache.org/dtds/struts-2.5.dtd">
     
-<struts>
-    <bean class="org.apache.struts2.sitemesh.FreemarkerPageFilter" static="true" optional="true"/>
-    <bean class="org.apache.struts2.sitemesh.VelocityPageFilter" static="true" optional="true"/>
-</struts>
+
+    
+    
+
+
+```
 
-
-
-

The two bean elements, with the “static” flag enabled, tell Struts to inject the current settings and framework objects into static property setters on startup. This allows, for example, the FreeMarkerPageFilter class to get an instance of the Struts FreemarkerManager and the current encoding setting.

-

Tiles plugin

+The two bean elements, with the "static" flag enabled, tell Struts to inject the current settings and framework objects into static property setters on startup. This allows, for example, the FreeMarkerPageFilter class to get an instance of the Struts FreemarkerManager and the current encoding setting. -

Tiles is a popular alternative to SiteMesh. Tiles provides a common look-and-feel to an application’s pages by breaking the page down into common fragments or “tiles”.

+### Tiles plugin -

The tiles-plugin.jar contains several classes, a standard JAR manifest, and a configuration file.

+[Tiles](http://struts.apache.org/struts-sandbox/tiles/index.html) is a popular alternative to SiteMesh. Tiles provides a common look-and-feel to an application's pages by breaking the page down into common fragments or "tiles". -
 + META-INF/
+The `tiles-plugin.jar` contains several classes, a standard JAR manifest, and a configuration file.
+
+```text
+ + META-INF/
    + manifest.mf
  + org
    + apache
@@ -544,16 +544,14 @@
          + tiles
            + TilesResult.class
    + struts-plugin.xml
-
-
+``` -

Since the Tiles Plugin does need to register configuration elements, a result class, it provides a struts-plugin.xml file.

+Since the Tiles Plugin does need to register configuration elements, a result class, it provides a `struts-plugin.xml` file. -

Plugin Registry

+## Plugin Registry -
-

For a list of bundled plugins, see the Plugin Reference Documentation. For more about bundled and third-party plugins, visit the Apache Struts Plugin Registry.

-
+> For a list of bundled plugins, see the [Plugin Reference Documentation](plugin-developers.html). For more about bundled and third-party plugins, visit the [Apache Struts Plugin Registry](http://cwiki.apache.org/S2PLUGINS/home.html). +
TypePropertyScopeDescription
com.opensymphony.xwork2.ObjectFactorystruts.objectFactorysingletonCreates actions, results, and interceptors
com.opensymphony.xwork2.factory.ActionFactorystruts.objectFactory.actionFactorysingletonDedicated factory used to create Actions, you can implement/extend existing one instead of defining new ObjectFactory
com.opensymphony.xwork2.factory.ResultFactorystruts.objectFactory.resultFactorysingletonDedicated factory used to create Results, you can implement/extend existing one instead of defining new ObjectFactory
com.opensymphony.xwork2.factory.InterceptorFactorystruts.objectFactory.interceptorFactorysingletonDedicated factory used to create Interceptors, you can implement/extend existing one instead of defining new ObjectFactory
com.opensymphony.xwork2.factory.ConverterFactorystruts.objectFactory.converterFactorysingletonDedicated factory used to create TypeConverters, you can implement/extend existing one instead of defining new ObjectFactory
com.opensymphony.xwork2.factory.ValidatorFactorystruts.objectFactory.validatorFactorysingletonDedicated factory used to create Validators, you can implement/extend existing one instead of defining new ObjectFactory
com.opensymphony.xwork2.ActionProxyFactorystruts.actionProxyFactorysingletonCreates the ActionProxy
com.opensymphony.xwork2.util.ObjectTypeDeterminerstruts.objectTypeDeterminersingletonDetermines what the key and element class of a Map or Collection should be
org.apache.struts2.dispatcher.mapper.ActionMapperstruts.mapper.classsingletonDetermines the ActionMapping from a request and a URI from an ActionMapping
org.apache.struts2.dispatcher.multipart.MultiPartRequeststruts.multipart.parserper requestParses a multipart request (file upload)
org.apache.struts2.views.freemarker.FreemarkerManagerstruts.freemarker.manager.classnamesingletonLoads and processes Freemarker templates
org.apache.struts2.views.velocity.VelocityManagerstruts.velocity.manager.classnamesingletonLoads and processes Velocity templates
com.opensymphony.xwork2.validator.ActionValidatorManagerstruts.actionValidatorManagersingletonMain interface for validation managers (regular and annotation based). Handles both the loading of + configuration and the actual validation (since 2.1)
com.opensymphony.xwork2.util.ValueStackFactorystruts.valueStackFactorysingletonCreates value stacks (since 2.1)
com.opensymphony.xwork2.reflection.ReflectionProviderstruts.reflectionProvidersingletonProvides reflection services, key place to plug in a custom expression language (since 2.1)
com.opensymphony.xwork2.reflection.ReflectionContextFactorystruts.reflectionContextFactorysingletonCreates reflection context maps used for reflection and expression language operations (since 2.1)
com.opensymphony.xwork2.config.PackageProviderN/AsingletonAll beans registered as PackageProvider implementations will be automatically included in configuration building (since 2.1)
com.opensymphony.xwork2.util.PatternMatcherstruts.patternMatchersingletonMatches patterns, such as action names, generally used in configuration (since 2.1)
org.apache.struts2.views.dispatcher.DefaultStaticContentLoaderstruts.staticContentLoadersingletonLoads static resources (since 2.1)
com.opensymphony.xwork2.conversion.impl.XWorkConverterstruts.xworkConvertersingletonHandles conversion logic and allows to load custom converters per class or per action
com.opensymphony.xwork2.TextProviderstruts.xworkTextProviderdefaultAllows provide custom TextProvider for whole application
com.opensymphony.xwork2.LocaleProviderstruts.localeProvidersingletonDEPRECATED! Allows provide custom TextProvider for whole application - instead this endpoint use struts.localeProviderFactory
com.opensymphony.xwork2.LocaleProviderFactorystruts.localeProviderFactorysingletonAllows provide custom LocaleProvider for whole application
org.apache.struts2.components.UrlRendererstruts.urlRenderersingletonAllows provide custom implementation of environment specific URL rendering/creating class
com.opensymphony.xwork2.UnknownHandlerManagerstruts.unknownHandlerManagersingletonImplementation of this interface allows handle logic of unknown Actions, Methods or Results
org.apache.struts2.views.util.UrlHelperstruts.view.urlHelpersingletonHelper class used with URLRenderer to provide exact logic for building URLs
com.opensymphony.xwork2.FileManagerFactorystruts.fileManagerFactorysingletonUsed to create {@link FileManager} instance to access files on the File System as also to monitor if reload is needed, can be implemented / overwritten to meet specific an application server needs - </td> - <tr> - <td>com.opensymphony.xwork2.conversion.impl.CollectionConverter</td> - <td>struts.converter.collection</td> - <td>singleton</td> - <td>Converter used to convert any object to Collection and back</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.conversion.impl.ArrayConverter</td> - <td>struts.converter.array</td> - <td>singleton</td> - <td>Converter used to convert any object to Array and back</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.conversion.impl.DateConverter</td> - <td>struts.converter.date</td> - <td>singleton</td> - <td>Converter used to convert any object to Date and back</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.conversion.impl.NumberConverter</td> - <td>struts.converter.number</td> - <td>singleton</td> - <td>Converter used to convert any object to Number and back</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.conversion.impl.StringConverter</td> - <td>struts.converter.string</td> - <td>singleton</td> - <td>Converter used to convert any object to String and back</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td> - <td>struts.conversion.properties.processor</td> - <td>singleton</td> - <td>Process Properties to create converters</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td> - <td>struts.converter.file.processor</td> - <td>singleton</td> - <td>Process <class>-conversion.properties file create converters</class></td> - </tr> - <tr> - <td>com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor</td> - <td>struts.converter.annotation.processor</td> - <td>singleton</td> - <td>Process TypeConversion annotation to create converters</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.conversion.TypeConverterCreator</td> - <td>struts.converter.creator</td> - <td>singleton</td> - <td>Creates user converters</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.conversion.TypeConverterHolder</td> - <td>struts.converter.holder</td> - <td>singleton</td> - <td>Holds user converters' instances</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.util.TextParser</td> - <td>struts.expression.parser</td> - <td>singleton</td> - <td>Used to parse expressions like ${foo.bar} or %{bar.foo} but it is up tp the TextParser's - implementation what kind of opening char to use (#, $, %, etc)</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.ExcludedPatternsChecker</td> - <td>struts.excludedPatterns.checker</td> - <td>request</td> - <td>Used across different interceptors to check if given string matches one of the excluded patterns</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.AcceptedPatternsChecker</td> - <td>struts.acceptedPatterns.checker</td> - <td>request</td> - <td>Used across different interceptors to check if given string matches one of the accepted patterns</td> - </tr> - <tr> - <td>org.apache.struts2.util.ContentTypeMatcher</td> - <td>struts.contentTypeMatcher</td> - <td>singleton</td> - <td>Matches content type of uploaded files (since 2.3.22)</td> - </tr> - <tr> - <td>com.opensymphony.xwork2.LocalizedTextProvider</td> - <td>struts.localizedTextProvider</td> - <td>singleton</td> - <td>Provides access to resource bundles used to localise messages (since 2.5.11)</td> - </tr> - </table> - - - - - -

Plugin Examples

- -

Let’s look at two similar but different plugins bundled with the core distribution.

- -

Sitemesh plugin

- -

SiteMesh is a popular alternative to Tiles. SiteMesh provides a common look-and-feel to an application’s pages by automatically wrapping a plain page with common elements like headers and menubars.

- -

The sitemesh-plugin.jar contains several classes, a standard JAR manifest, and a plugin configuration file.

- -
 + META-INF/
+     
com.opensymphony.xwork2.conversion.impl.CollectionConverterstruts.converter.collectionsingletonConverter used to convert any object to Collection and back
com.opensymphony.xwork2.conversion.impl.ArrayConverterstruts.converter.arraysingletonConverter used to convert any object to Array and back
com.opensymphony.xwork2.conversion.impl.DateConverterstruts.converter.datesingletonConverter used to convert any object to Date and back
com.opensymphony.xwork2.conversion.impl.NumberConverterstruts.converter.numbersingletonConverter used to convert any object to Number and back
com.opensymphony.xwork2.conversion.impl.StringConverterstruts.converter.stringsingletonConverter used to convert any object to String and back
com.opensymphony.xwork2.conversion.ConversionPropertiesProcessorstruts.conversion.properties.processorsingletonProcess Properties to create converters
com.opensymphony.xwork2.conversion.ConversionPropertiesProcessorstruts.converter.file.processorsingletonProcess -conversion.properties file create converters
com.opensymphony.xwork2.conversion.ConversionAnnotationProcessorstruts.converter.annotation.processorsingletonProcess TypeConversion annotation to create converters
com.opensymphony.xwork2.conversion.TypeConverterCreatorstruts.converter.creatorsingletonCreates user converters
com.opensymphony.xwork2.conversion.TypeConverterHolderstruts.converter.holdersingletonHolds user converters' instances
com.opensymphony.xwork2.util.TextParserstruts.expression.parsersingletonUsed to parse expressions like ${foo.bar} or %{bar.foo} but it is up tp the TextParser's + implementation what kind of opening char to use (#, $, %, etc)
com.opensymphony.xwork2.ExcludedPatternsCheckerstruts.excludedPatterns.checkerrequestUsed across different interceptors to check if given string matches one of the excluded patterns
com.opensymphony.xwork2.AcceptedPatternsCheckerstruts.acceptedPatterns.checkerrequestUsed across different interceptors to check if given string matches one of the accepted patterns
org.apache.struts2.util.ContentTypeMatcherstruts.contentTypeMatchersingletonMatches content type of uploaded files (since 2.3.22)
com.opensymphony.xwork2.LocalizedTextProviderstruts.localizedTextProvidersingletonProvides access to resource bundles used to localise messages (since 2.5.11)
-- To stop receiving notification emails like this one, please contact git-site-role@apache.org.