Download - Struts: An Insiders View
Struts: An Insiders View
October 2004
AbstractStruts is the de facto standard framework
for Java web applications, but where did it come from, and where is it going? Who makes the decisions? What's on the roadmap? How can we help? And what about JavaServer Faces? Friend or foe? This session discusses the "nuts and bolts" of Struts development. Come and see how the sausages are made. :)
Insiders view
Who makes the decisionsWhere we are goingWere we came fromJSF: Friend or foe?
How to be an insider
Follow the mailing listInspect the codeNo hidden forums or closed meetingsEverything that happens, happens on the list.
Who makes the decisions
Mailing lists are publicOne closed list for project management (not development)Struts is owned by the Apache Software Foundation
ASF is run by a Board of DirectorsDirectors are elected by Members (like me)Board delegates to Vice President and PMCEach project has its own PMC
Who makes the decisions
User: Anyone who uses the productDeveloper: Anyone who helpsCommitter: Anyone with write accessPMC Member: Committers with binding votes
Who makes the decisions
Why not count all the votes?The ASF is a meritocracyThem that do the work,
make the decisions.
Who makes the decisions
Action Items Product changes Showstoppers – must fix issues Release Plans Release Grades
Voting flavors +1 -1 +/- 0
Where are we going
Struts 1.1 is superceded by Struts 1.24Struts 1.1 – Release candidate schemeStruts 1.1.0 (beta 1)Struts 1.1.1 (beta 2)Struts 1.1.2 (beta 3)Struts 1.1.3 (release candidate)Struts 1.1.4 (final)
Where we are going
Milestone release schemeMajor.minor.milestoneAlphaBetaGeneral AvailabilityVote to promote or demote
Where we are going
Struts 1.2.4Some new features
Better module supportValidWhen, other enhancementsWildcard mappingsCancel handlers
Removes deprecations to date
Where are we going
Struts 1.2.4 triggersMoving version control to SubversionBuilding with MavenDivvying Struts into subprojectsAdding new subprojectsStruts Chain Request Processor
Where are we going
Version control enables collaborationSubversion - “compelling replacement”Directory renamesGlobal revision number and log entryEfficient handling of binary filesMost current CVS featuresServers for Unix, Windows, and Apache
HTTP
Where we are going
Subversion: Why not? IDE Tools Inertia
wush.netLow cost, high quality hostStruts, iBATIS, private projects
Where we are going
Building with Apache Maven Project management and comprehensionProject infrastructureStock suite of reportsDocumentation plugin
Acquires and shares JARsLikes fine-grained artifacts
Where are are going
Divvying Struts into subprojectsstruts-corestruts-elstruts-facesstruts-sitestruts-taglib
Where we are going
Divvying Struts into subprojectsApps folderstruts-blankstruts-examplesstruts-mailreaderstruts-tiles-examples
Where we are going
Adding new subprojectsstruts-control-flow
Cocoon’s Control Flowstruts-scripting
Perl, Python, Ruby, JavaScript, et al.Both available now at struts.sf.net
Where we are going
Struts 1.3Servlet 2.3 and JSP 1.2Struts-ChainPortlet Support (JSR 162)
Where we are going
Servlet 2.3 and JSP 1.2Preferred platformNeeded for enhancementsNeed for Portlets and JSF
Where we are going
Struts-ChainStruts 1.1 Request Process pluggableStruts 1.3 Request Processor configurableCommons Chain of ResponsibilityCan be used for business logic
Where we are going
Portlet Support (JSR 168)Sub-applications into portal applicationApache JetspeedAlternate catalog for Request Processor
Where we are going
Struts Next GenerationRequest ProcessorAction/View ContextForm Context
Where are we going
Form context<struts:contextForm readonly=“false” /><struts:contextForm readonly=“true” />
Where we are going
Struts Next GenerationRequest ProcessorAction/View ContextForm ContextTestability
Where did Struts come from?
The Problem with JSP by Jason HunterCraig scratched an itchA framework was born
Where did Struts come from
Why is Struts successful?Helpful mailing listJavaDocsExtensible architectureLinkage with Tomcat and Sun
JSF: Friend or Foe?
JSF: Friend or Foe?
Kissing cousins.
JSF: Friend or Foe?
Kissing cousins.JSF is a front controller with a tag library. Populate a control from a JavaBeanCapture input back to a JavaBeanCall a Java method to process the
JavaBean
JSF: Friend or Foe?
JSF uses POJOStruts uses ActionForms/Action
JSF uses a rich component modelStruts uses a simple value model
JSF: Friend or Foe
JSF 1.0 == Struts 1.0No TilesNo Validator
JSF: Friend or Foe
Do you need to migrate to JSF now, because it can do more than Struts?
Will you eventually want to migrate to JSF because it is certain to become better?
JSF: Friend or Foe
Struts-Faces Integration LibraryJSF front end Struts back end
Struts University Series