Skip to content

Commit 7ed77b8

Browse files
authored
Move database version profiles to individual client POMs (#1640) (#1642)
* Move database version profiles to individual client POMs Relocate database-specific testing profiles from root pom.xml to individual client modules. CI now uses Maven's -pl/-am flags for targeted builds instead of profile-based module selection. This commit decentralizes the Maven profile configuration, moving it from a monolithic root POM to the individual database client modules. Some portions of this content were created with the assistance of Claude Code. * Disable fail-fast in CI matrix Otherwise, we don't get information about a particular database type * Skip MySQLTLSTest when testing MySQL 5.6 MySQL 5.6 only supports TLS 1.0/1.1 which are disabled in Java 11+ * Make MSSQLRule work with all tested MSSQL versions * Skip PostgreSQL 9 NULL type inference tests PostgreSQL 9 cannot infer types from NULL for BigDecimal, temporal types (LocalTime, OffsetTime, Temporal), and their array variants. Override these test methods to skip on PostgreSQL 9 using assumeTrue checks. * Removed empty profiles block --------- Signed-off-by: Thomas Segismont <tsegismont@gmail.com>
1 parent 10136d6 commit 7ed77b8

File tree

12 files changed

+380
-229
lines changed

12 files changed

+380
-229
lines changed

.github/workflows/ci-4.x.yml

Lines changed: 68 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,74 @@ jobs:
1414
Test:
1515
name: Run tests
1616
strategy:
17+
fail-fast: false
1718
matrix:
18-
os: [ubuntu-latest]
19-
profile: [PostgreSQL-9,PostgreSQL-10,PostgreSQL-11,MySQL-8.0,MySQL-5.6,MySQL-5.7,MariaDB-10.4,MSSQL-2017-latest,MSSQL-2019-latest,DB2-11.5,Oracle-23,SQL-templates]
20-
jdk: [8, 25]
21-
exclude:
22-
- profile: Oracle-23
19+
include:
20+
# JDK 8 tests
21+
- os: ubuntu-latest
22+
jdk: 8
23+
profile: 'PostgreSQL-9'
24+
module: 'vertx-pg-client'
25+
- os: ubuntu-latest
26+
jdk: 8
27+
profile: 'PostgreSQL-10'
28+
module: 'vertx-pg-client'
29+
- os: ubuntu-latest
30+
jdk: 8
31+
profile: 'PostgreSQL-11'
32+
module: 'vertx-pg-client'
33+
- os: ubuntu-latest
34+
jdk: 8
35+
profile: 'MySQL-8.0'
36+
module: 'vertx-mysql-client'
37+
- os: ubuntu-latest
38+
jdk: 8
39+
profile: 'MySQL-5.6'
40+
module: 'vertx-mysql-client'
41+
- os: ubuntu-latest
42+
jdk: 8
43+
profile: 'MySQL-5.7'
44+
module: 'vertx-mysql-client'
45+
- os: ubuntu-latest
46+
jdk: 8
47+
profile: 'MariaDB-10.4'
48+
module: 'vertx-mysql-client'
49+
- os: ubuntu-latest
2350
jdk: 8
24-
- profile: DB2-11.5
51+
profile: 'MSSQL-2017-latest'
52+
module: 'vertx-mssql-client'
53+
- os: ubuntu-latest
54+
jdk: 8
55+
profile: 'MSSQL-2019-latest'
56+
module: 'vertx-mssql-client'
57+
- os: ubuntu-latest
58+
jdk: 8
59+
profile: 'DB2-11.5'
60+
module: 'vertx-db2-client'
61+
- os: ubuntu-latest
62+
jdk: 8
63+
module: 'vertx-sql-client-templates'
64+
# JDK 25 tests (subset)
65+
- os: ubuntu-latest
2566
jdk: 25
26-
fail-fast: false
67+
profile: 'PostgreSQL-11'
68+
module: 'vertx-pg-client'
69+
- os: ubuntu-latest
70+
jdk: 25
71+
profile: 'MySQL-5.7'
72+
module: 'vertx-mysql-client'
73+
- os: ubuntu-latest
74+
jdk: 25
75+
profile: 'MariaDB-10.4'
76+
module: 'vertx-mysql-client'
77+
- os: ubuntu-latest
78+
jdk: 25
79+
profile: 'MSSQL-2019-latest'
80+
module: 'vertx-mssql-client'
81+
- os: ubuntu-latest
82+
jdk: 25
83+
profile: 'Oracle-23'
84+
module: 'vertx-oracle-client'
2785
runs-on: ${{ matrix.os }}
2886
steps:
2987
- name: Checkout
@@ -34,7 +92,9 @@ jobs:
3492
java-version: ${{ matrix.jdk }}
3593
distribution: temurin
3694
- name: Run tests
37-
run: mvn -s .github/maven-ci-settings.xml -q clean verify -B -DskipDefault -P ${{ matrix.profile }}
95+
run: |
96+
PROFILE_ARG="${{ matrix.profile && format('-P {0}', matrix.profile) || '' }}"
97+
mvn -s .github/maven-ci-settings.xml -q clean verify -B $PROFILE_ARG -pl :${{ matrix.module }} -am
3898
Deploy:
3999
name: Deploy to OSSRH
40100
if: ${{ github.repository_owner == 'eclipse-vertx' && (github.event_name == 'push' || github.event_name == 'schedule') }}

pom.xml

Lines changed: 9 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -101,145 +101,14 @@
101101
</dependency>
102102
</dependencies>
103103

104-
<profiles>
105-
<profile>
106-
<id>default</id>
107-
<activation>
108-
<property>
109-
<name>skipDefault</name>
110-
<value>!true</value>
111-
</property>
112-
</activation>
113-
<modules>
114-
<module>vertx-sql-client</module>
115-
<module>vertx-pg-client</module>
116-
<module>vertx-mysql-client</module>
117-
<module>vertx-mssql-client</module>
118-
<module>vertx-db2-client</module>
119-
<module>vertx-sql-client-templates</module>
120-
<module>vertx-oracle-client</module>
121-
</modules>
122-
</profile>
123-
<profile>
124-
<id>PostgreSQL-9</id>
125-
<properties>
126-
<embedded.postgres.version>9.6</embedded.postgres.version>
127-
</properties>
128-
<modules>
129-
<module>vertx-sql-client</module>
130-
<module>vertx-pg-client</module>
131-
</modules>
132-
</profile>
133-
<profile>
134-
<id>PostgreSQL-10</id>
135-
<properties>
136-
<embedded.postgres.version>10.6</embedded.postgres.version>
137-
</properties>
138-
<modules>
139-
<module>vertx-sql-client</module>
140-
<module>vertx-pg-client</module>
141-
</modules>
142-
</profile>
143-
<profile>
144-
<id>PostgreSQL-11</id>
145-
<properties>
146-
<embedded.postgres.version>11.5</embedded.postgres.version>
147-
</properties>
148-
<modules>
149-
<module>vertx-sql-client</module>
150-
<module>vertx-pg-client</module>
151-
</modules>
152-
</profile>
153-
<profile>
154-
<id>MySQL-8.0</id>
155-
<properties>
156-
<testing.mysql.database.server>mysql</testing.mysql.database.server>
157-
<testing.mysql.database.version>8.0</testing.mysql.database.version>
158-
</properties>
159-
<modules>
160-
<module>vertx-sql-client</module>
161-
<module>vertx-mysql-client</module>
162-
</modules>
163-
</profile>
164-
<profile>
165-
<id>MySQL-5.6</id>
166-
<properties>
167-
<testing.mysql.database.server>mysql</testing.mysql.database.server>
168-
<testing.mysql.database.version>5.6</testing.mysql.database.version>
169-
</properties>
170-
<modules>
171-
<module>vertx-sql-client</module>
172-
<module>vertx-mysql-client</module>
173-
</modules>
174-
</profile>
175-
<profile>
176-
<id>MySQL-5.7</id>
177-
<properties>
178-
<testing.mysql.database.server>mysql</testing.mysql.database.server>
179-
<testing.mysql.database.version>5.7</testing.mysql.database.version>
180-
</properties>
181-
<modules>
182-
<module>vertx-sql-client</module>
183-
<module>vertx-mysql-client</module>
184-
</modules>
185-
</profile>
186-
<profile>
187-
<id>MariaDB-10.4</id>
188-
<properties>
189-
<testing.mysql.database.server>mariadb</testing.mysql.database.server>
190-
<testing.mysql.database.version>10.4</testing.mysql.database.version>
191-
</properties>
192-
<modules>
193-
<module>vertx-sql-client</module>
194-
<module>vertx-mysql-client</module>
195-
</modules>
196-
</profile>
197-
<profile>
198-
<id>MSSQL-2017-latest</id>
199-
<properties>
200-
<mssql-container.version>2017-latest</mssql-container.version>
201-
</properties>
202-
<modules>
203-
<module>vertx-sql-client</module>
204-
<module>vertx-mssql-client</module>
205-
</modules>
206-
</profile>
207-
<profile>
208-
<id>MSSQL-2019-latest</id>
209-
<properties>
210-
<mssql-container.version>2019-latest</mssql-container.version>
211-
</properties>
212-
<modules>
213-
<module>vertx-sql-client</module>
214-
<module>vertx-mssql-client</module>
215-
</modules>
216-
</profile>
217-
<profile>
218-
<id>DB2-11.5</id>
219-
<modules>
220-
<module>vertx-sql-client</module>
221-
<module>vertx-db2-client</module>
222-
</modules>
223-
</profile>
224-
<profile>
225-
<id>SQL-templates</id>
226-
<modules>
227-
<module>vertx-sql-client</module>
228-
<module>vertx-pg-client</module>
229-
<module>vertx-mysql-client</module>
230-
<module>vertx-sql-client-templates</module>
231-
</modules>
232-
</profile>
233-
<profile>
234-
<id>Oracle-23</id>
235-
<properties>
236-
<oracle-container.version>23.3-slim-faststart</oracle-container.version>
237-
</properties>
238-
<modules>
239-
<module>vertx-sql-client</module>
240-
<module>vertx-oracle-client</module>
241-
</modules>
242-
</profile>
243-
</profiles>
104+
<modules>
105+
<module>vertx-sql-client</module>
106+
<module>vertx-pg-client</module>
107+
<module>vertx-mysql-client</module>
108+
<module>vertx-mssql-client</module>
109+
<module>vertx-db2-client</module>
110+
<module>vertx-sql-client-templates</module>
111+
<module>vertx-oracle-client</module>
112+
</modules>
244113

245114
</project>

vertx-db2-client/pom.xml

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -88,25 +88,21 @@
8888
</dependencies>
8989

9090
<build>
91-
<pluginManagement>
92-
<plugins>
93-
<plugin>
94-
<artifactId>maven-surefire-plugin</artifactId>
95-
<configuration>
96-
<argLine>-Xmx1024M</argLine>
97-
<failIfNoTests>true</failIfNoTests>
98-
<trimStackTrace>false</trimStackTrace>
99-
<systemPropertyVariables>
100-
<target.dir>${project.build.directory}</target.dir>
101-
<!-- Copy of java.security that allows TLS 1.1 as the DB2 container will only accept this version
102-
(https://bugs.openjdk.java.net/browse/JDK-8258598) -->
103-
<java.security.properties>${project.basedir}/src/test/java.security</java.security.properties>
104-
</systemPropertyVariables>
105-
</configuration>
106-
</plugin>
107-
</plugins>
108-
</pluginManagement>
10991
<plugins>
92+
<plugin>
93+
<artifactId>maven-surefire-plugin</artifactId>
94+
<configuration>
95+
<argLine>-Xmx1024M</argLine>
96+
<failIfNoTests>true</failIfNoTests>
97+
<trimStackTrace>false</trimStackTrace>
98+
<systemPropertyVariables>
99+
<target.dir>${project.build.directory}</target.dir>
100+
<!-- Copy of java.security that allows TLS 1.1 as the DB2 container will only accept this version
101+
(https://bugs.openjdk.java.net/browse/JDK-8258598) -->
102+
<java.security.properties>${project.basedir}/src/test/java.security</java.security.properties>
103+
</systemPropertyVariables>
104+
</configuration>
105+
</plugin>
110106
<plugin>
111107
<groupId>org.bsc.maven</groupId>
112108
<artifactId>maven-processor-plugin</artifactId>

vertx-mssql-client/README.adoc

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,28 @@ Nevertheless, you can force the usage of the standard SQL Server port (1433) wit
1818
mvn test -DcontainerFixedPort
1919
----
2020

21+
==== Testing with different SQL Server versions
22+
23+
You can test with different SQL Server versions by using Maven profiles:
24+
25+
[source,bash]
26+
----
27+
mvn test -P MSSQL-2017-latest
28+
mvn test -P MSSQL-2019-latest
29+
----
30+
31+
Or by passing the version property directly:
32+
33+
[source,bash]
34+
----
35+
mvn test -Dmssql-container.version=2017-latest
36+
----
37+
38+
The following versions are supported:
39+
40+
* `2017-latest`
41+
* `2019-latest` (default)
42+
2143
==== Testing with an external database
2244

2345
You can start external database instances:

vertx-mssql-client/pom.xml

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
<description>The Reactive MSSQL Client</description>
1818

1919
<properties>
20+
<!-- Set to a value for testing with a specific database -->
21+
<mssql-container.version/>
22+
<force.encryption.connection.uri/>
2023
<doc.skip>false</doc.skip>
2124
<docs.dir>${project.basedir}/src/main/docs</docs.dir>
2225
<generated.dir>${project.basedir}/src/main/generated</generated.dir>
@@ -63,6 +66,19 @@
6366

6467
<build>
6568
<plugins>
69+
<plugin>
70+
<artifactId>maven-surefire-plugin</artifactId>
71+
<configuration>
72+
<argLine>-Xmx1024M</argLine>
73+
<systemPropertyVariables>
74+
<target.dir>${project.build.directory}</target.dir>
75+
<mssql-container.version>${mssql-container.version}</mssql-container.version>
76+
<connection.uri>${connection.uri}</connection.uri>
77+
<tls.connection.uri>${tls.connection.uri}</tls.connection.uri>
78+
<force.encryption.connection.uri>${force.encryption.connection.uri}</force.encryption.connection.uri>
79+
</systemPropertyVariables>
80+
</configuration>
81+
</plugin>
6682
<plugin>
6783
<groupId>org.bsc.maven</groupId>
6884
<artifactId>maven-processor-plugin</artifactId>
@@ -99,8 +115,18 @@
99115
</build>
100116

101117
<profiles>
102-
118+
<profile>
119+
<id>MSSQL-2017-latest</id>
120+
<properties>
121+
<mssql-container.version>2017-latest</mssql-container.version>
122+
</properties>
123+
</profile>
124+
<profile>
125+
<id>MSSQL-2019-latest</id>
126+
<properties>
127+
<mssql-container.version>2019-latest</mssql-container.version>
128+
</properties>
129+
</profile>
103130
</profiles>
104131

105-
106132
</project>

0 commit comments

Comments
 (0)