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 -{@literal >} class -{@literal >} package -{@literal >} 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 Class<? extends ResourceInterceptor>[] value();
19 }