package org.jboss.seam.annotations.async;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
/**
* Marks a method as an asynchronous method, to be
* dispatched by the EJB3 TimerService.
*
* If the method returns Timer, the return value
* will be the Timer used for dispatching the
* method call. Otherwise, the method should return
* void.
*
* Note that asynchronous calls are processed in
* a different EVENT, SESSION and CONVERSATION
* context to the caller, so the actual recieving
* object may be a different instance of the
* component to the object that was called.
*
* @author Gavin King
*
* @see org.jboss.seam.annotations.async.Expiration
* @see org.jboss.seam.annotations.async.Duration
* @see org.jboss.seam.annotations.async.IntervalDuration
*
*/
@Target(METHOD)
@Retention(RUNTIME)
@Documented
public @interface Asynchronous {}