package org.jboss.seam.annotations;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
/**
* Specifies that a stateful component has
* multiple concurrent clients, and so access
* to the component must be synchronized. This
* annotation is not required for session scoped
* components, which are synchronized by default.
*
* @author Gavin King
*
*/
@Target(TYPE)
@Retention(RUNTIME)
@Documented
@Inherited
public @interface Synchronized
{
public static final int DEFAULT_TIMEOUT = 1000;
/**
* How long should we wait for the lock
* before throwing an exception?
*
* @return the timeout in milliseconds
*/
long timeout() default DEFAULT_TIMEOUT;
}