quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.77k stars 2.68k forks source link

MS SQL Server version in jpa-mssql #6624

Open rsvoboda opened 4 years ago

rsvoboda commented 4 years ago

jpa-mssql test are executed against MS SQL server version 2017 CU12.

https://hub.docker.com/r/microsoft/mssql-server-linux/tags only goes up to CU13 (repository is deprecated), that is the version used in https://github.com/quarkusio/quarkus/pull/6623

Should be MS SQL Server 2019 used in tests ?

We probably need to switch to https://hub.docker.com/_/microsoft-mssql-server even if we stay on 2017.

Sanne commented 4 years ago

little update on this: I gave it a shot, hoping that it would have been something I could do in ~1h ... wrong :-)

It turned out to become a fairly complex pandora box: there's various new features in the driver such as an optional SQL parser based on ANTLR4 (which is an optional dependency), and various pluggable security mechanisms for features like column-level encryption, some of which require an optional dependency to a REST client so to gather the encryption keys from Azure services.

I've tried my way around these via substitutions, but it's harder than usual as most of the types to be patched are extending other types - and it's illegal to substitute a class which doesn't extend Object directly.

It's an interesting puzzle and I could keep going to somehow try to disable these features, but I'm starting to wonder if it wouldn't be easier to support all such extension points.

Ideally the Quarkus extension should give the option to the user, but this is mostly about optional dependencies being needed (or not), something our core build tools don't support yet.

I'll need to set this aside momentarily to work on higher priority issues.

rsvoboda commented 4 years ago

Thanks for looking at this topic, to summarize: we are stuck with current jdbc driver version and if we want to move ahead we will need to solve this puzzle before proceeding.

My feeling is that we will see similar situations with more dependencies.

I will close https://github.com/quarkusio/quarkus/pull/6623 as we are blocked for now.

Sanne commented 4 years ago

My feeling is that we will see similar situations with more dependencies.

Indeed. There's many 3rd party dependencies for which we can't be as proactive as with the core frameworks we contribute to, so when updates will be needed it might take quite some work.

Sanne commented 4 years ago

Also: there's an upcoming version 8 for this driver, currently in tech preview. Might be wiser to test that one out rather than spending too much time upgrading the minor of version 7.

rsvoboda commented 4 years ago

https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc/8.1.1.jre8 brings also gson to the mix comparing with https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc/7.4.1.jre8 And the version is <mssql-jdbc.version>8.1.1.jre8-preview</mssql-jdbc.version> - https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/8.1.1.jre8-preview/

Sanne commented 4 years ago

I'm unassigning myself from this one as I'm not working on it ATM.

sschu commented 2 years ago

@Sanne any progress on this issue? The current driver version is 10.2 and there are also different version for jre8 and jre11. We would like to use the current version for Keycloak.X based on Quarkus.