aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-web/src/test/java
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-22 19:16:47 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-22 19:21:42 +0100
commita8ffe38e6e5401011352cda5bc92a0a7a88ef40e (patch)
tree97f14cfb809f365aebfdbfaed43c8733aec930e6 /subprojects/language-web/src/test/java
parentfix(frontend): mobx 6.7.0 typing (diff)
downloadrefinery-a8ffe38e6e5401011352cda5bc92a0a7a88ef40e.tar.gz
refinery-a8ffe38e6e5401011352cda5bc92a0a7a88ef40e.tar.zst
refinery-a8ffe38e6e5401011352cda5bc92a0a7a88ef40e.zip
chore: upgrade to Java 19
Use Java 19 and Jetty 12 to take advantage of Project Loom preview features to reduce CPU usage due to XtextWebDocumentAccess thread pools.
Diffstat (limited to 'subprojects/language-web/src/test/java')
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java18
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java9
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java31
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java10
4 files changed, 33 insertions, 35 deletions
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java
index 652fc13b..6dfce780 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java
@@ -1,17 +1,17 @@
1package tools.refinery.language.web; 1package tools.refinery.language.web;
2 2
3import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
4import org.eclipse.jetty.ee10.servlet.ServletHolder;
5import org.eclipse.jetty.ee10.websocket.api.Session;
6import org.eclipse.jetty.ee10.websocket.api.StatusCode;
7import org.eclipse.jetty.ee10.websocket.api.annotations.WebSocket;
8import org.eclipse.jetty.ee10.websocket.api.exceptions.UpgradeException;
9import org.eclipse.jetty.ee10.websocket.client.ClientUpgradeRequest;
10import org.eclipse.jetty.ee10.websocket.client.WebSocketClient;
11import org.eclipse.jetty.ee10.websocket.server.config.JettyWebSocketServletContainerInitializer;
3import org.eclipse.jetty.http.HttpHeader; 12import org.eclipse.jetty.http.HttpHeader;
4import org.eclipse.jetty.http.HttpStatus; 13import org.eclipse.jetty.http.HttpStatus;
5import org.eclipse.jetty.server.Server; 14import org.eclipse.jetty.server.Server;
6import org.eclipse.jetty.servlet.ServletContextHandler;
7import org.eclipse.jetty.servlet.ServletHolder;
8import org.eclipse.jetty.websocket.api.Session;
9import org.eclipse.jetty.websocket.api.StatusCode;
10import org.eclipse.jetty.websocket.api.annotations.WebSocket;
11import org.eclipse.jetty.websocket.api.exceptions.UpgradeException;
12import org.eclipse.jetty.websocket.client.ClientUpgradeRequest;
13import org.eclipse.jetty.websocket.client.WebSocketClient;
14import org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer;
15import org.eclipse.xtext.testing.GlobalRegistries; 15import org.eclipse.xtext.testing.GlobalRegistries;
16import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento; 16import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento;
17import org.junit.jupiter.api.AfterEach; 17import org.junit.jupiter.api.AfterEach;
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java
index b70d0ed5..ebf36f13 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java
@@ -1,16 +1,15 @@
1package tools.refinery.language.web.tests; 1package tools.refinery.language.web.tests;
2 2
3import com.google.inject.Singleton;
4import org.eclipse.xtext.ide.ExecutorServiceProvider;
5
3import java.util.ArrayList; 6import java.util.ArrayList;
4import java.util.List; 7import java.util.List;
5import java.util.concurrent.ExecutorService; 8import java.util.concurrent.ExecutorService;
6 9
7import org.eclipse.xtext.ide.ExecutorServiceProvider;
8
9import com.google.inject.Singleton;
10
11@Singleton 10@Singleton
12public class AwaitTerminationExecutorServiceProvider extends ExecutorServiceProvider { 11public class AwaitTerminationExecutorServiceProvider extends ExecutorServiceProvider {
13 private List<RestartableCachedThreadPool> servicesToShutDown = new ArrayList<>(); 12 private final List<RestartableCachedThreadPool> servicesToShutDown = new ArrayList<>();
14 13
15 @Override 14 @Override
16 protected ExecutorService createInstance(String key) { 15 protected ExecutorService createInstance(String key) {
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java
index 1468273d..8e5038ae 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java
@@ -1,45 +1,44 @@
1package tools.refinery.language.web.tests; 1package tools.refinery.language.web.tests;
2 2
3import java.util.Collection;
4import java.util.List;
5import java.util.concurrent.Callable;
6import java.util.concurrent.ExecutionException;
7import java.util.concurrent.ExecutorService;
8import java.util.concurrent.Executors;
9import java.util.concurrent.Future;
10import java.util.concurrent.TimeUnit;
11import java.util.concurrent.TimeoutException;
12
13import org.slf4j.Logger; 3import org.slf4j.Logger;
14import org.slf4j.LoggerFactory; 4import org.slf4j.LoggerFactory;
15 5
6import java.util.Collection;
7import java.util.List;
8import java.util.concurrent.*;
9
10@SuppressWarnings("NullableProblems")
16public class RestartableCachedThreadPool implements ExecutorService { 11public class RestartableCachedThreadPool implements ExecutorService {
17 private static final Logger LOG = LoggerFactory.getLogger(RestartableCachedThreadPool.class); 12 private static final Logger LOG = LoggerFactory.getLogger(RestartableCachedThreadPool.class);
18 13
19 private ExecutorService delegate; 14 private ExecutorService delegate;
20 15
21 public RestartableCachedThreadPool() { 16 public RestartableCachedThreadPool() {
22 delegate = createExecutorService(); 17 delegate = createExecutorService();
23 } 18 }
24 19
25 public void waitForAllTasksToFinish() { 20 public void waitForAllTasksToFinish() {
26 delegate.shutdown(); 21 delegate.shutdown();
27 waitForTermination(); 22 waitForTermination();
28 delegate = createExecutorService(); 23 delegate = createExecutorService();
29 } 24 }
30 25
31 public void waitForTermination() { 26 public void waitForTermination() {
27 boolean result = false;
32 try { 28 try {
33 delegate.awaitTermination(1, TimeUnit.SECONDS); 29 result = delegate.awaitTermination(1, TimeUnit.SECONDS);
34 } catch (InterruptedException e) { 30 } catch (InterruptedException e) {
35 LOG.warn("Interrupted while waiting for delegate executor to stop", e); 31 LOG.warn("Interrupted while waiting for delegate executor to stop", e);
36 } 32 }
33 if (!result) {
34 throw new IllegalStateException("Failed to shut down Xtext thread pool");
35 }
37 } 36 }
38 37
39 protected ExecutorService createExecutorService() { 38 protected ExecutorService createExecutorService() {
40 return Executors.newCachedThreadPool(); 39 return Executors.newCachedThreadPool();
41 } 40 }
42 41
43 @Override 42 @Override
44 public boolean awaitTermination(long arg0, TimeUnit arg1) throws InterruptedException { 43 public boolean awaitTermination(long arg0, TimeUnit arg1) throws InterruptedException {
45 return delegate.awaitTermination(arg0, arg1); 44 return delegate.awaitTermination(arg0, arg1);
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java
index 74695c9a..f19c10ca 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java
@@ -1,10 +1,10 @@
1package tools.refinery.language.web.tests; 1package tools.refinery.language.web.tests;
2 2
3import org.eclipse.jetty.websocket.api.Session; 3import org.eclipse.jetty.ee10.websocket.api.Session;
4import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose; 4import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketClose;
5import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect; 5import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketConnect;
6import org.eclipse.jetty.websocket.api.annotations.OnWebSocketError; 6import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketError;
7import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage; 7import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketMessage;
8 8
9import java.io.IOException; 9import java.io.IOException;
10import java.time.Duration; 10import java.time.Duration;