diff --git a/pom.xml b/pom.xml index d52272a..708e8ba 100644 --- a/pom.xml +++ b/pom.xml @@ -10,8 +10,8 @@ Comparing Project Reactor vs Loom and getting them to work together - 22 - 22 + 21 + 21 UTF-8 1.0.8.RELEASE org.addario.ReactiveLoom @@ -73,6 +73,7 @@ --enable-preview -XX:+EnableDynamicAgentLoading + -XX:+AllowRedefinitionToAddDeleteMethods diff --git a/src/main/java/org/addario/ReactiveLoom.java b/src/main/java/org/addario/ReactiveLoom.java index 79ee8a6..cbe21a8 100644 --- a/src/main/java/org/addario/ReactiveLoom.java +++ b/src/main/java/org/addario/ReactiveLoom.java @@ -1,7 +1,7 @@ package org.addario; -import reactor.tools.agent.ReactorDebugAgent; import reactor.blockhound.BlockHound; +import reactor.tools.agent.ReactorDebugAgent; import java.io.File; import java.util.UUID; @@ -10,11 +10,11 @@ public class ReactiveLoom { public static void main(String[] args) throws InterruptedException { var quantity = 2_000_000; // Generating 2 million payment records should take around 10 seconds and will use about 3.9 GB of memory var batchSize = 100_000; // quantity / batchSize = how many groups of payments to process in parallel - var fileName = STR."\{UUID.randomUUID().toString()}.txt"; // Using Java 22 preview features so must be compiled/run with --enable-preview + var fileName = STR."\{UUID.randomUUID().toString()}.txt"; // Using Java 21 preview features so must be compiled/run with --enable-preview var file = new File(fileName); // A file with 2 million records will take around 3.3 GB - System.setProperty("reactor.schedulers.defaultBoundedElasticOnVirtualThreads", "true"); + System.setProperty("reactor.schedulers.defaultBoundedElasticOnVirtualThreads", "true"); // Use virtual threads (projet Loom) in bounded elastic scheduler - ReactorDebugAgent.init(); // Dev friendly reactor stack traces + ReactorDebugAgent.init(); // Dev friendly reactive stack traces BlockHound.install(); // Detect and throw on blocking calls from non-blocking threads var paymentsList = TimedExecution.createPaymentsList(quantity);