360 likes | 460 Views
Struts: An Insiders View. October 2004. Abstract.
E N D
Struts: An Insiders View October 2004
Abstract Struts 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 decisions • Where we are going • Were we came from • JSF: Friend or foe?
How to be an insider • Follow the mailing list • Inspect the code • No hidden forums or closed meetings • Everything that happens, happens on the list.
Who makes the decisions • Mailing lists are public • One closed list for project management (not development) • Struts is owned by the Apache Software Foundation • ASF is run by a Board of Directors • Directors are elected by Members (like me) • Board delegates to Vice President and PMC • Each project has its own PMC
Who makes the decisions • User: Anyone who uses the product • Developer: Anyone who helps • Committer: Anyone with write access • PMC Member: Committers with binding votes
Who makes the decisions • Why not count all the votes? • The ASF is a meritocracy • Them 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.24 • Struts 1.1 – Release candidate scheme • Struts 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 scheme • Major.minor.milestone • Alpha • Beta • General Availability • Vote to promote or demote
Where we are going • Struts 1.2.4 • Some new features • Better module support • ValidWhen, other enhancements • Wildcard mappings • Cancel handlers • Removes deprecations to date
Where are we going • Struts 1.2.4 triggers • Moving version control to Subversion • Building with Maven • Divvying Struts into subprojects • Adding new subprojects • Struts Chain Request Processor
Where are we going • Version control enables collaboration • Subversion - “compelling replacement” • Directory renames • Global revision number and log entry • Efficient handling of binary files • Most current CVS features • Servers for Unix, Windows, and Apache HTTP
Where we are going • Subversion: Why not? • IDE Tools • Inertia • wush.net • Low cost, high quality host • Struts, iBATIS, private projects
Where we are going • Building with Apache Maven • Project management and comprehension • Project infrastructure • Stock suite of reports • Documentation plugin • Acquires and shares JARs • Likes fine-grained artifacts
Where are are going • Divvying Struts into subprojects • struts-core • struts-el • struts-faces • struts-site • struts-taglib
Where we are going • Divvying Struts into subprojects • Apps folder • struts-blank • struts-examples • struts-mailreader • struts-tiles-examples
Where we are going • Adding new subprojects • struts-control-flow • Cocoon’s Control Flow • struts-scripting • Perl, Python, Ruby, JavaScript, et al. • Both available now at struts.sf.net
Where we are going • Struts 1.3 • Servlet 2.3 and JSP 1.2 • Struts-Chain • Portlet Support (JSR 162)
Where we are going • Servlet 2.3 and JSP 1.2 • Preferred platform • Needed for enhancements • Need for Portlets and JSF
Where we are going • Struts-Chain • Struts 1.1 Request Process pluggable • Struts 1.3 Request Processor configurable • Commons Chain of Responsibility • Can be used for business logic
Where we are going • Portlet Support (JSR 168) • Sub-applications into portal application • Apache Jetspeed • Alternate catalog for Request Processor
Where we are going • Struts Next Generation • Request Processor • Action/View Context • Form Context
Where are we going • Form context • <struts:contextForm readonly=“false” /> • <struts:contextForm readonly=“true” />
Where we are going • Struts Next Generation • Request Processor • Action/View Context • Form Context • Testability
Where did Struts come from? • The Problem with JSP by Jason Hunter • Craig scratched an itch • A framework was born
Where did Struts come from • Why is Struts successful? • Helpful mailing list • JavaDocs • Extensible architecture • Linkage with Tomcat and Sun
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 JavaBean • Capture input back to a JavaBean • Call a Java method to process the JavaBean
JSF: Friend or Foe? • JSF uses POJO • Struts uses ActionForms/Action • JSF uses a rich component model • Struts uses a simple value model
JSF: Friend or Foe • JSF 1.0 == Struts 1.0 • No Tiles • No 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 Library • JSF front end • Struts back end