So what do you think Shawn?  Care to join us on sf.net?


--
James Mitchell
Web Developer/Struts Evangelist
http://www.microsoft.com/struts/



> -----Original Message-----
> From: Ted Husted [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, February 27, 2003 7:06 PM
> To: Struts Developers List
> Subject: Re: Contributions
> 
> 
> Yes, if Shawn wanted to develop these packages through the 
> SourceForge 
> site, that would be a good way to get the code out where the 
> Community 
> could use. All we would need is his SF ID.
> 
> I've actually been wondering whether we should use the 
> SourceForge site 
> like our "sandbox". A real benefit of keeping a 
> sandbox/dev.contrib area 
> in a non-Apache CVS is that people can participate without 
> going through 
> the Apache Committer guantlet.
> 
> There are a number of very good packages out there right now, like 
> struts-layout and struts-menu, that are not getting the 
> attention they 
> deserve. I'd like to start upgrading the SourceForge site so 
> that we can 
> attract more of these packages, and make them 
> community-developed resources.
> 
> As it stands, I'm giving any developer with a working product 
> all rights 
> except admin. Admin status on the SF site is open to any interested 
> Struts Committer.
> 
> -Ted.
> 
> 
> James Mitchell wrote:
> > Sounds like some candidates for sf.net/struts, what do you 
> think Ted?
> > 
> > 
> > 
> > --
> > James Mitchell
> > Web Developer/Struts Evangelist
> > http://www.apache.org/struts/
> > 
> > 
> > 
> > 
> >>-----Original Message-----
> >>From: Shawn Hainsworth [mailto:[EMAIL PROTECTED] 
> >>Sent: Thursday, February 27, 2003 12:57 PM
> >>To: [EMAIL PROTECTED] Apache. Org
> >>Subject: Contributions
> >>
> >>
> >>I have made a number of extensions to Struts, some trivial and some
> >>non-trivial, which I am interested in contributing.  The 
> >>extensions are:
> >>
> >>/* ---- TRIVIAL EXTENSIONS ---- */
> >>
> >>1) HashedDynaActionForm
> >>* This class modifies the basic DynaActionForm by creating a
> >><code>HashMap</code> of
> >>* dynaValues. DynaActionForms are made active by calling the 
> >>setCurrent
> >>method.
> >>* Deep cloning is available for the hashed DynaActionForm values
> >>
> >>2) PersistentDynaActionForm (HashedDynaActionForm extends
> >>PersistentDynaActionForm)
> >>* This class modifies the basic DynaActionForm by adding a 
> >>boolean property
> >>which
> >>*  indicates whether or not the reset method will be called.  
> >>Normally, for
> >>every
> >>*  action request, Struts will either instantiate or recycle 
> >>the form bean,
> >>calling
> >>*  the reset method to reset the fields to their default 
> >>values.  In some
> >>cases,
> >>*  it is important to have the values persist between 
> action requests.
> >>
> >>3) DynaPropertyJSPMap
> >>This class generates a mapping between properties in a 
> >>DynaActionForm and
> >>JSP views.  DynaPropertyJSPMap uses a new class PageState and a new
> >>TagSupport extension: ValidatePageStateTag. Useful for 
> >>wizards or complex
> >>forms where the user must move through views in a specific order.
> >>Determining a specific mapping between properties and views 
> >>at run-time
> >>allows us to refine our business rules in a more re-usable manner
> >>
> >>/* --------- NON-TRIVIAL EXTENSIONS ------- */
> >>
> >>4) Validator extension to use Complex Rules, such as Field 
> >>Dependency Rules
> >>and Filter Rules.  Any new kind of complex rule can be added 
> >>to extend the
> >>validator.  For example, if the valid values of one property 
> >>depend on the
> >>current values of another property, this would be a field 
> >>dependency rule.
> >>If someProperty = 10, then someOtherProperty can be between 1 
> >>and 10.  You
> >>can also specify, if someProperty = someReferenceProperty, then
> >>someOtherProperty can be between 10 and 100.  Value checks 
> >>can be combined
> >>using standard boolean operators, and all relational 
> >>operators have been
> >>included, including regular expressions.  Filter Rules apply 
> >>to collections.
> >>For example, let's say I have someCollectionProperty = 
> >>{1,2,3,4,5}.  If
> >>someProperty > 42 then filter the values with some 
> >>pre-defined filter (such
> >>as values > 3 ) and someCollectionProperty will be returned 
> >>as {4,5}. I can
> >>provide a much more detailed description of this along with 
> XML config
> >>files.
> >>
> >>5) A DynaBeanSQLMap framework
> >> * DynaBeanSQLMaps are defined in an XML configuration file.
> >> *
> >> * You can define any number of SQL - DynaBean property maps
> >> * in a single conf file.  For example, if you have a DynaBean
> >> * with data that comes from three different files requiring 5
> >> * different SQL statements, you can define all 5 in this file.
> >> * There is currently one <dynabean-sql-map-set> tag per
> >> * configuration file, although more could be added easily.
> >> * Each <dynabean-sql-map-set> tag as five child nodes:
> >> * <dynabean-populate>, <dynabean-update>, <dynabean-insert>
> >> * <dynabean-delete> and <field-mapping>.  The only one that
> >> * is mandatory is <field-mapping>, but obviously, if there
> >> * are no other SQL_ACTION_TYPES defined, the functionality
> >> * is limited.  However, you can just define a <dynabean-populate>
> >> * tag if there will never be any inserts, updates or deletes.
> >> *
> >> * The populate tag is used to define SQL statements to select
> >> * data and populate dynabean properties.  The update tag is used
> >> * to define SQL statements to update values in the database
> >> * from bean properties, and an insert statement is used to
> >> * define SQL statements to insert a new record into
> >> * the database using values from bean properties.
> >> * The delete statement will delete records based on a key.
> >> *
> >> * Each of these four tags contains any number of <sql-statement>
> >> * tags.  Each <sql-statement> represents a relationship between
> >> * one SQL statement and certain DynaForm properties.  These use
> >> * datasources specified in struts-config.xml
> >> *
> >> * In addition, each of the four tags described above: populate,
> >> * update, insert and delete are given two attributes,
> >> * a name and values-type.  The name is to uniquely identify the
> >> * statement within the tag, and the values-type can be either
> >> * single or collection. Single values are where each field has
> >> * only one value, and Collection values map a Collection property
> >> * in a DynaBean to a Foreign Key dependent relationship in the
> >> * database.
> >> *
> >> * The final tag is a <field-mapping> tag, which defines the
> >> * mapping between the database field name and the dynabean
> >> * property name.
> >> *
> >> * In a Collection value-type, you can only define one field in
> >> * the SELECT statement of the populate SQL.  This is the
> >> * value which will be added to the collection for each
> >> * row returned
> >>
> >>In process:
> >>1) An extenstion to the BeanUtils package of a 
> >>TrueDynaBean/TrueDynaClass,
> >>which can be generated on the fly without having to specify 
> >>properties and
> >>types in advance.  This allows more dynamic DynaActionForms 
> >>which do not
> >>have to be pre-defined in struts-config.xml
> >>
> >>2) A Javascript Menu framework, which will allow XML 
> configuration for
> >>dynamic menu creation, based on the role of the requestor.
> >>
> >>These extensions will require a varying amount of work to be 
> >>contributed to
> >>the framework.  I realize that there is a significant amount of work
> >>involved for established contributors to review contibutions. 
> >> If you are
> >>interested, I can send one of the trivial extension 
> >>initially, so that you
> >>can review the style/quality of the code overall -- or if you are
> >>particularly interested in one of the non-trivial extensions, 
> >>I can prepare
> >>that one for submission.
> >>
> >>Thanks,
> >>
> >>-----------------------------------------
> >>Shawn Hainsworth
> >>854 West 181st Street, #4B
> >>New York, NY 10033
> >>(212) 740-1935
> >>[EMAIL PROTECTED]
> >>
> >>
> >>------------------------------------------------------------
> ---------
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> > 
> > 
> > 
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> 
> 
> -- 
> Ted Husted,
> Struts in Action <http://husted.com/struts/book.html>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to