001package io.ebean.annotation;
002
003import java.lang.annotation.ElementType;
004import java.lang.annotation.Retention;
005import java.lang.annotation.RetentionPolicy;
006import java.lang.annotation.Target;
007
008/**
009 * Annotated classes (like BeanPersistAdapter, BeanPersistListener etc) with
010 * @EbeanComponent and these will be registered with Ebean.
011 * <p>
012 * For projects using query beans the annotation processor (query bean generator)
013 * finds entity beans to register and it will ALSO find classes annotated with
014 * &#64;EbeanComponent such that these are registered with Ebean.
015 * <p>
016 * The query bean generator generates source code to register the entity classes
017 * (such that Ebean does not have to scan the classpath for them). At the same time
018 * the query bean generator generates will also find <code>@EbeanComponent</code> and
019 * also register those with Ebean.
020 * <p>
021 * When Ebean is programmatically created and entity classes etc are all explicitly
022 * registered or when the annotation process (query bean generator) is not used then
023 * this annotation has no effect.
024 */
025@Retention(RetentionPolicy.RUNTIME)
026@Target(ElementType.TYPE)
027public @interface EbeanComponent {
028
029}