package org.atteo.moonshine.global_modules;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.atteo.classindex.IndexAnnotated;
/**
* Marker interface for applications that require to supply extra Guice modules
* with business logic bindings rules.
*
* Any class that is annotated with this annotation will be added as a Guice module into the application Injector.
*
* Note: to register app modules {@link org.atteo.moonshine.Moonshine.Factory#builder().registerAppModules()}} must
* be invoked.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@IndexAnnotated
public @interface GlobalModule {
}