jOOX Release notes ------------------ For an overview, see also http://code.google.com/p/joox/issues/list Version 1.1.0 ================================================================= In this minor release, jOOX has added a couple of new, useful methods to Match. See the list below for details Features and improvements ------------------------- #29 - Allow for converting date time types from .text(), .texts(), .attr(), .attrs() #31 - Add support for storing/streaming the underlying document back to a File, Stream, Writer #83 - Overload $ with JOOX.$(URL) and JOOX.$(URI) for convenience #84 - Add support for the DOM Document.renameNode() method -> Match.rename(String) #85 - Add Match.isNotEmpty() method #87 - Add Match convenience method to prevent errors when coding $($(match)) #89 - Add JOOX.matchText(String), JOOX.matchTag(String) to allow for using regular expressions #90 - Add Match.matchText(String) and Match.matchTag(String) #94 - Add Match.leaf() to reduce matched elements to leaf elements #97 - Add Match.wrap() and unwrap() methods Bug fixes --------- #95 - Bad generated XPath for CSS selectors with combinators, when not applied to root node Version 1.0.0 ================================================================= This is the first "official" release of jOOX. All strategic XML API's are now supported by jOOX. These include: - Support for marshalling / unmarshalling JAXB annotated objects - Support for XPath parameters / variables - Support for XPath extension namespace / functions as provided by http://exslt.org - Support for XSL transformation - Support for css-style selectors for XML navigation Features and improvements ------------------------- #2 - Enhance selector support in Match.find(String) to support css-style selectors #28 - Allow for converting array types from .text(), .texts(), .attr(), .attrs() #53 - Add support for primitive type conversion in JOOX.convert() #55 - Add Match.content(Object) and take arbitrary JAXB annotated objects as content #58 - Add support for parameters in XPath: Match.xpath(String, Object...) #61 - Add support for Xalan's namespaces in XPath, such as dyn, math, set, etc. #64 - Add Match.transform(Transformer) for simple XSLT transformation #69 - Add Mapper JOOX.paths() to return non-unique XPath expressions describing the path of every matched element #79 - Add JOOX.$(), a no-args constructor for creating empty documents #80 - Add FastFilter attr(String, String...) to filter for attribute values Bug fixes --------- #54 - NullPointerException when providing null content #62 - Match.xpath() renders wrong indexes for heterogeneous siblings #65 - Error when wrapped String starts with processing instruction: $("") Version 0.9.4 ================================================================= Features and improvements ------------------------- #15 - Allow for marshalling / unmarshalling JAXB objects #48 - Add JOOX.$(Node) #49 - Add JOOX.$(Context) as a convenience method for JOOX.$(Context.match()) #52 - Add JOOX.$(NodeList) as a convenience Bug fixes --------- #50 - Avoid NumberFormatException in text(Class) if an element is empty. Return null instead Version 0.9.3 ================================================================= Features and improvements ------------------------- #32 - Add Match.andSelf() to add the previous Match to the new Match #37 - Add Match.each() to return a List containing every matched element as its own Match #38 - Add Match.reverse() to reverse the order of matched elements #39 - Add Match.child(String) to find the first child matching a tag name Performance improvements ------------------------ #40 - Avoid constructing new Filter objects in all(), none(), even(), etc. #41 - Bad performance on Match.has(...) methods #42 - Avoid calling size() several times during iterations #44 - Don't return Collections.unmodifiableList() from Match.get() #45 - Match.get(int) should not try { } catch ( IndexOutOfBoundsException e) to access elements. Do the calculations instead #46 - Bad performance on Match.find(...) methods #47 - Avoid calling methods in for loops, especially NodeList.getLength() Version 0.9.2 ================================================================= Features and improvements ------------------------- #1 - Add XPath support #5 - Use jOOQ's type conversion methods to add more convenience in .text(), .texts(), .attr(), .attrs() - for numeric and boolean types #14 - Document index behaviour for call-backs #19 - Allow for negative indexes in .eq() #22 - Enhance .eq(int...) to accept several indexes #25 - Implement Match.equals() and Match.hashCode() #27 - Add $(InputStream), $(InputSource), $(File), and others to load XML from resources #30 - Add Match.document() to retrieve the underlying document from a Match object #33 - Add $(Reader) #34 - Add Context.matchSize() and Context.elementSize() API changes (backwards-incompatible) ------------------------------------ #26 - Change API for callback types Each, Content, Filter, Mapper to receive a general Context type, instead of index and Element Version 0.9.1 ================================================================= Features and improvements ------------------------- #4 - Allow for the creation of elements #10 - Add index filters and access-by-index for .children(), .texts(), .contents(), .tags(), .ids() #11 - Add access-by-index to .text(), .content(), .child() #13 - Add filter JOOX.at(int...) to filter for indexes #20 - Add Match.isEmpty() #21 - Add convenience method to get all XPath's of matched elements API changes (backwards-incompatible) ------------------------------------ #3 - Rename static factory method joox() to $() #23 - Rename X into Match Version 0.9.0 ================================================================= This is the initial release providing basic functionality. The most important parts of the jQuery API are ported to Java. Selectors only match tag names