Skip to content

Commit a6d9925

Browse files
committed
add decoration for javalin server
1 parent e24a14a commit a6d9925

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<modelVersion>4.0.0</modelVersion>
1212
<artifactId>websocket-server</artifactId>
13-
<version>1.0.9</version>
13+
<version>1.0.10</version>
1414
<name>WebsocketServer</name>
1515
<packaging>jar</packaging>
1616

src/main/java/info/unterrainer/websocketserver/WebsocketServer.java

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,26 @@ public class WebsocketServer {
2020
private boolean isOauthEnabled = false;
2121

2222
public WebsocketServer() {
23-
this(null);
23+
this((Javalin) null);
24+
}
25+
26+
public WebsocketServer(Javalin server) {
27+
this(server, null);
2428
}
2529

2630
public WebsocketServer(WsExceptionHandler<Exception> exceptionHandler) {
31+
this(null, exceptionHandler);
32+
}
33+
34+
public WebsocketServer(Javalin server, WsExceptionHandler<Exception> exceptionHandler) {
2735
try {
28-
wss = Javalin.create();
29-
wss.exception(Exception.class, (e, ctx) -> {
30-
log.error("Uncaught exception in Websocket-Server: {}", e);
31-
});
36+
wss = server;
37+
if (wss == null)
38+
wss = Javalin.create();
39+
3240
if (exceptionHandler != null)
3341
wss.wsException(Exception.class, exceptionHandler);
42+
3443
wss.wsException(Exception.class, (e, ctx) -> {
3544
log.error("Uncaught websocket-exception in Websocket-Server: {}", e);
3645
});
@@ -40,11 +49,20 @@ public WebsocketServer(WsExceptionHandler<Exception> exceptionHandler) {
4049
}
4150

4251
public WebsocketServer(String keycloakHost, String keycloakRealm) {
43-
this(keycloakHost, keycloakRealm, null);
52+
this(null, keycloakHost, keycloakRealm);
53+
}
54+
55+
public WebsocketServer(Javalin server, String keycloakHost, String keycloakRealm) {
56+
this(server, keycloakHost, keycloakRealm, null);
4457
}
4558

4659
public WebsocketServer(String keycloakHost, String keycloakRealm, WsExceptionHandler<Exception> exceptionHandler) {
47-
this(exceptionHandler);
60+
this(null, keycloakHost, keycloakRealm, exceptionHandler);
61+
}
62+
63+
public WebsocketServer(Javalin server, String keycloakHost, String keycloakRealm,
64+
WsExceptionHandler<Exception> exceptionHandler) {
65+
this(server, exceptionHandler);
4866
if (keycloakHost == null || keycloakHost.isEmpty()) {
4967
throw new IllegalArgumentException("Keycloak host must not be null or empty.");
5068
}
@@ -64,6 +82,14 @@ public WebsocketServer(String keycloakHost, String keycloakRealm, WsExceptionHan
6482
}
6583
}
6684

85+
/**
86+
* Starts the Websocket server on the specified port. Don't start this, if you
87+
* used this class as a decorator for an existing Javalin instance. Call the
88+
* other start method instead.
89+
*
90+
* @param port the port to listen to
91+
* @return
92+
*/
6793
public WebsocketServer start(int port) {
6894
wss.start("0.0.0.0", port);
6995
log.debug("Websocket server started on port: {}", port);

0 commit comments

Comments
 (0)