Skip to content

Commit 626f0ff

Browse files
author
Gérard Collin
committed
Java 21 upgrade
1 parent ef07cc3 commit 626f0ff

9 files changed

Lines changed: 98 additions & 83 deletions

File tree

pom.xml

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@
66
<artifactId>ide-services</artifactId>
77
<version>1.0.0-SNAPSHOT</version>
88
<properties>
9-
<compiler-plugin.version>3.8.1</compiler-plugin.version>
10-
<maven.compiler.parameters>true</maven.compiler.parameters>
11-
<maven.compiler.source>16</maven.compiler.source>
12-
<maven.compiler.target>16</maven.compiler.target>
9+
<compiler-plugin.version>3.12.1</compiler-plugin.version>
10+
<maven.compiler.release>21</maven.compiler.release>
1311
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1412
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
1513
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
16-
<quarkus.platform.version>2.11.1.Final</quarkus.platform.version>
17-
<quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
18-
<surefire-plugin.version>3.0.0-M7</surefire-plugin.version>
19-
<dontcode-common.version>0.2.3-SNAPSHOT</dontcode-common.version>
14+
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
15+
<quarkus.platform.version>3.8.3</quarkus.platform.version>
16+
<skipITs>true</skipITs>
17+
<surefire-plugin.version>3.2.5</surefire-plugin.version>
18+
<dontcode-common.version>0.3.0-SNAPSHOT</dontcode-common.version>
2019
</properties>
2120
<dependencyManagement>
2221
<dependencies>
@@ -56,12 +55,6 @@
5655
<artifactId>rest-assured</artifactId>
5756
<scope>test</scope>
5857
</dependency>
59-
<dependency>
60-
<groupId>de.flapdoodle.embed</groupId>
61-
<artifactId>de.flapdoodle.embed.mongo</artifactId>
62-
<version>2.2.0</version>
63-
<scope>test</scope>
64-
</dependency>
6558
<dependency>
6659
<groupId>io.quarkus</groupId>
6760
<artifactId>quarkus-mutiny</artifactId>
@@ -90,39 +83,62 @@
9083
<groupId>io.quarkus</groupId>
9184
<artifactId>quarkus-smallrye-context-propagation</artifactId>
9285
</dependency>
93-
<dependency>
94-
<groupId>jakarta.xml.bind</groupId>
95-
<artifactId>jakarta.xml.bind-api</artifactId>
96-
<version>2.3.3</version>
97-
<scope>compile</scope>
98-
</dependency>
9986
</dependencies>
10087
<build>
10188
<finalName>${project.artifactId}</finalName>
10289
<plugins>
10390
<plugin>
104-
<groupId>io.quarkus</groupId>
91+
<groupId>${quarkus.platform.group-id}</groupId>
10592
<artifactId>quarkus-maven-plugin</artifactId>
10693
<version>${quarkus.platform.version}</version>
94+
<extensions>true</extensions>
10795
<executions>
10896
<execution>
10997
<goals>
11098
<goal>build</goal>
99+
<goal>generate-code</goal>
100+
<goal>generate-code-tests</goal>
111101
</goals>
112102
</execution>
113103
</executions>
114104
</plugin>
115105
<plugin>
116106
<artifactId>maven-compiler-plugin</artifactId>
117107
<version>${compiler-plugin.version}</version>
108+
<configuration>
109+
<compilerArgs>
110+
<arg>-parameters</arg>
111+
</compilerArgs>
112+
</configuration>
118113
</plugin>
119114
<plugin>
120115
<artifactId>maven-surefire-plugin</artifactId>
121116
<version>${surefire-plugin.version}</version>
122117
<configuration>
123-
<systemProperties>
118+
<systemPropertyVariables>
119+
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
120+
<maven.home>${maven.home}</maven.home>
121+
</systemPropertyVariables>
122+
<argLine>-XX:+EnableDynamicAgentLoading</argLine>
123+
</configuration>
124+
</plugin>
125+
<plugin>
126+
<artifactId>maven-failsafe-plugin</artifactId>
127+
<version>${surefire-plugin.version}</version>
128+
<executions>
129+
<execution>
130+
<goals>
131+
<goal>integration-test</goal>
132+
<goal>verify</goal>
133+
</goals>
134+
</execution>
135+
</executions>
136+
<configuration>
137+
<systemPropertyVariables>
138+
<native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
124139
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
125-
</systemProperties>
140+
<maven.home>${maven.home}</maven.home>
141+
</systemPropertyVariables>
126142
</configuration>
127143
</plugin>
128144
</plugins>

src/main/java/module-info.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/main/java/net/dontcode/ide/IdeSocket.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
import org.slf4j.Logger;
1111
import org.slf4j.LoggerFactory;
1212

13-
import javax.enterprise.context.ApplicationScoped;
14-
import javax.inject.Inject;
15-
import javax.websocket.*;
16-
import javax.websocket.server.ServerEndpoint;
13+
import jakarta.enterprise.context.ApplicationScoped;
14+
import jakarta.inject.Inject;
15+
import jakarta.websocket.*;
16+
import jakarta.websocket.server.ServerEndpoint;
1717
import java.util.Collections;
1818
import java.util.Map;
1919
import java.util.concurrent.ConcurrentHashMap;
@@ -41,6 +41,8 @@ public void onOpen(Session session) {
4141
.flatMap(createdSession -> {
4242
log.debug("Session {} created.", session.getId());
4343
return Uni.createFrom().future(session.getAsyncRemote().sendObject(new Message(Message.MessageType.INIT, session.getId())));
44+
}).invoke(() -> {
45+
log.debug ("Response sent");
4446
})
4547
.onFailure().call(throwable -> {
4648
log.error("Error {} while saving session", throwable.getMessage());

src/main/java/net/dontcode/ide/IdeTestResource.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
import org.slf4j.Logger;
99
import org.slf4j.LoggerFactory;
1010

11-
import javax.inject.Inject;
12-
import javax.ws.rs.Consumes;
13-
import javax.ws.rs.POST;
14-
import javax.ws.rs.Path;
15-
import javax.ws.rs.core.MediaType;
16-
import javax.ws.rs.core.Response;
11+
import jakarta.inject.Inject;
12+
import jakarta.ws.rs.Consumes;
13+
import jakarta.ws.rs.POST;
14+
import jakarta.ws.rs.Path;
15+
import jakarta.ws.rs.core.MediaType;
16+
import jakarta.ws.rs.core.Response;
1717

1818
@Path("/test")
1919
public class IdeTestResource {

src/main/java/net/dontcode/ide/package-info.java

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/main/java/net/dontcode/ide/preview/PreviewServiceClient.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
import net.dontcode.core.Message;
55
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
66

7-
import javax.enterprise.context.ApplicationScoped;
8-
import javax.ws.rs.Consumes;
9-
import javax.ws.rs.POST;
10-
import javax.ws.rs.Path;
11-
import javax.ws.rs.core.Response;
7+
import jakarta.enterprise.context.ApplicationScoped;
8+
import jakarta.ws.rs.Consumes;
9+
import jakarta.ws.rs.POST;
10+
import jakarta.ws.rs.Path;
11+
import jakarta.ws.rs.core.Response;
1212

1313
@Path("/messages")
1414
@ApplicationScoped

src/main/java/net/dontcode/ide/preview/package-info.java

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/test/java/net/dontcode/ide/IdeSocketResourceTest.java

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
package net.dontcode.ide;
22

3+
import io.quarkus.test.InjectMock;
34
import io.quarkus.test.common.http.TestHTTPResource;
45
import io.quarkus.test.junit.QuarkusTest;
56
import io.quarkus.test.junit.TestProfile;
6-
import io.quarkus.test.junit.mockito.InjectMock;
7+
import io.smallrye.mutiny.Uni;
8+
import io.smallrye.mutiny.subscription.UniEmitter;
9+
import jakarta.inject.Inject;
10+
import jakarta.websocket.*;
11+
import net.dontcode.common.session.SessionService;
712
import net.dontcode.common.test.mongo.AbstractMongoTest;
813
import net.dontcode.common.test.mongo.MongoTestProfile;
14+
import net.dontcode.common.websocket.MessageEncoderDecoder;
915
import net.dontcode.core.Message;
1016
import net.dontcode.ide.preview.PreviewServiceClient;
11-
import net.dontcode.common.session.SessionService;
12-
import net.dontcode.common.websocket.MessageEncoderDecoder;
1317
import org.eclipse.microprofile.rest.client.inject.RestClient;
1418
import org.junit.jupiter.api.Assertions;
1519
import org.junit.jupiter.api.Test;
1620
import org.mockito.Mockito;
1721

18-
import javax.inject.Inject;
19-
import javax.websocket.*;
2022
import java.io.IOException;
2123
import java.net.URI;
24+
import java.time.Duration;
2225

2326
@QuarkusTest
2427
@TestProfile(MongoTestProfile.class)
@@ -34,51 +37,66 @@ public class IdeSocketResourceTest extends AbstractMongoTest {
3437
@TestHTTPResource("/ide")
3538
URI uri;
3639

40+
/**
41+
* Test that upon opening a session, we receive an INIT message with the session Id
42+
* @throws DeploymentException
43+
* @throws IOException
44+
* @throws InterruptedException
45+
*/
3746
@Test
3847
public void testSession() throws DeploymentException, IOException, InterruptedException {
3948
//Mockito.when(previewService.receiveUpdate(Mockito.anyString())).thenThrow(new RuntimeException("Errorrrrererre"));//Return(Uni.createFrom().voidItem());
4049
try (Session session = ContainerProvider.getWebSocketContainer().connectToServer(ClientTestSession.class, uri)) {
41-
net.dontcode.common.session.Session savedSession=null;
42-
// Wait the data to be saved in the database
43-
for (int i = 0; i < 10; i++) {
44-
Thread.sleep(50);
45-
if( ClientTestSession.sessionId!=null) {
46-
savedSession = sessionService.findSessionCreationEvent(ClientTestSession.sessionId).await().indefinitely();
47-
if (savedSession != null) {
48-
Assertions.assertEquals(ClientTestSession.sessionId, savedSession.id());
49-
break;
50-
}
50+
String[] saveSession = {""};
51+
net.dontcode.common.session.Session sessionFound = ClientTestSession.session.flatMap(sessionId -> {
52+
saveSession[0]=sessionId;
53+
if( sessionId!=null) {
54+
return sessionService.findSessionCreationEvent(sessionId);
5155
}
52-
}
53-
Assertions.assertNotNull(savedSession, "Session was not saved to database");
56+
else {
57+
throw new Error ("Null Session received");
58+
}
59+
}).await().atMost(Duration.ofMinutes(1));
60+
session.close();
61+
Assertions.assertNotNull(saveSession[0], "Session INIT was not received.");
62+
Assertions.assertEquals(saveSession[0], sessionFound.id(), "Session has not been found");
63+
//System.out.println("Closing session");
5464
Mockito.verify(previewService, Mockito.times(0)).receiveUpdate(Mockito.any(Message.class));
5565
}
5666
}
5767

5868
@ClientEndpoint(encoders = MessageEncoderDecoder.class, decoders = MessageEncoderDecoder.class)
5969
public static class ClientTestSession {
6070

61-
public static String sessionId=null;
71+
// Creates a Uni that will send the sessionsId received
72+
public static Uni<String> session = Uni.createFrom().emitter(uniEmitter -> {
73+
ClientTestSession.emitter = uniEmitter;
74+
});
75+
protected static UniEmitter<? super String> emitter;
6276

6377
@OnOpen
6478
public void open(Session session) {
65-
//MESSAGES.add("CONNECT");
66-
// Send a message to indicate that we are ready,
67-
// as the message handler may not be registered immediately after this callback.
68-
//session.getAsyncRemote().sendObject(new Message(Message.MessageType.INIT, ));
79+
//System.out.println("Session open");
6980
}
7081

7182
@OnMessage
7283
void message(Message msg) {
84+
// System.out.println("Message received");
7385
Assertions.assertEquals(msg.getType(), Message.MessageType.INIT);
7486
Assertions.assertNotNull(msg.getSessionId());
7587

76-
sessionId = msg.getSessionId();
88+
emitter.complete( msg.getSessionId());
89+
}
90+
91+
@OnClose
92+
void close () {
93+
// System.out.println ("Client Session closed");
7794
}
7895

7996
@OnError
8097
void error (Throwable error) {
8198
System.err.println("Error "+ error.getMessage());
99+
Assertions.fail(error.getMessage());
82100
}
83101

84102
}

src/test/java/net/dontcode/ide/IdeTestResourceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import io.quarkus.test.common.http.TestHTTPEndpoint;
44
import io.quarkus.test.junit.QuarkusTest;
55
import io.quarkus.test.junit.TestProfile;
6-
import io.quarkus.test.junit.mockito.InjectMock;
6+
import io.quarkus.test.InjectMock;
77
import io.restassured.http.ContentType;
88
import net.dontcode.common.test.mongo.AbstractMongoTest;
99
import net.dontcode.common.test.mongo.MongoTestProfile;

0 commit comments

Comments
 (0)