From 6a3ca6736c808c1647854e405ef379b609f276db Mon Sep 17 00:00:00 2001 From: lresende Date: Wed, 11 Nov 2009 23:07:45 +0000 Subject: Moving 1.x branches git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835126 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/annotations/AllowsPassByReference.java | 39 ++++++++++++ .../org/osoa/sca/annotations/Authentication.java | 69 ++++++++++++++++++++++ .../java/org/osoa/sca/annotations/Callback.java | 50 ++++++++++++++++ .../org/osoa/sca/annotations/ComponentName.java | 36 +++++++++++ .../org/osoa/sca/annotations/Confidentiality.java | 69 ++++++++++++++++++++++ .../java/org/osoa/sca/annotations/Constructor.java | 36 +++++++++++ .../java/org/osoa/sca/annotations/Context.java | 39 ++++++++++++ .../sca/annotations/ConversationAttributes.java | 57 ++++++++++++++++++ .../org/osoa/sca/annotations/ConversationID.java | 36 +++++++++++ .../org/osoa/sca/annotations/Conversational.java | 38 ++++++++++++ .../java/org/osoa/sca/annotations/Destroy.java | 36 +++++++++++ .../java/org/osoa/sca/annotations/EagerInit.java | 36 +++++++++++ .../org/osoa/sca/annotations/EndsConversation.java | 35 +++++++++++ .../main/java/org/osoa/sca/annotations/Init.java | 37 ++++++++++++ .../java/org/osoa/sca/annotations/Integrity.java | 69 ++++++++++++++++++++++ .../main/java/org/osoa/sca/annotations/Intent.java | 59 ++++++++++++++++++ .../main/java/org/osoa/sca/annotations/OneWay.java | 36 +++++++++++ .../java/org/osoa/sca/annotations/PolicySets.java | 46 +++++++++++++++ .../java/org/osoa/sca/annotations/Property.java | 52 ++++++++++++++++ .../java/org/osoa/sca/annotations/Qualifier.java | 36 +++++++++++ .../java/org/osoa/sca/annotations/Reference.java | 51 ++++++++++++++++ .../java/org/osoa/sca/annotations/Remotable.java | 37 ++++++++++++ .../java/org/osoa/sca/annotations/Requires.java | 57 ++++++++++++++++++ .../main/java/org/osoa/sca/annotations/Scope.java | 49 +++++++++++++++ .../java/org/osoa/sca/annotations/Service.java | 48 +++++++++++++++ 25 files changed, 1153 insertions(+) create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Authentication.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Callback.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ComponentName.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Confidentiality.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Constructor.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Context.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationAttributes.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationID.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Conversational.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Destroy.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EagerInit.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EndsConversation.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Init.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Integrity.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Intent.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/OneWay.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/PolicySets.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Property.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Qualifier.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Reference.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Remotable.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Requires.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Scope.java create mode 100644 sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Service.java (limited to 'sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations') diff --git a/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java new file mode 100644 index 0000000000..bab9713026 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Authentication.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Authentication.java new file mode 100644 index 0000000000..1d1ecdbc13 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Authentication.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Callback.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Callback.java new file mode 100644 index 0000000000..a9fc36f769 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Callback.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ComponentName.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ComponentName.java new file mode 100644 index 0000000000..477053670a --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ComponentName.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Confidentiality.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Confidentiality.java new file mode 100644 index 0000000000..f54e421c81 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Confidentiality.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Constructor.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Constructor.java new file mode 100644 index 0000000000..86d2d6560d --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Constructor.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Context.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Context.java new file mode 100644 index 0000000000..37f767c1f4 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Context.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationAttributes.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationAttributes.java new file mode 100644 index 0000000000..51d5ae76ca --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationAttributes.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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 + */ + public 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 + */ + public 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 + */ + public boolean singlePrincipal() default false; +} diff --git a/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationID.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationID.java new file mode 100644 index 0000000000..13ca9a2931 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/ConversationID.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Conversational.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Conversational.java new file mode 100644 index 0000000000..f16bf44808 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Conversational.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Destroy.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Destroy.java new file mode 100644 index 0000000000..7d3da46ea9 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Destroy.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EagerInit.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EagerInit.java new file mode 100644 index 0000000000..b9483bc9a8 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EagerInit.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EndsConversation.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EndsConversation.java new file mode 100644 index 0000000000..9e6942651b --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/EndsConversation.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Init.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Init.java new file mode 100644 index 0000000000..32654fea17 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Init.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Integrity.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Integrity.java new file mode 100644 index 0000000000..1a9288934c --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Integrity.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Intent.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Intent.java new file mode 100644 index 0000000000..0769a94fbb --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Intent.java @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/OneWay.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/OneWay.java new file mode 100644 index 0000000000..fbc7398da4 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/OneWay.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/PolicySets.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/PolicySets.java new file mode 100644 index 0000000000..57247cd8a3 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/PolicySets.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Property.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Property.java new file mode 100644 index 0000000000..864a69b19a --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Property.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Qualifier.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Qualifier.java new file mode 100644 index 0000000000..a0abe16068 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Qualifier.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Reference.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Reference.java new file mode 100644 index 0000000000..e07f70c2fe --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Reference.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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 + */ + public String name() default ""; + + /** + * Indicates if a reference must be specified. + * + * @return true if a reference must be specified + */ + public boolean required() default true; +} + diff --git a/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Remotable.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Remotable.java new file mode 100644 index 0000000000..1021f6e37f --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Remotable.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Requires.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Requires.java new file mode 100644 index 0000000000..aa439cabab --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Requires.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Scope.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Scope.java new file mode 100644 index 0000000000..6fded2dec8 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Scope.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Service.java b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Service.java new file mode 100644 index 0000000000..1e475cd4c8 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.2.1/modules/sca-api/src/main/java/org/osoa/sca/annotations/Service.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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