[CALCITE-1612] Release Avatica 1.10
Add release notes.
Fix assembly descriptor and configuration, following upgrade of
maven-assembly-plugin to 3.0.
Update release instructions. We now require JDK 8 for release builds,
because docker-maven-plugin requires Files.readAllLines.
diff --git a/README b/README
index 451e39f..30fb4e5 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Apache Calcite Avatica release 1.9.0
+Apache Calcite Avatica release 1.10.0
This is a source or binary distribution of Avatica, a framework for
building database drivers. Avatica is a sub-project of Apache Calcite.
diff --git a/core/src/main/protobuf/requests.proto b/core/src/main/protobuf/requests.proto
index 1e2c334..07b40cc 100644
--- a/core/src/main/protobuf/requests.proto
+++ b/core/src/main/protobuf/requests.proto
@@ -166,4 +166,4 @@
string connection_id = 1;
uint32 statement_id = 2;
repeated UpdateBatch updates = 3; // A batch of updates is a list<list<typevalue>>
-}
\ No newline at end of file
+}
diff --git a/pom.xml b/pom.xml
index 4a0ab3e..e99c13f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,7 @@
<top.dir>${project.basedir}</top.dir>
<avatica.release.version>${project.version}</avatica.release.version>
<version.major>1</version.major>
- <version.minor>9</version.minor>
+ <version.minor>10</version.minor>
<!-- This list is in alphabetical order. -->
<bouncycastle.version>1.55</bouncycastle.version>
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
@@ -675,7 +675,7 @@
<phase>none</phase>
</execution>
<execution>
- <id>source-release-assembly-calcite</id>
+ <id>source-release-assembly-avatica</id>
<phase>package</phase>
<goals>
<goal>single</goal>
@@ -683,7 +683,9 @@
<configuration>
<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
<appendAssemblyId>false</appendAssemblyId>
- <descriptor>${top.dir}/src/main/config/assemblies/source-assembly.xml</descriptor>
+ <descriptors>
+ <descriptor>${top.dir}/src/main/config/assemblies/source-assembly.xml</descriptor>
+ </descriptors>
<finalName>apache-calcite-avatica-${project.version}-src</finalName>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
diff --git a/server/src/test/resources/log4j.properties b/server/src/test/resources/log4j.properties
index 662858e..084cc44 100644
--- a/server/src/test/resources/log4j.properties
+++ b/server/src/test/resources/log4j.properties
@@ -25,4 +25,4 @@
# Debug for JGSS and Jetty's security (Kerberos/SPNEGO debugging)
#log4j.logger.sun.security.jgss=DEBUG
-#log4j.logger.org.eclipse.jetty.security=DEBUG
\ No newline at end of file
+#log4j.logger.org.eclipse.jetty.security=DEBUG
diff --git a/site/_docs/history.md b/site/_docs/history.md
index 58a1f9f..d73b48f 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -28,6 +28,96 @@
Downloads are available on the
[downloads page]({{ site.baseurl }}/downloads/).
+## <a href="https://github.com/apache/calcite-avatica/releases/tag/calcite-avatica-1.10.0">1.10.0</a> / 2017-05-30
+{: #v1-10-0}
+
+Apache Calcite Avatica 1.10.0 is the first release since
+[Avatica's git repository](https://git-wip-us.apache.org/repos/asf/calcite-avatica.git)
+separated from
+[Calcite's repository](https://git-wip-us.apache.org/repos/asf/calcite.git) in
+[[CALCITE-1717](https://issues.apache.org/jira/browse/CALCITE-1717)].
+Avatica now runs on JDK 9 (and continues to run on JDK 7 and 8),
+and there is now a Docker image for an Avatica server.
+You may now send and receive Array data via the JDBC API.
+Several improvements to date/time support in DateTimeUtils.
+
+Compatibility: This release is tested
+on Linux, macOS, Microsoft Windows;
+using Oracle JDK 7, 8, 9;
+Guava versions 14.0 to 19.0;
+other software versions as specified in `pom.xml`.
+
+Features and bug fixes
+
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1690">CALCITE-1690</a>]
+ Timestamp literals cannot express precision above millisecond
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1539">CALCITE-1539</a>]
+ Enable proxy access to Avatica server for third party on behalf of end users
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1756">CALCITE-1756</a>]
+ Differentiate between implicitly null and explicitly null `TypedValue`s
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1050">CALCITE-1050</a>]
+ Array support for Avatica
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1746">CALCITE-1746</a>]
+ Remove `KEYS` file from git and from release tarball
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1353">CALCITE-1353</a>]
+ Convert `first_frame_max_size` to an `int32`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1744">CALCITE-1744</a>]
+ Clean up the Avatica poms
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1741">CALCITE-1741</a>]
+ Upgrade `maven-assembly-plugin` to version 3.0.0
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1364">CALCITE-1364</a>]
+ Docker images for an Avatica server
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1717">CALCITE-1717</a>]
+ Remove Calcite code and lift Avatica
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1700">CALCITE-1700</a>]
+ De-couple the `HsqldbServer` into a generic JDBC server
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1699">CALCITE-1699</a>]
+ Statement may be null
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1667">CALCITE-1667</a>]
+ Forbid calls to JDK APIs that use the default locale, time zone or character
+ set
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1664">CALCITE-1664</a>]
+ `CAST('<string>' as TIMESTAMP)` wrongly adds part of sub-second fraction to the
+ value
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1654">CALCITE-1654</a>]
+ Avoid generating a string from the Request/Response when it will not be logged
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1609">CALCITE-1609</a>]
+ In `DateTimeUtils`, implement `unixDateExtract` and `unixTimeExtract` for more
+ time units
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1608">CALCITE-1608</a>]
+ Move `addMonths` and `subtractMonths` methods from Calcite class `SqlFunctions`
+ to Avatica class `DateTimeUtils`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1600">CALCITE-1600</a>]
+ In `Meta.Frame.create()`, change type of `offset` parameter from `int` to `long`
+ (Gian Merlino)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1602">CALCITE-1602</a>]
+ Remove uses of deprecated APIs
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1599">CALCITE-1599</a>]
+ Remove unused `createIterable` call in `LocalService` (Gian Merlino)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1576">CALCITE-1576</a>]
+ Use the `protobuf-maven-plugin`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1567">CALCITE-1567</a>]
+ JDK9 support
+* Remove non-ASCII characters from Java source files
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1538">CALCITE-1538</a>]
+ Support `truststore` and `truststore_password` JDBC options
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1485">CALCITE-1485</a>]
+ Upgrade Avatica's Apache parent POM to version 18
+
+Tests
+
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1752">CALCITE-1752</a>]
+ Use `URLDecoder` instead of manually replacing "%20" in URLs
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1736">CALCITE-1736</a>]
+ Address test failures when the path contains spaces
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1568">CALCITE-1568</a>]
+ Upgrade `mockito` to 2.5.5
+
+Web site and documentation
+
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1743">CALCITE-1743</a>]
+ Add instructions to release docs to move git tag from `rcN` to `rel/`
+
## <a href="https://github.com/apache/calcite-avatica/releases/tag/calcite-avatica-1.9.0">1.9.0</a> / 2016-11-01
{: #v1-9-0}
diff --git a/site/_docs/howto.md b/site/_docs/howto.md
index 8ffcc66..a7ad380 100644
--- a/site/_docs/howto.md
+++ b/site/_docs/howto.md
@@ -38,8 +38,8 @@
then build using maven:
{% highlight bash %}
-$ tar xvfz apache-calcite-avatica-1.9.0-src.tar.gz
-$ cd apache-calcite-avatica-1.9.0-src
+$ tar xvfz apache-calcite-avatica-1.10.0-src.tar.gz
+$ cd apache-calcite-avatica-1.10.0-src
$ mvn install
{% endhighlight %}
@@ -174,7 +174,7 @@
Before you start:
* Set up signing keys as described above.
-* Make sure you are using JDK 1.7 (not 1.8).
+* Make sure you are using JDK 8 (not 7 or 9).
{% highlight bash %}
# Make sure that there are no junk files in the sandbox
@@ -190,13 +190,10 @@
Before you start:
* Set up signing keys as described above.
-* Make sure you are using JDK 1.7 (not 1.8).
-* Check that `README` and `site/_docs/howto.md` have the correct version number.
+* Make sure you are using JDK 8 (not 7 or 9).
+* Check that `README`, `site/_docs/howto.md`
+ and `docker/src/main/dockerhub/Dockerfile` have the correct version number.
* Set `version.major` and `version.minor` in `pom.xml`.
-* Trigger a
- <a href="https://scan.coverity.com/projects/2966">Coverity scan</a>
- by merging the latest code into the `julianhyde/coverity_scan` branch,
- and when it completes, make sure that there are no important issues.
* Make sure that
<a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20CALCITE%20AND%20status%20%3D%20Resolved%20and%20fixVersion%20is%20null">
every "resolved" JIRA case</a> (including duplicates) has
@@ -230,8 +227,21 @@
# Make sure that there are no junk files in the sandbox
git clean -xn
+# For the dry run, edit the docker/dockerhub/Dockerfile
+patch -p1 <<EOF
+diff --git a/docker/src/main/dockerhub/Dockerfile b/docker/src/main/dockerhub/Dockerfile
+index 4617a4e..4ccd97f 100644
+--- a/docker/src/main/dockerhub/Dockerfile
++++ b/docker/src/main/dockerhub/Dockerfile
+@@ -23,3 +23,3 @@ RUN mkdir -p /home/avatica/classpath
+# This line must be preserved. The Maven build will verify this version matches its version
+-ARG AVATICA_VERSION="1.10.0"
++ARG AVATICA_VERSION="1.10.0-SNAPSHOT"
+EOF
+
# Do a dry run of the release:prepare step, which sets version numbers.
-mvn -DdryRun=true -DreleaseVersion=X.Y.Z -DdevelopmentVersion=X.Y.Z+1-SNAPSHOT -Dtag=calcite-avatica-X.Y.Z-rcN -Papache-release -Duser.name=${asf.username} release:prepare
+# Typically we increment minor version: If X.Y.Z is 1.10.0, X2.Y2.Z2 is 1.11.0.
+mvn -DdryRun=true -DreleaseVersion=X.Y.Z -DdevelopmentVersion=X2.Y2.Z2-SNAPSHOT -Dtag=avatica-X.Y.Z-rcN -Papache-release -Duser.name=${asf.username} release:prepare
{% endhighlight %}
Check the artifacts:
@@ -253,7 +263,9 @@
`README`, `README.md`
* Check that the version in `README` is correct
* Make sure that there is no `KEYS` file in the source distros
-* For each .jar, verify that the `META-INF` directory contains the correct
+* For each .jar (for example `core/target/avatica-core-X.Y.Z.jar`
+ and `server/target/avatica-server-X.Y.Z-sources.jar`),
+ verify that the `META-INF` directory contains the correct
contents for `DEPENDENCIES`, `LICENSE` and `NOTICE` per the
source/classes contained. Refer to the ASF licensing documentation on
what is required.
@@ -270,7 +282,8 @@
{% highlight bash %}
# Prepare sets the version numbers, creates a tag, and pushes it to git.
-mvn -DreleaseVersion=X.Y.Z -DdevelopmentVersion=X.Y.Z+1-SNAPSHOT -Dtag=avatica-X.Y.Z-rc0 -Papache-release -Duser.name=${asf.username} release:prepare
+# Typically we increment minor version: If X.Y.Z is 1.10.0, X2.Y2.Z2 is 1.11.0.
+mvn -DreleaseVersion=X.Y.Z -DdevelopmentVersion=X2.Y2.Z2-SNAPSHOT -Dtag=avatica-X.Y.Z-rcN -Papache-release -Duser.name=${asf.username} release:prepare
# Perform checks out the tagged version, builds, and deploys to the staging repository
mvn -Papache-release -Duser.name=${asf.username} release:perform -Darguments="-DskipTests"
@@ -297,6 +310,13 @@
svn co https://dist.apache.org/repos/dist/dev/calcite
popd
+# Replace digest files with a single digest
+cd target
+for f in *.tar.gz *.zip; do
+ rm ${f}.md5 ${f}.sha1
+ gpg --print-mds ${f} > ${f}.mds
+done
+
# Move the files into a directory
cd target
mkdir ~/dist/dev/calcite/apache-calcite-avatica-X.Y.Z-rcN
diff --git a/src/main/config/assemblies/source-assembly.xml b/src/main/config/assemblies/source-assembly.xml
index 2b1f930..5f3fd75 100644
--- a/src/main/config/assemblies/source-assembly.xml
+++ b/src/main/config/assemblies/source-assembly.xml
@@ -25,7 +25,7 @@
<!-- main project directory structure -->
<fileSet>
<directory>.</directory>
- <outputDirectory>/</outputDirectory>
+ <outputDirectory/>
<useDefaultExcludes>true</useDefaultExcludes>
<excludes>
<!-- build output -->
@@ -90,14 +90,14 @@
<fileSet>
<directory>${project.build.directory}/maven-shared-archive-resources/META-INF
</directory>
- <outputDirectory>/</outputDirectory>
+ <outputDirectory/>
</fileSet>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>git.properties</include>
</includes>
- <outputDirectory>/</outputDirectory>
+ <outputDirectory/>
</fileSet>
</fileSets>
</assembly>
diff --git a/tck/src/main/resources/log4j.properties b/tck/src/main/resources/log4j.properties
index 68a9cc2..314297a 100644
--- a/tck/src/main/resources/log4j.properties
+++ b/tck/src/main/resources/log4j.properties
@@ -21,4 +21,4 @@
# Set the pattern for each log message
log4j.appender.A1.layout=org.apache.calcite.avatica.tck.shaded.org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} - %m%n
\ No newline at end of file
+log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} - %m%n