package org.limewire.lifecycle; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(value = {ElementType.METHOD}) @Retention(value = RetentionPolicy.RUNTIME) @Documented /** * Used to mark methods on <code>Service</code> impls as wanting to run asynchronously */ public @interface Asynchronous { /** * @return How an asynchronous task should be join()'ed. Default is <code>Join.INFINITE</code>. */ Join join() default Join.INFINITE; /** * @return how long to wait for this asynchronous task to complete. * Units are in seconds. Use only in conjunction with <code>Join.TIMEOUT</code>. */ int timeout() default -1; /** * @return whether the asynchronous task should run as a daemon or not */ boolean daemon() default true; }