1 package com.atlassian.plugins.rest.common.interceptor;
2
3 import java.lang.annotation.ElementType;
4 import java.lang.annotation.Retention;
5 import java.lang.annotation.RetentionPolicy;
6 import java.lang.annotation.Target;
7
8 /**
9 * Configures the interceptor chain to execute when dispatching to a resource method. Classes will be instantiated
10 * per request and autowired by the plugin's container. The sole exception to this are default interceptors provided by
11 * the framework, which are singletons. The annotation lookup goes method -> class -> package -> default interceptors.
12 *
13 * @since 2.0
14 */
15 @Target({ElementType.TYPE, ElementType.METHOD, ElementType.PACKAGE})
16 @Retention(RetentionPolicy.RUNTIME)
17 public @interface InterceptorChain
18 {
19 Class<? extends ResourceInterceptor>[] value();
20 }