Skip to content

Commit 1d3568e

Browse files
committed
Prepare for the next release candidate
1 parent 6bd9410 commit 1d3568e

File tree

10 files changed

+433
-107
lines changed

10 files changed

+433
-107
lines changed

CONTRIBUTING.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
(the "License"); you may not use this file except in compliance with
77
the License. You may obtain a copy of the License at
88
9-
http://www.apache.org/licenses/LICENSE-2.0
9+
https://www.apache.org/licenses/LICENSE-2.0
1010
1111
Unless required by applicable law or agreed to in writing, software
1212
distributed under the License is distributed on an "AS IS" BASIS,
@@ -41,37 +41,40 @@
4141
Contributing to Apache Commons JXPath
4242
======================
4343

44-
You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to
45-
the open source community. Before you dig right into the code there are a few guidelines that we need contributors to
46-
follow so that we can have a chance of keeping on top of things.
44+
Have you found a bug or have an idea for a cool new feature? Contributing code is a great way to give something back to the open-source community.
45+
Before you dig right into the code, we need contributors to follow a few guidelines to have a chance of keeping on top of things.
4746

4847
Getting Started
4948
---------------
5049

5150
+ Make sure you have a [JIRA account](https://issues.apache.org/jira/).
52-
+ Make sure you have a [GitHub account](https://github.com/signup/free).
51+
+ Make sure you have a [GitHub account](https://github.com/signup/free). This is not essential, but makes providing patches much easier.
5352
+ If you're planning to implement a new feature it makes sense to discuss your changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons JXPath's scope.
5453
+ Submit a [Jira Ticket][jira] for your issue, assuming one does not already exist.
5554
+ Clearly describe the issue including steps to reproduce when it is a bug.
5655
+ Make sure you fill in the earliest version that you know has the issue.
5756
+ Find the corresponding [repository on GitHub](https://github.com/apache/?query=commons-),
58-
[fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository.
57+
[fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository. If you don't have a GitHub account, you can still clone the Commons repository.
5958

6059
Making Changes
6160
--------------
6261

6362
+ Create a _topic branch_ for your isolated work.
6463
* Usually you should base your branch from the `master` branch.
65-
* A good topic branch name can be the JIRA bug id plus a keyword, for example, `JXPATH-123-InputStream`.
64+
* A good topic branch name can be the JIRA bug ID plus a keyword, e.g. `JXPATH-123-InputStream`.
6665
* If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests.
6766
+ Make commits of logical units.
6867
* Make sure your commit messages are meaningful and in the proper format. Your commit message should contain the key of the JIRA issue.
69-
* For example, `[JXPATH-123] Close input stream earlier`
68+
* For example, `[JXPATH-123] Close input stream sooner`
7069
+ Respect the original code style:
7170
+ Only use spaces for indentation; you can check for unnecessary whitespace with `git diff` before committing.
7271
+ Create minimal diffs - disable _On Save_ actions like _Reformat Source Code_ or _Organize Imports_. If you feel the source code should be reformatted create a separate PR for this change first.
73-
+ Make sure you have added the necessary tests for your changes, typically in `src/test/java`.
74-
+ Run all the tests with `mvn clean verify` to assure nothing else was accidentally broken.
72+
+ Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied. This may not always be possible but is a best-practice.
73+
Unit tests are typically in the `src/test/java` directory.
74+
+ Run a successful build using the default [Maven](https://maven.apache.org/) goal with `mvn`; that's `mvn` on the command line by itself.
75+
+ Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
76+
+ Each commit in the pull request should have a meaningful subject line and body. Note that commits might be squashed by a maintainer on merge.
77+
7578

7679
Making Trivial Changes
7780
----------------------
@@ -103,12 +106,11 @@ Additional Resources
103106
--------------------
104107

105108
+ [Contributing patches](https://commons.apache.org/patches.html)
106-
+ [Apache Commons JXpath JIRA project page][jira]
109+
+ [Apache Commons JXPath JIRA project page][jira]
107110
+ [Contributor License Agreement][cla]
108111
+ [General GitHub documentation](https://help.github.com/)
109112
+ [GitHub pull request documentation](https://help.github.com/articles/creating-a-pull-request/)
110113
+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
111-
+ `#apache-commons` IRC channel on `irc.freenode.net`
112114

113115
[cla]:https://www.apache.org/licenses/#clas
114116
[jira]:https://issues.apache.org/jira/browse/JXPATH

NOTICE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ Apache Commons JXPath
22
Copyright 2001-2025 The Apache Software Foundation
33

44
This product includes software developed at
5-
The Apache Software Foundation (http://www.apache.org/).
5+
The Apache Software Foundation (https://www.apache.org/).

README.md

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
(the "License"); you may not use this file except in compliance with
77
the License. You may obtain a copy of the License at
88
9-
http://www.apache.org/licenses/LICENSE-2.0
9+
https://www.apache.org/licenses/LICENSE-2.0
1010
1111
Unless required by applicable law or agreed to in writing, software
1212
distributed under the License is distributed on an "AS IS" BASIS,
@@ -25,7 +25,7 @@
2525
| commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
2626
+======================================================================+
2727
| |
28-
| 1) Re-generate using: mvn commons:readme-md |
28+
| 1) Re-generate using: mvn commons-build:readme-md |
2929
| |
3030
| 2) Set the following properties in the component's pom: |
3131
| - commons.componentid (required, alphabetic, lower case) |
@@ -45,18 +45,21 @@ Apache Commons JXPath
4545

4646
[![Java CI](https://github.com/apache/commons-jxpath/actions/workflows/maven.yml/badge.svg)](https://github.com/apache/commons-jxpath/actions/workflows/maven.yml)
4747
[![Maven Central](https://img.shields.io/maven-central/v/commons-jxpath/commons-jxpath?label=Maven%20Central)](https://search.maven.org/artifact/commons-jxpath/commons-jxpath)
48+
[![Javadocs](https://javadoc.io/badge/commons-jxpath/commons-jxpath/1.4.0.svg)](https://javadoc.io/doc/commons-jxpath/commons-jxpath/1.4.0)
49+
[![CodeQL](https://github.com/apache/commons-jxpath/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/apache/commons-jxpath/actions/workflows/codeql-analysis.yml)
50+
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/apache/commons-jxpath/badge)](https://api.securityscorecards.dev/projects/github.com/apache/commons-jxpath)
4851

4952
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.
5053

5154
Documentation
5255
-------------
5356

5457
More information can be found on the [Apache Commons JXPath homepage](https://commons.apache.org/proper/commons-jxpath).
55-
The [Javadoc](https://commons.apache.org/proper/commons-jxpath/javadocs/api-release) can be browsed.
58+
The [Javadoc](https://commons.apache.org/proper/commons-jxpath/apidocs) can be browsed.
5659
Questions related to the usage of Apache Commons JXPath should be posted to the [user mailing list](https://commons.apache.org/mail-lists.html).
5760

58-
Where can I get the latest release?
59-
-----------------------------------
61+
Getting the latest release
62+
--------------------------
6063
You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-jxpath/download_jxpath.cgi).
6164

6265
Alternatively, you can pull it from the central Maven repositories:
@@ -65,39 +68,52 @@ Alternatively, you can pull it from the central Maven repositories:
6568
<dependency>
6669
<groupId>commons-jxpath</groupId>
6770
<artifactId>commons-jxpath</artifactId>
68-
<version>1.3</version>
71+
<version>1.4.0</version>
6972
</dependency>
7073
```
7174

75+
Building
76+
--------
77+
78+
Building requires a Java JDK and [Apache Maven](https://maven.apache.org/).
79+
The required Java version is found in the `pom.xml` as the `maven.compiler.source` property.
80+
81+
From a command shell, run `mvn` without arguments to invoke the default Maven goal to run all tests and checks.
82+
7283
Contributing
7384
------------
7485

75-
We accept Pull Requests via GitHub. The [developer mailing list][ml] is the main channel of communication for contributors.
86+
We accept Pull Requests via GitHub. The [developer mailing list](https://commons.apache.org/mail-lists.html) is the main channel of communication for contributors.
7687
There are some guidelines which will make applying PRs easier for us:
7788
+ No tabs! Please use spaces for indentation.
78-
+ Respect the code style.
89+
+ Respect the existing code style for each file.
7990
+ Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
80-
+ Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running ```mvn clean test```.
91+
+ Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running `mvn`.
92+
+ Before you pushing a PR, run `mvn` (by itself), this runs the default goal, which contains all build checks.
93+
+ To see the code coverage report, regardless of coverage failures, run `mvn clean site -Dcommons.jacoco.haltOnFailure=false`
8194

8295
If you plan to contribute on a regular basis, please consider filing a [contributor license agreement](https://www.apache.org/licenses/#clas).
8396
You can learn more about contributing via GitHub in our [contribution guidelines](CONTRIBUTING.md).
8497

8598
License
8699
-------
87-
This code is under the [Apache Licence v2](https://www.apache.org/licenses/LICENSE-2.0).
100+
This code is licensed under the [Apache License v2](https://www.apache.org/licenses/LICENSE-2.0).
88101

89102
See the `NOTICE.txt` file for required notices and attributions.
90103

91-
Donations
92-
---------
93-
You like Apache Commons JXPath? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support the development.
104+
Donating
105+
--------
106+
You like Apache Commons JXPath? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support development.
94107

95108
Additional Resources
96109
--------------------
97110

98111
+ [Apache Commons Homepage](https://commons.apache.org/)
99112
+ [Apache Issue Tracker (JIRA)](https://issues.apache.org/jira/browse/JXPATH)
113+
+ [Apache Commons Slack Channel](https://the-asf.slack.com/archives/C60NVB8AD)
100114
+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
101-
+ `#apache-commons` IRC channel on `irc.freenode.org`
102115

103-
[ml]:https://commons.apache.org/mail-lists.html
116+
Apache Commons Components
117+
-------------------------
118+
119+
Please see the [list of components](https://commons.apache.org/components.html)

RELEASE-NOTES.txt

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
Apache Commons JXPath 1.4.0 Release Notes
2+
-----------------------------------------
3+
4+
The Apache Commons JXPath team is pleased to announce the release of Apache Commons JXPath 1.4.0.
5+
6+
Introduction
7+
------------
8+
9+
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.
10+
11+
New features and bug fixes.
12+
13+
New features
14+
------------
15+
16+
o JXPATH-123: XPath function "ends-with" is not implemented (although "starts-with" is).
17+
18+
Fixed Bugs
19+
----------
20+
21+
o JXPATH-172: Clarify Javadoc of JXPathContext#getPointer. Thanks to Michele Vivoda.
22+
o JXPATH-113: NullPointerException in ChildContext when document only contains an empty root node. Thanks to Michele Vivoda.
23+
o JXPATH-160: ValueUtils.getValue throws exception with set and index above size. Thanks to Stefan Albrecht, Michele Vivoda, Uwe Barthel.
24+
o JXPATH-162: Concurrency problem for JXPathContextFactory.factoryImplName static field. Thanks to Uwe Barthel.
25+
o JXPATH-141: FunctionLibrary Multithreading issue.
26+
o JXPATH-131: Bean exception handling. Thanks to Gabriel Buades Rubio.
27+
o JXPATH-128: JXPath support for LazyDynaBean is broken. Thanks to Gabriel Buades Rubio.
28+
o JXPATH-129: MethodLookupUtils#matchType uses TypeUtils#canConvert which causes "Ambiguous method call" exception.
29+
o JXPATH-153: Wrong entry IMPORT-PACKAGE in the file MANIFEST.MF for jdom and commons-beanutils.
30+
o JXPATH-153: Change dynamic class loading to consult context class loader. Thanks to John Trimble.
31+
o JXPATH-152: Concurrent access on hashmap of JXPathIntrospector.
32+
o Fix possible NPE in PackageFunctions.getFunction(String, String, Object[]).
33+
o JDOMNodePointer.compareChildNodePointers() now throws IllegalStateException instead of RuntimeException. Thanks to Gary Gregory.
34+
o ValueUtils.setValue() now throws IllegalArgumentException instead of RuntimeException. Thanks to Gary Gregory.
35+
o ClassLoaderUtil.toCanonicalName() now calls Objects.requireNonNull() instead of throwing a RuntimeException. Thanks to Gary Gregory.
36+
o XMLDocumentContainer.XMLDocumentContainer(Source) now calls Objects.requireNonNull() instead of throwing a RuntimeException. Thanks to Gary Gregory.
37+
o [StepSecurity] CI: Harden GitHub Actions #66. Thanks to step-security-bot, Gary Gregory.
38+
o Add missing Javadoc. Thanks to Gary Gregory.
39+
o Fix PMD UnnecessaryFullyQualifiedName. Thanks to Gary Gregory.
40+
o Add generics to JXPathContext.iterate(String). Thanks to Gary Gregory.
41+
o Add generics to JXPathContext.iteratePointers(String). Thanks to Gary Gregory.
42+
o Add generics to JXPathContext.decimalFormats. Thanks to Gary Gregory.
43+
o Migrate tests to JUnit5 #214. Thanks to strangelookingnerd.
44+
o Replace try-catch constructs in tests with assertThrows #215. Thanks to strangelookingnerd, Gary Gregory.
45+
o Use generics internally. Thanks to Gary Gregory.
46+
o NodeSet.getPointers() is now typed with generics. Thanks to Gary Gregory.
47+
o ServletContextHandler.collectPropertyNames(HashSet, Object) is now typed with generics. Thanks to Gary Gregory.
48+
o Deprecate ClassLoaderUtil.ClassLoaderUtil(). Thanks to Gary Gregory.
49+
o Deprecate MethodLookupUtils.MethodLookupUtils(). Thanks to Gary Gregory.
50+
o Deprecate KeyManagerUtils.KeyManagerUtils(). Thanks to Gary Gregory.
51+
o Deprecate TypeUtils.TypeUtils(). Thanks to Gary Gregory.
52+
o Deprecate ValueUtils.ValueUtils(). Thanks to Gary Gregory.
53+
o PageScopeContext.getAttributeNames() is now typed with generics. Thanks to Gary Gregory.
54+
o Functions.getUsedNamespaces() is now typed with generics. Thanks to Gary Gregory.
55+
o JXPathException now reuses its superclass' Throwable cause. Thanks to Gary Gregory.
56+
o Bump JXPathException serialVersionUID from 4306409701468017766L to 2L. Thanks to Gary Gregory.
57+
o JXPathContextFactoryConfigurationError now reuses its superclass' Throwable cause. Thanks to Gary Gregory.
58+
o Bump JXPathContextFactoryConfigurationError serialVersionUID from 1L to 2L. Thanks to Gary Gregory.
59+
o Deprecate SimplePathInterpreter.SimplePathInterpreter(). Thanks to Gary Gregory.
60+
o Deprecate JXPathServletContexts.JXPathServletContexts(). Thanks to Gary Gregory.
61+
o Deprecate JXPathIntrospector.JXPathIntrospector(). Thanks to Gary Gregory.
62+
o Deprecate InfoSetUtil.InfoSetUtil(). Thanks to Gary Gregory.
63+
o Deprecate Constants.Constants(). Thanks to Gary Gregory.
64+
o Deprecate Parser.Parser(). Thanks to Gary Gregory.
65+
o JXPathException.JXPathException(Throwable) now remembers its Throwable cause argument. Thanks to Gary Gregory.
66+
o Make the private DOMNodePointer.id field final. Thanks to Gary Gregory.
67+
o Make the private NullPointer.id field final. Thanks to Gary Gregory.
68+
o Make the private NullPointer.qname field final. Thanks to Gary Gregory.
69+
o Make the private JDOMNodePointer.id field final. Thanks to Gary Gregory.
70+
o ExpressionContext.getContextNodeList() now uses generics. Thanks to Gary Gregory.
71+
o BasicTypeConverter.unmodifiableCollection(Collection) now uses generics. Thanks to Gary Gregory.
72+
o Fix PMD AvoidDecimalLiteralsInBigDecimalConstructor in org.apache.commons.jxpath.util.BasicTypeConverter.allocateNumber(Class, double). Thanks to Gary Gregory. PMD.
73+
o org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.iteratePointers(String) now uses generics. Thanks to Gary Gregory.
74+
o org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.iteratePointers(String, Expression) now uses generics. Thanks to Gary Gregory.
75+
o org.apache.commons.jxpath.CompiledExpression.iteratePointers(JXPathContext) now uses generics. Thanks to Gary Gregory.
76+
o org.apache.commons.jxpath.JXPathCompiledExpression.iteratePointers(JXPathContext) now uses generics. Thanks to Gary Gregory.
77+
o org.apache.commons.jxpath.util.ClassLoaderUtil.getClass(ClassLoader, String) now uses generics. Thanks to Gary Gregory.
78+
o org.apache.commons.jxpath.util.ClassLoaderUtil.getClass(ClassLoader, String, boolean) now uses generics. Thanks to Gary Gregory.
79+
o org.apache.commons.jxpath.util.ClassLoaderUtil.getClass(String) now uses generics. Thanks to Gary Gregory.
80+
o org.apache.commons.jxpath.util.ClassLoaderUtil.getClass(String, boolean) now uses generics. Thanks to Gary Gregory.
81+
82+
Changes
83+
-------
84+
85+
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.
86+
o JXPATH-184: Bump Java to 8. Thanks to britter, Gary Gregory.
87+
o Bump JUnit 3.8.1 to 4.13.2. Thanks to britter, Gary Gregory.
88+
o Bump commons-logging from 1.1.1 to 1.3.5 #34, #129, #147, #160, #174. Thanks to Dependabot, Gary Gregory.
89+
o Bump commons-beanutils from 1.8.2 to 1.10.1 #24. Thanks to Dependabot, Gary Gregory.
90+
o Bump taglist-maven-plugin from 2.2 to 3.0.0 #32. Thanks to Dependabot.
91+
o Bump servlet-api from 2.4 to 2.5 #29. Thanks to Dependabot.
92+
o Bump JDOM from jdom:jdom 1.0 to org.jdom:jdom 1.1.3. Thanks to Dependabot.
93+
o Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.2.1 #161, #194. Thanks to Dependabot.
94+
95+
Removed
96+
-------
97+
98+
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.
99+
Historical list of changes: https://commons.apache.org/proper/commons-jxpath/changes.html
100+
101+
For complete information on Apache Commons JXPath, including instructions on how to submit bug reports,
102+
patches, or suggestions for improvement, see the Apache Commons JXPath website:
103+
104+
https://commons.apache.org/proper/commons-jxpath/
105+
106+
Download page: https://commons.apache.org/proper/commons-jxpath/download_io.cgi
107+
108+
Have fun!
109+
-Apache Commons Team
110+
111+
------------------------------------------------------------------------------
112+

0 commit comments

Comments
 (0)