Apache Commons JXPath 1.4.0 Release Notes
-----------------------------------------
The Apache Commons JXPath team is pleased to announce the release of Apache Commons JXPath 1.4.0.
Introduction
------------
A Java-based implementation of XPath 1.0 that, in addition to XML processing, can inspect/modify Java object graphs (the library's explicit purpose) and even mixed Java/XML structures.
New features and bug fixes.
New features
------------
o JXPATH-123: XPath function "ends-with" is not implemented (although "starts-with" is).
Fixed Bugs
----------
o JXPATH-172: Clarify Javadoc of JXPathContext#getPointer. Thanks to Michele Vivoda.
o JXPATH-113: NullPointerException in ChildContext when document only contains an empty root node. Thanks to Michele Vivoda.
o JXPATH-160: ValueUtils.getValue throws exception with set and index above size. Thanks to Stefan Albrecht, Michele Vivoda, Uwe Barthel.
o JXPATH-162: Concurrency problem for JXPathContextFactory.factoryImplName static field. Thanks to Uwe Barthel.
o JXPATH-141: FunctionLibrary Multithreading issue.
o JXPATH-131: Bean exception handling. Thanks to Gabriel Buades Rubio.
o JXPATH-128: JXPath support for LazyDynaBean is broken. Thanks to Gabriel Buades Rubio.
o JXPATH-129: MethodLookupUtils#matchType uses TypeUtils#canConvert which causes "Ambiguous method call" exception.
o JXPATH-153: Wrong entry IMPORT-PACKAGE in the file MANIFEST.MF for jdom and commons-beanutils.
o JXPATH-153: Change dynamic class loading to consult context class loader. Thanks to John Trimble.
o JXPATH-152: Concurrent access on hashmap of JXPathIntrospector.
o Fix possible NPE in PackageFunctions.getFunction(String, String, Object[]).
o JDOMNodePointer.compareChildNodePointers() now throws IllegalStateException instead of RuntimeException. Thanks to Gary Gregory.
o ValueUtils.setValue() now throws IllegalArgumentException instead of RuntimeException. Thanks to Gary Gregory.
o ClassLoaderUtil.toCanonicalName() now calls Objects.requireNonNull() instead of throwing a RuntimeException. Thanks to Gary Gregory.
o XMLDocumentContainer.XMLDocumentContainer(Source) now calls Objects.requireNonNull() instead of throwing a RuntimeException. Thanks to Gary Gregory.
o [StepSecurity] CI: Harden GitHub Actions #66. Thanks to step-security-bot, Gary Gregory.
o Add missing Javadoc. Thanks to Gary Gregory.
o Fix PMD UnnecessaryFullyQualifiedName. Thanks to Gary Gregory.
o Add generics to JXPathContext.iterate(String). Thanks to Gary Gregory.
o Add generics to JXPathContext.iteratePointers(String). Thanks to Gary Gregory.
o Add generics to JXPathContext.decimalFormats. Thanks to Gary Gregory.
o Migrate tests to JUnit5 #214. Thanks to strangelookingnerd.
o Replace try-catch constructs in tests with assertThrows #215. Thanks to strangelookingnerd, Gary Gregory.
o Use generics internally. Thanks to Gary Gregory.
o NodeSet.getPointers() is now typed with generics. Thanks to Gary Gregory.
o ServletContextHandler.collectPropertyNames(HashSet, Object) is now typed with generics. Thanks to Gary Gregory.
o Deprecate MethodLookupUtils.MethodLookupUtils(). Thanks to Gary Gregory.
o Deprecate KeyManagerUtils.KeyManagerUtils(). Thanks to Gary Gregory.
o Deprecate TypeUtils.TypeUtils(). Thanks to Gary Gregory.
o Deprecate ValueUtils.ValueUtils(). Thanks to Gary Gregory.
o PageScopeContext.getAttributeNames() is now typed with generics. Thanks to Gary Gregory.
o Functions.getUsedNamespaces() is now typed with generics. Thanks to Gary Gregory.
o JXPathException now reuses its superclass' Throwable cause. Thanks to Gary Gregory.
o Bump JXPathException serialVersionUID from 4306409701468017766L to 2L. Thanks to Gary Gregory.
o JXPathContextFactoryConfigurationError now reuses its superclass' Throwable cause. Thanks to Gary Gregory.
o Bump JXPathContextFactoryConfigurationError serialVersionUID from 1L to 2L. Thanks to Gary Gregory.
o Deprecate SimplePathInterpreter.SimplePathInterpreter(). Thanks to Gary Gregory.
o Deprecate JXPathServletContexts.JXPathServletContexts(). Thanks to Gary Gregory.
o Deprecate JXPathIntrospector.JXPathIntrospector(). Thanks to Gary Gregory.
o Deprecate InfoSetUtil.InfoSetUtil(). Thanks to Gary Gregory.
o Deprecate Constants.Constants(). Thanks to Gary Gregory.
o Deprecate Parser.Parser(). Thanks to Gary Gregory.
o JXPathException.JXPathException(Throwable) now remembers its Throwable cause argument. Thanks to Gary Gregory.
o Make the private DOMNodePointer.id field final. Thanks to Gary Gregory.
o Make the private NullPointer.id field final. Thanks to Gary Gregory.
o Make the private NullPointer.qname field final. Thanks to Gary Gregory.
o Make the private JDOMNodePointer.id field final. Thanks to Gary Gregory.
o ExpressionContext.getContextNodeList() now uses generics. Thanks to Gary Gregory.
o BasicTypeConverter.unmodifiableCollection(Collection) now uses generics. Thanks to Gary Gregory.
o Fix PMD AvoidDecimalLiteralsInBigDecimalConstructor in org.apache.commons.jxpath.util.BasicTypeConverter.allocateNumber(Class, double). Thanks to Gary Gregory. PMD.
o org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.iteratePointers(String) now uses generics. Thanks to Gary Gregory.
o org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.iteratePointers(String, Expression) now uses generics. Thanks to Gary Gregory.
o org.apache.commons.jxpath.CompiledExpression.iteratePointers(JXPathContext) now uses generics. Thanks to Gary Gregory.
o org.apache.commons.jxpath.JXPathCompiledExpression.iteratePointers(JXPathContext) now uses generics. Thanks to Gary Gregory.
o org.apache.commons.jxpath.util.ClassLoaderUtil.getClass(ClassLoader, String) now uses generics. Thanks to Gary Gregory.
o org.apache.commons.jxpath.util.ClassLoaderUtil.getClass(ClassLoader, String, boolean) now uses generics. Thanks to Gary Gregory.
o org.apache.commons.jxpath.util.ClassLoaderUtil.getClass(String) now uses generics. Thanks to Gary Gregory.
o org.apache.commons.jxpath.util.ClassLoaderUtil.getClass(String, boolean) now uses generics. Thanks to Gary Gregory.
Changes
-------
o public class org.apache.commons.jxpath.JXPathContextFactoryConfigurationError is Serializable incompatible.
o public abstract class org.apache.commons.jxpath.ri.model.beans.PropertyOwnerPointer is Serializable incompatible.
o public abstract class org.apache.commons.jxpath.ri.model.beans.PropertyPointer is Serializable incompatible.
o public abstract class org.apache.commons.jxpath.ri.model.NodePointer is Serializable incompatible.
o public class org.apache.commons.jxpath.ri.parser.ParseException is Serializable incompatible.
o public class org.apache.commons.jxpath.XMLDocumentContainer is Serializable incompatible.
o Bump commons-parent from 54 to 81 #45, #49, #64, #110, #121, #403, #167, #173, #176, #181, #185, #188, #196. Thanks to Dependabot, Gary Gregory.
o JXPATH-184: Bump Java to 8. Thanks to britter, Gary Gregory.
o Bump JUnit 3.8.1 to 4.13.2. Thanks to britter, Gary Gregory.
o Bump commons-logging from 1.1.1 to 1.3.5 #34, #129, #147, #160, #174. Thanks to Dependabot, Gary Gregory.
o Bump commons-beanutils from 1.8.2 to 1.10.1 #24. Thanks to Dependabot, Gary Gregory.
o Bump taglist-maven-plugin from 2.2 to 3.0.0 #32. Thanks to Dependabot.
o Bump servlet-api from 2.4 to 2.5 #29. Thanks to Dependabot.
o Bump JDOM from jdom:jdom 1.0 to org.jdom:jdom 1.1.3. Thanks to Dependabot.
o Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.2.1 #161, #194. Thanks to Dependabot.
Removed
-------
o Remove obsolete Apache RAT file. Thanks to Gary Gregory. o Remove obsolete Apache Ant files. Thanks to Gary Gregory. o Remove obsolete src/conf/MANIFEST.MF file. Thanks to Gary Gregory. o Remove obsolete maven-surefire-plugin configuration. Configuration is done in the parent POM. Thanks to Gary Gregory. o Remove obsolete maven-assembly-plugin configuration. Configuration is done in the parent POM. Thanks to Gary Gregory. o Remove obsolete STATUS.html files. Thanks to Gary Gregory. o Remove unused package-private class org.apache.commons.jxpath.util.BasicTypeConverter.ValueNodeSet. Thanks to Gary Gregory.
Historical list of changes:
https://commons.apache.org/proper/commons-jxpath/changes.html
For complete information on Apache Commons JXPath, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons JXPath website:
https://commons.apache.org/proper/commons-jxpath/
Download page:
https://commons.apache.org/proper/commons-jxpath/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------