Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
rusher committed Jun 23, 2020
2 parents 2065a1a + fe21e66 commit d60ea32
Show file tree
Hide file tree
Showing 58 changed files with 1,050 additions and 385 deletions.
4 changes: 1 addition & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,14 @@ matrix:
include:
- env: DB=build PACKET=8M
jdk: openjdk11
- env: DB=mysql:5.5 PACKET=8M
- env: SKYSQL=true PACKET=8M
jdk: openjdk11
- env: DB=mysql:5.6 PACKET=8M
jdk: openjdk11
- env: DB=mysql:5.7 PACKET=8M
jdk: openjdk11
- env: DB=mysql:8.0 PACKET=8M ADDITIONAL_CONF=--default-authentication-plugin=mysql_native_password --caching_sha2_password_private_key_path=/etc/sslcert/server.key --caching_sha2_password_public_key_path=/etc/sslcert/public.key
jdk: openjdk11
- env: DB=mariadb:5.5 PACKET=8M
jdk: openjdk11
- env: DB=mariadb:10.1 PACKET=8M
jdk: openjdk11
- env: DB=mariadb:10.2 PACKET=8M
Expand Down
300 changes: 157 additions & 143 deletions .travis/script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,154 +6,168 @@ set -e
###################################################################################################################
# test different type of configuration
###################################################################################################################
if [ -n "$SKYSQL" ] ; then

case "$TYPE" in
"REWRITE" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&rewriteBatchedStatements=true&enablePacketDebug=true'
;;
"PREPARE" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useServerPrepStmts=true&enablePacketDebug=true'
;;
"MULTI" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&allowMultiQueries=true&enablePacketDebug=true'
;;
"BULK_SERVER" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useBatchMultiSend=true&useServerPrepStmts=true&enablePacketDebug=true&useBulkStmts=true'
;;
"NO_BULK_CLIENT" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useBatchMultiSend=true&enablePacketDebug=true'
;;
"NO_BULK_SERVER" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useBatchMultiSend=false&useServerPrepStmts=true&enablePacketDebug=true'
;;
"COMPRESSION" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useCompression=true&enablePacketDebug=true'
;;
*)
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&enablePacketDebug=true'
;;
esac;


if [ -n "$PROFILE" ] ; then
export urlString="$urlString&profileSql=true"
pwd
rm src/test/resources/logback-test.xml
mv src/test/resources/logback-test-travis.xml src/test/resources/logback-test.xml
fi
if [ -z "$SKYSQL_TEST_HOST" ] ; then
echo "No SkySQL configuration found !"
exit 0
fi
testSingleHost=true
urlString="jdbc:mariadb://$SKYSQL_TEST_HOST:$SKYSQL_TEST_PORT/testj?user=$SKYSQL_TEST_USER&password=$SKYSQL_TEST_PASSWORD&enablePacketDebug=true&useSsl&serverSslCert=$SKYSQL_TEST_SSL_CA"

cmd=( mvn clean test $ADDITIONNAL_VARIABLES -DjobId=${TRAVIS_JOB_ID} )

cmd=( mvn clean test $ADDITIONNAL_VARIABLES -DjobId=${TRAVIS_JOB_ID} \
-DkeystorePath="$SSLCERT/client-keystore.jks" \
-DkeystorePassword="kspass" \
-DserverCertificatePath="$SSLCERT/server.crt" \
-Dkeystore2Path="$SSLCERT/fullclient-keystore.jks" \
-Dkeystore2Password="kspass" -DkeyPassword="kspasskey" \
-Dkeystore2PathP12="$SSLCERT/fullclient-keystore.p12" \
-DrunLongTest=true \
-DserverPublicKey="$SSLCERT/public.key" )

if [ -n "$AURORA" ] ; then
if [ -n "$AURORA_STRING_URL" ] ; then
urlString=${AURORA_STRING_URL}
testSingleHost=true
else
testSingleHost=false
fi
else
case "$TYPE" in
"REWRITE" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&rewriteBatchedStatements=true&enablePacketDebug=true'
;;
"PREPARE" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useServerPrepStmts=true&enablePacketDebug=true'
;;
"MULTI" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&allowMultiQueries=true&enablePacketDebug=true'
;;
"BULK_SERVER" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useBatchMultiSend=true&useServerPrepStmts=true&enablePacketDebug=true&useBulkStmts=true'
;;
"NO_BULK_CLIENT" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useBatchMultiSend=true&enablePacketDebug=true'
;;
"NO_BULK_SERVER" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useBatchMultiSend=false&useServerPrepStmts=true&enablePacketDebug=true'
;;
"COMPRESSION" )
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&useCompression=true&enablePacketDebug=true'
;;
*)
urlString='jdbc:mariadb://mariadb.example.com:3305/testj?user=bob&enablePacketDebug=true'
;;
esac;



if [ -n "$PROFILE" ] ; then
export urlString="$urlString&profileSql=true"
pwd
rm src/test/resources/logback-test.xml
mv src/test/resources/logback-test-travis.xml src/test/resources/logback-test.xml
fi

cmd=( mvn clean test $ADDITIONNAL_VARIABLES -DjobId=${TRAVIS_JOB_ID} \
-DkeystorePath="$SSLCERT/client-keystore.jks" \
-DkeystorePassword="kspass" \
-DserverCertificatePath="$SSLCERT/server.crt" \
-Dkeystore2Path="$SSLCERT/fullclient-keystore.jks" \
-Dkeystore2Password="kspass" -DkeyPassword="kspasskey" \
-Dkeystore2PathP12="$SSLCERT/fullclient-keystore.p12" \
-DrunLongTest=true \
-DserverPublicKey="$SSLCERT/public.key" )

if [ -n "$AURORA" ] ; then
if [ -n "$AURORA_STRING_URL" ] ; then
urlString=${AURORA_STRING_URL}
testSingleHost=true
else
testSingleHost=false
fi
else

testSingleHost=true

export INNODB_LOG_FILE_SIZE=$(echo ${PACKET}| cut -d'M' -f 1)0M

if [ -n "$MAXSCALE_VERSION" ] ; then
###################################################################################################################
# launch Maxscale with one server
###################################################################################################################
mysql=( mysql --protocol=tcp -ubob -h127.0.0.1 --port=4007 )
export COMPOSE_FILE=.travis/maxscale-compose.yml
urlString='jdbc:mariadb://mariadb.example.com:4007/testj?user=bob&killFetchStmtOnClose=false&enablePacketDebug=true'
docker-compose -f ${COMPOSE_FILE} build
docker-compose -f ${COMPOSE_FILE} up -d
else
if [ -n "$GALERA" ] || [ -n "$GALERA3" ] ; then
if [ -n "$GALERA3" ] ; then
###################################################################################################################
# launch 3 galera servers
###################################################################################################################
mysql=( mysql --protocol=tcp -ubob -hmariadb.example.com --port=3106 )
export COMPOSE_FILE=.travis/galera-compose.yml

urlString='jdbc:mariadb://mariadb.example.com:3106/testj?user=bob&enablePacketDebug=true'
cmd+=( -DdefaultGaleraUrl="jdbc:mariadb:sequential://mariadb.example.com:3106,mariadb.example.com:3107,mariadb.example.com:3108/testj?user=bob&enablePacketDebug=true" -DdefaultSequentialUrl="jdbc:mariadb:sequential://mariadb.example.com:3106,mariadb.example.com:3107,mariadb.example.com:3108/testj?user=bob&enablePacketDebug=true" -DdefaultLoadbalanceUrl="jdbc:mariadb:loadbalance://mariadb.example.com:3106,mariadb.example.com:3107,mariadb.example.com:3108/testj?user=bob&enablePacketDebug=true" )
docker-compose -f ${COMPOSE_FILE} up -d
SLEEP 10
else
mysql=( mysql --protocol=tcp -ubob -hmariadb.example.com --port=3106 )

urlString='jdbc:mariadb://mariadb.example.com:3106/testj?user=bob&enablePacketDebug=true'
docker run \
-v $SSLCERT:/etc/sslcert \
-v $ENTRYPOINT:/docker-entrypoint-initdb.d \
-e MYSQL_INITDB_SKIP_TZINFO=yes \
-e MYSQL_ALLOW_EMPTY_PASSWORD=1 \
-e MYSQL_DATABASE=testj \
-d \
-p 3106:3306 \
-p 4067:4567 \
-p 4068:4568 \
--name=node1 \
mariadb:10.2 --wsrep-new-cluster --wsrep-cluster-address='gcomm://node1' \
--wsrep-on=ON \
--max-connections=500 \
--wsrep-node-address=node1:4567 \
--wsrep-node-name=node1 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--bind-address=0.0.0.0 \
--binlog-format=ROW \
--wsrep-provider=/usr/lib/galera/libgalera_smm.so \
--wsrep-cluster-name=my_super_cluster \
--ssl-ca=/etc/sslcert/ca.crt \
--ssl-cert=/etc/sslcert/server.crt --ssl-key=/etc/sslcert/server.key

fi
else

###################################################################################################################
# launch docker server
###################################################################################################################
mysql=( mysql --protocol=tcp -ubob -h127.0.0.1 --port=3305 )
export COMPOSE_FILE=.travis/docker-compose.yml
docker-compose -f ${COMPOSE_FILE} up -d

fi
fi


###################################################################################################################
# wait for docker initialisation
###################################################################################################################

for i in {60..0}; do
if echo 'SELECT 1' | "${mysql[@]}" &> /dev/null; then
break
fi
echo 'data server still not active'
sleep 1
done


if [ "$i" = 0 ]; then
if [ -n "COMPOSE_FILE" ] ; then
docker-compose -f ${COMPOSE_FILE} logs
fi

echo 'SELECT 1' | "${mysql[@]}"
echo >&2 'data server init process failed.'
exit 1
fi
fi

testSingleHost=true

export INNODB_LOG_FILE_SIZE=$(echo ${PACKET}| cut -d'M' -f 1)0M

if [ -n "$MAXSCALE_VERSION" ] ; then
###################################################################################################################
# launch Maxscale with one server
###################################################################################################################
mysql=( mysql --protocol=tcp -ubob -h127.0.0.1 --port=4007 )
export COMPOSE_FILE=.travis/maxscale-compose.yml
urlString='jdbc:mariadb://mariadb.example.com:4007/testj?user=bob&killFetchStmtOnClose=false&enablePacketDebug=true'
docker-compose -f ${COMPOSE_FILE} build
docker-compose -f ${COMPOSE_FILE} up -d
else
if [ -n "$GALERA" ] || [ -n "$GALERA3" ] ; then
if [ -n "$GALERA3" ] ; then
###################################################################################################################
# launch 3 galera servers
###################################################################################################################
mysql=( mysql --protocol=tcp -ubob -hmariadb.example.com --port=3106 )
export COMPOSE_FILE=.travis/galera-compose.yml

urlString='jdbc:mariadb://mariadb.example.com:3106/testj?user=bob&enablePacketDebug=true'
cmd+=( -DdefaultGaleraUrl="jdbc:mariadb:sequential://mariadb.example.com:3106,mariadb.example.com:3107,mariadb.example.com:3108/testj?user=bob&enablePacketDebug=true" -DdefaultSequentialUrl="jdbc:mariadb:sequential://mariadb.example.com:3106,mariadb.example.com:3107,mariadb.example.com:3108/testj?user=bob&enablePacketDebug=true" -DdefaultLoadbalanceUrl="jdbc:mariadb:loadbalance://mariadb.example.com:3106,mariadb.example.com:3107,mariadb.example.com:3108/testj?user=bob&enablePacketDebug=true" )
docker-compose -f ${COMPOSE_FILE} up -d
SLEEP 10
else
mysql=( mysql --protocol=tcp -ubob -hmariadb.example.com --port=3106 )

urlString='jdbc:mariadb://mariadb.example.com:3106/testj?user=bob&enablePacketDebug=true'
docker run \
-v $SSLCERT:/etc/sslcert \
-v $ENTRYPOINT:/docker-entrypoint-initdb.d \
-e MYSQL_INITDB_SKIP_TZINFO=yes \
-e MYSQL_ALLOW_EMPTY_PASSWORD=1 \
-e MYSQL_DATABASE=testj \
-d \
-p 3106:3306 \
-p 4067:4567 \
-p 4068:4568 \
--name=node1 \
mariadb:10.2 --wsrep-new-cluster --wsrep-cluster-address='gcomm://node1' \
--wsrep-on=ON \
--max-connections=500 \
--wsrep-node-address=node1:4567 \
--wsrep-node-name=node1 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--bind-address=0.0.0.0 \
--binlog-format=ROW \
--wsrep-provider=/usr/lib/galera/libgalera_smm.so \
--wsrep-cluster-name=my_super_cluster \
--ssl-ca=/etc/sslcert/ca.crt \
--ssl-cert=/etc/sslcert/server.crt --ssl-key=/etc/sslcert/server.key

fi
else

###################################################################################################################
# launch docker server
###################################################################################################################
mysql=( mysql --protocol=tcp -ubob -h127.0.0.1 --port=3305 )
export COMPOSE_FILE=.travis/docker-compose.yml
docker-compose -f ${COMPOSE_FILE} up -d

fi
fi


###################################################################################################################
# wait for docker initialisation
###################################################################################################################

for i in {60..0}; do
if echo 'SELECT 1' | "${mysql[@]}" &> /dev/null; then
break
fi
echo 'data server still not active'
sleep 1
done


if [ "$i" = 0 ]; then
if [ -n "COMPOSE_FILE" ] ; then
docker-compose -f ${COMPOSE_FILE} logs
fi

echo 'SELECT 1' | "${mysql[@]}"
echo >&2 'data server init process failed.'
exit 1
fi
fi

fi


###################################################################################################################
Expand Down
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# Change Log

## [2.6.1](https://github.com/mariadb-corporation/mariadb-connector-j/tree/2.6.1) (23 Jun. 2020)
[Full Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/compare/2.6.0...2.6.1)

* CONJ-781 - DatabaseMetaData.supportsMultipleResultSets() now return correctly true.
* CONJ-791 - Using CallableStatement.getTimestamp() can't get data correctly
* CONJ-705 - ParameterMetadata now return parameterCount() even if no information
* CONJ-775 - avoid a NPE for malformed "jdbc:mariadb:///" connection string.
* CONJ-776 - Temporal Data Tables are not listed in metadata
* CONJ-785 - corrected escape sequence for multiple backslash escape
* CONJ-786 - Connection.setReadOnly(true ) with option `assureReadOnly` now force read only connection even for mono server*
* CONJ-795 - permit resultset.getRow() for TYPE_FORWARD_ONLY when streaming
* CONJ-797 - Connector set UTF8mb4 equivalent in case of server configured with UTF8mb3 collation
* CONJ-800 - implement Statement setEscapeProcessing to avoid escape
* CONJ-801 - possible race condition using resultset getter using label
* CONJ-778 - Missing import org.osgi.service.jdbc in Import-Package clause of the OSGi manifest
* CONJ-779 - Logic error in stop() method of OSGi bundle activator
* CONJ-780 - Logic error in implementation of OSGi DataSourceFactory (MariaDbDataSourceFactory)
* CONJ-788 - resultset metadata always indicate that column is writable even if not
* CONJ-789 - ensure connection reference removal on (prepared)Statement close
* CONJ-782 - SkySQL testing

## [2.6.0](https://github.com/mariadb-corporation/mariadb-connector-j/tree/2.6.0) (19 Mar. 2020)
[Full Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/compare/2.5.4...2.6.0)

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ or maven :
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.5.4</version>
<version>2.6.1</version>
</dependency>
```

Expand All @@ -46,7 +46,7 @@ Development snapshot are available on sonatype nexus repository
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.6.0-SNAPSHOT</version>
<version>2.6.2-SNAPSHOT</version>
</dependency>
</dependencies>
```
Expand Down
5 changes: 0 additions & 5 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,6 @@ environment:
CMAKE_PARAM: 'Visual Studio 15 2017 Win64'
JAVA_HOME: C:\Program Files\Java\jdk1.8.0

- DB: '5.5.67'
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CMAKE_PARAM: 'Visual Studio 15 2017 Win64'
JAVA_HOME: C:\Program Files\Java\jdk1.8.0

clone_folder: c:\projects\mariadb-connector-j
install:
- ps: |
Expand Down
Loading

0 comments on commit d60ea32

Please sign in to comment.