sanders 01/04/16 16:05:56 Modified: digester PROPOSAL.html Log: Updated proposal so that it matches from mailing list. Revision Changes Path 1.2 +54 -73 jakarta-commons-sandbox/digester/PROPOSAL.html Index: PROPOSAL.html =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/digester/PROPOSAL.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PROPOSAL.html 2001/04/16 21:35:10 1.1 +++ PROPOSAL.html 2001/04/16 23:05:55 1.2 @@ -1,79 +1,51 @@ <html> <head> -<title>Proposal for BeanUtils Package</title> +<title>Proposal for Digester Package</title> </head> <body bgcolor="white"> <div align="center"> -<h1>Proposal for <em>BeanUtils</em> Package</h1> +<h1>Proposal for <em>Digester</em> Package</h1> </div> <h3>(0) Rationale</h3> -<p>Most Java developers are used to creating Java classes that conform to the -JavaBeans naming patterns for property getters and setters. It is natural to -then access these methods directly, using calls to the corresponding -<code>getXxx</code> and <code>setXxx</code> methods. However, there are some -occasions where dynamic access to Java object properties (without compiled-in -knowledge of the property getter and setter methods to be called) is needed. -Example use cases include:</p> -<ul> -<li>Building scripting languages that interact with the Java object model - (such as the Bean Scripting Framework).</li> -<li>Building template language processors for web presentation and similar - uses (such as JSP or Velocity).</li> -<li>Building custom tag libraries for JSP and XSP environments (such as Jakarta - Taglibs, Struts, Cocoon).</li> -<li>Consuming XML-based configuration resources (such as Ant build scripts, web - application deployment descriptors, Tomcat's <code>server.xml</code> - file).</li> -</ul> - -<p>The Java language provides <em>Reflection</em> and <em>Introspection</em> -APIs (see the <code>java.lang.reflect</code> and <code>java.beans</code> -packages in the JDK Javadocs). However, these APIs can be quite complex to -understand and utilize. The proposed <em>BeanUtils</em> component provides -easy-to-use wrappers around these capabilities.</p> +<p>Many Jakarta products read XML configuration files to provide +initialization of various Java objects within the system. +</p> + +<p>There are several ways of doing this now spread across various Jakarta +projects which could all be moved toward a common implementation. +</p> + +<p>A Commons package would give committers an opportunity to coordinate +their efforts to create and maintain a efficient, feature-rich package +under the ASF license. +</p> - <h3>(1) Scope of the Package</h3> - -<p>This proposal is to create a package of Java utility methods for accessing -and modifying the properties of arbitrary JavaBeans. No dependencies outside -of the JDK are required, so the use of this package is very lightweight.</p> - -<p>In addition to wrapping the reflection and introspection APIs of the -standard JDK, <em>BeanUtils</em> components shall support a syntax for directly -accessing <strong>nested</strong> and <strong>indexed</strong> properties, in a -manner that will be familar to users of scripting languages like JavaScript. -For example, the following property accessor expressions are supported:</p> -<ul> -<li><strong>customer</strong> - Equivalent to <code>getCustomer()</code>.</li> -<li><strong>customer.address</strong> - Equivalent to - <code>getCustomer().getAddress()</code>.</li> -<li><strong>customer.address[2].street</strong> - Equivalent to - <code>getCustomer().getAddress(2).getStreet()</code> (access to indexed - properties also works if the underlying property is an array rather than - providing indexed getter and setter methods).</li> -</ul> +<p>The <em>Digester</em> project shall create and maintain a XML -> Java +object mapping package written in the Java language to be distributed +under the ASF license. <h3>(1.5) Interaction With Other Packages</h3> - -<p><em>BeanUtils</em> relies only on standard JDK 1.2 (or later) APIs for -production deployment. It utilizes the JUnit unit testing framework for -developing and executing unit tests, but this is of interest only to -developers of the component. BeanUtils will also be a dependency for -several future proposed components for the Jakarta Commons subproject.</li> -<p>No external configuration files are utilized.</p> +<p><em>Digester</em> relies on: +</p> +<ul> + <li>Java Development Kit (Version 1.2 or later)</li> + <li>A JAXP 1.1 implementation</li> + <li>A SAX 2.0 parser conforming to the JAXP 1.1 APIs</li> + <li>BeanUtils from Commons - for instrospection information</li> + <li>Collections from Commons - for ArrayStack</li> +</ul> <h3>(2) Initial Source of the Package</h3> -<p>The three original Java classes (<code>BeanUtils</code>, -<code>ConvertUtils</code>, and <code>PropertyUtils</code>) are an integral -part of the <a href="http://jakarta.apache.org/struts">Struts Framework</a>. +<p>The initial codebase are an integral part of the +<a href="http://jakarta.apache.org/struts">Struts Framework</a>. However, they have very few dependencies on other aspects of Struts, and those dependencies have been removed in the proposed code base. Once accepted and released as a Jakarta Commons component, Struts will @@ -81,33 +53,42 @@ versions will be deprecated.</p> <p>The proposed package name for the new component is -<code>org.apache.commons.beanutils</code>.</p> +org.apache.commons.digester. +</p> +<h3>(3) Required Jakarta-Commons Resources</h3> -<h3>(3) Required Jakarta-Commons Resources</h3> - <ul> -<li>CVS Repository - New directory <code>beanutils</code> in the - <code>jakarta-commons</code> CVS repository. All initial committers - are already committers on <code>jakarta-commons</code>, so no - additional user setups are required.</li> + +<li>CVS Repository - New directory <code>digester</code> in the +<code>jakarta-commons</code> CVS repository.</li> + +<li>Initial Committers - Most of the initial commiters are already +committers on jakarta-commons,so the only addition is for user id sanders.</li> + <li>Mailing List - Discussions will take place on the general - <em>[EMAIL PROTECTED]</em> mailing list. To help - list subscribers identify messages of interest, it is suggested that - the message subject of messages about this component be prefixed with - [BeanUtils].</li> -<li>Bugzilla - New component "BeanUtils" under the "Commons" product - category, with appropriate version identifiers as needed.</li> -<li>Jyve FAQ - New category "commons-beanutils" (when available). +<em>[EMAIL PROTECTED]</em> mailing list. To help list +subscribers identify messages of interest, it is suggested that the +message subject of messages about this component be prefixed with +[Digester].</li> + +<li>Bugzilla - New component "Digester" under the "Commons" product +category, with appropriate version identifiers as needed.</li> + +<li>Jyve FAQ - New category "commons-digester" (when available).</li> </ul> <h3>(4) Initial Committers</h3> - -<p>The initial committers on the BeanUtils component shall be Craig -McClanahan and Geir Magnusson Jr.</p> +<p>The initial committers on the Digester component shall be:</p> +<ul> + <li>Geir Magnusson Jr.</li> + <li>Craig R. McClanahan</li> + <li>Scott Sanders</li> + <li>Rodney Waldhoff</li> +</ul> </body> </html>
