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.