Skip to content

Commit 1c5bee4

Browse files
authored
Merge pull request #46132 from IvanPetkov23/integration-tests/hibernate-reactive-oracle
Integration tests for hibernate-reactive-oracle
2 parents 1562be0 + a6dadc5 commit 1c5bee4

17 files changed

+1092
-2
lines changed

Diff for: .github/native-tests.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@
4444
},
4545
{
4646
"category": "Data7",
47-
"timeout": 90,
48-
"test-modules": "reactive-oracle-client, reactive-mysql-client, reactive-db2-client, hibernate-reactive-db2, hibernate-reactive-mariadb, hibernate-reactive-mssql, hibernate-reactive-mysql, hibernate-reactive-mysql-agroal-flyway, hibernate-reactive-panache, hibernate-reactive-panache-kotlin",
47+
"timeout": 95,
48+
"test-modules": "reactive-oracle-client, reactive-mysql-client, reactive-db2-client, hibernate-reactive-db2, hibernate-reactive-mariadb, hibernate-reactive-mssql, hibernate-reactive-mysql, hibernate-reactive-mysql-agroal-flyway, hibernate-reactive-panache, hibernate-reactive-panache-kotlin, hibernate-reactive-oracle",
4949
"os-name": "ubuntu-latest"
5050
},
5151
{

Diff for: integration-tests/hibernate-reactive-oracle/pom.xml

+312
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,312 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>quarkus-integration-tests-parent</artifactId>
7+
<groupId>io.quarkus</groupId>
8+
<version>999-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>quarkus-integration-test-hibernate-reactive-oracle</artifactId>
13+
<name>Quarkus - Integration Tests - Hibernate Reactive - Oracle</name>
14+
<description>Hibernate Reactive related tests running with the Oracle database</description>
15+
16+
<properties>
17+
<reactive-oracle.url>vertx-reactive:oracle:thin:@localhost:1521/FREEPDB1</reactive-oracle.url>
18+
</properties>
19+
20+
<dependencies>
21+
<dependency>
22+
<groupId>io.quarkus</groupId>
23+
<artifactId>quarkus-hibernate-reactive</artifactId>
24+
</dependency>
25+
<dependency>
26+
<groupId>io.quarkus</groupId>
27+
<artifactId>quarkus-reactive-oracle-client</artifactId>
28+
</dependency>
29+
<dependency>
30+
<groupId>io.quarkus</groupId>
31+
<artifactId>quarkus-rest-jsonb</artifactId>
32+
</dependency>
33+
<dependency>
34+
<groupId>io.quarkus</groupId>
35+
<artifactId>quarkus-elytron-security-properties-file</artifactId>
36+
</dependency>
37+
38+
<!-- test dependencies -->
39+
<dependency>
40+
<groupId>io.quarkus</groupId>
41+
<artifactId>quarkus-junit5</artifactId>
42+
<scope>test</scope>
43+
</dependency>
44+
<dependency>
45+
<groupId>io.rest-assured</groupId>
46+
<artifactId>rest-assured</artifactId>
47+
<scope>test</scope>
48+
</dependency>
49+
50+
<!-- Minimal test dependencies to *-deployment artifacts for consistent build order -->
51+
<dependency>
52+
<groupId>io.quarkus</groupId>
53+
<artifactId>quarkus-hibernate-reactive-deployment</artifactId>
54+
<version>${project.version}</version>
55+
<type>pom</type>
56+
<scope>test</scope>
57+
<exclusions>
58+
<exclusion>
59+
<groupId>*</groupId>
60+
<artifactId>*</artifactId>
61+
</exclusion>
62+
</exclusions>
63+
</dependency>
64+
<dependency>
65+
<groupId>io.quarkus</groupId>
66+
<artifactId>quarkus-reactive-oracle-client-deployment</artifactId>
67+
<version>${project.version}</version>
68+
<type>pom</type>
69+
<scope>test</scope>
70+
<exclusions>
71+
<exclusion>
72+
<groupId>*</groupId>
73+
<artifactId>*</artifactId>
74+
</exclusion>
75+
</exclusions>
76+
</dependency>
77+
<dependency>
78+
<groupId>io.quarkus</groupId>
79+
<artifactId>quarkus-rest-jsonb-deployment</artifactId>
80+
<version>${project.version}</version>
81+
<type>pom</type>
82+
<scope>test</scope>
83+
<exclusions>
84+
<exclusion>
85+
<groupId>*</groupId>
86+
<artifactId>*</artifactId>
87+
</exclusion>
88+
</exclusions>
89+
</dependency>
90+
<dependency>
91+
<groupId>io.quarkus</groupId>
92+
<artifactId>quarkus-elytron-security-properties-file-deployment</artifactId>
93+
<version>${project.version}</version>
94+
<type>pom</type>
95+
<scope>test</scope>
96+
<exclusions>
97+
<exclusion>
98+
<groupId>*</groupId>
99+
<artifactId>*</artifactId>
100+
</exclusion>
101+
</exclusions>
102+
</dependency>
103+
</dependencies>
104+
105+
<build>
106+
<resources>
107+
<resource>
108+
<directory>src/main/resources</directory>
109+
<filtering>true</filtering>
110+
</resource>
111+
</resources>
112+
<plugins>
113+
<plugin>
114+
<artifactId>maven-surefire-plugin</artifactId>
115+
<configuration>
116+
<skip>true</skip>
117+
<systemPropertyVariables>
118+
<org.hibernate.reactive.common.InternalStateAssertions.ENFORCE>true
119+
</org.hibernate.reactive.common.InternalStateAssertions.ENFORCE>
120+
</systemPropertyVariables>
121+
</configuration>
122+
</plugin>
123+
<plugin>
124+
<artifactId>maven-failsafe-plugin</artifactId>
125+
<configuration>
126+
<skip>true</skip>
127+
<systemPropertyVariables>
128+
<org.hibernate.reactive.common.InternalStateAssertions.ENFORCE>true
129+
</org.hibernate.reactive.common.InternalStateAssertions.ENFORCE>
130+
</systemPropertyVariables>
131+
</configuration>
132+
</plugin>
133+
<plugin>
134+
<groupId>io.quarkus</groupId>
135+
<artifactId>quarkus-maven-plugin</artifactId>
136+
<executions>
137+
<execution>
138+
<goals>
139+
<goal>build</goal>
140+
</goals>
141+
</execution>
142+
</executions>
143+
</plugin>
144+
</plugins>
145+
</build>
146+
147+
<profiles>
148+
<profile>
149+
<id>test-oracle</id>
150+
<activation>
151+
<property>
152+
<name>test-containers</name>
153+
</property>
154+
</activation>
155+
<build>
156+
<plugins>
157+
<plugin>
158+
<artifactId>maven-surefire-plugin</artifactId>
159+
<configuration>
160+
<skip>false</skip>
161+
</configuration>
162+
</plugin>
163+
<plugin>
164+
<artifactId>maven-failsafe-plugin</artifactId>
165+
<configuration>
166+
<skip>false</skip>
167+
</configuration>
168+
</plugin>
169+
</plugins>
170+
</build>
171+
</profile>
172+
173+
<profile>
174+
<id>docker-oracle</id>
175+
<activation>
176+
<property>
177+
<name>start-containers</name>
178+
</property>
179+
</activation>
180+
<build>
181+
<plugins>
182+
<plugin>
183+
<groupId>io.fabric8</groupId>
184+
<artifactId>docker-maven-plugin</artifactId>
185+
<configuration>
186+
<images>
187+
<image>
188+
<name>${oracle.image}</name>
189+
<run>
190+
<ports>
191+
<port>1521:1521</port>
192+
</ports>
193+
<env>
194+
<ORACLE_PASSWORD>hibernate_orm_test</ORACLE_PASSWORD>
195+
</env>
196+
<log>
197+
<prefix>Oracle Database: </prefix>
198+
<date>default</date>
199+
<color>red</color>
200+
</log>
201+
<wait>
202+
<!-- good docs found at: https://dmp.fabric8.io/#build-healthcheck -->
203+
<!-- Unfortunately booting this is slow, needs to set a generous timeout: -->
204+
<time>60000</time>
205+
<!-- leverage the healthcheck in the image we use -->
206+
<healthy>yes</healthy>
207+
<!-- In case of any issues with the built-in healthcheck we can revert back to the original log check:-->
208+
<!--<log>DATABASE IS READY TO USE!</log>-->
209+
</wait>
210+
</run>
211+
</image>
212+
</images>
213+
<!--Stops all Oracle DB images currently running, not just those we just started.
214+
Useful to stop processes still running from a previously failed integration test run -->
215+
<allContainers>true</allContainers>
216+
</configuration>
217+
<executions>
218+
<execution>
219+
<id>docker-start</id>
220+
<phase>compile</phase>
221+
<goals>
222+
<goal>stop</goal>
223+
<goal>start</goal>
224+
</goals>
225+
</execution>
226+
<execution>
227+
<id>docker-stop</id>
228+
<phase>post-integration-test</phase>
229+
<goals>
230+
<goal>stop</goal>
231+
</goals>
232+
</execution>
233+
</executions>
234+
</plugin>
235+
<plugin>
236+
<groupId>org.codehaus.mojo</groupId>
237+
<artifactId>exec-maven-plugin</artifactId>
238+
<executions>
239+
<execution>
240+
<id>docker-prune</id>
241+
<phase>generate-resources</phase>
242+
<goals>
243+
<goal>exec</goal>
244+
</goals>
245+
<configuration>
246+
<executable>${docker-prune.location}</executable>
247+
</configuration>
248+
</execution>
249+
</executions>
250+
</plugin>
251+
</plugins>
252+
</build>
253+
</profile>
254+
255+
<!-- In general, we want to avoid os- or arch-based guards on tests, but the Oracle
256+
db would not start on M1 - see https://stackoverflow.com/questions/68605011/oracle-12c-docker-setup-on-apple-m1 -->
257+
<profile>
258+
<id>mac-m1</id>
259+
<activation>
260+
<os>
261+
<arch>aarch64</arch>
262+
</os>
263+
</activation>
264+
<build>
265+
<plugins>
266+
<plugin>
267+
<artifactId>maven-surefire-plugin</artifactId>
268+
<configuration>
269+
<skip>true</skip>
270+
</configuration>
271+
</plugin>
272+
<plugin>
273+
<groupId>io.fabric8</groupId>
274+
<artifactId>docker-maven-plugin</artifactId>
275+
<configuration>
276+
<images>
277+
<image>
278+
<name>${oracle.image}</name>
279+
<run>
280+
<skip>true</skip>
281+
</run>
282+
</image>
283+
</images>
284+
</configuration>
285+
</plugin>
286+
</plugins>
287+
</build>
288+
</profile>
289+
<!-- Disabled pending fix of #33094 -->
290+
<profile>
291+
<id>podman</id>
292+
<activation>
293+
<property>
294+
<name>env.IS_PODMAN</name>
295+
<value>true</value>
296+
</property>
297+
</activation>
298+
<build>
299+
<plugins>
300+
<plugin>
301+
<artifactId>maven-surefire-plugin</artifactId>
302+
<configuration>
303+
<skip>true</skip>
304+
</configuration>
305+
</plugin>
306+
</plugins>
307+
</build>
308+
</profile>
309+
</profiles>
310+
311+
312+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package io.quarkus.it.hibernate.reactive.oracle.model;
2+
3+
import jakarta.persistence.Entity;
4+
import jakarta.persistence.GeneratedValue;
5+
import jakarta.persistence.Id;
6+
import jakarta.persistence.Table;
7+
8+
@Entity
9+
@Table(name = "Cow")
10+
public class FriesianCow {
11+
12+
@Id
13+
@GeneratedValue
14+
public Long id;
15+
16+
public String name;
17+
18+
}

0 commit comments

Comments
 (0)