diff --git a/src/main/java/nl/vpro/esper/service/AsyncEventServiceProviderImpl.java b/src/main/java/nl/vpro/esper/service/AsyncEventServiceProviderImpl.java index 3da564b..87b0ea0 100644 --- a/src/main/java/nl/vpro/esper/service/AsyncEventServiceProviderImpl.java +++ b/src/main/java/nl/vpro/esper/service/AsyncEventServiceProviderImpl.java @@ -17,6 +17,8 @@ import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; +import nl.vpro.esper.EsperEvent; + @Slf4j public class AsyncEventServiceProviderImpl extends EventServiceProviderImpl implements AsyncEventServiceProvider { @@ -36,7 +38,7 @@ private AsyncEventServiceProviderImpl( Set> eventAnnotations, int queueCapacity) { super(name, eventPackages, eventAnnotations); - queue = new ArrayBlockingQueue<>(queueCapacity); + queue = new ArrayBlockingQueue<>(queueCapacity <=0 ? 1000 : queueCapacity); } @@ -102,4 +104,16 @@ public void run() { } } } + + public static class Builder { + + public AsyncEventServiceProviderImpl.Builder packages(String... eventPackages) { + return eventPackages(Set.of(eventPackages)); + } + + public AsyncEventServiceProviderImpl.Builder esperEventAnnotation() { + return eventAnnotations(Set.of(EsperEvent.class)); + } + } + } diff --git a/src/main/java/nl/vpro/esper/service/EventServiceProviderImpl.java b/src/main/java/nl/vpro/esper/service/EventServiceProviderImpl.java index b558955..90895a6 100644 --- a/src/main/java/nl/vpro/esper/service/EventServiceProviderImpl.java +++ b/src/main/java/nl/vpro/esper/service/EventServiceProviderImpl.java @@ -19,6 +19,8 @@ import com.espertech.esper.runtime.client.*; import com.google.common.reflect.ClassPath; +import nl.vpro.esper.EsperEvent; + @Slf4j public class EventServiceProviderImpl implements EventServiceProvider { @@ -111,4 +113,15 @@ private void initStatement(Statement statement) throws EPCompileException, EPDep statement.setEPStatement(deployment.getStatements()[0]); } + public static class Builder { + public Builder packages(String... eventPackages) { + return eventPackages(Set.of(eventPackages)); + } + + public Builder esperEventAnnotation() { + return eventAnnotations(Set.of(EsperEvent.class)); + } + + } + } diff --git a/src/test/java/nl/vpro/esper/service/AsyncEventServiceProviderTest.java b/src/test/java/nl/vpro/esper/service/AsyncEventServiceProviderTest.java index e328a98..e8cdf03 100644 --- a/src/test/java/nl/vpro/esper/service/AsyncEventServiceProviderTest.java +++ b/src/test/java/nl/vpro/esper/service/AsyncEventServiceProviderTest.java @@ -5,7 +5,6 @@ package nl.vpro.esper.service; import java.time.Duration; -import java.util.Set; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -24,7 +23,7 @@ public class AsyncEventServiceProviderTest { public void setup() { Statement testStatement = new Statement("select count(*) from TestEvent where name like '%6'"); provider = AsyncEventServiceProviderImpl.asyncBuilder().name("200") - .eventPackages(Set.of("nl.vpro.esper.event")) + .packages("nl.vpro.esper.event") .build(); provider.init(); provider.addStatement(testStatement); diff --git a/src/test/java/nl/vpro/esper/service/EventServiceProviderTest.java b/src/test/java/nl/vpro/esper/service/EventServiceProviderTest.java index 5c04470..e6e5a44 100644 --- a/src/test/java/nl/vpro/esper/service/EventServiceProviderTest.java +++ b/src/test/java/nl/vpro/esper/service/EventServiceProviderTest.java @@ -4,12 +4,9 @@ */ package nl.vpro.esper.service; -import java.util.Set; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import nl.vpro.esper.EsperEvent; import nl.vpro.esper.event.TestEvent; import nl.vpro.esper.listener.Counter; @@ -25,7 +22,7 @@ public class EventServiceProviderTest { public void setup() { Statement testStatement = new Statement("select count(*) from TestEvent where name like '%6'"); provider = EventServiceProviderImpl.builder() - .eventAnnotations(Set.of(EsperEvent.class)) + .esperEventAnnotation() .build(); provider.addStatement(testStatement); listener = new Counter();