Skip to content

Commit

Permalink
Update all dependencies and update to JUnit 5 (TooTallNate#1450)
Browse files Browse the repository at this point in the history
* Update all dependencies
Update to JUnit 5
Adjust tests to JUnit 5
Improve Test stability

* Set maven java version to 1.8
  • Loading branch information
marci4 authored Jan 26, 2025
1 parent 253c3b8 commit 1ed042e
Show file tree
Hide file tree
Showing 80 changed files with 2,245 additions and 2,562 deletions.
6 changes: 5 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Continuous Integration

on: [push]
on: [push, pull_request]

jobs:
Build:
Expand All @@ -12,6 +12,8 @@ jobs:
with:
java-version: '17'
distribution: 'temurin'
- name: Maven Version
run: mvn --version
- name: Build
run: mvn -DskipTests package --file pom.xml

Expand All @@ -25,5 +27,7 @@ jobs:
with:
java-version: '17'
distribution: 'temurin'
- name: Maven Version
run: mvn --version
- name: Test
run: mvn test --file pom.xml
6 changes: 3 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ publishing {
}

dependencies {
implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.13'
testImplementation group: 'org.slf4j', name: 'slf4j-simple', version: '2.0.13'
testImplementation group: 'junit', name: 'junit', version: '4.13.1'
implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.15'
testImplementation group: 'org.slf4j', name: 'slf4j-simple', version: '2.0.15'
testImplementation group: 'org.junit', name: 'junit-bom', version: '5.11.4', ext: 'pom'
}
19 changes: 11 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@
<description>A barebones WebSocket client and server implementation written 100% in Java</description>
<url>https://github.com/TooTallNate/Java-WebSocket</url>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<slf4j.version>2.0.13</slf4j.version>
<slf4j.version>2.0.16</slf4j.version>

<!-- Test dependencies versions -->
<junit.version>4.13.1</junit.version>
<junit.version>5.11.4</junit.version>

<!-- Maven plugin versions -->
<bnd.maven.plugin.version>6.4.0</bnd.maven.plugin.version>
Expand Down Expand Up @@ -57,10 +59,11 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Expand Down Expand Up @@ -101,7 +104,7 @@
<goal>compile</goal>
</goals>
<configuration>
<release>7</release>
<release>8</release>
</configuration>
</execution>

Expand Down Expand Up @@ -288,8 +291,8 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
4 changes: 2 additions & 2 deletions src/main/example/SSLServerLetsEncryptExample.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.xml.bind.DatatypeConverter;
import org.java_websocket.server.DefaultSSLWebSocketServerFactory;


Expand Down Expand Up @@ -98,7 +97,8 @@ private static byte[] parseDERFromPEM(byte[] pem, String beginDelimiter, String
String data = new String(pem);
String[] tokens = data.split(beginDelimiter);
tokens = tokens[1].split(endDelimiter);
return DatatypeConverter.parseBase64Binary(tokens[0]);
// return DatatypeConverter.parseBase64Binary(tokens[0]);
return null;
}

private static RSAPrivateKey generatePrivateKeyFromDER(byte[] keyBytes)
Expand Down
2 changes: 1 addition & 1 deletion src/main/example/simplelogger.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
org.slf4j.simpleLogger.logFile=System.out
org.slf4j.simpleLogger.defaultLogLevel=trace
org.slf4j.simpleLogger.defaultLogLevel=off
org.slf4j.simpleLogger.showDateTime=true
org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss.SSS
org.slf4j.simpleLogger.showThreadName=false
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/java_websocket/AbstractWebSocket.java
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ protected void startConnectionLostTimer() {
private void restartConnectionLostTimer() {
cancelConnectionLostTimer();
connectionLostCheckerService = Executors
.newSingleThreadScheduledExecutor(new NamedThreadFactory("connectionLostChecker", daemon));
.newSingleThreadScheduledExecutor(new NamedThreadFactory("WebSocketConnectionLostChecker", daemon));
Runnable connectionLostChecker = new Runnable() {

/**
Expand Down
49 changes: 0 additions & 49 deletions src/test/java/org/java_websocket/AllTests.java

This file was deleted.

43 changes: 0 additions & 43 deletions src/test/java/org/java_websocket/client/AllClientTests.java

This file was deleted.

7 changes: 4 additions & 3 deletions src/test/java/org/java_websocket/client/AttachmentTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,14 @@

package org.java_websocket.client;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

import java.net.URI;
import java.net.URISyntaxException;
import org.java_websocket.handshake.ServerHandshake;
import org.junit.Test;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;

public class AttachmentTest {

Expand Down
102 changes: 56 additions & 46 deletions src/test/java/org/java_websocket/client/ConnectBlockingTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,65 +4,75 @@
import java.net.*;
import java.util.Set;
import java.util.concurrent.*;

import org.java_websocket.WebSocket;
import org.java_websocket.handshake.*;
import org.java_websocket.client.*;
import org.java_websocket.server.WebSocketServer;
import org.java_websocket.util.SocketUtil;
import org.java_websocket.enums.ReadyState;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Timeout;

import static org.junit.jupiter.api.Assertions.*;

public class ConnectBlockingTest {

@Test(timeout = 1000)
public void test_ConnectBlockingCleanup() throws Throwable {
@Test
@Timeout(1000)
public void test_ConnectBlockingCleanup() throws Throwable {

Set<Thread> threadSet1 = Thread.getAllStackTraces().keySet();
final CountDownLatch ready = new CountDownLatch(1);
final CountDownLatch accepted = new CountDownLatch(1);

final int port = SocketUtil.getAvailablePort();

/* TCP server which listens to a port, but does not answer handshake */
Thread server = new Thread(new Runnable() {
@Override
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(port);
serverSocket.setReuseAddress(true);
ready.countDown();
Socket clientSocket = serverSocket.accept();
accepted.countDown();
} catch (Throwable t) {
assertInstanceOf(InterruptedException.class, t);
}
}
});
server.start();
ready.await();

Set<Thread> threadSet1 = Thread.getAllStackTraces().keySet();
final CountDownLatch ready = new CountDownLatch(1);
final CountDownLatch accepted = new CountDownLatch(1);
WebSocketClient client = new WebSocketClient(URI.create("ws://localhost:" + port)) {
@Override
public void onOpen(ServerHandshake handshake) {
}

final int port = SocketUtil.getAvailablePort();
@Override
public void onClose(int code, String reason, boolean remote) {
}

/* TCP server which listens to a port, but does not answer handshake */
Thread server = new Thread(new Runnable() {
@Override
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(port);
ready.countDown();
Socket clientSocket = serverSocket.accept();
accepted.countDown();
} catch (Throwable t) {
assertTrue(t instanceof InterruptedException);
}
}
});
server.start();
ready.await();
@Override
public void onMessage(String message) {
}

WebSocketClient client = new WebSocketClient(URI.create("ws://localhost:" + port)) {
@Override
public void onOpen(ServerHandshake handshake) {
}
@Override
public void onClose(int code, String reason, boolean remote) {}
@Override
public void onMessage(String message) {}
@Override
public void onError(Exception ex) {
ex.printStackTrace();
}
};
boolean connected = client.connectBlocking(100, TimeUnit.MILLISECONDS);
assertEquals("TCP socket should have been accepted", 0, accepted.getCount());
assertFalse("WebSocket should not be connected (as server didn't send handshake)", connected);
@Override
public void onError(Exception ex) {
ex.printStackTrace();
}
};
boolean connected = client.connectBlocking(100, TimeUnit.MILLISECONDS);
assertEquals( 0, accepted.getCount(), "TCP socket should have been accepted");
assertFalse(connected, "WebSocket should not be connected (as server didn't send handshake)");

server.interrupt();
server.join();
server.interrupt();
server.join();

Set<Thread> threadSet2 = Thread.getAllStackTraces().keySet();
assertEquals("no threads left over", threadSet1, threadSet2);
assertTrue("WebSocket is in closed state", client.getReadyState() == ReadyState.CLOSED || client.getReadyState() == ReadyState.NOT_YET_CONNECTED);
}
Set<Thread> threadSet2 = Thread.getAllStackTraces().keySet();
assertEquals(threadSet1, threadSet2, "no threads left over");
assertTrue(client.getReadyState() == ReadyState.CLOSED || client.getReadyState() == ReadyState.NOT_YET_CONNECTED, "WebSocket is in closed state");
}
}
8 changes: 4 additions & 4 deletions src/test/java/org/java_websocket/client/HeadersTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@

package org.java_websocket.client;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;
import org.java_websocket.handshake.ServerHandshake;
import org.junit.Test;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;

public class HeadersTest {

Expand Down
Loading

0 comments on commit 1ed042e

Please sign in to comment.