diff options
Diffstat (limited to 'branches/sca-java-2.0-M4/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java')
-rw-r--r-- | branches/sca-java-2.0-M4/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/branches/sca-java-2.0-M4/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java b/branches/sca-java-2.0-M4/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java new file mode 100644 index 0000000000..a60754762e --- /dev/null +++ b/branches/sca-java-2.0-M4/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java @@ -0,0 +1,45 @@ +/* + * Copyright(C) OASIS(R) 2005,2009. All Rights Reserved. + * OASIS trademark, IPR and other policies apply. + */ +package org.oasisopen.sca.annotation; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * The @Service annotation is used on a component implementation + * class to specify the SCA services offered by the implementation. + * + * The class need not be declared as implementing all of the + * interfaces implied by the services, but all methods of the service + * interfaces must be present. + * + * A class used as the implementation of a service is not required + * to have a @Service annotation. If a class has no @Service annotation, + * then the rules determining which services are offered and what + * interfaces those services have are determined by the specific + * implementation type. + */ +@Target(TYPE) +@Retention(RUNTIME) +public @interface Service { + + /** + * The value is an array of interface or class objects that should be + * exposed as services by this component. + * + * @return the services of this component + */ + Class<?>[] value(); + + /** + * The value is an array of strings which are used as the service names + * for each of the interfaces declared in the value array. + * + * @return the service names + */ + String[] names() default {}; +} |