1 package com.atlassian.plugin.spring;
2
3 import java.lang.annotation.Target;
4 import java.lang.annotation.ElementType;
5 import java.lang.annotation.Retention;
6 import java.lang.annotation.RetentionPolicy;
7
8 /**
9 * Annotation for Spring beans which are made available to OSGi plugin components
10 *
11 * If a Class is specified, then the bean is exposed only as that class -- otherwise it is exposed as all interfaces it implements.
12 */
13 @Target(ElementType.TYPE)
14 @Retention(RetentionPolicy.RUNTIME)
15 public @interface AvailableToPlugins
16 {
17 /**
18 * @return The interface the bean is exposed as
19 */
20 Class value() default Void.class;
21 }