From bc79aa14012781cc2949903204af3aa73f825e12 Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Fri, 14 Jun 2019 12:23:30 -0700 Subject: [PATCH] v7.3.1 Preview Release preparations (#1083) --- CHANGELOG.md | 25 ++++++++++++++ README.md | 94 +++++++++++++++++++++++++++++++--------------------- build.gradle | 2 +- pom.xml | 2 +- 4 files changed, 83 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e720ad62d..21dfdbbf7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,31 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) +## [7.3.1] Preview Release +### Added +- Added support for NTLM Authentication [#998](https://github.com/Microsoft/mssql-jdbc/pull/998) +- Added new connection property 'useFmtOnly' to retrieve parameter metadata [#1044](https://github.com/Microsoft/mssql-jdbc/pull/1044) +- Added support for JDK 12 with an additional "jre12" JAR [#1050](https://github.com/Microsoft/mssql-jdbc/pull/1050) +- Added 'keyVaultProviderClientId' and 'keyVaultProviderClientKey' connection properties to enhance Always Encrypted usability [#902](https://github.com/Microsoft/mssql-jdbc/pull/902) +- Implemented `hashCode()` and `equals()` APIs for `SQLServerDataTable` and `SQLServerDataColumn` [#1025](https://github.com/Microsoft/mssql-jdbc/pull/1025) +- Added Maven Shade plugin configuration to package the driver jars in uber-jars [#1043](https://github.com/Microsoft/mssql-jdbc/pull/1043) [#1078](https://github.com/Microsoft/mssql-jdbc/pull/1078) [#1081](https://github.com/Microsoft/mssql-jdbc/pull/1081) + +### Fixed Issues +- Fixed `DatabaseMetadata.getColumns()` API to return `ResultSet` as per JDBC 4.3 Specifications [#1016](https://github.com/Microsoft/mssql-jdbc/pull/1016) +- Fixed issue with invalid Spatial data types by marking them valid by default [#1035](https://github.com/microsoft/mssql-jdbc/pull/1035) +- Fixed issues with Login Timeout not getting applied appropriately [#1049](https://github.com/Microsoft/mssql-jdbc/pull/1049) +- Fixed `SharedTimer` implementation to use class level lock for thread safety [#1046](https://github.com/Microsoft/mssql-jdbc/pull/1046) +- Fixed issues with `SQLServerDatabaseMetadata.getMaxConnections()` API query [#1009](https://github.com/Microsoft/mssql-jdbc/pull/1009) +- Fixed issues with next `ResultSet` being consumed when reading warnings [#991](https://github.com/Microsoft/mssql-jdbc/pull/991) +- Fixed exception handling in `SQLServerPreparedStatement` to make it consistent with `SQLServerStatement` [#1003](https://github.com/Microsoft/mssql-jdbc/pull/1003) +- Fixed misleading exception message in `SQLServerCallableStatement` implementation [#1064](https://github.com/Microsoft/mssql-jdbc/pull/1064) +- JUnit Test fixes and improvements [#994](https://github.com/Microsoft/mssql-jdbc/pull/994) [#1004](https://github.com/Microsoft/mssql-jdbc/pull/1004) [#1005](https://github.com/Microsoft/mssql-jdbc/pull/1005) [#1006](https://github.com/Microsoft/mssql-jdbc/pull/1006) [#1008](https://github.com/Microsoft/mssql-jdbc/pull/1008) [#1015](https://github.com/Microsoft/mssql-jdbc/pull/1015) [#1017](https://github.com/Microsoft/mssql-jdbc/pull/1017) [#1019](https://github.com/Microsoft/mssql-jdbc/pull/1019) [#1027](https://github.com/Microsoft/mssql-jdbc/pull/1027) [#1032](https://github.com/Microsoft/mssql-jdbc/pull/1032) [#1034](https://github.com/Microsoft/mssql-jdbc/pull/1034) [#1036](https://github.com/Microsoft/mssql-jdbc/pull/1036) [#1041](https://github.com/Microsoft/mssql-jdbc/pull/1041) [#1047](https://github.com/Microsoft/mssql-jdbc/pull/1047) [#1060](https://github.com/Microsoft/mssql-jdbc/pull/1060) + +### Changed +- Improved performance of driver by continuously cleaning up `ActivityIds` stored in internal Map [#1020](https://github.com/Microsoft/mssql-jdbc/pull/1020) +- Improved performance by removing `Enum.values()` calls to avoid unnecessary array cloning [#1065](https://github.com/Microsoft/mssql-jdbc/pull/1065) +- Improved performance of `SQLServerDataTable.internalAddRow()` function [#990](https://github.com/Microsoft/mssql-jdbc/pull/990) + ## [7.3.0] Preview Release ### Added - Added support in SQLServerBulkCopy to allow Pooled/XA Connection instances during object creation [#968](https://github.com/Microsoft/mssql-jdbc/pull/968) diff --git a/README.md b/README.md index 172f294c9..75ddf267c 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,9 @@ Let us know how you think we're doing. ## Status of Most Recent Builds -| Azure Pipelines (Windows) | Travis CI (Linux) | -|--------------------------|--------------------------| -| [![Build Status](https://dev.azure.com/sqlclientdrivers-ci/mssql-jdbc/_apis/build/status/Microsoft.mssql-jdbc?branchName=dev)](https://dev.azure.com/sqlclientdrivers-ci/mssql-jdbc/_build/latest?definitionId=1&branchName=dev) | [![Travis CI](https://travis-ci.org/Microsoft/mssql-jdbc.svg? "Linux")](https://travis-ci.org/Microsoft/mssql-jdbc ) |vg? "Linux" +| Azure Pipelines (Windows) | Azure Pipelines (Linux) | Azure Pipelines (MacOS) | +|--------------------------|--------------------------|--------------------------| +|[![Build Status](https://dev.azure.com/sqlclientdrivers-ci/mssql-jdbc/_apis/build/status/Microsoft.mssql-jdbc.windows?branchName=dev)](https://dev.azure.com/sqlclientdrivers-ci/mssql-jdbc/_build/latest?definitionId=1&branchName=dev) | [![Build Status](https://dev.azure.com/sqlclientdrivers-ci/mssql-jdbc/_apis/build/status/Microsoft.mssql-jdbc.linux?branchName=dev)](https://dev.azure.com/sqlclientdrivers-ci/mssql-jdbc/_build/latest?definitionId=3&branchName=dev) | [![Build Status](https://dev.azure.com/sqlclientdrivers-ci/mssql-jdbc/_apis/build/status/Microsoft.mssql-jdbc.macOS?branchName=dev)](https://dev.azure.com/sqlclientdrivers-ci/mssql-jdbc/_build/latest?definitionId=7&branchName=dev)| ## Announcements What's coming next? We will look into adding a more comprehensive set of tests, improving our javadocs, and start developing the next set of features. @@ -36,26 +36,28 @@ What's coming next? We will look into adding a more comprehensive set of tests, ## Build ### Prerequisites -* Java 11 -* [Maven](http://maven.apache.org/download.cgi) +* Java 11+ +* [Maven 3.5.0+](http://maven.apache.org/download.cgi) * An instance of SQL Server or Azure SQL Database that you can connect to. ### Build the JAR files Maven builds automatically trigger a set of verification tests to run. For these tests to pass, you will first need to add an environment variable in your system called `mssql_jdbc_test_connection_properties` to provide the [correct connection properties](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url) for your SQL Server or Azure SQL Database instance. -To build the jar files, you must use Java 11 with Maven. You can choose to build a JDBC 4.3 compliant jar file (for use with JRE 11) and/or a JDBC 4.2 compliant jar file (for use with JRE 8). +To build the jar files, you must use minimum version of Java 11 with Maven. You may choose to build JDBC 4.3 compliant jar file (for use with JRE 11 or newer JRE versions) and/or a JDBC 4.2 compliant jar file (for use with JRE 8). * Maven: 1. If you have not already done so, add the environment variable `mssql_jdbc_test_connection_properties` in your system with the connection properties for your SQL Server or SQL DB instance. - 2. Run one of the commands below to build a JDBC 4.3 compliant jar or JDBC 4.2 compliant jar in the `\target` directory. - * Run `mvn install -Pbuild43`. This creates JDBC 4.3 compliant jar in `\target` directory - * Run `mvn install -Pbuild42`. This creates JDBC 4.2 compliant jar in `\target` directory + 2. Run one of the commands below to build a JRE 11 and newer versions compatible jar or JRE 8 compatible jar in the `\target` directory. + * Run `mvn install -Pjre12`. This creates JRE 12 compatible jar in `\target` directory which is JDBC 4.3 compliant (Build with JDK 12+). + * Run `mvn install -Pjre11`. This creates JRE 11 compatible jar in `\target` directory which is JDBC 4.3 compliant (Build with JDK 11+). + * Run `mvn install -Pjre8`. This creates JRE 8 compatible jar in `\target` directory which is JDBC 4.2 compliant (Build with JDK 11+). * Gradle: 1. If you have not already done so, add the environment variable `mssql_jdbc_test_connection_properties` in your system with the connection properties for your SQL Server or SQL DB instance. - 2. Run one of the commands below to build a JDBC 4.3 compliant jar or JDBC 4.2 compliant jar in the `\build\libs` directory. - * Run `gradle build -PbuildProfile=build43`. This creates JDBC 4.3 compliant jar in `\build\libs` directory - * Run `gradle build -PbuildProfile=build42`. This creates JDBC 4.2 compliant jar in `\build\libs` directory + 2. Run one of the commands below to build a JRE 11 and newer versions compatible jar or JRE 8 compatible jar in the `\build\libs` directory. + * Run `gradle build -PbuildProfile=jre12`. This creates JRE 12 compatible jar in `\build\libs` directory which is JDBC 4.3 compliant (Build with JDK 12+). + * Run `gradle build -PbuildProfile=jre11`. This creates JRE 11 compatible jar in `\build\libs` directory which is JDBC 4.3 compliant (Build with JDK 11+). + * Run `gradle build -PbuildProfile=jre8`. This creates JRE 8 compatible jar in `\build\libs` directory which is JDBC 4.2 compliant (Build with JDK 11+). ## Resources @@ -90,7 +92,7 @@ To get the latest preview version of the driver, add the following to your POM f com.microsoft.sqlserver mssql-jdbc - 7.3.0.jre11-preview + 7.3.1.jre12-preview ``` @@ -119,65 +121,77 @@ mvn dependency:tree ### Azure Key Vault and Azure Active Directory Authentication Dependencies Projects that require either of the two features need to explicitly declare the dependency in their pom file. -***For Example:*** If you are using *Azure Active Directory Authentication feature* then you need to redeclare *adal4j* and *client-runtime* dependency in your project's pom file. Please see the following snippet: +***For Example:*** If you are using *Azure Active Directory Authentication feature* then you need to redeclare *adal4j* and *client-runtime* dependency in your project's POM file. Please see the following snippet: ```xml com.microsoft.sqlserver mssql-jdbc - 7.3.0.jre11-preview + 7.3.1.jre12-preview compile com.microsoft.azure adal4j - 1.6.3 + 1.6.4 com.microsoft.rest client-runtime - 1.6.5 + 1.6.8 ``` -***For Example:*** If you are using *Azure Key Vault feature* then you need to redeclare *azure-keyvault*, *azure-keyvault-webkey* dependency and *adal4j*, *client-runtime* dependency in your project's pom file. Please see the following snippet: +***For Example:*** If you are using *Azure Key Vault feature* then you need to redeclare *azure-keyvault*, *azure-keyvault-webkey* dependency and *adal4j*, *client-runtime* dependency in your project's POM file. Please see the following snippet: ```xml com.microsoft.sqlserver mssql-jdbc - 7.3.0.jre11-preview + 7.3.1.jre12-preview compile com.microsoft.azure adal4j - 1.6.3 + 1.6.4 com.microsoft.rest client-runtime - 1.6.5 + 1.6.8 com.microsoft.azure azure-keyvault - 1.2.0 + 1.2.1 +``` + +***Please note*** as of the v6.2.2, the way to construct a `SQLServerColumnEncryptionAzureKeyVaultProvider` object has changed. Please refer to this [Wiki](https://github.com/Microsoft/mssql-jdbc/wiki/New-Constructor-Definition-for-SQLServerColumnEncryptionAzureKeyVaultProvider-after-6.2.2-Release) page for more information. + +### 'useFmtOnly' connection property Dependencies +When setting 'useFmtOnly' property to 'true' for establishing a connection or creating a prepared statement, *antlr-runtime* dependency is required to be added in your project's POM file. Please see the following snippet: + +```xml - com.microsoft.azure - azure-keyvault-webkey - 1.2.0 + com.microsoft.sqlserver + mssql-jdbc + 7.3.1.jre12-preview -``` -***Please note*** as of the v6.2.2, the way to construct a `SQLServerColumnEncryptionAzureKeyVaultProvider` object has changed. Please refer to this [Wiki](https://github.com/Microsoft/mssql-jdbc/wiki/New-Constructor-Definition-for-SQLServerColumnEncryptionAzureKeyVaultProvider-after-6.2.2-Release) page for more information. + + org.antlr + antlr4-runtime + 4.7.2 + +``` ## Guidelines for Creating Pull Requests We love contributions from the community. To help improve the quality of our code, we encourage you to use the mssql-jdbc_formatter.xml formatter provided on all pull requests. @@ -189,7 +203,7 @@ We appreciate you taking the time to test the driver, provide feedback and repor - Report each issue as a new issue (but check first if it's already been reported) - Try to be detailed in your report. Useful information for good bug reports include: - * What you are seeing and what the expected behaviour is + * What you are seeing and what the expected behavior is * Which jar file? * Environment details: e.g. Java version, client operating system? * Table schema (for some issues the data types make a big difference!) @@ -208,29 +222,33 @@ Preview releases happen approximately monthly between stable releases. This give You can see what is going into a future release by monitoring [Milestones](https://github.com/Microsoft/mssql-jdbc/milestones) in the repository. -### Versioning convention -Starting with 6.0, stable versions have an even minor version. For example, 6.0, 6.2, 6.4, 7.0, 7.2. Preview versions have an odd minor version. For example, 6.1, 6.3, 6.5, 7.1. +### Version conventions +Starting with 6.0, stable versions have an even minor version. For example, 6.0, 6.2, 6.4, 7.0, 7.2. Preview versions have an odd minor version. For example, 6.1, 6.3, 6.5, 7.1, 7.3, and so on ## Contributors -Special thanks to everyone who has contributed to the project. +Special thanks to everyone who has contributed to the project. Up-to-date list of contributors: https://github.com/Microsoft/mssql-jdbc/graphs/contributors -- marschall (Philippe Marschall) +Here are our Top 15 contributors from the community: - pierresouchay (Pierre Souchay) +- marschall (Philippe Marschall) +- JamieMagee (Jamie Magee) +- sehrope (Sehrope Sarkuni) - gordthompson (Gord Thompson) +- simon04 (Simon Legner) - gstojsic - cosmofrit -- JamieMagee (Jamie Magee) -- mfriesen (Mike Friesen) +- rPraml (Roland Praml) +- nsidhaye (Nikhil Sidhaye) - tonytamwk -- sehrope (Sehrope Sarkuni) -- jacobovazquez -- brettwooldridge (Brett Wooldridge) +- shayaantx +- mnhubspot +- mfriesen (Mike Friesen) +- harawata (Iwao AVE!) ## License The Microsoft JDBC Driver for SQL Server is licensed under the MIT license. See the [LICENSE](https://github.com/Microsoft/mssql-jdbc/blob/master/LICENSE) file for more details. ## Code of conduct This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - diff --git a/build.gradle b/build.gradle index c7a985819..75d52e31d 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ apply plugin: 'java' -version = '7.3.1-SNAPSHOT' +version = '7.3.1' def jreVersion = "" def testOutputDir = file("build/classes/java/test") def archivesBaseName = 'mssql-jdbc' diff --git a/pom.xml b/pom.xml index 5c1fc9336..d7b9a6216 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.microsoft.sqlserver mssql-jdbc - 7.3.1-SNAPSHOT + 7.3.1 jar Microsoft JDBC Driver for SQL Server