Skip to content

Commit 79fa812

Browse files
committed
Merge branch 'master' of https://github.com/Destrolaric/sqlite-jdbc into add_metadata_read_for_attached_db
� Conflicts: � src/main/java/org/sqlite/jdbc3/JDBC3DatabaseMetaData.java � src/test/java/org/sqlite/DBMetaDataTest.java
2 parents 1313587 + d0adb0f commit 79fa812

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+677
-491
lines changed

.github/dependabot.yml

-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ updates:
44
# Maintain dependencies for maven (pom.xml in root directory)
55
- package-ecosystem: "maven"
66
directory: "/"
7-
# disable PRs, only security updates will create PRs
8-
open-pull-requests-limit: 0
97
schedule:
108
interval: "weekly"
119

.github/workflows/ci.yml

+18-19
Original file line numberDiff line numberDiff line change
@@ -64,24 +64,23 @@ jobs:
6464
- name: Test
6565
run: mvn --batch-mode --no-transfer-progress test
6666

67-
# test_graalvm:
68-
# name: test ubuntu-latest jdk11 GraalVM native-image
69-
# runs-on: ubuntu-latest
70-
# steps:
71-
# - uses: actions/checkout@v3
72-
# - uses: DeLaGuardo/setup-graalvm@master
73-
# with:
74-
# # GraalVM version, no pattern syntax available atm
75-
# graalvm: '21.0.0.2'
76-
# # Java version, optional, defaults to 'java8'. Available options are 'java8' and 'java11'.
77-
# java: 'java11'
78-
# # Architecture flag, optional, defaults to 'amd64'. Available options are 'amd64' and 'aarch64'. Later is available only for linux runners.
79-
# arch: 'amd64'
80-
# - name: Install native-image component
81-
# run: |
82-
# gu install native-image
83-
# - name: Test
84-
# run: mvn --batch-mode --no-transfer-progress -P native test
67+
test_graalvm:
68+
name: test ${{ matrix.os }} jdk${{ matrix.java }} GraalVM native-image
69+
strategy:
70+
matrix:
71+
os: [ ubuntu-latest, windows-latest, macos-latest ]
72+
java: [ 11, 17 ]
73+
runs-on: ${{ matrix.os }}
74+
steps:
75+
- uses: actions/checkout@v3
76+
- uses: graalvm/setup-graalvm@v1
77+
with:
78+
version: '22.3.0'
79+
java-version: ${{ matrix.java }}
80+
components: 'native-image'
81+
github-token: ${{ secrets.GITHUB_TOKEN }}
82+
- name: Test
83+
run: mvn --batch-mode --no-transfer-progress -P native test
8584

8685
test_multiarch:
8786
name: test ${{ matrix.arch }} ${{ matrix.distro }} jdk${{ matrix.java }}
@@ -175,7 +174,7 @@ jobs:
175174

176175
release:
177176
name: Deploy
178-
needs: [ lint, test, test_multiarch, test_external_amalgamation ]
177+
needs: [ lint, test, test_multiarch, test_external_amalgamation, test_graalvm ]
179178
if: github.repository_owner == 'xerial' && github.ref == 'refs/heads/master' # only perform on latest master
180179
runs-on: ubuntu-latest
181180
steps:

Makefile.common

+11-11
Original file line numberDiff line numberDiff line change
@@ -63,77 +63,77 @@ CROSS_PREFIX :=
6363
Default_CC := $(CROSS_PREFIX)gcc
6464
Default_STRIP := $(CROSS_PREFIX)strip
6565
Default_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -Os -fPIC -fvisibility=hidden
66-
Default_LINKFLAGS := -shared
66+
Default_LINKFLAGS := -shared -static-libgcc -pthread -lm
6767
Default_LIBNAME := libsqlitejdbc.so
6868
Default_SQLITE_FLAGS :=
6969

7070
Linux-x86_CC := $(CROSS_PREFIX)gcc
7171
Linux-x86_STRIP := $(CROSS_PREFIX)strip
7272
Linux-x86_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -Os -fPIC -m32 -fvisibility=hidden
73-
Linux-x86_LINKFLAGS := -shared -static-libgcc
73+
Linux-x86_LINKFLAGS := $(Default_LINKFLAGS)
7474
Linux-x86_LIBNAME := libsqlitejdbc.so
7575
Linux-x86_SQLITE_FLAGS :=
7676

7777
Linux-x86_64_CC := $(CROSS_PREFIX)gcc
7878
Linux-x86_64_STRIP := $(CROSS_PREFIX)strip
7979
Linux-x86_64_CCFLAGS := -Ilib/inc_linux -I$(JAVA_HOME)/include -Os -fPIC -m64 -fvisibility=hidden
80-
Linux-x86_64_LINKFLAGS := -shared -static-libgcc
80+
Linux-x86_64_LINKFLAGS := $(Default_LINKFLAGS)
8181
Linux-x86_64_LIBNAME := libsqlitejdbc.so
8282
Linux-x86_64_SQLITE_FLAGS :=
8383

8484
Linux-arm_CC := $(CROSS_PREFIX)gcc
8585
Linux-arm_STRIP := $(CROSS_PREFIX)strip
8686
Linux-arm_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -Os -fPIC -mfloat-abi=soft -fvisibility=hidden
87-
Linux-arm_LINKFLAGS := -shared -static-libgcc
87+
Linux-arm_LINKFLAGS := $(Default_LINKFLAGS)
8888
Linux-arm_LIBNAME := libsqlitejdbc.so
8989
Linux-arm_SQLITE_FLAGS :=
9090

9191
Linux-armv6_CC := $(CROSS_PREFIX)gcc
9292
Linux-armv6_STRIP := $(CROSS_PREFIX)strip
9393
Linux-armv6_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden
94-
Linux-armv6_LINKFLAGS := -shared -static-libgcc
94+
Linux-armv6_LINKFLAGS := $(Default_LINKFLAGS)
9595
Linux-armv6_LIBNAME := libsqlitejdbc.so
9696
Linux-armv6_SQLITE_FLAGS :=
9797

9898
Linux-armv7_CC := $(CROSS_PREFIX)gcc
9999
Linux-armv7_STRIP := $(CROSS_PREFIX)strip
100100
Linux-armv7_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden
101-
Linux-armv7_LINKFLAGS := -shared -static-libgcc
101+
Linux-armv7_LINKFLAGS := $(Default_LINKFLAGS)
102102
Linux-armv7_LIBNAME := libsqlitejdbc.so
103103
Linux-armv7_SQLITE_FLAGS :=
104104

105105
Linux-Android-arm_CC := $(CROSS_PREFIX)clang
106106
Linux-Android-arm_STRIP := $(CROSS_ROOT)/bin/llvm-strip
107107
Linux-Android-arm_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog
108-
Linux-Android-arm_LINKFLAGS := -shared -static-libgcc
108+
Linux-Android-arm_LINKFLAGS := $(Default_LINKFLAGS)
109109
Linux-Android-arm_LIBNAME := libsqlitejdbc.so
110110
Linux-Android-arm_SQLITE_FLAGS :=
111111

112112
Linux-Android-aarch64_CC := $(CROSS_PREFIX)clang
113113
Linux-Android-aarch64_STRIP := $(CROSS_ROOT)/bin/llvm-strip
114114
Linux-Android-aarch64_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog
115-
Linux-Android-aarch64_LINKFLAGS := -shared -static-libgcc
115+
Linux-Android-aarch64_LINKFLAGS := $(Default_LINKFLAGS)
116116
Linux-Android-aarch64_LIBNAME := libsqlitejdbc.so
117117
Linux-Android-aarch64_SQLITE_FLAGS :=
118118

119119
Linux-Android-x86_CC := $(CROSS_PREFIX)clang
120120
Linux-Android-x86_STRIP := $(CROSS_ROOT)/bin/llvm-strip
121121
Linux-Android-x86_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog
122-
Linux-Android-x86_LINKFLAGS := -shared -static-libgcc
122+
Linux-Android-x86_LINKFLAGS := $(Default_LINKFLAGS)
123123
Linux-Android-x86_LIBNAME := libsqlitejdbc.so
124124
Linux-Android-x86_SQLITE_FLAGS :=
125125

126126
Linux-Android-x86_64_CC := $(CROSS_PREFIX)clang
127127
Linux-Android-x86_64_STRIP := $(CROSS_ROOT)/bin/llvm-strip
128128
Linux-Android-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog
129-
Linux-Android-x86_64_LINKFLAGS := -shared -static-libgcc
129+
Linux-Android-x86_64_LINKFLAGS := $(Default_LINKFLAGS)
130130
Linux-Android-x86_64_LIBNAME := libsqlitejdbc.so
131131
Linux-Android-x86_64_SQLITE_FLAGS :=
132132

133133
Linux-ppc64_CC := $(CROSS_PREFIX)gcc
134134
Linux-ppc64_STRIP := $(CROSS_PREFIX)strip
135135
Linux-ppc64_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -Os -fPIC -fvisibility=hidden
136-
Linux-ppc64_LINKFLAGS := -shared -static-libgcc
136+
Linux-ppc64_LINKFLAGS := $(Default_LINKFLAGS)
137137
Linux-ppc64_LIBNAME := libsqlitejdbc.so
138138
Linux-ppc64_SQLITE_FLAGS :=
139139

VERSION

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
version=3.40.1
2-
1+
version=3.41.2

jreleaser.yml

+5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ release:
1717
- label: 'chore'
1818
title: '[maven-release-plugin] prepare'
1919
order: 1
20+
- label: 'perf'
21+
title: 'regex:^(?:perf(?:\(.*\))?!?):\s.*'
22+
order: 120
2023
categories:
2124
- title: '🏎 Perf'
2225
key: 'perf'
@@ -29,6 +32,8 @@ release:
2932
- '[bot]'
3033
- 'github-actions'
3134
- 'GitHub'
35+
extraProperties:
36+
categorizeScopes: true
3237
issues:
3338
enabled: true
3439
comment: '🎉 This issue has been resolved in `{{tagName}}` ([Release Notes]({{releaseNotesUrl}}))'

pom.xml

+26-52
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>org.xerial</groupId>
66
<artifactId>sqlite-jdbc</artifactId>
7-
<version>3.40.1.0-SNAPSHOT</version>
7+
<version>3.41.2.2-SNAPSHOT</version>
88
<name>SQLite JDBC</name>
99
<description>SQLite JDBC library</description>
1010
<url>https://github.com/xerial/sqlite-jdbc</url>
1111

1212
<properties>
1313
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
14-
<junit.version>5.9.1</junit.version>
15-
<surefire.version>2.22.2</surefire.version>
14+
<junit.version>5.9.2</junit.version>
15+
<surefire.version>3.0.0</surefire.version>
1616
<java9.sourceDirectory>${project.basedir}/src/main/java9</java9.sourceDirectory>
1717
</properties>
1818

@@ -93,13 +93,13 @@
9393
<plugin>
9494
<groupId>org.apache.maven.plugins</groupId>
9595
<artifactId>maven-help-plugin</artifactId>
96-
<version>3.3.0</version>
96+
<version>3.4.0</version>
9797
</plugin>
9898

9999
<plugin>
100100
<groupId>org.apache.maven.plugins</groupId>
101101
<artifactId>maven-compiler-plugin</artifactId>
102-
<version>3.10.1</version>
102+
<version>3.11.0</version>
103103
<configuration>
104104
<release>8</release>
105105
</configuration>
@@ -190,7 +190,7 @@
190190
<plugin>
191191
<groupId>org.jreleaser</groupId>
192192
<artifactId>jreleaser-maven-plugin</artifactId>
193-
<version>1.4.0</version>
193+
<version>1.5.1</version>
194194
<configuration>
195195
<configFile>jreleaser.yml</configFile>
196196
</configuration>
@@ -199,13 +199,13 @@
199199
<plugin>
200200
<groupId>org.codehaus.mojo</groupId>
201201
<artifactId>versions-maven-plugin</artifactId>
202-
<version>2.13.0</version>
202+
<version>2.15.0</version>
203203
</plugin>
204204

205205
<plugin>
206206
<groupId>org.apache.maven.plugins</groupId>
207207
<artifactId>maven-enforcer-plugin</artifactId>
208-
<version>3.1.0</version>
208+
<version>3.3.0</version>
209209
<executions>
210210
<execution>
211211
<id>enforce-maven</id>
@@ -297,7 +297,7 @@
297297
<plugin>
298298
<groupId>org.apache.maven.plugins</groupId>
299299
<artifactId>maven-javadoc-plugin</artifactId>
300-
<version>3.4.1</version>
300+
<version>3.5.0</version>
301301
<configuration>
302302
<sourcepath>src/main/java</sourcepath>
303303
<additionalOptions>-Xdoclint:none</additionalOptions>
@@ -336,7 +336,8 @@
336336
<plugin>
337337
<groupId>org.graalvm.buildtools</groupId>
338338
<artifactId>native-maven-plugin</artifactId>
339-
<version>0.9.3</version>
339+
<version>0.9.21</version>
340+
<extensions>true</extensions>
340341
<executions>
341342
<execution>
342343
<id>test-native</id>
@@ -345,22 +346,18 @@
345346
</goals>
346347
<phase>test</phase>
347348
</execution>
348-
<execution>
349-
<id>build-native</id>
350-
<goals>
351-
<goal>build</goal>
352-
</goals>
353-
<phase>package</phase>
354-
</execution>
355349
</executions>
356350
<configuration>
357-
<imageName>sqlite-jdbc-osinfo</imageName>
358-
<mainClass>org.sqlite.util.OSInfo</mainClass>
351+
<fallback>false</fallback>
352+
<verbose>true</verbose>
359353
<buildArgs>
360-
<buildArg>--no-fallback</buildArg>
361-
<buildArg>--verbose</buildArg>
362-
<buildArg>--enable-url-protocols=jar</buildArg>
363-
<buildArg>--report-unsupported-elements-at-runtime</buildArg>
354+
<!--
355+
ArchUnit tests don't run in native-image tests.
356+
Remove the ArchUnit JUnit Engine from the ServiceLoader.
357+
-->
358+
<buildArg>
359+
-H:ServiceLoaderFeatureExcludeServiceProviders=com.tngtech.archunit.junit.internal.ArchUnitTestEngine
360+
</buildArg>
364361
</buildArgs>
365362
</configuration>
366363
</plugin>
@@ -370,78 +367,55 @@
370367
<artifactId>maven-surefire-plugin</artifactId>
371368
<version>${surefire.version}</version>
372369
<configuration>
373-
<!-- If enabled, will run the GraalVM tracing agent while running tests -->
374-
<!-- <argLine>-agentlib:native-image-agent=config-output-dir=META-INF/native-image</argLine>-->
375370
<excludes>
376371
<!-- Cannot run in native mode, classes under test cannot be found, class path is empty -->
377372
<exclude>**/MultipleClassLoaderTest.java</exclude>
378-
<!-- java.lang.NoSuchMethodError: org.sqlite.BusyHandlerTest$1.callback(I)I -->
379-
<exclude>**/BusyHandlerTest</exclude>
380-
<!-- java.sql.SQLException: Out of memory from JNI org.sqlite.core.NativeDB.throwex(NativeDB.java:510) -->
381-
<include>**/RSMetaDataTest</include>
382-
<!-- SegFault -->
383-
<exclude>**/UDFCustomErrorTest.java</exclude>
384373
<!-- Not needed -->
385374
<exclude>**/architecture/*.java</exclude>
386375
</excludes>
387376
</configuration>
388377
</plugin>
389378
</plugins>
390379
</build>
391-
<dependencies>
392-
<!-- Can be removed once JUnit 5.8 is used -->
393-
<dependency>
394-
<groupId>org.graalvm.buildtools</groupId>
395-
<artifactId>junit-platform-native</artifactId>
396-
<version>0.9.3</version>
397-
<scope>test</scope>
398-
</dependency>
399-
</dependencies>
400380
</profile>
401381
</profiles>
402382

403383
<dependencies>
404384
<dependency>
405385
<groupId>org.junit.jupiter</groupId>
406-
<artifactId>junit-jupiter-api</artifactId>
407-
<version>${junit.version}</version>
408-
<scope>test</scope>
409-
</dependency>
410-
<dependency>
411-
<groupId>org.junit.jupiter</groupId>
412-
<artifactId>junit-jupiter-engine</artifactId>
386+
<artifactId>junit-jupiter</artifactId>
413387
<version>${junit.version}</version>
414388
<scope>test</scope>
415389
</dependency>
416390
<dependency>
417391
<groupId>org.assertj</groupId>
418392
<artifactId>assertj-core</artifactId>
419-
<version>3.23.1</version>
393+
<version>3.24.2</version>
420394
<scope>test</scope>
421395
</dependency>
422396
<dependency>
423397
<groupId>org.junit-pioneer</groupId>
424398
<artifactId>junit-pioneer</artifactId>
425-
<version>1.7.1</version>
399+
<version>2.0.1</version>
426400
<scope>test</scope>
427401
</dependency>
428402
<dependency>
429403
<groupId>org.mockito</groupId>
430404
<artifactId>mockito-core</artifactId>
431-
<version>4.8.1</version>
405+
<version>5.3.0</version>
432406
<scope>test</scope>
433407
</dependency>
434408
<dependency>
435409
<groupId>com.tngtech.archunit</groupId>
436410
<artifactId>archunit-junit5</artifactId>
437-
<version>1.0.0</version>
411+
<version>1.0.1</version>
438412
<scope>test</scope>
439413
</dependency>
440414
<!-- Required by archunit -->
441415
<dependency>
442416
<groupId>ch.qos.logback</groupId>
443417
<artifactId>logback-classic</artifactId>
444-
<version>1.3.4</version>
418+
<version>1.4.6</version>
445419
<scope>test</scope>
446420
</dependency>
447421
</dependencies>

0 commit comments

Comments
 (0)