From a8aa07c9e0c1459506b0fcf80510e7e54dace339 Mon Sep 17 00:00:00 2001 From: Daniel Siviter Date: Tue, 17 Mar 2026 20:41:32 +0000 Subject: [PATCH] Using virtual threads --- .gitignore | 49 +++++++++++++++++++ .../java/uk/dansiviter/jule/AsyncHandler.java | 5 +- pom.xml | 6 +-- processor/pom.xml | 3 ++ 4 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6314db0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +# Created by https://www.toptal.com/developers/gitignore/api/java,maven +# Edit at https://www.toptal.com/developers/gitignore?templates=java,maven + +### Java ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* + +### Maven ### +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +# https://github.com/takari/maven-wrapper#usage-without-binary-jar +.mvn/wrapper/maven-wrapper.jar + +# Eclipse m2e generated files +# Eclipse Core +.project +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# End of https://www.toptal.com/developers/gitignore/api/java,maven diff --git a/core/src/main/java/uk/dansiviter/jule/AsyncHandler.java b/core/src/main/java/uk/dansiviter/jule/AsyncHandler.java index b536e47..cc9990d 100644 --- a/core/src/main/java/uk/dansiviter/jule/AsyncHandler.java +++ b/core/src/main/java/uk/dansiviter/jule/AsyncHandler.java @@ -15,7 +15,7 @@ */ package uk.dansiviter.jule; -import static java.util.concurrent.Executors.newSingleThreadExecutor; +import static java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor; import static java.util.concurrent.TimeUnit.SECONDS; import static java.util.logging.ErrorManager.CLOSE_FAILURE; import static java.util.logging.ErrorManager.GENERIC_FAILURE; @@ -86,9 +86,8 @@ protected AsyncHandler() { } catch (UnsupportedEncodingException e) { getErrorManager().error(e.getMessage(), e, OPEN_FAILURE); } - var maxBuffer = property("maxBuffer").map(Integer::parseInt).orElseGet(Flow::defaultBufferSize); - this.publisher = new SubmissionPublisher<>(this.executorService = newSingleThreadExecutor(r -> new Thread(r, getClass().getSimpleName())), maxBuffer); + this.publisher = new SubmissionPublisher<>(this.executorService = newVirtualThreadPerTaskExecutor(), maxBuffer); this.publisher.subscribe(this.subscriber); } diff --git a/pom.xml b/pom.xml index fbedafa..8380105 100644 --- a/pom.xml +++ b/pom.xml @@ -132,7 +132,7 @@ maven-release-plugin - 3.0.1 + 3.3.1 [skip ci] @@ -145,7 +145,7 @@ org.jacoco jacoco-maven-plugin - 0.8.10 + 0.8.13 @@ -190,7 +190,7 @@ org.apache.maven.plugins maven-gpg-plugin - 3.1.0 + 3.2.8 sign-artifacts diff --git a/processor/pom.xml b/processor/pom.xml index a4452eb..8964d05 100644 --- a/processor/pom.xml +++ b/processor/pom.xml @@ -56,6 +56,9 @@ + + full + maven-surefire-plugin