From 6d685c8e138af8d18bc71181ec630ccb9a17bdd9 Mon Sep 17 00:00:00 2001 From: nash Date: Wed, 6 Apr 2011 22:03:35 +0000 Subject: Tag for 1.6.2-RC1 git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1089647 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/annotations/AllowsPassByReference.java | 28 +++++++++++ .../org/osoa/sca/annotations/Authentication.java | 58 ++++++++++++++++++++++ .../java/org/osoa/sca/annotations/Callback.java | 39 +++++++++++++++ .../org/osoa/sca/annotations/ComponentName.java | 25 ++++++++++ .../org/osoa/sca/annotations/Confidentiality.java | 58 ++++++++++++++++++++++ .../java/org/osoa/sca/annotations/Constructor.java | 25 ++++++++++ .../java/org/osoa/sca/annotations/Context.java | 28 +++++++++++ .../sca/annotations/ConversationAttributes.java | 46 +++++++++++++++++ .../org/osoa/sca/annotations/ConversationID.java | 25 ++++++++++ .../org/osoa/sca/annotations/Conversational.java | 27 ++++++++++ .../java/org/osoa/sca/annotations/Destroy.java | 25 ++++++++++ .../java/org/osoa/sca/annotations/EagerInit.java | 25 ++++++++++ .../org/osoa/sca/annotations/EndsConversation.java | 24 +++++++++ .../main/java/org/osoa/sca/annotations/Init.java | 26 ++++++++++ .../java/org/osoa/sca/annotations/Integrity.java | 58 ++++++++++++++++++++++ .../main/java/org/osoa/sca/annotations/Intent.java | 48 ++++++++++++++++++ .../main/java/org/osoa/sca/annotations/OneWay.java | 25 ++++++++++ .../java/org/osoa/sca/annotations/PolicySets.java | 35 +++++++++++++ .../java/org/osoa/sca/annotations/Property.java | 41 +++++++++++++++ .../java/org/osoa/sca/annotations/Qualifier.java | 25 ++++++++++ .../java/org/osoa/sca/annotations/Reference.java | 40 +++++++++++++++ .../java/org/osoa/sca/annotations/Remotable.java | 26 ++++++++++ .../java/org/osoa/sca/annotations/Requires.java | 46 +++++++++++++++++ .../main/java/org/osoa/sca/annotations/Scope.java | 38 ++++++++++++++ .../java/org/osoa/sca/annotations/Service.java | 37 ++++++++++++++ 25 files changed, 878 insertions(+) create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Authentication.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Callback.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ComponentName.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Confidentiality.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Constructor.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Context.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationAttributes.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationID.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Conversational.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Destroy.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EagerInit.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EndsConversation.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Init.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Integrity.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Intent.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/OneWay.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/PolicySets.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Property.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Qualifier.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Reference.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Remotable.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Requires.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Scope.java create mode 100644 sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Service.java (limited to 'sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations') diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java new file mode 100644 index 0000000000..556dd4e68e --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java @@ -0,0 +1,28 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation on a method that indicates that its parameters may safely + * be passed by reference. The annotation may also be placed on an interface + * or class to indicate that all declared methods support this optimization. + * + * @version $Rev$ $Date$ + */ +@Target({TYPE, METHOD}) +@Retention(RUNTIME) +public @interface AllowsPassByReference { +} + diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Authentication.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Authentication.java new file mode 100644 index 0000000000..f7fca41212 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Authentication.java @@ -0,0 +1,58 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import static org.osoa.sca.Constants.SCA_PREFIX; + +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation denoting the intent that service operations require authentication. + *

+ * Applied to the injection site (field, method or constructor parameter) for a reference, + * it indicates that all invocations through that reference require authentication. + *

+ * Applied to a interface method on a service contract, it indicates that all invocations + * of that service operation require authentication; applied to the type of a service contract, + * it indicates that all service operations on that interface require authentication. + *

+ * Applied to a method on an implementation class, it indicates that all invocations that + * are dispatched to that implementation method (through any service) require authentication. + * Applied to a interface implemented by an implementation class, it indicates that all + * invocations that are dispatched to the implementation method for that interface operation + * require authentication. + *

+ * Applied to an implementation class, it indicates that all invocations of that implementation + * and that all invocations made by that implementation require authentication. + * + * @version $Rev$ $Date$ + */ +@Inherited +@Target({TYPE, FIELD, METHOD, PARAMETER}) +@Retention(RUNTIME) +@Intent(Authentication.AUTHENTICATION) +public @interface Authentication { + String AUTHENTICATION = SCA_PREFIX + "authentication"; + String AUTHENTICATION_MESSAGE = AUTHENTICATION + "message"; + String AUTHENTICATION_TRANSPORT = AUTHENTICATION + "transport"; + + /** + * List of authentication qualifiers (such as "message" or "transport"). + * + * @return authentication qualifiers + */ + @Qualifier + String[] value() default ""; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Callback.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Callback.java new file mode 100644 index 0000000000..0ee613fdcb --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Callback.java @@ -0,0 +1,39 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * When placed on a service interface, this annotation specifies the interface + * to be used for callbacks. + *

+ * When placed on a method or field, this annotation denotes the injection + * site to be used for a callback reference. + *

+ * There is a error in the 1.00 draft spec in the declaration of this interface. + * The form defined here is a proposed correction for that error. + * + * @version $Rev$ $Date$ + */ +@Target({TYPE, METHOD, FIELD}) +@Retention(RUNTIME) +public @interface Callback { + /** + * The Class of the associated callback interface. + * + * @return the associated callback interface + */ + Class value() default Void.class; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ComponentName.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ComponentName.java new file mode 100644 index 0000000000..bc73d22c9d --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ComponentName.java @@ -0,0 +1,25 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a field or method that is used to inject the component's name. + * + * @version $Rev$ $Date$ + */ +@Target({METHOD, FIELD}) +@Retention(RUNTIME) +public @interface ComponentName { +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Confidentiality.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Confidentiality.java new file mode 100644 index 0000000000..25ade6f091 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Confidentiality.java @@ -0,0 +1,58 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import static org.osoa.sca.Constants.SCA_PREFIX; + +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation denoting the intent that service operations require confidentiality. + *

+ * Applied to the injection site (field, method or constructor parameter) for a reference, + * it indicates that all invocations through that reference require confidentiality. + *

+ * Applied to a interface method on a service contract, it indicates that all invocations + * of that service operation require confidentiality; applied to the type of a service contract, + * it indicates that all service operations on that interface require confidentiality. + *

+ * Applied to a method on an implementation class, it indicates that all invocations that + * are dispatched to that implementation method (through any service) require confidentiality. + * Applied to a interface implemented by an implementation class, it indicates that all + * invocations that are dispatched to the implementation method for that interface operation + * require confidentiality. + *

+ * Applied to an implementation class, it indicates that all invocations of that implementation + * and that all invocations made by that implementation require confidentiality. + * + * @version $Rev$ $Date$ + */ +@Inherited +@Target({TYPE, FIELD, METHOD, PARAMETER}) +@Retention(RUNTIME) +@Intent(Confidentiality.CONFIDENTIALITY) +public @interface Confidentiality { + String CONFIDENTIALITY = SCA_PREFIX + "confidentiality"; + String CONFIDENTIALITY_MESSAGE = CONFIDENTIALITY + ".message"; + String CONFIDENTIALITY_TRANSPORT = CONFIDENTIALITY + ".transport"; + + /** + * List of confidentiality qualifiers (such as "message" or "transport"). + * + * @return confidentiality qualifiers + */ + @Qualifier + String[] value() default ""; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Constructor.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Constructor.java new file mode 100644 index 0000000000..bc09c8ccdd --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Constructor.java @@ -0,0 +1,25 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.CONSTRUCTOR; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Used to indicate the constructor the runtime is to use when instantiating a component implementation instance + * + * @version $Rev$ $Date$ + */ +@Target(CONSTRUCTOR) +@Retention(RUNTIME) +public @interface Constructor { + String[] value() default ""; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Context.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Context.java new file mode 100644 index 0000000000..baacb2f520 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Context.java @@ -0,0 +1,28 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a field or setter method that is used to inject an SCA context. + * The type of context injected is determined by the type of the field or the parameter + * to the setter method and is typically a ComponentContext or RequestContext. + * + * @version $Rev$ $Date$ + */ +@Target({METHOD, FIELD}) +@Retention(RUNTIME) +public @interface Context { +} + diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationAttributes.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationAttributes.java new file mode 100644 index 0000000000..e9fcfee2d3 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationAttributes.java @@ -0,0 +1,46 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate the characteristics of a conversation. + * + * @version $Rev$ $Date$ + */ +@Target(ElementType.TYPE) +@Retention(RUNTIME) +public @interface ConversationAttributes { + /** + * The maximum time that can pass between operations in a single conversation. If this time is exceeded the + * container may end the conversation. + * + * @return the maximum time that can pass between operations in a single conversation + */ + String maxIdleTime() default ""; + + /** + * The maximum time that a conversation may remain active. If this time is exceeded the container may end the + * conversation. + * + * @return the maximum time that a conversation may remain active + */ + String maxAge() default ""; + + /** + * If true, indicates that only the user that initiated the conversation has the authority to continue it. + * + * @return true if only the user that initiated the conversation has the authority to continue it + */ + boolean singlePrincipal() default false; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationID.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationID.java new file mode 100644 index 0000000000..b2f6f17129 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationID.java @@ -0,0 +1,25 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a field or method that is used to inject the conversation ID. + * + * @version $Rev$ $Date$ + */ +@Target({METHOD, FIELD}) +@Retention(RUNTIME) +public @interface ConversationID { +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Conversational.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Conversational.java new file mode 100644 index 0000000000..f0350f8ff5 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Conversational.java @@ -0,0 +1,27 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Used on a Java interface to denote a conversational service contract. + *

+ * The draft spec erroneously defines the targets for this as {TYPE, METHOD, FIELD} + * but this annotation is only applicable to interfaces. + * + * @version $Rev$ $Date$ + */ +@Target({TYPE}) +@Retention(RUNTIME) +public @interface Conversational { +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Destroy.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Destroy.java new file mode 100644 index 0000000000..d65558653b --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Destroy.java @@ -0,0 +1,25 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a method that will be called by the container when the + * scope defined for the local service ends. + * + * @version $Rev$ $Date$ + */ +@Target(METHOD) +@Retention(RUNTIME) +public @interface Destroy { +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EagerInit.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EagerInit.java new file mode 100644 index 0000000000..21bf986705 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EagerInit.java @@ -0,0 +1,25 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate an instance should be eagerly initialized. + * + * @version $Rev$ $Date$ + */ +@Target({TYPE}) +@Retention(RUNTIME) +public @interface EagerInit { + +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EndsConversation.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EndsConversation.java new file mode 100644 index 0000000000..c65ff5838f --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EndsConversation.java @@ -0,0 +1,24 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a method ends a conversation. + * + * @version $Rev$ $Date$ + */ +@Target({METHOD}) +@Retention(RUNTIME) +public @interface EndsConversation { +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Init.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Init.java new file mode 100644 index 0000000000..d610e21d64 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Init.java @@ -0,0 +1,26 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a method that will be called by the container when the scope defined for the local + * service begins. + * + * @version $Rev$ $Date$ + */ +@Target(METHOD) +@Retention(RUNTIME) +public @interface Init { + +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Integrity.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Integrity.java new file mode 100644 index 0000000000..a8cf28475b --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Integrity.java @@ -0,0 +1,58 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import static org.osoa.sca.Constants.SCA_PREFIX; + +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation denoting the intent that service operations require integrity. + *

+ * Applied to the injection site (field, method or constructor parameter) for a reference, + * it indicates that all invocations through that reference require integrity. + *

+ * Applied to a interface method on a service contract, it indicates that all invocations + * of that service operation require integrity; applied to the type of a service contract, + * it indicates that all service operations on that interface require integrity. + *

+ * Applied to a method on an implementation class, it indicates that all invocations that + * are dispatched to that implementation method (through any service) require integrity. + * Applied to a interface implemented by an implementation class, it indicates that all + * invocations that are dispatched to the implementation method for that interface operation + * require integrity. + *

+ * Applied to an implementation class, it indicates that all invocations of that implementation + * and that all invocations made by that implementation require integrity. + * + * @version $Rev$ $Date$ + */ +@Inherited +@Target({TYPE, FIELD, METHOD, PARAMETER}) +@Retention(RUNTIME) +@Intent(Integrity.INTEGRITY) +public @interface Integrity { + String INTEGRITY = SCA_PREFIX + "integrity"; + String INTEGRITY_MESSAGE = INTEGRITY + "message"; + String INTEGRITY_TRANSPORT = INTEGRITY + "transport"; + + /** + * List of integrity qualifiers (such as "message" or "transport"). + * + * @return integrity qualifiers + */ + @Qualifier + String[] value() default ""; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Intent.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Intent.java new file mode 100644 index 0000000000..fc925aa402 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Intent.java @@ -0,0 +1,48 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.ANNOTATION_TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation that can be applied to annotations that describe SCA intents. + * Adding this annotation allows SCA runtimes to automatically detect user-defined intents. + *

+ * Applications must specify a value, a pairing of targetNamespace and localPort, or both. + * If both value and pairing are supplied they must define the name qualified name. + * + * @version $Rev$ $Date$ + */ +@Target({ANNOTATION_TYPE}) +@Retention(RUNTIME) +public @interface Intent { + /** + * The qualified name of the intent, in the form defined by {@link javax.xml.namespace.QName#toString}. + * + * @return the qualified name of the intent + */ + String value() default ""; + + /** + * The XML namespace for the intent. + * + * @return the XML namespace for the intent + */ + String targetNamespace() default ""; + + /** + * The name of the intent within its namespace. + * + * @return name of the intent within its namespace + */ + String localPart() default ""; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/OneWay.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/OneWay.java new file mode 100644 index 0000000000..eaf9e3207c --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/OneWay.java @@ -0,0 +1,25 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation on a method that indicates that the method is non-blocking and communication + * with the service provider may use buffer the requests and send them at some later time. + * + * @version $Rev$ $Date$ + */ +@Target({METHOD}) +@Retention(RUNTIME) +public @interface OneWay { +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/PolicySets.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/PolicySets.java new file mode 100644 index 0000000000..b22a6a840c --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/PolicySets.java @@ -0,0 +1,35 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation that allows application of SCA Policy Sets. + *

+ * Each policy set is specified using its XML QName in the form defined by {@link javax.xml.namespace.QName#toString()}. + * + * @version $Rev$ $Date$ + */ +@Target({TYPE, FIELD, METHOD, PARAMETER}) +@Retention(RUNTIME) +public @interface PolicySets { + /** + * Returns the policy sets to be applied. + * + * @return the policy sets to be applied + */ + String[] value() default ""; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Property.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Property.java new file mode 100644 index 0000000000..71af35634d --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Property.java @@ -0,0 +1,41 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a constructor parameter, field or method that is + * used to inject a configuration property value. + * + * @version $Rev$ $Date$ + */ +@Target({METHOD, FIELD, PARAMETER}) +@Retention(RUNTIME) +public @interface Property { + /** + * The name of the property. If not specified then the name will be derived + * from the annotated field or method. + * + * @return the name of the property + */ + String name() default ""; + + /** + * Indicates whether a value for the property must be provided. + * + * @return true if a value must be provided + */ + boolean required() default false; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Qualifier.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Qualifier.java new file mode 100644 index 0000000000..44388bea74 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Qualifier.java @@ -0,0 +1,25 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation that can be applied to an attribute of an @Intent annotation to indicate the + * attribute provides qualifiers for the intent. + * + * @version $Rev$ $Date$ + */ +@Target(METHOD) +@Retention(RUNTIME) +public @interface Qualifier { +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Reference.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Reference.java new file mode 100644 index 0000000000..4d71b3f357 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Reference.java @@ -0,0 +1,40 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a constructor parameter, field or method that is used to inject a reference. + * + * @version $Rev$ $Date$ + */ +@Target({METHOD, FIELD, PARAMETER}) +@Retention(RUNTIME) +public @interface Reference { + /** + * The name of the reference. If not specified then the name will be derived from the annotated field or method. + * + * @return the name of the reference + */ + String name() default ""; + + /** + * Indicates if a reference must be specified. + * + * @return true if a reference must be specified + */ + boolean required() default true; +} + diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Remotable.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Remotable.java new file mode 100644 index 0000000000..53d58b7dc1 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Remotable.java @@ -0,0 +1,26 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a Java interface as remotable. + * Remotable interfaces use pass-by-value semantics, can be published as entry points + * and used for external services. + * + * @version $Rev$ $Date$ + */ +@Target(TYPE) +@Retention(RUNTIME) +public @interface Remotable { +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Requires.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Requires.java new file mode 100644 index 0000000000..3af699de07 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Requires.java @@ -0,0 +1,46 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation that allows the attachment of any intent to a Java Class or interface or to members of that + * class such as methods, fields or constructor parameters. + *

+ * Intents are specified as XML QNames in the representation defined by + * {@link javax.xml.namespace.QName#toString()}. Intents may be qualified with one or more + * suffixes separated by a "." such as: + *

+ * This annotation supports general purpose intents specified as strings. Users may also define + * specific intents using the {@link @org.osoa.sca.annotations.Intent} annotation. + * + * @version $Rev$ $Date$ + */ +@Inherited +@Retention(RUNTIME) +@Target({TYPE, METHOD, FIELD, PARAMETER}) +public @interface Requires { + /** + * Returns the attached intents. + * + * @return the attached intents + */ + String[] value() default ""; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Scope.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Scope.java new file mode 100644 index 0000000000..cd88df1128 --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Scope.java @@ -0,0 +1,38 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a scoped service. + *

+ * The spec refers to but does not describe an eager() attribute; this is an error in the draft. + * + * @version $Rev$ $Date$ + */ +@Target(TYPE) +@Retention(RUNTIME) +public @interface Scope { + /** + * The name of the scope. Values currently defined by the specification are: + *

+ * + * @return the name of the scope + */ + String value() default "STATELESS"; +} diff --git a/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Service.java b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Service.java new file mode 100644 index 0000000000..62f4abdbee --- /dev/null +++ b/sca-java-1.x/tags/1.6.2-RC1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Service.java @@ -0,0 +1,37 @@ +/* + * (c) Copyright BEA Systems, Inc., Cape Clear Software, International Business Machines Corp, Interface21, IONA Technologies, + * Oracle, Primeton Technologies, Progress Software, Red Hat, Rogue Wave Software, SAP AG., Siemens AG., Software AG., Sybase + * Inc., TIBCO Software Inc., 2005, 2007. All rights reserved. + * + * see http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications + */ +package org.osoa.sca.annotations; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate the service interfaces exposed by a Java class. + * + * @version $Rev$ $Date$ + */ +@Target({TYPE}) +@Retention(RUNTIME) +public @interface Service { + /** + * Array of interfaces that should be exposed as services. + * + * @return a list of interfaces that should be exposed as services + */ + Class[] interfaces() default {}; + + /** + * Shortcut allowing a single interface to be exposed. + * + * @return a single service interfaces to be exposed + */ + Class value() default Void.class; +} -- cgit v1.2.3