@Override protected void handleAnnotations(final DeploymentUnit deploymentUnit, final EEApplicationClasses applicationClasses, final DeploymentReflectionIndex deploymentReflectionIndex, final Class<?> componentClass, final EJBComponentDescription description) throws DeploymentUnitProcessingException { final RuntimeAnnotationInformation<AutoTimer> scheduleAnnotationData = MethodAnnotationAggregator.runtimeAnnotationInformation(componentClass, applicationClasses, deploymentReflectionIndex, Schedule.class); final Set<Method> timerAnnotationData = MethodAnnotationAggregator.runtimeAnnotationPresent(componentClass, applicationClasses, deploymentReflectionIndex, Timeout.class); final Method timeoutMethod; if (timerAnnotationData.size() > 1) { throw EjbLogger.ROOT_LOGGER.componentClassHasMultipleTimeoutAnnotations(componentClass); } else if (timerAnnotationData.size() == 1) { timeoutMethod = timerAnnotationData.iterator().next(); } else { timeoutMethod = null; } description.setTimeoutMethod(timeoutMethod); //now for the schedule methods for (Map.Entry<Method, List<AutoTimer>> entry : scheduleAnnotationData.getMethodAnnotations().entrySet()) { for (AutoTimer timer : entry.getValue()) { description.addScheduleMethod(entry.getKey(), timer); } } }
@Override protected void handleAnnotations(final DeploymentUnit deploymentUnit, final EEApplicationClasses applicationClasses, final DeploymentReflectionIndex deploymentReflectionIndex, final Class<?> componentClass, final EJBComponentDescription description) throws DeploymentUnitProcessingException { final RuntimeAnnotationInformation<AutoTimer> scheduleAnnotationData = MethodAnnotationAggregator.runtimeAnnotationInformation(componentClass, applicationClasses, deploymentReflectionIndex, Schedule.class); final Set<Method> timerAnnotationData = MethodAnnotationAggregator.runtimeAnnotationPresent(componentClass, applicationClasses, deploymentReflectionIndex, Timeout.class); final Method timeoutMethod; if (timerAnnotationData.size() > 1) { throw MESSAGES.componentClassHasMultipleTimeoutAnnotations(componentClass); } else if (timerAnnotationData.size() == 1) { timeoutMethod = timerAnnotationData.iterator().next(); } else { timeoutMethod = null; } description.setTimeoutMethod(timeoutMethod); //now for the schedule methods for (Map.Entry<Method, List<AutoTimer>> entry : scheduleAnnotationData.getMethodAnnotations().entrySet()) { for (AutoTimer timer : entry.getValue()) { description.addScheduleMethod(entry.getKey(), timer); } } }