/** * This handler is responsible for handling the javax.ejb.Schedules attribute * */ @Service @AnnotationHandlerFor(Schedules.class) public class SchedulesHandler extends ScheduleHandler { public SchedulesHandler() { } protected HandlerProcessingResult processAnnotation(AnnotationInfo ainfo, EjbContext[] ejbContexts) throws AnnotationProcessorException { Schedules annotation = (Schedules) ainfo.getAnnotation(); Schedule[] schAnnotations = annotation.value(); List<HandlerProcessingResult> results = new ArrayList<HandlerProcessingResult>(); for(Schedule sch : schAnnotations) { results.add(processSchedule(sch, ainfo, ejbContexts)); } return getOverallProcessingResult(results); } }
@Override public final Class<? extends Annotation> getAnnotationType() { return getClass().getAnnotation(AnnotationHandlerFor.class).value(); }
@AnnotationHandlerFor(PersistenceContexts.class) public class EntityManagerReferencesHandler extends EntityManagerReferenceHandler {
@AnnotationHandlerFor(Resources.class) public class ResourcesHandler extends ResourceHandler {
@AnnotationHandlerFor(PreDestroy.class) public class PreDestroyHandler extends AbstractResourceHandler {
@AnnotationHandlerFor(EJBs.class) public class EJBsHandler extends EJBHandler {
@AnnotationHandlerFor(PersistenceUnits.class) public class EntityManagerFactoryReferencesHandler extends EntityManagerFactoryReferenceHandler {
@AnnotationHandlerFor(WebServiceRefs.class) public class WebServiceRefsHandler extends WebServiceRefHandler {
/** * This handler is responsible for handling the javax.ejb.Timeout attribute * */ @Service @AnnotationHandlerFor(Timeout.class) public class TimeoutHandler extends AbstractAttributeHandler { public TimeoutHandler() { } protected HandlerProcessingResult processAnnotation(AnnotationInfo ainfo, EjbContext[] ejbContexts) throws AnnotationProcessorException { // No-op. @Timeout processing is performed during initial EJB 3.0 // bean processing in AbstractEjbHandler. return getDefaultProcessedResult(); } /** * @return an array of annotation types this annotation handler would * require to be processed (if present) before it processes it's own * annotation type. */ public Class<? extends Annotation>[] getTypeDependencies() { return getEjbAnnotationTypes(); } }
@AnnotationHandlerFor(PermitAll.class) public class PermitAllHandler extends AbstractAuthAnnotationHandler {
@AnnotationHandlerFor(AroundTimeout.class) public class AroundTimeoutHandler extends AroundInvokeHandler {
@AnnotationHandlerFor(PostConstruct.class) public class PostConstructHandler extends AbstractResourceHandler {
@AnnotationHandlerFor(DenyAll.class) public class DenyAllHandler extends AbstractAuthAnnotationHandler {
@AnnotationHandlerFor(ApplicationException.class) public class ApplicationExceptionHandler extends AbstractHandler {
@AnnotationHandlerFor(TransactionManagement.class) public class TransactionManagementHandler extends AbstractAttributeHandler {
@AnnotationHandlerFor(AroundInvoke.class) public class AroundInvokeHandler extends AbstractAttributeHandler {
@AnnotationHandlerFor(BeforeCompletion.class) public class BeforeCompletionHandler extends AbstractAttributeHandler {
@AnnotationHandlerFor(PrePassivate.class) public class PrePassivateHandler extends AbstractAttributeHandler {
@AnnotationHandlerFor(StatefulTimeout.class) public class StatefulTimeoutHandler extends AbstractAttributeHandler {
@AnnotationHandlerFor(ExcludeClassInterceptors.class) public class ExcludeClassInterceptorsHandler extends AbstractAttributeHandler {