package reactor.spring.context.config;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.context.annotation.Import;
/**
* Helper annotation to be placed on {@link org.springframework.context.annotation.Configuration} classes to ensure
* a {@link reactor.core.scheduler.TimedScheduler} and
* {@link org.reactivestreams.Processor} are
* created in application context as well as create the necessary beans for
* automatic wiring of annotated beans.
*
* @author Jon Brisbin
* @author Stephane Maldini
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(ReactorBeanDefinitionRegistrar.class)
public @interface EnableReactor {
/**
* The bean name of {@link java.util.function.Supplier} that can provide an instance (or instances) of
* {@link reactor.core.scheduler.TimedScheduler} to be registered in the {@link org.springframework.context.ApplicationContext}.
*
* @return bean name of {@link reactor.core.scheduler.TimedScheduler} {@link java.util.function.Supplier}
*/
String timerSupplier() default "";
/**
* The bean name of {@link java.util.function.Supplier} that can provide an instance (or instances) of
* {@link org.reactivestreams.Processor} to be registered in the {@link org.springframework.context.ApplicationContext}.
*
* @return bean name of {@link org.reactivestreams.Processor} {@link java.util.function.Supplier}
*/
String processorSupplier() default "";
}