[ 
https://issues.apache.org/jira/browse/WW-3718?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gorka Vicente updated WW-3718:
------------------------------

    Attachment: RequestDataValueProcessor.java

RequestDataValueProcessor interface
                
> HDIV and Struts 2 integration
> -----------------------------
>
>                 Key: WW-3718
>                 URL: https://issues.apache.org/jira/browse/WW-3718
>             Project: Struts 2
>          Issue Type: New Feature
>          Components: Other
>    Affects Versions: 2.2.3.1
>            Reporter: Gorka Vicente
>            Priority: Minor
>              Labels: extension, integration, security, spring, tags
>         Attachments: RequestDataValueProcessor.java
>
>
> Nowadays there is an intregration between Struts2 and HDIV that can be used 
> by adding the HDIV filter and by using Struts2's custom tag extension. This 
> means that it is possible to apply HDIV to a web application developed in 
> Struts2 in a declarative way, without making any change to the source code.
> But this approach has a maintenability disadvantage that forces to release a 
> new set of HDIV custom tags for every new version of Struts2. This does not 
> happen to the HDIV core and web filter, as they are no intrusive extensions.
> This problem arises because there isn't a clear extension point of the 
> Struts2´s custom tags that will make possible a clear extension of the 
> component's behaviour without having to create a new version of it.
> Consecuently, it is necessary to create a new version of HDIV's custom tags 
> for Struts2 each time a new version of the framework is released.
> Also there is the risk that the behaviour of the Struts2's custom tags may 
> change in the future and become not compatible with HDIV.
> The objective of this new feature is to have an official integration between 
> HDIV and Struts2 that eliminates the maintenance cost that exists today for 
> new versions of Struts2. This integration will provide an integrated and 
> compatible solution even for future versions of both frameworks.
> In order to get this purpose, we propose the creation of a Java interface or 
> contract that will be used by Struts2's custom tags. With this extension 
> point it will no longer be necessary to create specific Struts2 custom tags 
> for HDIV, reducing the integration task to only implementing the interface.
> I have attached an interface proposal (RequestDataValueProcessor). Struts2 
> tags should use this new interface in order to avoid tags extension.
> HDIV needs to process all urls sent to the client and needs to intercept 
> redirects. Currently we extend Struts2 default ActionMapper, 
> ServletRedirectResult, ServletActionRedirectResult and 
> ServletActionRedirectResult. Struts2 should use the new interface in order to 
> avoid these extensions.
> At this moment, we are finishing HDIV for Struts2 (2.2.3.1), extending all 
> tags as in the older releases. In a few days we will publish it and it can be 
> the starting point to implement a new version of Struts2 using the proposed 
> new interface.
> IMPORTANT NOTES
> -----------------------------
> 1. Some time ago we spoke with Struts1 people team and they opened a 
> discussion for this integration: http://wiki.apache.org/struts/HDIV
> 2. Other web frameworks like Spring MVC have been created a extension point 
> like we are proposing here and a few weeks ago they have been integrated in 
> the last version (3.1 RC1). You can see it here: 
> https://jira.springsource.org/browse/SPR-7943

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to