Skip to content

Commit

Permalink
v7.3.1 Preview Release preparations (#1083)
Browse files Browse the repository at this point in the history
  • Loading branch information
cheenamalhotra authored Jun 14, 2019
1 parent 89c9d83 commit bc79aa1
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 40 deletions.
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
94 changes: 56 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ Let us know how you think we're doing.
<a href="https://aka.ms/mssqljdbcsurvey"><img style="float: right;" height="67" width="156" src="https://sqlchoice.blob.core.windows.net/sqlchoice/static/images/survey.png"></a>

## 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.
Expand All @@ -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

Expand Down Expand Up @@ -90,7 +92,7 @@ To get the latest preview version of the driver, add the following to your POM f
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.3.0.jre11-preview</version>
<version>7.3.1.jre12-preview</version>
</dependency>
```

Expand Down Expand Up @@ -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
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.3.0.jre11-preview</version>
<version>7.3.1.jre12-preview</version>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>adal4j</artifactId>
<version>1.6.3</version>
<version>1.6.4</version>
</dependency>

<dependency>
<groupId>com.microsoft.rest</groupId>
<artifactId>client-runtime</artifactId>
<version>1.6.5</version>
<version>1.6.8</version>
</dependency>
```

***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
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.3.0.jre11-preview</version>
<version>7.3.1.jre12-preview</version>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>adal4j</artifactId>
<version>1.6.3</version>
<version>1.6.4</version>
</dependency>

<dependency>
<groupId>com.microsoft.rest</groupId>
<artifactId>client-runtime</artifactId>
<version>1.6.5</version>
<version>1.6.8</version>
</dependency>

<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-keyvault</artifactId>
<version>1.2.0</version>
<version>1.2.1</version>
</dependency>
```

***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
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-keyvault-webkey</artifactId>
<version>1.2.0</version>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.3.1.jre12-preview</version>
</dependency>
```

***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.
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>4.7.2</version>
</dependency>
```

## 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.
Expand All @@ -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!)
Expand All @@ -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 [[email protected]](mailto:[email protected]) with any additional questions or comments.

2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1</version>
<packaging>jar</packaging>

<name>Microsoft JDBC Driver for SQL Server</name>
Expand Down

0 comments on commit bc79aa1

Please sign in to comment.