1 package com.atlassian.plugin.spring.scanner.annotation.export;
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 * Denotes a component to be exported as an OSGi service available to other bundles and is a factory for
10 * creating Atlassian plugin modules.
11 *
12 * This is a replacement for the previous {@code <module-type />} markup from atlassian-plugin.xml
13 *
14 * @since v0.x
15 */
16 @Target(ElementType.TYPE)
17 @Retention(RetentionPolicy.RUNTIME)
18 @ExportAsService
19 public @interface ModuleType {
20 /**
21 * the interfaces the service should be exported as.
22 * if not specified, the interfaces will be calculated using reflection
23 *
24 * @return the list of interfaces to export
25 */
26 Class<?>[] value() default {};
27 }