Proposal for JPath Package
(0) Rationale
In heterogenous techologies like Struts, XML documents are combined with
object graphs consisting of JavaBeans, collections, arrays, maps and primitive
values. In such systems there is a need for a consistent way of referencing
both parts of XML documents and elements of object graphs. XPath
is a powerful language introduced by W3C (XML
Path Language) as a common format for addressing elements of XML documents.
The proposed JPath component provides a mechanism for applying the
same XPath language to generic object graphs.
(1) Scope of the Package
This proposal is to create a package of Java utility methods for accessing
and modifying the elements of arbitrary graphs consisting of JavaBeans,
collections, arrays, maps and primitive values using the XPath syntax.
This package will (at least initially) depend on an external implementation
of an XPath expression processor.
This package augments BeanUtils, which provides a lighter-weight reference
format.
(1.5) Interaction With Other Packages
JPath relies on
-
Java Development Kit (Version 1.2 or later)
-
A JAXP 1.1 implementation
-
An XPath interpreter implementation. Initially the package will only support
the interpreter provided by the Apache Xalan project, but will have an
extensibility mechanism that will allow adding alternative XPath processors
later.
No external configuration files are utilized.
(2) Initial Source of the Package
The original source of the component was donated by PLOTNIX, Inc (www.plotnix.com).
The proposed package names for the new component are
-
org.apache.commons.jpath for the main API package
-
org.apache.commons.jpath.tree for a light-weight DOM-JavaBeans
API adapter
-
org.apache.commons.jpath.xalan for a Xalan XPath interpreter adapter
(3) Required Jakarta-Commons Resources
-
SVN repository - New directory jpath in the jakarta-commons CVS
repository. There is a requirement to setup an additional committer: Dmitri
Plotnikov.
-
Mailing List - Discussions will take place on the general jakarta-commons@jakarta.apache.org
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 [JPath].
-
Bugzilla - New component "JPath" under the "Commons" product category,
with appropriate version identifiers as needed.
-
Jyve FAQ - New category "commons-jpath" (when available).
(4) Initial Committers
The initial committers on the JPath component shall be Dmitri Plotnikov
and James Strachan.