8
0

7 Commits

5 changed files with 140 additions and 78 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8d1593b6625b357dd4b46c17fb1661076f45dac7b0693b2d7693cc32fa3e3e5a
size 1035070

3
3.5.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ab7660a754e6eb22871413cc4ce515eb0c3f3be95f7b868805909160256d1b4a
size 577117

View File

@@ -1,3 +1,79 @@
-------------------------------------------------------------------
Thu Mar 27 21:25:02 UTC 2025 - Fridrich Strba <fstrba@suse.com>
- Require modular java for building
-------------------------------------------------------------------
Wed Oct 30 13:31:40 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Upgrade to version 3.5.0
* Notable changes
+ CONJ-1193 Parsec authentication implementation
+ CONJ-1183 permit setting specific truststore
* Bugs Fixed
+ CONJ-1202 Session variable setting must be executed last
+ CONJ-1201 incorrect default behavior for
forceConnectionTimeZoneToSession
+ CONJ-1200 Batch import fails with exception "Unknown command"
+ CONJ-1199 option connectionCollation addition in order to
force collation
+ CONJ-1187 Use different exception type for connection timeouts
- General comments on 3.x
* This version is a total rewrite of java driver.
+ complete rewrite, code clarification, reduced size (15%),
more than 90% coverage tested.
+ Encoding/decoding implementation are now registred by Codec,
permitting codec registry implementation
° example support of Geometry Object
+ Permit authentication plugin restriction by option
restrictedAuth
+ Performance improvement:
° Prepare and execution are now using pipelining when using
option useServerPrepStmts
° performance enhancement with MariaDB 10.6 server when using
option useServerPrepStmts, skipping metadata (MDEV-19237)
* correction:
+ CONJ-864 includeThreadDumpInDeadlockExceptions always includes
the thread dump, even when it is not a deadlock exception
+ CONJ-858 Properties parameter that differ from string not
taken in account
* Easy logging:
If using log4j, just enabled package "org.mariadb.jdbc" log.
+ level ERROR will log connection error
+ level WARNING will log query errors
+ level DEBUG will log queries
+ evel TRACE will log all exchanges with server.
If not using log4j, console will be used.
If really wanting to use JDK logger, System property
"mariadb.logging.fallback" set to JDK will indicate to use
common logging.
* Failover
Failover implementation now permit to redo transaction: when
creating a transaction, all command will be cached, and can be
replayed in case of failover.
This functionality can be enabled using option
transactionReplay.
This is not enabled by default, because this required that
application avoids using non-idempotent commands.
example:
START TRANSACTION;
select next_val(hibernate_sequence);
INSERT INTO myCar(id, name) VALUE (?, ?)
//with parameters: 1, 'car1'
INSERT INTO myCarDetail(id, carId, name) VALUE (?, ?, ?)
//with parameters: 2, 1, 'detail1'
INSERT INTO myCarDetail(id, carId, name) VALUE (?, ?, ?)
//with parameters: 3, 2, 'detail2'
COMMIT;
* Allow setup of TCP_KEEPIDLE, TCP_KEEPCOUNT, TCP_KEEPINTERVAL
+ Equivalent options are tcpKeepIdle, tcpKeepCount,
tcpKeepInterval
+ Since available only with java 11, setting this option with
java < 11 will have no effect.
- Modified patch:
* remove_waffle-jna.patch
+ rediff
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Feb 21 10:49:28 UTC 2024 - Gus Kenion <gus.kenion@suse.com> Wed Feb 21 10:49:28 UTC 2024 - Gus Kenion <gus.kenion@suse.com>

View File

@@ -1,7 +1,7 @@
# #
# spec file for package mariadb-java-client # spec file for package mariadb-java-client
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: mariadb-java-client Name: mariadb-java-client
Version: 2.4.3 Version: 3.5.0
Release: 0 Release: 0
Summary: Connects applications developed in Java to MariaDB and MySQL databases Summary: Connects applications developed in Java to MariaDB and MySQL databases
License: BSD-3-Clause AND LGPL-2.1-or-later License: BSD-3-Clause AND LGPL-2.1-or-later
@@ -25,12 +25,15 @@ URL: https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/
Source0: https://github.com/MariaDB/mariadb-connector-j/archive/%{version}.tar.gz Source0: https://github.com/MariaDB/mariadb-connector-j/archive/%{version}.tar.gz
Patch0: remove_waffle-jna.patch Patch0: remove_waffle-jna.patch
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: java-devel >= 9
BuildRequires: maven-local BuildRequires: maven-local
BuildRequires: mvn(com.google.code.maven-replacer-plugin:replacer) BuildRequires: mvn(com.google.code.maven-replacer-plugin:replacer)
BuildRequires: mvn(net.java.dev.jna:jna) BuildRequires: mvn(net.java.dev.jna:jna)
BuildRequires: mvn(net.java.dev.jna:jna-platform) BuildRequires: mvn(net.java.dev.jna:jna-platform)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.osgi:osgi.cmpn)
BuildRequires: mvn(org.osgi:osgi.core)
BuildRequires: mvn(org.slf4j:slf4j-api) BuildRequires: mvn(org.slf4j:slf4j-api)
Requires: mariadb Requires: mariadb
@@ -48,86 +51,59 @@ This package contains the API documentation for %{name}.
%prep %prep
%setup -q -n mariadb-connector-j-%{version} %setup -q -n mariadb-connector-j-%{version}
# convert files from dos to unix line encoding
for file in README.md documentation/*.creole; do
sed -i.orig 's|\r||g' $file
touch -r $file.orig $file
rm $file.orig
done
# remove missing optional dependency waffle-jna
%pom_remove_dep com.github.waffle:waffle-jna
# also remove the file using the removed plugin
rm -f src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/WindowsNativeSspiAuthentication.java
# patch the sources so that the missing file is not making trouble
%patch -P 0 -p1 %patch -P 0 -p1
%pom_remove_dep com.github.waffle:waffle-jna
%pom_remove_dep ch.qos.logback:logback-classic
%pom_remove_dep software.amazon.awssdk:bom
%pom_remove_dep software.amazon.awssdk:rds
%pom_remove_dep org.junit:junit-bom
%pom_remove_dep org.junit.jupiter:junit-jupiter-engine
# used in buildtime for generating OSGI metadata
%pom_remove_plugin biz.aQute.bnd:bnd-maven-plugin
%pom_add_dep net.java.dev.jna:jna
%pom_add_dep net.java.dev.jna:jna-platform
# make the slf4j dependency version-independent
%pom_remove_dep org.slf4j:slf4j-api
%pom_add_dep org.slf4j:slf4j-api
# use the latest OSGi implementation
%pom_change_dep -r :org.osgi.core org.osgi:osgi.core
%pom_change_dep -r :org.osgi.compendium org.osgi:osgi.cmpn
rm -r src/main/java/org/mariadb/jdbc/plugin/credential/aws
# removing dependencies and 'provides', which mariadb-java-client cannot process from module-info.java
sed -i '/aws/d' src/main/java9/module-info.java
sed -i '/waffle/d' src/main/java9/module-info.java
# removing missing dependencies form META-INF, so that the mariadb-java-client module would be valid
sed -i '/aws/d' src/main/resources/META-INF/services/org.mariadb.jdbc.plugin.CredentialPlugin
sed -i '/aws/d' src/test/resources/META-INF/services/org.mariadb.jdbc.plugin.CredentialPlugin
rm -f src/main/java/org/mariadb/jdbc/plugin/authentication/addon/gssapi/WindowsNativeSspiAuthentication.java
%{mvn_file} org.mariadb.jdbc:%{name} %{name} %{mvn_file} org.mariadb.jdbc:%{name} %{name}
%{mvn_alias} org.mariadb.jdbc:%{name} mariadb:mariadb-connector-java %{mvn_alias} org.mariadb.jdbc:%{name} mariadb:mariadb-connector-java
%pom_remove_plugin org.jacoco:jacoco-maven-plugin %pom_remove_plugin org.jacoco:jacoco-maven-plugin
%pom_remove_plugin org.apache.maven.plugins:maven-checkstyle-plugin
%pom_remove_plugin org.apache.maven.plugins:maven-javadoc-plugin
%pom_remove_plugin org.apache.maven.plugins:maven-source-plugin %pom_remove_plugin org.apache.maven.plugins:maven-source-plugin
%pom_remove_plugin org.sonatype.plugins:nexus-staging-maven-plugin %pom_remove_plugin org.sonatype.plugins:nexus-staging-maven-plugin
%pom_remove_plugin pl.project13.maven:git-commit-id-plugin
%pom_remove_plugin -r :maven-gpg-plugin %pom_remove_plugin -r :maven-gpg-plugin
%pom_remove_plugin -r :maven-javadoc-plugin
# remove preconfigured OSGi manifest file and generate OSGi manifest file
# with maven-bundle-plugin instead of using maven-jar-plugin
rm src/main/resources/META-INF/MANIFEST.MF
%pom_xpath_set "pom:packaging" bundle
%pom_xpath_set "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-jar-plugin']/pom:configuration/pom:archive/pom:manifestFile" '${project.build.outputDirectory}/META-INF/MANIFEST.MF'
%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-jar-plugin']/pom:configuration/pom:archive/pom:manifestEntries"
%pom_xpath_inject "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-jar-plugin']" '
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>'
%pom_add_plugin org.apache.felix:maven-bundle-plugin:2.5.4 . '
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.groupId}</Bundle-SymbolicName>
<Bundle-Name>MariaDB JDBC Client</Bundle-Name>
<Bundle-Version>${project.version}.0</Bundle-Version>
<Export-Package>org.mariadb.jdbc.*</Export-Package>
<Import-Package>
!com.sun.jna.*,
javax.net;resolution:=optional,
javax.net.ssl;resolution:=optional,
javax.sql;resolution:=optional,
javax.transaction.xa;resolution:=optional
</Import-Package>
</instructions>
</configuration>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>'
%build %build
# tests are skipped, while they require running application server # tests are skipped, while they require running application server
%{mvn_build} -f -- \ %{mvn_build} -f -- -Dmaven.compiler.release=8
-Dproject.build.outputTimestamp=$(date -u -d @${SOURCE_DATE_EPOCH:-$(date +%%s)} +%%Y-%%m-%%dT%%H:%%M:%%SZ)
%install %install
%mvn_install %mvn_install
%fdupes -s %{buildroot}%{_javadocdir} %fdupes -s %{buildroot}%{_javadocdir}
%files -f .mfiles %files -f .mfiles
%doc documentation/* README.md %doc README.md
%license LICENSE %license LICENSE
%files javadoc -f .mfiles-javadoc %files javadoc -f .mfiles-javadoc

View File

@@ -1,32 +1,42 @@
diff --git a/src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/GssUtility.java b/src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/GssUtility.java Date: Thu, 6 May 2021 08:28:06 +0200
index 15c61c85..7276e91e 100644 Subject: [PATCH] remove waffle-jna
--- a/src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/GssUtility.java
+++ b/src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/GssUtility.java ---
@@ -5,25 +5,12 @@ import com.sun.jna.Platform; .../authentication/addon/gssapi/GssUtility.java | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/src/main/java/org/mariadb/jdbc/plugin/authentication/addon/gssapi/GssUtility.java b/src/main/java/org/mariadb/jdbc/plugin/authentication/addon/gssapi/GssUtility.java
index 5f050df..1801701 100644
--- a/src/main/java/org/mariadb/jdbc/plugin/authentication/addon/gssapi/GssUtility.java
+++ b/src/main/java/org/mariadb/jdbc/plugin/authentication/addon/gssapi/GssUtility.java
@@ -9,26 +9,11 @@ import com.sun.jna.Platform;
public class GssUtility { public class GssUtility {
/** /**
- * Get authentication method according to classpath. Windows native authentication is using - * Get authentication method according to classpath. Windows native authentication is using
- * Waffle-jna. - * Waffle-jna.
+ * Get authentication method according to classpath. + * Get authentication method according to classpath
+ *
* *
* @return authentication method * @return authentication method
*/ */
public static GssapiAuth getAuthenticationMethod() { public static GssapiAuth getAuthenticationMethod() {
- try { - try {
- //Waffle-jna has jna as dependency, so if not available on classpath, just use standard authentication - // Waffle-jna has jna as dependency, so if not available on classpath, just use standard
- // authentication
- if (Platform.isWindows()) { - if (Platform.isWindows()) {
- try { - try {
- Class.forName("waffle.windows.auth.impl.WindowsAuthProviderImpl"); - Class.forName("waffle.windows.auth.impl.WindowsAuthProviderImpl");
- return new WindowsNativeSspiAuthentication(); - return new WindowsNativeSspiAuthentication();
- } catch (ClassNotFoundException cle) { - } catch (ClassNotFoundException cle) {
- //waffle not in the classpath - // waffle not in the classpath
- } - }
- } - }
- } catch (Throwable cle) { - } catch (Throwable cle) {
- //jna jar's are not in classpath - // jna jar's are not in classpath
- } - }
return new StandardGssapiAuthentication(); return new StandardGssapiAuthentication();
} }
}
--
2.30.2