What's New in Apache Struts 1.2€¦ · • Peter Pilgrim develops Struts application since 2001...
Transcript of What's New in Apache Struts 1.2€¦ · • Peter Pilgrim develops Struts application since 2001...
www.javapolis.com
www.javapolis.com
What's New in Apache Struts 1.2.8 and 1.3 Dev?
A JAVAWUG Talk
Peter A. Pilgrim
J2EE DeveloperIT Contractor
www.javapolis.com
Overall Presentation Goal
Apache Struts is still a viable technology with a great
community and a fine future!
www.javapolis.com
Speaker’s Qualifications
• Peter Pilgrim develops Struts application since 2001 for top investment banks in London, UK
• Written articles for TheServerSide.com
• Integrated Struts 1.2 into Expresso Framework
• Founded and currently organise the London base JAVAWUG
• BSc Sci (Hons) Scientific Computing
www.javapolis.com
An Observation
• “Remember Rickard Őberg initially created WebWork to fix some of the design-
deficiencies with [Apache] Struts”
www.javapolis.com
Struts Community
• Leading MVC Model 2 Web Framework
• The People, The Companies, The Investment
• Healthy Downloads ≈ 15000 copies / month
• Cross pollination into other FOSS
• Books, Literature
• Tool Support, IDE Vendors
www.javapolis.com
Struts 1.2.8
• Supports Commons Validator 1.1.4
• Upgrade Commons Validator 1.2 optional
• ActionError is deprecated, use ActionMessage
• RequestUtils deprecated, use TagUtils
• Upgrade Commons BeanUtils to support LazyDynaBeans
• Fixes for XSS Vulnerabilties
• ActionServlet Init Parameters move to Struts-Config.xml
www.javapolis.com
Struts 1.3
• Realignment to Action-Oriented Framework
• Baseline Servlet 2.3 / JSP 1.2
• Integration of Commons Chains
• ComposableRequestProcessor
• Devolution of Struts Tiles to Standalone
• Devolution of Struts Taglibs to separate JARs
• Subprojects: Scripting, EL, Flow, JSP Taglibs, Tiles
www.javapolis.com
Great Debate Struts 2.0
• We, now, have legacy Java!
• Shale? No. Only built on JSF
• Struts Jericho abandoned to /dev/null
• Struggle with Change vs Backward Compatibility
• Productivity advances – Ruby-on-Rails
• Struts Titanium is the latest idea
www.javapolis.com
Struts Titanium
• Real-world example of consolidation
• Struts has great community and support
• WebWork implemented “Actions” correctly
• Architecture will be WebWork 2.2 lower levels
• Struts 1.x compatibility layer for migration
• Introduce Request Processor and CoR
• Rejuvenate Action-Oriented Framework with productivity gains and intelligent defaulting
www.javapolis.com
Struts Ti Gains from WebWork
• WebWork documentation improved
• Focus on a ServletActionContext instead
• Better support for IoC instantiation of actions
• Additional extensions through WW Interceptors
• Better Type Conversion
• Better Custom Tags by using OGNL expressions
www.javapolis.com
If You Only Remember One Thing…
Struts 1.3 is not Struts 0.5 and neither is Java 5 not Java 1.0.
Progress is inevitable fact of change.
www.javapolis.com
Struts 2.0 Architecture
• A1 ApacheStruts 2.x
WebWork 2.2
Struts Ti
CompatibilityLayer
www.javapolis.com
Q&A
www.javapolis.com
References
• Apache Struts http://struts.apache.org
• Statistics http://people.apache.org/~vgritsenko/stats/projects/struts
• Upgrade to 1.2 http://wiki.apache.org/struts/StrutsUpgrade
• Upgrade to 1.3 http://wiki.apache.org/struts/StrutsUpgradeNotes12to13
• Clarity Initiative http://opensource2.atlassian.com/confluence/oss/display/WAG/Clarity
• Java Web Alignment Group http://opensource2.atlassian.com/confluence/oss/display/WAG/Home
• Struts SubProjects http://struts.apache.org/projects-overview.html
• Struts Jericho http://wiki.apache.org/struts/StrutsJericho
• Struts Ti https://www.twdata.org/projects/struts-ti
• Struts versus Ruby-on-Rails http://www-128.ibm.com/developerworks/java/library/wa-rubyonrails/index.html
www.javapolis.com
References Continued
• Struts merging with WebWork to become Struts Ti http://www.theserverside.com/news/thread.tss?thread_id=37794
• WebWork http://www.opensymphony.com/webwork/
• Xwork http://www.opensymphony.com/xwork/
• Commons Chain http://jakarta.apache.org/commons/chain/
• Beehive http://beehive.apache.org/
www.javapolis.com