diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-30 12:18:56 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-30 12:18:56 +0000 |
commit | 7abf5a347d0f5dc9a54cd6c443daafae9f4976fc (patch) | |
tree | 99776d825d680d1f9ee4403336018ce9740b8be2 /tags/java/sca/2.0-M4-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java | |
parent | b003942c4e5046a2a480d1db7d49f1936c4e0f6c (diff) |
Re-tag 2.0-M4 RC1 release
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@831279 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'tags/java/sca/2.0-M4-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java')
-rw-r--r-- | tags/java/sca/2.0-M4-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tags/java/sca/2.0-M4-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java b/tags/java/sca/2.0-M4-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java new file mode 100644 index 0000000000..a60754762e --- /dev/null +++ b/tags/java/sca/2.0-M4-RC1/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 {}; +} |