Bump actions/cache from 3.0.2 to 3.0.3
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 2169c2d..24151bd 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -1,47 +1,47 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-name: Java CI
-
-on: [push, pull_request]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
- continue-on-error: ${{ matrix.experimental }}
- strategy:
- matrix:
- java: [ 8, 11, 17 ]
- experimental: [false]
-# include:
-# - java: 18-ea
-# experimental: true
-
- steps:
- - uses: actions/checkout@v3
- - uses: actions/cache@v3.0.2
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- - name: Set up JDK ${{ matrix.java }}
- uses: actions/setup-java@v3
- with:
- distribution: 'temurin'
- java-version: ${{ matrix.java }}
- - name: Build with Maven
- run: mvn -V --file pom.xml --no-transfer-progress
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: Java CI
+
+on: [push, pull_request]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+ continue-on-error: ${{ matrix.experimental }}
+ strategy:
+ matrix:
+ java: [ 8, 11, 17 ]
+ experimental: [false]
+# include:
+# - java: 18-ea
+# experimental: true
+
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/cache@v3.0.3
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ - name: Set up JDK ${{ matrix.java }}
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'temurin'
+ java-version: ${{ matrix.java }}
+ - name: Build with Maven
+ run: mvn -V --file pom.xml --no-transfer-progress
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 04373b5..b0d03a2 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,420 +1,420 @@
-<?xml version="1.0"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!--
-This file is used by the maven-changes-plugin to generate the release notes.
-Useful ways of finding items to add to this file are:
-
-1. Add items when you fix a bug or add a feature (this makes the
-release process easy :-).
-
-2. Do a bugzilla search for tickets closed since the previous release.
-
-3. Use the report generated by the maven-changelog-plugin to see all
-CVS commits. Set the project.properties' maven.changelog.range
-property to the number of days since the last release.
-
-To regenerate the RELEASE-NOTES.txt:
-
-mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=m.n]
-
-The <action> type attribute can be add,update,fix,remove.
--->
-
-<document xmlns="http://maven.apache.org/changes/1.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
- <properties>
- <title>Apache Commons DBUtils Release Notes</title>
- </properties>
- <body>
-
- <release version="2.0" date="2020-MM-DD" description="New features and bug fixes.">
- <!-- FIX -->
- <action dev="thecarlhall" type="fix" issue="DBUTILS-131" due-to="yairlenga">
- Speedup query calls without parameters; Use PreparedStatement only when parameters are present.
- </action>
- <action dev="thecarlhall" type="fix">
- Always copy Date, Time, Timestamp on get and set in SqlNullCheckedResultSet.
- </action>
- <action dev="ggregory" type="update" issue="DBUTILS-135" due-to="hdevalke">
- BeanProcessor is not thread safe since [DBUTILS-124].
- </action>
- <action dev="ggregory" type="update" issue="DBUTILS-137" due-to="Gary Gregory">
- Inefficient allocation of Maps in org.apache.commons.dbutils.BasicRowProcessor.toMap(ResultSet).
- </action>
- <action dev="ggregory" type="fix" issue="DBUTILS-138" due-to="Stefano Lissa, Gary Gregory">
- org.apache.commons.dbutils.QueryRunner.query(Connection, boolean, String, ResultSetHandler<T>, Object...) Exception in closing statement leave connections open.
- </action>
- <action dev="ggregory" type="fix" issue="DBUTILS-139" due-to="Gary Gregory">
- Update Java requirement from version 6 to 7.
- </action>
- <action due-to="thecarlhall" type="update">
- clirr, checkstyle, and spotbugs configured as part of default build.
- </action>
- <action dev="ggregory" due-to="Amey Jadiye" type="fix">
- Correction of coverage badge #10.
- </action>
- <!-- ADD -->
- <action dev="thecarlhall" type="add" issue="PR/9" due-to="rewerma">
- Add @Column annotation to hint the field name instead of dissecting the get method name.
- </action>
- <action dev="ggregory" type="add" issue="DBUTILS-136" due-to="Matthew Hall, Gary Gregory">
- CaseInsensitiveHashMap cannot be accessed by subclasses of BasicRowProcessor; add org.apache.commons.dbutils.BasicRowProcessor.createCaseInsensitiveHashMap(int).
- </action>
- <action dev="ggregory" type="add">
- Add github/codeql-action #115.
- </action>
- <!-- UPDATE -->
- <action dev="ggregory" type="update" due-to="Dependabot">
- Bump actions/checkout from 1 to 3, #44, #23, #48, #93, #75.
- </action>
- <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">
- Bump actions/cache from 2 to 3.0.2 #109.
- </action>
- <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">
- Bump actions/setup-java from 1.4.0 to 3 #40.
- </action>
- <action dev="ggregory" type="update" due-to="Dependabot">
- Bump commons-parent from 50 to 53 #14, #113.
- </action>
- <action dev="ggregory" type="update" due-to="Dependabot">
- Bump junit from 4.12 to 4.13.2 #16, #42, #58.
- </action>
- <action dev="ggregory" type="update" due-to="Dependabot">
- Bump mockito-core from 3.2.4 to 5.5.1 #18, #21, #46, #53, #97, #103, #111, #116.
- </action>
- <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">
- Bump spotbugs-maven-plugin from 3.1.12.2 to 4.4.2, #17, #45, #52.
- </action>
- <action dev="ggregory" type="update" due-to="Gary Gregory">
- Bump spotbugs from 3.1.12.2 to 4.2.3.
- </action>
- <action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">
- Bump maven-checkstyle-plugin from 3.1.0 to 3.1.2 #56.
- </action>
- <action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">
- Bump checkstyle from 8.28 to 8.35, #20.
- </action>
- <action dev="ggregory" type="update" due-to="Dependabot">
- Bump checkstyle from 8.35 to 8.37 #47.
- </action>
- <action dev="ggregory" type="update" due-to="Gary Gregory">
- Bump commons.japicmp.version 0.14.3 -> 0.15.2.
- </action>
- <action dev="ggregory" type="update" due-to="Gary Gregory">
- Bump checkstyle from 8.37 to 9.3.
- </action>
- </release>
-
- <release version="1.7" date="2017-07-20" description="Bug fixes and separate column & property handlers using SPI">
- <action dev="sebb" type="update" issue="DBUTILS-117" due-to="Vadim Smirnov">
- Error handling possible getParameterMetaData() results
- - allow for null return
- - handle SQLFeatureNotSupportedException
- </action>
- <action dev="britter" type="update" issue="DBUTILS-119" due-to="Michael Akerman">
- Correct errors in BeanMapHandler Javadoc
- </action>
- <action dev="thecarlhall" type="add" issue="DBUTILS-121">
- Add getWriteMethod to BeanProcessor to allow subclasses to influence which write method is used
- </action>
- <action dev="thecarlhall" type="fix" issue="DBUTILS-82" due-to="Kenshi Toriumi">
- Change method contracts to allow extended class types when returning a bean populated from a query
- </action>
- <action dev="thecarlhall" type="fix" issue="DBUTILS-89" due-to="Adam Dyga">
- Add method in BeanProcessor to populate an existing bean
- </action>
- <action dev="thecarlhall" type="fix" issue="DBUTILS-70" due-to="Michael Akerman">
- Add ability to configure statements used in QueryRunner
- </action>
- <action dev="thecarlhall" type="add" issue="DBUTILS-50" due-to="Dan Fabulich">
- Support CallableStatement "out" parameters
- </action>
- <action dev="thecarlhall" type="add" issue="DBUTILS-124">
- Implement column and property handlers using Java's service interfaces.
- </action>
- <action dev="thecarlhall" type="update" issue="PR/1" due-to="Michael Hausegger">
- Created some Unit Tests to increase code coverage.
- </action>
- </release>
-
- <release version="1.6" date="2014-07-20" description="Bug fixes and addition of insert methods">
- <action dev="britter" type="fix" issue="DBUTILS-110">
- ArrayHandler should return an empty array when handle has no rows
- </action>
- <action dev="britter" type="fix" issue="DBUTILS-114" due-to="Michael Osipov">
- Order of columns not retained in BasicRowProcessor with HashMap
- </action>
- <action dev="britter" type="fix" issue="DBUTILS-118" due-to="Feysal Rujbally, Daniele Cremonini">
- BeanProcessor not returning nanoseconds
- </action>
- <action dev="britter" type="add" issue="DBUTILS-113" due-to="Graylin Kim, Michael Osipov">
- Add support for conversion of ResultSet strings to enums in the BeanProcessor
- </action>
- <action dev="sebb" type="update" issue="DBUTILS-85">
- In BeanProcessor#isCompatibleType, can Integer.class.isInstance(value) be replaced by value instanceof Integer (etc)?
- Simplified code by using instanceof.
- </action>
- <action dev="sebb" due-to="Niall Pemberton" type="fix" issue="DBUTILS-106">
- DBUtils can't build using JDK 1.7 - DriverProxy needs to implement getParentLogger()
- Add dynamic invocation.
- </action>
- <action dev="wspeirs" due-to="Micah Huff" type="add" issue="DBUTILS-108">
- Create functionality to return auto-generated keys in batches of SQL inserts
- </action>
- <action dev="wspeirs" due-to="PB" type="add" issue="DBUTILS-107">
- Patch QueryLoader to also load from XML properties files
- </action>
- <action dev="wspeirs" due-to="xiaofei.xu" type="fix" issue="DBUTILS-100">
- Updated the use of getColumnName to try getColumnLabel first
- </action>
- <action dev="simonetripodi" due-to="Moandji Ezana" type="add" issue="DBUTILS-98">
- Add missing Javadoc to QueryRunner#insert
- </action>
- <action dev="simonetripodi" type="add" issue="DBUTILS-97">
- Add an Abstract ResultSetHandler implementation in order to reduce redundant 'resultSet' variable invocation
- </action>
- <action dev="simonetripodi" due-to="yuyf" type="fix" issue="DBUTILS-96">
- DbUtils#loadDriver(ClassLoader,String) makes DriverManager throwing "No suitable driver found for jdbc"
- if ClassLoader is not the System's one
- </action>
- <action dev="wspeirs" due-to="Moandji Ezana" type="add" issue="DBUTILS-87">
- Added insert methods to QueryRunner and AsyncQueryRunner that return the generated key.
- </action>
- </release>
-
- <release version="1.5" date="2012-07-20" description="Bug fixes and addition of BeanMapHandler">
- <action dev="simonetripodi" due-to="Benedikt Ritter" type="update" issue="DBUTILS-94">
- Provide test coverage for org.apache.commons.dbutils.DbUtils
- </action>
- <action dev="simonetripodi" due-to="Stevo Slavic" type="fix" issue="DBUTILS-93">
- Source assembly artifact fails to build a site because of missing pmd-ruleset.xml
- </action>
- <action dev="simonetripodi" due-to="Stevo Slavic" type="update" issue="DBUTILS-91">
- Enhance BasicRowProcessor to have row mapping easier to configure
- </action>
- <action due-to="wspeirs" type="update">
- Updated pom.xml: Java 1.6 now required, clirr and compiler plugin removed
- </action>
- <action due-to="Tiago Cavaleiro" dev="wspeirs" type="fix" issue="DBUTILS-84">
- BeanProcessor method processColumn should take SQLXML in consideration
- </action>
- <action dev="wspeirs" type="update" issue="DBUTILS-77">
- Updated documentation to better reflect the use of pmdKnownBroken
- </action>
- <action due-to="Sebb" type="fix" issue="DBUTILS-73">
- Added a fixed Locale (Locale.ENGLISH) to all toLowerCase calls in BasicRowProcessor
- </action>
- <action due-to="Michael Osipov" type="add" issue="DBUTILS-67">
- Added BeanMapHandler
- </action>
- <action due-to="Michael Osipov" type="update" issue="DBUTILS-66">
- Added generics to ScalarHandler, ColumnHandler, and KeyedHandler
- </action>
- </release>
-
- <release version="1.4" date="2011-10-23" description="Bug fixes and addition of asynchronous QueryLoader">
- <action type="fix" issue="DBUTILS-81">
- DbUtils.loadDriver() uses Class.forName()
- </action>
- <action type="fix" issue="DBUTILS-80">
- DbUtils.loadDriver catches Throwable
- </action>
- <action type="fix" issue="DBUTILS-65">
- Duplicate code introduced during Java 1.5 branch merge
- </action>
- <action type="fix" issue="DBUTILS-79">
- fillStatement doesn't complain when there are too few parameters
- </action>
- <action type="update" issue="DBUTILS-75">
- efficient usage from findbugs
- </action>
- <action dev="wspeirs" type="add" issue="DBUTILS-78">
- Add asynchronous batch, query, and update calls
- </action>
- </release>
-
- <release version="1.3" date="2009-11-04" description="Adds Java5 generics and varargs">
- <action dev="dfabulich" type="add" issue="DBUTILS-48">
- Java 1.5 generics and varargs
- </action>
- <action dev="dfabulich" type="update" issue="DBUTILS-57">
- BeanProcessor#mapColumnsToProperties now prefers to use column labels over column names (where aliases are not set, these should be identical)
- </action>
- <action dev="dfabulich" type="update" issue="DBUTILS-58">
- Setting pmdKnownBroken in QueryRunner constructor now completely ignores ParameterMetaData
- </action>
- <action dev="dfabulich" type="fix" issue="DBUTILS-60">
- Fixed error message in QueryRunner#rethrow
- </action>
- </release>
-
- <release version="1.2" date="2009-03-06" description="Another round of fixes; deprecates methods in preparation for varargs in java5">
- <action dev="dfabulich" type="update" issue="DBUTILS-52">
- Removed setDataSource method to guarantee thread safety
- </action>
- <action dev="sebb" type="update" issue="DBUTILS-51">
- Made numerous private instance members final to guarantee thread safety; changed protected member of KeyedHandler to final
- </action>
- <action dev="bayard" type="remove">
- Remove old Maven1/Ant build scripts
- </action>
- <action dev="dfabulich" type="update" issue="DBUTILS-29">
- Support bean property to SQL IN parameter mapping
- </action>
- <action dev="dfabulich" type="fix" issue="DBUTILS-31">
- fillStatement setNull bug with the Postgres/Derby JDBC driver (and others)
- </action>
- <action dev="dfabulich" type="update" issue="DBUTILS-33">
- Make GenericListHandler (now AbstractListHandler) public
- </action>
- <action dev="dfabulich" type="update" issue="DBUTILS-34">
- BasicRowProcessor loses any information on database field case
- </action>
- <action dev="dfabulich" type="update" issue="DBUTILS-37">
- BeanListHandler#handle(ResultSet) is not optimal
- </action>
- <action dev="dfabulich" type="fix" issue="DBUTILS-40">
- NullPointerException occured at rethrow method
- </action>
- <action dev="dfabulich" type="update" issue="DBUTILS-42">
- Object with Long or Decimal got initial zero value while database field is null
- </action>
- <action dev="dennisl" type="update" issue="DBUTILS-38">
- example documentation page, update query
- </action>
- <action dev="bayard" type="fix" issue="DBUTILS-36">
- Add serialVersionUID to BasicRowProcessor.CaseInsensitiveHashMap
- </action>
- </release>
-
- <release version="1.1" date="2006-12-01" description="Last couple of years of fixes">
- <action dev="bayard" type="fix" issue="DBUTILS-32">
- Tests fail to build under 1.6, and warning while compiling source
- </action>
- <action dev="bayard" type="fix" issue="DBUTILS-1">
- BeanListHandler and BeanHandler fail to support java.sql.Date()
- </action>
- <action dev="bayard" type="update" issue="DBUTILS-16">
- ResultSetRowProcessor abstract handler and some classes rework
- </action>
- <action dev="bayard" type="fix" issue="DBUTILS-3">
- Setting bean properties fails silently
- </action>
- <action dev="dgraham" type="fix" issue="DBUTILS-9">
- MockResultSet needs to handle equals and hashCode
- </action>
- <action dev="bayard" type="fix" issue="DBUTILS-7">
- MockResultSet: Throw UnsupportedOperationException for not implemented methods
- </action>
- <action dev="dgraham" type="add" issue="DBUTILS-20">
- Implement Pluggable Adaptors to Make BeanHandler Smarter
- </action>
- <action dev="dgraham" type="update" issue="DBUTILS-15">
- Patch for extending BasicRowProcessor
- </action>
- <action dev="dgraham" type="add" issue="DBUTILS-12">
- Protected QueryRunner.close() methods
- </action>
- <action dev="dgraham" type="update" issue="DBUTILS-23">
- Updated docs for example.html page (select AS)
- </action>
- <action dev="dgraham" type="add" issue="DBUTILS-4">
- Added protected ResultSetIterator.rethrow() method to wrap SQLExceptions in
- RuntimeExceptions.
- </action>
- <action dev="dgraham" type="update" issue="DBUTILS-5">
- Added SQLState and error code to rethrown SQLExceptions.
- </action>
- <action dev="dgraham" type="add" issue="DBUTILS-25">
- Added KeyedHandler to create a Map of Maps from a ResultSet.
- </action>
- <action dev="dgraham" type="update" issue="DBUTILS-2">
- Use current class' ClassLoader instead of QueryLoader's ClassLoader
- in loadQueries().
- </action>
- <action dev="dgraham" type="update" issue="DBUTILS-22">
- Made QueryLoader.loadQueries() protected so subclasses can use query
- repositories other than properties files.
- </action>
- <action dev="dgraham" type="update">
- QueryRunner now calls getDataSource() internally any time it needs access
- to its DataSource object to allow subclasses to provide different behavior.
- </action>
- <action dev="dgraham" type="add">
- Added DbUtils.rollbackAndClose() and DbUtils.rollbackAndCloseQuietly().
- </action>
- <action dev="dgraham" type="update" issue="DBUTILS-26">
- Call ResultSet.getTimestamp() in BeanProcessor.processColumn() if
- the bean property is a java.sql.Timestamp. Oracle's getObject()
- implementation returns its own incompatible Timestamp class.
- </action>
- <action dev="dgraham" type="update" issue="DBUTILS-18">
- Changed QueryRunner.fillStatement() null handling
- to use Types.VARCHAR instead of Types.OTHER. This works for the
- following tested drivers: Firebird 1.5/firebirdsql 1.5RC3,
- Oracle 9/ Thin driver, MySQL 4.0/Msql Connecttor 3.0 and mm.mysql
- 2.0.4 MaxDB 7.5, HSQLDB 1.7.1, and MS Access/ODBC Bridge.
- </action>
- <action dev="dgraham" type="add" issue="DBUTILS-21">
- Added a protected QueryRunner.prepareConnection() method to
- allow subclasses to customize the Connections retrieved from
- the DataSource before they're used.
- </action>
- <action dev="dgraham" type="add">
- Refactored bean handling from BasicRowProcessor into new
- BeanProcessor class. This also fixes the common problem with
- Oracle NUMERIC fields not being set into bean properties.
- </action>
- <action dev="dgraham" type="add" issue="DBUTILS-13">
- Added QueryRunner.batch() methods for batch updates.
- </action>
- <action dev="dgraham" type="add" issue="DBUTILS-11">
- Added new ResultSetHandler implementation, ColumnListHandler, that
- converts one ResultSet column into a List of Objects.
- </action>
- </release>
-
- <release version="1.0" date="2003-11-10" description="First release of DbUtils">
- <action type="add">
- This is the first release of the Commons DbUtils package. DbUtils
- is a small set of classes designed to make working with JDBC easier.
- </action>
- <action type="add">
- QueryRunner class with ResultSetHandler interface allow you to easily query or
- update a database and handle the ResultSet. Several useful implementations
- of the ResultSetHandler interface are located in the
- org.apache.commons.dbutils.handlers.* package.
- </action>
- <action type="add">
- ResultSet wrappers that decorate ResultSets with specialized
- behavior. See the classes in the org.apache.commons.dbutils.wrappers.*
- package for details.
- </action>
- <action type="add">
- Dynamic JDBC API interface implementations via the standard
- java.lang.reflect.Proxy class. This allows you to implement JDBC
- interfaces such as ResultSet at runtime to avoid API version
- incompatibilities. See org.apache.commons.dbutils.ProxyFactory
- for details.
- </action>
- </release>
-
- </body>
-</document>
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!--
+This file is used by the maven-changes-plugin to generate the release notes.
+Useful ways of finding items to add to this file are:
+
+1. Add items when you fix a bug or add a feature (this makes the
+release process easy :-).
+
+2. Do a bugzilla search for tickets closed since the previous release.
+
+3. Use the report generated by the maven-changelog-plugin to see all
+CVS commits. Set the project.properties' maven.changelog.range
+property to the number of days since the last release.
+
+To regenerate the RELEASE-NOTES.txt:
+
+mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=m.n]
+
+The <action> type attribute can be add,update,fix,remove.
+-->
+
+<document xmlns="http://maven.apache.org/changes/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
+ <properties>
+ <title>Apache Commons DBUtils Release Notes</title>
+ </properties>
+ <body>
+
+ <release version="2.0" date="2020-MM-DD" description="New features and bug fixes.">
+ <!-- FIX -->
+ <action dev="thecarlhall" type="fix" issue="DBUTILS-131" due-to="yairlenga">
+ Speedup query calls without parameters; Use PreparedStatement only when parameters are present.
+ </action>
+ <action dev="thecarlhall" type="fix">
+ Always copy Date, Time, Timestamp on get and set in SqlNullCheckedResultSet.
+ </action>
+ <action dev="ggregory" type="update" issue="DBUTILS-135" due-to="hdevalke">
+ BeanProcessor is not thread safe since [DBUTILS-124].
+ </action>
+ <action dev="ggregory" type="update" issue="DBUTILS-137" due-to="Gary Gregory">
+ Inefficient allocation of Maps in org.apache.commons.dbutils.BasicRowProcessor.toMap(ResultSet).
+ </action>
+ <action dev="ggregory" type="fix" issue="DBUTILS-138" due-to="Stefano Lissa, Gary Gregory">
+ org.apache.commons.dbutils.QueryRunner.query(Connection, boolean, String, ResultSetHandler<T>, Object...) Exception in closing statement leave connections open.
+ </action>
+ <action dev="ggregory" type="fix" issue="DBUTILS-139" due-to="Gary Gregory">
+ Update Java requirement from version 6 to 7.
+ </action>
+ <action due-to="thecarlhall" type="update">
+ clirr, checkstyle, and spotbugs configured as part of default build.
+ </action>
+ <action dev="ggregory" due-to="Amey Jadiye" type="fix">
+ Correction of coverage badge #10.
+ </action>
+ <!-- ADD -->
+ <action dev="thecarlhall" type="add" issue="PR/9" due-to="rewerma">
+ Add @Column annotation to hint the field name instead of dissecting the get method name.
+ </action>
+ <action dev="ggregory" type="add" issue="DBUTILS-136" due-to="Matthew Hall, Gary Gregory">
+ CaseInsensitiveHashMap cannot be accessed by subclasses of BasicRowProcessor; add org.apache.commons.dbutils.BasicRowProcessor.createCaseInsensitiveHashMap(int).
+ </action>
+ <action dev="ggregory" type="add">
+ Add github/codeql-action #115.
+ </action>
+ <!-- UPDATE -->
+ <action dev="ggregory" type="update" due-to="Dependabot">
+ Bump actions/checkout from 1 to 3, #44, #23, #48, #93, #75.
+ </action>
+ <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">
+ Bump actions/cache from 2 to 3.0.3 #109.
+ </action>
+ <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">
+ Bump actions/setup-java from 1.4.0 to 3 #40.
+ </action>
+ <action dev="ggregory" type="update" due-to="Dependabot">
+ Bump commons-parent from 50 to 53 #14, #113.
+ </action>
+ <action dev="ggregory" type="update" due-to="Dependabot">
+ Bump junit from 4.12 to 4.13.2 #16, #42, #58.
+ </action>
+ <action dev="ggregory" type="update" due-to="Dependabot">
+ Bump mockito-core from 3.2.4 to 5.5.1 #18, #21, #46, #53, #97, #103, #111, #116.
+ </action>
+ <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">
+ Bump spotbugs-maven-plugin from 3.1.12.2 to 4.4.2, #17, #45, #52.
+ </action>
+ <action dev="ggregory" type="update" due-to="Gary Gregory">
+ Bump spotbugs from 3.1.12.2 to 4.2.3.
+ </action>
+ <action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">
+ Bump maven-checkstyle-plugin from 3.1.0 to 3.1.2 #56.
+ </action>
+ <action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">
+ Bump checkstyle from 8.28 to 8.35, #20.
+ </action>
+ <action dev="ggregory" type="update" due-to="Dependabot">
+ Bump checkstyle from 8.35 to 8.37 #47.
+ </action>
+ <action dev="ggregory" type="update" due-to="Gary Gregory">
+ Bump commons.japicmp.version 0.14.3 -> 0.15.2.
+ </action>
+ <action dev="ggregory" type="update" due-to="Gary Gregory">
+ Bump checkstyle from 8.37 to 9.3.
+ </action>
+ </release>
+
+ <release version="1.7" date="2017-07-20" description="Bug fixes and separate column & property handlers using SPI">
+ <action dev="sebb" type="update" issue="DBUTILS-117" due-to="Vadim Smirnov">
+ Error handling possible getParameterMetaData() results
+ - allow for null return
+ - handle SQLFeatureNotSupportedException
+ </action>
+ <action dev="britter" type="update" issue="DBUTILS-119" due-to="Michael Akerman">
+ Correct errors in BeanMapHandler Javadoc
+ </action>
+ <action dev="thecarlhall" type="add" issue="DBUTILS-121">
+ Add getWriteMethod to BeanProcessor to allow subclasses to influence which write method is used
+ </action>
+ <action dev="thecarlhall" type="fix" issue="DBUTILS-82" due-to="Kenshi Toriumi">
+ Change method contracts to allow extended class types when returning a bean populated from a query
+ </action>
+ <action dev="thecarlhall" type="fix" issue="DBUTILS-89" due-to="Adam Dyga">
+ Add method in BeanProcessor to populate an existing bean
+ </action>
+ <action dev="thecarlhall" type="fix" issue="DBUTILS-70" due-to="Michael Akerman">
+ Add ability to configure statements used in QueryRunner
+ </action>
+ <action dev="thecarlhall" type="add" issue="DBUTILS-50" due-to="Dan Fabulich">
+ Support CallableStatement "out" parameters
+ </action>
+ <action dev="thecarlhall" type="add" issue="DBUTILS-124">
+ Implement column and property handlers using Java's service interfaces.
+ </action>
+ <action dev="thecarlhall" type="update" issue="PR/1" due-to="Michael Hausegger">
+ Created some Unit Tests to increase code coverage.
+ </action>
+ </release>
+
+ <release version="1.6" date="2014-07-20" description="Bug fixes and addition of insert methods">
+ <action dev="britter" type="fix" issue="DBUTILS-110">
+ ArrayHandler should return an empty array when handle has no rows
+ </action>
+ <action dev="britter" type="fix" issue="DBUTILS-114" due-to="Michael Osipov">
+ Order of columns not retained in BasicRowProcessor with HashMap
+ </action>
+ <action dev="britter" type="fix" issue="DBUTILS-118" due-to="Feysal Rujbally, Daniele Cremonini">
+ BeanProcessor not returning nanoseconds
+ </action>
+ <action dev="britter" type="add" issue="DBUTILS-113" due-to="Graylin Kim, Michael Osipov">
+ Add support for conversion of ResultSet strings to enums in the BeanProcessor
+ </action>
+ <action dev="sebb" type="update" issue="DBUTILS-85">
+ In BeanProcessor#isCompatibleType, can Integer.class.isInstance(value) be replaced by value instanceof Integer (etc)?
+ Simplified code by using instanceof.
+ </action>
+ <action dev="sebb" due-to="Niall Pemberton" type="fix" issue="DBUTILS-106">
+ DBUtils can't build using JDK 1.7 - DriverProxy needs to implement getParentLogger()
+ Add dynamic invocation.
+ </action>
+ <action dev="wspeirs" due-to="Micah Huff" type="add" issue="DBUTILS-108">
+ Create functionality to return auto-generated keys in batches of SQL inserts
+ </action>
+ <action dev="wspeirs" due-to="PB" type="add" issue="DBUTILS-107">
+ Patch QueryLoader to also load from XML properties files
+ </action>
+ <action dev="wspeirs" due-to="xiaofei.xu" type="fix" issue="DBUTILS-100">
+ Updated the use of getColumnName to try getColumnLabel first
+ </action>
+ <action dev="simonetripodi" due-to="Moandji Ezana" type="add" issue="DBUTILS-98">
+ Add missing Javadoc to QueryRunner#insert
+ </action>
+ <action dev="simonetripodi" type="add" issue="DBUTILS-97">
+ Add an Abstract ResultSetHandler implementation in order to reduce redundant 'resultSet' variable invocation
+ </action>
+ <action dev="simonetripodi" due-to="yuyf" type="fix" issue="DBUTILS-96">
+ DbUtils#loadDriver(ClassLoader,String) makes DriverManager throwing "No suitable driver found for jdbc"
+ if ClassLoader is not the System's one
+ </action>
+ <action dev="wspeirs" due-to="Moandji Ezana" type="add" issue="DBUTILS-87">
+ Added insert methods to QueryRunner and AsyncQueryRunner that return the generated key.
+ </action>
+ </release>
+
+ <release version="1.5" date="2012-07-20" description="Bug fixes and addition of BeanMapHandler">
+ <action dev="simonetripodi" due-to="Benedikt Ritter" type="update" issue="DBUTILS-94">
+ Provide test coverage for org.apache.commons.dbutils.DbUtils
+ </action>
+ <action dev="simonetripodi" due-to="Stevo Slavic" type="fix" issue="DBUTILS-93">
+ Source assembly artifact fails to build a site because of missing pmd-ruleset.xml
+ </action>
+ <action dev="simonetripodi" due-to="Stevo Slavic" type="update" issue="DBUTILS-91">
+ Enhance BasicRowProcessor to have row mapping easier to configure
+ </action>
+ <action due-to="wspeirs" type="update">
+ Updated pom.xml: Java 1.6 now required, clirr and compiler plugin removed
+ </action>
+ <action due-to="Tiago Cavaleiro" dev="wspeirs" type="fix" issue="DBUTILS-84">
+ BeanProcessor method processColumn should take SQLXML in consideration
+ </action>
+ <action dev="wspeirs" type="update" issue="DBUTILS-77">
+ Updated documentation to better reflect the use of pmdKnownBroken
+ </action>
+ <action due-to="Sebb" type="fix" issue="DBUTILS-73">
+ Added a fixed Locale (Locale.ENGLISH) to all toLowerCase calls in BasicRowProcessor
+ </action>
+ <action due-to="Michael Osipov" type="add" issue="DBUTILS-67">
+ Added BeanMapHandler
+ </action>
+ <action due-to="Michael Osipov" type="update" issue="DBUTILS-66">
+ Added generics to ScalarHandler, ColumnHandler, and KeyedHandler
+ </action>
+ </release>
+
+ <release version="1.4" date="2011-10-23" description="Bug fixes and addition of asynchronous QueryLoader">
+ <action type="fix" issue="DBUTILS-81">
+ DbUtils.loadDriver() uses Class.forName()
+ </action>
+ <action type="fix" issue="DBUTILS-80">
+ DbUtils.loadDriver catches Throwable
+ </action>
+ <action type="fix" issue="DBUTILS-65">
+ Duplicate code introduced during Java 1.5 branch merge
+ </action>
+ <action type="fix" issue="DBUTILS-79">
+ fillStatement doesn't complain when there are too few parameters
+ </action>
+ <action type="update" issue="DBUTILS-75">
+ efficient usage from findbugs
+ </action>
+ <action dev="wspeirs" type="add" issue="DBUTILS-78">
+ Add asynchronous batch, query, and update calls
+ </action>
+ </release>
+
+ <release version="1.3" date="2009-11-04" description="Adds Java5 generics and varargs">
+ <action dev="dfabulich" type="add" issue="DBUTILS-48">
+ Java 1.5 generics and varargs
+ </action>
+ <action dev="dfabulich" type="update" issue="DBUTILS-57">
+ BeanProcessor#mapColumnsToProperties now prefers to use column labels over column names (where aliases are not set, these should be identical)
+ </action>
+ <action dev="dfabulich" type="update" issue="DBUTILS-58">
+ Setting pmdKnownBroken in QueryRunner constructor now completely ignores ParameterMetaData
+ </action>
+ <action dev="dfabulich" type="fix" issue="DBUTILS-60">
+ Fixed error message in QueryRunner#rethrow
+ </action>
+ </release>
+
+ <release version="1.2" date="2009-03-06" description="Another round of fixes; deprecates methods in preparation for varargs in java5">
+ <action dev="dfabulich" type="update" issue="DBUTILS-52">
+ Removed setDataSource method to guarantee thread safety
+ </action>
+ <action dev="sebb" type="update" issue="DBUTILS-51">
+ Made numerous private instance members final to guarantee thread safety; changed protected member of KeyedHandler to final
+ </action>
+ <action dev="bayard" type="remove">
+ Remove old Maven1/Ant build scripts
+ </action>
+ <action dev="dfabulich" type="update" issue="DBUTILS-29">
+ Support bean property to SQL IN parameter mapping
+ </action>
+ <action dev="dfabulich" type="fix" issue="DBUTILS-31">
+ fillStatement setNull bug with the Postgres/Derby JDBC driver (and others)
+ </action>
+ <action dev="dfabulich" type="update" issue="DBUTILS-33">
+ Make GenericListHandler (now AbstractListHandler) public
+ </action>
+ <action dev="dfabulich" type="update" issue="DBUTILS-34">
+ BasicRowProcessor loses any information on database field case
+ </action>
+ <action dev="dfabulich" type="update" issue="DBUTILS-37">
+ BeanListHandler#handle(ResultSet) is not optimal
+ </action>
+ <action dev="dfabulich" type="fix" issue="DBUTILS-40">
+ NullPointerException occured at rethrow method
+ </action>
+ <action dev="dfabulich" type="update" issue="DBUTILS-42">
+ Object with Long or Decimal got initial zero value while database field is null
+ </action>
+ <action dev="dennisl" type="update" issue="DBUTILS-38">
+ example documentation page, update query
+ </action>
+ <action dev="bayard" type="fix" issue="DBUTILS-36">
+ Add serialVersionUID to BasicRowProcessor.CaseInsensitiveHashMap
+ </action>
+ </release>
+
+ <release version="1.1" date="2006-12-01" description="Last couple of years of fixes">
+ <action dev="bayard" type="fix" issue="DBUTILS-32">
+ Tests fail to build under 1.6, and warning while compiling source
+ </action>
+ <action dev="bayard" type="fix" issue="DBUTILS-1">
+ BeanListHandler and BeanHandler fail to support java.sql.Date()
+ </action>
+ <action dev="bayard" type="update" issue="DBUTILS-16">
+ ResultSetRowProcessor abstract handler and some classes rework
+ </action>
+ <action dev="bayard" type="fix" issue="DBUTILS-3">
+ Setting bean properties fails silently
+ </action>
+ <action dev="dgraham" type="fix" issue="DBUTILS-9">
+ MockResultSet needs to handle equals and hashCode
+ </action>
+ <action dev="bayard" type="fix" issue="DBUTILS-7">
+ MockResultSet: Throw UnsupportedOperationException for not implemented methods
+ </action>
+ <action dev="dgraham" type="add" issue="DBUTILS-20">
+ Implement Pluggable Adaptors to Make BeanHandler Smarter
+ </action>
+ <action dev="dgraham" type="update" issue="DBUTILS-15">
+ Patch for extending BasicRowProcessor
+ </action>
+ <action dev="dgraham" type="add" issue="DBUTILS-12">
+ Protected QueryRunner.close() methods
+ </action>
+ <action dev="dgraham" type="update" issue="DBUTILS-23">
+ Updated docs for example.html page (select AS)
+ </action>
+ <action dev="dgraham" type="add" issue="DBUTILS-4">
+ Added protected ResultSetIterator.rethrow() method to wrap SQLExceptions in
+ RuntimeExceptions.
+ </action>
+ <action dev="dgraham" type="update" issue="DBUTILS-5">
+ Added SQLState and error code to rethrown SQLExceptions.
+ </action>
+ <action dev="dgraham" type="add" issue="DBUTILS-25">
+ Added KeyedHandler to create a Map of Maps from a ResultSet.
+ </action>
+ <action dev="dgraham" type="update" issue="DBUTILS-2">
+ Use current class' ClassLoader instead of QueryLoader's ClassLoader
+ in loadQueries().
+ </action>
+ <action dev="dgraham" type="update" issue="DBUTILS-22">
+ Made QueryLoader.loadQueries() protected so subclasses can use query
+ repositories other than properties files.
+ </action>
+ <action dev="dgraham" type="update">
+ QueryRunner now calls getDataSource() internally any time it needs access
+ to its DataSource object to allow subclasses to provide different behavior.
+ </action>
+ <action dev="dgraham" type="add">
+ Added DbUtils.rollbackAndClose() and DbUtils.rollbackAndCloseQuietly().
+ </action>
+ <action dev="dgraham" type="update" issue="DBUTILS-26">
+ Call ResultSet.getTimestamp() in BeanProcessor.processColumn() if
+ the bean property is a java.sql.Timestamp. Oracle's getObject()
+ implementation returns its own incompatible Timestamp class.
+ </action>
+ <action dev="dgraham" type="update" issue="DBUTILS-18">
+ Changed QueryRunner.fillStatement() null handling
+ to use Types.VARCHAR instead of Types.OTHER. This works for the
+ following tested drivers: Firebird 1.5/firebirdsql 1.5RC3,
+ Oracle 9/ Thin driver, MySQL 4.0/Msql Connecttor 3.0 and mm.mysql
+ 2.0.4 MaxDB 7.5, HSQLDB 1.7.1, and MS Access/ODBC Bridge.
+ </action>
+ <action dev="dgraham" type="add" issue="DBUTILS-21">
+ Added a protected QueryRunner.prepareConnection() method to
+ allow subclasses to customize the Connections retrieved from
+ the DataSource before they're used.
+ </action>
+ <action dev="dgraham" type="add">
+ Refactored bean handling from BasicRowProcessor into new
+ BeanProcessor class. This also fixes the common problem with
+ Oracle NUMERIC fields not being set into bean properties.
+ </action>
+ <action dev="dgraham" type="add" issue="DBUTILS-13">
+ Added QueryRunner.batch() methods for batch updates.
+ </action>
+ <action dev="dgraham" type="add" issue="DBUTILS-11">
+ Added new ResultSetHandler implementation, ColumnListHandler, that
+ converts one ResultSet column into a List of Objects.
+ </action>
+ </release>
+
+ <release version="1.0" date="2003-11-10" description="First release of DbUtils">
+ <action type="add">
+ This is the first release of the Commons DbUtils package. DbUtils
+ is a small set of classes designed to make working with JDBC easier.
+ </action>
+ <action type="add">
+ QueryRunner class with ResultSetHandler interface allow you to easily query or
+ update a database and handle the ResultSet. Several useful implementations
+ of the ResultSetHandler interface are located in the
+ org.apache.commons.dbutils.handlers.* package.
+ </action>
+ <action type="add">
+ ResultSet wrappers that decorate ResultSets with specialized
+ behavior. See the classes in the org.apache.commons.dbutils.wrappers.*
+ package for details.
+ </action>
+ <action type="add">
+ Dynamic JDBC API interface implementations via the standard
+ java.lang.reflect.Proxy class. This allows you to implement JDBC
+ interfaces such as ResultSet at runtime to avoid API version
+ incompatibilities. See org.apache.commons.dbutils.ProxyFactory
+ for details.
+ </action>
+ </release>
+
+ </body>
+</document>