diff --git a/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/DefaultSegmentService.java b/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/DefaultSegmentService.java index 66e5c7c..d5e1868 100644 --- a/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/DefaultSegmentService.java +++ b/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/DefaultSegmentService.java @@ -19,14 +19,10 @@ import com.agorapulse.micronaut.segment.builder.*; import com.segment.analytics.Analytics; -import io.micronaut.context.annotation.Requires; -import javax.inject.Singleton; import java.util.function.Consumer; import java.util.function.Supplier; -@Singleton -@Requires(beans = com.segment.analytics.Analytics.class) public class DefaultSegmentService implements SegmentService { diff --git a/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/NoOpSegmentService.java b/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/NoOpSegmentService.java index ce189a1..ce33106 100644 --- a/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/NoOpSegmentService.java +++ b/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/NoOpSegmentService.java @@ -20,16 +20,11 @@ import com.agorapulse.micronaut.segment.builder.MessageBuilderWithProperties; import com.agorapulse.micronaut.segment.builder.MessageBuilderWithTraits; import com.agorapulse.micronaut.segment.builder.SimpleMessageBuilder; -import com.segment.analytics.Analytics; -import io.micronaut.context.annotation.Requires; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Singleton; import java.util.function.Consumer; -@Singleton -@Requires(missingBeans = {Analytics.class}) public class NoOpSegmentService implements SegmentService { private static final Logger LOGGER = LoggerFactory.getLogger(NoOpSegmentService.class); diff --git a/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/SegmentFactory.java b/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/SegmentFactory.java index 5b26650..fdff171 100644 --- a/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/SegmentFactory.java +++ b/libs/micronaut-segment/src/main/java/com/agorapulse/micronaut/segment/SegmentFactory.java @@ -24,6 +24,7 @@ import io.micronaut.context.annotation.Factory; import io.micronaut.context.annotation.Requires; +import javax.annotation.Nullable; import javax.inject.Singleton; import java.util.List; @@ -44,4 +45,13 @@ public Analytics analytics( return builder.build(); } + @Bean + @Singleton + public SegmentService segmentService(@Nullable Analytics analytics, @Nullable SegmentConfiguration configuration) { + if (analytics != null) { + return new DefaultSegmentService(analytics, configuration); + } + return new NoOpSegmentService(); + } + }