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 ------------------------------------------------------------------------------