1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335
|
<?xml version="1.0"?>
<document url="http://jaxen.codehaus.org/status.xml">
<properties>
<author email="bob.mcwhirter@redhat.com">bob mcwhirter</author>
<title>Status</title>
</properties>
<body>
<section name="Change History">
<section name="Jaxen 1.1.5">
<p>
Jaxen 1.1.6 fixes several bugs in the handling of IEEE-754 -0.
</p>
</section>
<section name="Jaxen 1.1.5">
<p>
Jaxen 1.1.5 is now compatible with Maven 3, and has a significantly reduced dependency tree when built with Maven 3. It also fixes one very remote bug in
boolean-to-number conversion that has probably never showed up in practice.
</p>
</section>
<section name="Jaxen 1.1.4">
<p>
Jaxen 1.1.4 is now compatible with Java 7. It also fixes several bugs involving namespace nodes, and variable and function bindings
in the presence of the default namespace.
</p>
</section>
<section name="Jaxen 1.1.3">
<p>
Jaxen 1.1.3 fixes one bug involving non-element nodes and relational operators.
</p>
</section>
<section name="Jaxen 1.1.2">
<p>
Jaxen 1.1.2 fixes a few assorted minor bugs.
</p>
</section>
<section name="Jaxen 1.1.1">
<p>
Jaxen 1.1.1 fixes a number of minor bugs.
</p>
</section>
<section name="Jaxen 1.1.1">
<p>
Jaxen 1.1.1 fixes a number of minor bugs.
</p>
</section>
<section name="Jaxen 1.1">
<p>
Aside from the version number, 1.1 is identical to beta 12.
</p>
</section>
<section name="Jaxen 1.1 Beta 12">
<p>
Beta 12 contains a few small bug fixes including the removal of
an unintentional Java 5 dependence, some more API documentation,
a few small API changes (<code>getIterableAxis</code> now throws
an exception rather than returning null on a bad axis constant;
<code>getOperator</code> has been pulled up into <code>BinaryExpr</code>
rather than its subclasses) and two major API changes:
</p>
<ul>
<li>
The <code>Visitor</code> interface, <code>VisitorSupport</code> class,
<code>XPath2XMLVisitor</code> class, and associated methods
have been deleted because they were undocumented, untested, and
were tightly coupled to the underlying implementation.
They may return in the future if there's demand and
<em>if someone volunteers to do or pay for the necessary work</em>
to bring them up to the standards of the rest of the code base.
</li>
<li>
The <code>matrix-concat</code> extension function has been removed
because its license status was unclear, the originator could not be contacted,
and it was undocumented and untested. If someone cares to reimplement it,
it could be restored in the future.
</li>
</ul>
</section>
<section name="Jaxen 1.1 Beta 11">
<p>
The primary impetus for beta 11 was fixing the build process so it once again generates source bundles.
A couple of small, almost cosmetic, bugs were also fixed.
If you haven't noticed any problems with beta 10, you can safely skip this iteration.
</p>
</section>
<section name="Jaxen 1.1 Beta 10">
<p>
Beta 10 fixes an assortment of small issues.
</p>
</section>
<section name="Jaxen 1.1 Beta 9">
<p>
Beta 9 contains some small optimizations,
improvements to the documentation, and minor bug fixes.
The license should now be the same across all the files.
</p>
</section>
<section name="Jaxen 1.1 Beta 8">
<p>Beta 8 fixes a couple of bugs in XPath evaluation
and optimizes the code in several places.
The test suite has been expanded.
</p>
</section>
<section name="Jaxen 1.1 Beta 7">
<p>Beta 7 fixes a number of important bugs, especially
involving operator associativity, the <code>string</code> and <code>substring</code>
functions, and the dom4j navigator. The various root exception classes
(<code>JaxenException</code>, <code>JaxenRuntimeException</code>, and <code>SAXPathException</code>)
and all their subclasses now support Java 1.4 exception chaining even in 1.3 and earlier VMs.
The DOM navigator should compile and run in both Java 1.4 and 1.5 (i.e. DOM level 2 and
DOM Level 3). Namespace handling in DOM is more accurate.
Paths can be begin with parenthesized steps like (//foo)/x.
Beta 7 also features a reorganized, more modular
test suite and expanded and improved API documentation.
</p>
</section>
<section name="Jaxen 1.1 Beta 6">
<p>Beta 6 makes a few small bug fixes and code clean ups, including
removing an unintended dependence on Java 1.4.
Most importantly it removes a file
(<code>IdentityHashMap</code>) that we do not have the right to redistribute.
All prior betas of Jaxen 1.1 should be considered tainted,
and not redistributed in any way. If your project uses
an earlier version, please remove it
and replace it with beta 6. Jaxen 1.0 is <strong>not</strong>
affected by any of this.
</p>
</section>
<section name="Jaxen 1.1 Beta 5">
<p>Beta 5 makes a few small bug fixes and code clean ups, especially
in the DOM navigator. It also restores some test files that were inadvertently
left out of the Beta 4 distribution.
</p>
</section>
<section name="Jaxen 1.1 Beta 4">
<p>1.1 is a major upgrade that significantly improves Jaxen's conformance to the
underlying XPath specs. Even though it's officially a beta, it is a vast
improvement over 1.0, and all users are strongly encouraged to upgrade.
With a few small exceptions (e.g. the the document() function
has moved to the org.jaxen.function.xslt package and
the ElectricXML navigator has been deleted) it is backwards compatible
with code written to the 1.0 APIs.
</p>
<p>The lang() function is now supported.</p>
<p>All queries return nodes in the correct document order, without exception. </p>
<p> ancestor::* and ancestor-or-self::* axes no longer include the document node</p>
<p> NaN is handled properly.</p>
<p> The mod operator works on floating point numbers.</p>
<p>Navigators are now included for <a href="http://www.xom.nu">XOM</a>, HTML DOM, and JavaBeans. These are experimental and may not be included in the final release.
</p>
</section>
<section name="Jaxen 1.0 FCS">
<p>Applied patch submitted by Shawn Bayern to fix the booleanValueOf() method.
</p>
<p>Added licenses to each source file and a proper manifest to the build at last ;-).
</p>
</section>
<section name="Jaxen 1.0 RC1">
<p>There is now an XPath interface in the org.jaxen package to represent any XPath implementation.
So this means that the XPath API of Jaxen is now polymorphic, the same interface can work with
any model.
</p>
<p>
This now means that the org.jaxen.* package represents a purely interface based API to any XPath
engine. So it should be possible to implement XPath, FunctionContext, NamespaceContext, VariableContext
on any XPath engine if so desired.
</p>
<p>The XPath implementation for each model has now got a fully qualified class name.
The following code describes how to instantiate an XPath object for each model.
<pre>
// for DOM
XPath xpath = new DOMXPath( "//foo" );
// for dom4j
XPath xpath = new Dom4jXPath( "//foo" );
// for JDOM
XPath xpath = new JDOMXPath( "//foo" );
</pre>
</p>
<p>The XPath.valueOf() method is now deprecated, XPath.stringValueOf() should be used instead.
</p>
<p>Added new extension functions kindly provided by Mark Wilson. They are as follows...
<ul>
<li>upper-case() - converts the first argument to an upper case string using either the default Locale or the Locale specified by the second parameter</li>
<li>lower-case() - converts the first argument to a lower case string using either the default Locale or the Locale specified by the second parameter</li>
<li>ends-with() - evaluates true if the first string ends with the postfix</li>
</ul>
<p>Locales can be specified either using a variable which is a Locale object or using an xml:lang style string
which specifies the Locale via a language together with an optional country and variant such as 'fr', 'fr-CA' or 'es-ES-Traditional_WIN'.
e.g.
</p>
<pre>
upper-case( @foo, $myLocale )
upper-case( /foo/bar, 'fr' )
lower-case( foo, 'fr-CA' )
upper-case( @foo, 'es-ES-Traditional_WIN' )
</pre>
</p>
<p>The translate() function is now implemented - thanks to Jan for that!
</p>
<p>Some auxiliary implementation detail changes, which shouldn't affect the public API in any way are as follows
<ul>
<li>The org.jaxen.JaXPath class has been removed. Now that we have an org.jaxen.XPath interface it's no longer required.</li>
<li>The org.jaxen.expr.XPath class has been renamed to org.jaxen.expr.XPathExpr to avoid confusion and to use a more consistent name.
Similarly the DefaultXPath class has been renamed to DefaultXPathExpr as well.</li>
<li>The very confusing jaSelect*() methods have gone from JaXPath and BaseXPath. All evaluation methods can take a Context object, null, a node or a node set.</li>
</ul>
</p>
</section>
<section name="Jaxen 1.0 beta 8">
<p>
Initial beta development cycle. Please see
CVS changelogs for up-to-date list of changes.
</p>
</section>
<section name="To Do List">
<ul>
<li>Implement a GenericXPath which could use reflection on the nodes passed into it to
choose the Navigator to use. So the same GenericXPath instance could be used
to evaluate XPaths on any object. This feature would be particularly useful
in <a href="http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html">JSTL</a>
since it would allow web developers to mix and match any
all XML models.
</li>
<li>Jaxen is already pretty
<a href="http://dom4j.org/benchmarks/xpath/index.html">fast</a>,
but we are sure it could use some more tuning.
</li>
<li>selectSingleNode() and possibly the *ValueOf() methods should be return-fast
as a performance improvement.
For example selectSingleNode( "//foo" ) on a document with lots of <foo/>
elements would actually create a full node-set of results then extract the first
element - rather than just returning as soon as the first one is found.
</li>
<li>Better user guides and examples!
</li>
<li>Any Locale specific functions, such as <code>upper-case()</code>
and <code>lowercase-case()</code> could well follow the example of
<a href="http://www.w3.org/TR/xquery-operators/#func-upper-case">XSLT 2.0</a>
by using the <a href="http://www.unicode.org/unicode/reports/tr21/">Unicode case mappings</a>
</li>
</ul>
</section>
<section name="Known problems">
<ul>
<li><code>id()</code> function is not implemented for most models, though it works fine for W3C DOM.</li>
</ul>
</section>
</section>
</body>
</document>
|