diff --git a/spring-modulith-events/spring-modulith-events-api/src/main/java/org/springframework/modulith/events/EventExternalizationConfiguration.java b/spring-modulith-events/spring-modulith-events-api/src/main/java/org/springframework/modulith/events/EventExternalizationConfiguration.java
index 04c4efdd..787c11db 100644
--- a/spring-modulith-events/spring-modulith-events-api/src/main/java/org/springframework/modulith/events/EventExternalizationConfiguration.java
+++ b/spring-modulith-events/spring-modulith-events-api/src/main/java/org/springframework/modulith/events/EventExternalizationConfiguration.java
@@ -19,6 +19,7 @@ import static org.springframework.core.annotation.AnnotatedElementUtils.*;
import java.lang.annotation.Annotation;
import java.util.Collection;
+import java.util.List;
import java.util.Optional;
import java.util.function.BiFunction;
import java.util.function.BiPredicate;
@@ -68,6 +69,25 @@ public interface EventExternalizationConfiguration {
.routeAll(router);
}
+ /**
+ * Creates a default {@link DefaultEventExternalizationConfiguration} with the following characteristics:
+ *
+ * - Only events that reside in any of the given packages and that are annotated with any supported
+ * {@code Externalized} annotation will be considered.
+ * - Routing information is discovered from the {code Externalized} annotation and, if missing, will default to the
+ * application-local name of the event type. In other words, an event type {@code com.acme.myapp.mymodule.MyEvent}
+ * will result in a route {@code mymodule.MyEvent}.
+ *
+ *
+ * @param packages must not be {@literal null} or empty.
+ * @return will never be {@literal null}.
+ * @see Externalized
+ * @since 1.3
+ */
+ public static Router defaults(String... packages) {
+ return defaults(List.of(packages));
+ }
+
/**
* Creates a new {@link Selector} to define which events to externalize.
*
diff --git a/spring-modulith-events/spring-modulith-events-api/src/test/java/org/springframework/modulith/events/EventExternalizationConfigurationUnitTests.java b/spring-modulith-events/spring-modulith-events-api/src/test/java/org/springframework/modulith/events/EventExternalizationConfigurationUnitTests.java
index bb98a564..08ebcd92 100644
--- a/spring-modulith-events/spring-modulith-events-api/src/test/java/org/springframework/modulith/events/EventExternalizationConfigurationUnitTests.java
+++ b/spring-modulith-events/spring-modulith-events-api/src/test/java/org/springframework/modulith/events/EventExternalizationConfigurationUnitTests.java
@@ -22,7 +22,6 @@ import lombok.RequiredArgsConstructor;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
-import java.util.List;
import org.junit.jupiter.api.Test;
@@ -120,7 +119,7 @@ class EventExternalizationConfigurationUnitTests {
@Test // GH-248
void defaultSetup() {
- var configuration = defaults(List.of("org.springframework.modulith")).build();
+ var configuration = defaults("org.springframework.modulith").build();
var target = configuration.determineTarget(new AnotherSampleEvent());