| <?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>Release Notes</title> |
| </properties> |
| <body> |
| |
| <release version="1.7" date="TBA" description="TBD"> |
| <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> |
| </release> |
| |
| <release version="1.6" date="2014-07-20" description="Bugfixes 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="Bugfixes 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="Bugfixes 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> |