You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Nick Afshartous <af...@iclick.com> on 2000/08/31 14:59:43 UTC
getting involved
Hi Craig,
Am responding to your message in struts-user soliciting help
with the development effort. Currently I don't have much
time but would like start exploring and getting up to speed.
Plus maybe if I had some goals that would make it easier to
make time.
I'm interested in MVC, XML, and JDBC. My background is PL/Compilers
and concurrency.
Please advise on how to proceed, thanks.
--
Nick
From: "Craig R. McClanahan" <Cr...@eng.sun.com>
To: struts-dev@jakarta.apache.org
CC: struts-user@jakarta.apache.org
Subject: Struts TODO List and Future Planning
Date: Sat, 26 Aug 2000 13:13:19 -0700
Dear Struts Folks,
As I have been promising for *way* too long :-(, I spent the morning
today accumulating all of the currently outstanding issues
that people have raised, or enhancements they have suggested, on the
STRUTS-DEV and STRUTS-USER mailing lists. This
list has been checked in to the Struts source code repository as file
"TODO", and is attached below for your convenience.
As we look over this list, several things become immediately obvious:
* A lot of people have made some really good suggestions (and often
proposed patches) that will dramatically improve the functionality
and overall quality of Struts as a framework for building web
applications.
* The scope of Struts, in particular in the breadth of the included
tag library, is starting to cause scalibility issues for people
understanding it all, and could benefit from some refinements
in its organization.
* At the same time, there are some exciting new areas of functionality
(database connection pools, non-HTML forms, XML friendly tags,
just to name a few) that seem to make sense as additional areas
of focus in the framework.
* There is *far* too much good stuff to do here for it to depend on
just one person committing changes to the source base.
What I would like all of us to do is review the list, make sure I
haven't forgotten anything important, and then start agreeing that we
really do want these particular features. Some of them are obvious, but
others will require discussion. Along the way, we might be faced with
choices about breaking backwards compatibility in some places. The goal
of this exercize is to define the features we want to have in an
"official" Struts 1.0 release -- after which, we will want to think much
more carefully about breaking backwards compatibility.
Ideally, I would like to see a 1.0 release that coincides with the
ApacheCon Europe convention in London, which is coming up the fourth
week of October this year (at which time, by the way, I will be talking
about Struts during the "Sun Technical Briefing" session on Monday). In
order to make that possible, I am also hereby soliciting individuals who
would like to participate in the development of Struts by actually
implementing changes and new features that are on the list, with commit
access to the CVS repositories. It would be a shame to see the
development of Struts (continue to) be limited by my own personal
bandwidth. If you are interested, please volunteer yourself on
STRUTS-DEV and we can talk further. The mechanics of the processes we
follow, and the software tools required to access the CVS repository,
are described on the Jakarta web site <http://jakarta.apache.org>.
It has been incredibly exciting (and more than a little humbling) to see
how much attention Struts has gotten in the three months since it was
first announced. It's time to move up to the next step, and get more
people actively involved, to improve the framework for everyone's
benefit.
Craig McClanahan
NOTE: I've posted this message to both STRUTS-DEV and STRUTS-USER to
bring everyone who is interested up to speed, but I'd suggest that
primary discussion of the new features, and their implementation, take
place on the STRUTS-DEV list. Subscribers to this list also
automatically receive email notifications of every new or modified
source file that is checked in to the CVS repository, so it is easy to
stay informed about what is happening with the code base.
====================
See you at ApacheCon Europe <http://www.apachecon.com>!
Session VS01 (23-Oct 13h00-17h00): Sun Technical Briefing
Session T06 (24-Oct 14h00-15h00): Migrating Apache JServ
Applications to Tomcat
$Id: TODO,v 1.3 2000/08/26 19:53:21 craigmcc Exp $
Struts TODO List
================
Application frameworks, like the applications we build with them, never seem
to be completed. The following items have been identified as interesting
projects for the continued development of Struts -- volunteers who wish to help
are welcome, as are additional ideas.
Strategic Directions:
--------------------
- Consider how to make the Struts tag library (especially the form related
tags) more amenable to a WML environment, as well as environments not using
HTTP (and therefore not using HttpServletRequest/HttpServletResponse).
- Think about segregating the various tags into logically divided sublibraries,
with the "struts.tld" library still containing all-in-one for backwards
compatibility. Considerations for separate libraries:
* "form" - <struts:form> and all its related tags
* "i18n" - <struts:message> and other tags specifically related to
internationalization
* "logic" - Logical flow of control tags: conditionals, loops
* "beans" - General access to properties of beans, including
representation of beans and properties as collections
* "template" - The template library contributed by David Geary
MVC Framework [org.apache.struts.action]:
----------------------------------------
- Add an option on the ActionForward construct that supports some sort of
switch across SSL-versus-not access to the same application. For background,
See STRUTS-DEV (06/26/2000) Chris Audley.
- Provide a "standard" set of actions that can be configured into a Struts
application to manage the internal configuration (ActionMappings, etc.) and
possibly to reload configuration information on demand. Consider: new
sub-package org.apache.struts.action.admin? Motivation: STRUTS-DEV
(07/02/2000) Frank Nestel.
- Support a configurable "default" action mapping if none of the other
mappings are triggered. See: STRUTS-DEV (07/02/2000) Frank Nestel.
- Add an additional (optional) validate() method that takes useful contextual
arguments (request?, servlet?). DECISIONS: Break backwards compatibility?
new interface? See: STRUTS-USER (08/01/2000) Chris Audley.
- Configurable option to support calculating a user's Locale (if not already
present in the session) based on incoming HTTP headers. See:
STRUTS-USER (07/02/2000) Robert Edgar, STRUTS-DEV (08/22/2000) Pierre Metras.
- Consider migrating management of action form population out of ActionServlet
and into ActionMapping. Motivation: STRUTS-DEV (08/14/2000)
Vladimir Blagojevic.
- Review how ActionForm beans get initialized. Maybe provide a hook by which
they can be initialized with some context? Motivation: STRUTS-USER
(08/18/2000) Pierre Metras.
- Support configurable standard actions for handling file uploads created by
the <struts:file> tag. See: STRUTS-DEV (08/20/2000) Chris Miller and
follow-ups. Also, STRUTS-USER (07/17/2000) "Re: File uploads support".
- Support a second perform() method on Action that takes ServletRequest and
ServletResponse, for use in non-HTTP environments. STRUTS-DEV
(08/23/2000) Frank Nguyen, and follow-ups.
XML Digester [org.apache.struts.digester]:
-----------------------------------------
- Document typical design patterns for using this package.
JDBC Data Sources [org.apache.struts.jdbc]:
------------------------------------------
- Add a "data source" compatible connection pool, and associated supporting
classes.
- Add tags that make it possible to create "beans" and look up "properties"
from JDBC results sets. (Not very Model-2-ish, but very handy in many
simple cases).
Custom Tag Library [org.apache.struts.taglib]:
---------------------------------------------
Basic "Struts" Tag Library
- Add tags that treat the rows and columns of a JDBC "RowSet" implementation
as beans and properties (from the perspective of other tags in Struts).
- Add capability to generate client-side JavaScript functions for basic
format validations, etc.
- Make the "errors" object returned from validators, and used in the
<struts:errors> tag, more intelligent and extensible. One option:
See STRUTS-DEV (06/25/2000) David Geary, STRUTS-DEV (07/18/2000)
Chris Miller, plus follow-ups.
- Decide on whether to include "else"-type tags on the conditionals, and
what syntax should be supported. See: STRUTS-DEV (06/14/2000) Eduardo
Pelegri-Llopart; STRUTS-DEV (06/26/2000) Frank Nestel.
- Support "image" buttons, and deal with the name.x/name.y submit parameters
that you end up receiving. See: STRUTS-USER (07/17/2000) Alec Bau,
STRUTS-DEV (07/18/2000) Alec Bau.
- Support "custom populators" for converting between internal and string
formats of properties. May generalize into using PropertyEditors.
Proposal: STRUTS-USER (07/18/2000) Pasi Salminen.
- Make <struts:form> smart enough to consult the action mappings to figure
out the attribute name (and class) of the form bean associated with this
form, if "name" is not specified. STRUTS-USER (07/23/2000) Richard
Vowles.
- Improve the mechanism by which you define values and corresponding labels
for <struts:options>. Motivation: STRUTS-DEV (07/27/2000) David
Winterfeldt, STRUTS-DEV (08/02/2000) David Winterfeldt.
- Add conditionals like ifPropertyLessThan (a specified value),
ifPropertyTrue (for booleans), .... Motivation: See also
ifAttributeEquals: STRUTS-DEV (07/27/2000) David Winterfeldt.
- Enhance the form management tags to optionally generate JavaScript code
for client side validation of things like required fields. Background:
STRUTS-DEV (07/27/2000) David Winterfeldt, plus follow-ups.
- Enhance <struts:enumerate> and <struts:iterate>, or provide new tags,
to process parallel collections (such as names and values). At least
support 2 collections, but in general "n" would be better. See
STRUTS-DEV (08/03/2000) Jeff R.
- Modify tags that implement BodyTag to refer to body content ONLY
in doAfterTag(), not in doEndTag(). STRUTS-DEV (08/06/2000) Chris Audley.
- Fix Checkboxes!!! See many notes, including: STRUTS-DEV (08/08/2000)
Jeff R. Also see STRUTS-DEV (08/22/2000) Chris Miller.
- Add "type" attribute on <struts:enumerate> and <struts:iterate> (plus
anywhere else it makes sense) to define the Java class of the object
that is exposed. See: STRUTS-DEV (08/14/2000) Robert Quillen.
- Improve exception handling inside Struts custom tags. Among other things,
encapsulate them as a request attribute to make them visible elsewhere.
See: STRUTS-DEV (08/17,21/2000) Ken Horn and follow-ups.
- Support "disabled" modifier (from HTML 4.0) on relevant tags.
STRUTS-USER (08/23/2000) "Re: A new attribute for struts' button tags".
Templating Tag Library
- Add "templates" tag library contributed by David Geary.
XML Friendly Tag Library
- Add tag(s) like the <xsl:apply> tag in jakarta-taglibs that facilitate
treating XML data as beans, properties, and collections.
Tool Classes [org.apache.struts.tools]:
--------------------------------------
- Create tool for XML-description -> JavaBean generation, especially for
form beans. Possible Basis: STRUTS-DEV (06/01,16/2000) Mark Wutka.
- Create tool that reads a JSP page with a <struts:form> in it, and
generate the Java code for a corresponding form bean.
STRUTS-USER (08/25/2000) Pierre Metras.
Utility Classes [org.apache.struts.util]:
----------------------------------------
- Implement and test the new PropertyUtils class, which supports nested and
indexed access to properties (both getters and setters) with no data type
conversions.
- Modify BeanUtils to utilize the new PropertyUtils support methods.
- Modify BeanUtils to support PropertyEditor-based data conversions between
String and the internal property formats.
- Add a BeanUtils.copyProperties() method that is more sensitive to type
conversions than the PropertyUtils.copyProperties() method is.
- Validate behavior of loading resource bundles when the default locale
is other than en_US. See: STRUTS-DEV (06/21/2000) Craig Randall.
- Support MessageResources capability to reload bundles that have been
updated. Maybe have a switch for auto-reload that is useful during
development? Motivation: STRUTS-DEV (07/24/2000) Chris Miller.
- Make MessageResources an interface with a configurable factory method that
generates instances. Motivation: STRUTS-DEV (07/27/2000) Ignacio
Ortega, STRUTS-DEV (08/11/2000) Ignacio Ortega.
Documentation and Examples:
--------------------------
- Complete the example application used to illustrate Struts principles.
- Write a more comprehensive example of using a Digester to configure a
set of related JavaBeans based on the contents of an arbitrary XML file.
- Convert documentation to XML-based source with an XSLT stylesheet.
- Create and maintain a summary of experiences installing and using
Struts on various container platforms.
- Improve the depth and information in the User's Guide.
- Add an example of a multi-page wizard-type form.
- Update web site information at <http://jakarta.apache.org/struts> to
include all of the relevant documentation.