diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-07-22 09:08:47 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-07-22 09:08:47 +0000 |
commit | 3a99cdfedf0f2c3e2309138270433675b3a5f776 (patch) | |
tree | 5ca64664919660679512eb00b2fab10af679e95e /sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java | |
parent | a1b887658558a9d1452585f0e4e41e34565fff72 (diff) |
Tag beta3 RC1
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1149505 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java new file mode 100644 index 0000000000..5c2600ff12 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java @@ -0,0 +1,45 @@ +/* + * Copyright(C) OASIS(R) 2005,2010. 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 {}; +} |