From bdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a Mon Sep 17 00:00:00 2001 From: dims Date: Tue, 17 Jun 2008 00:23:01 +0000 Subject: Move Tuscany from Incubator to top level. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68 --- .../main/java/org/osoa/sca/CallbackReference.java | 27 ++++++ .../main/java/org/osoa/sca/ComponentContext.java | 75 +++++++++++++++ .../src/main/java/org/osoa/sca/Conversation.java | 20 ++++ .../org/osoa/sca/ConversationEndedException.java | 67 ++++++++++++++ .../osoa/sca/NoRegisteredCallbackException.java | 68 ++++++++++++++ .../main/java/org/osoa/sca/ReferenceFactory.java | 20 ++++ .../src/main/java/org/osoa/sca/RequestContext.java | 49 ++++++++++ .../main/java/org/osoa/sca/ServiceReference.java | 102 +++++++++++++++++++++ .../java/org/osoa/sca/ServiceRuntimeException.java | 69 ++++++++++++++ .../org/osoa/sca/ServiceUnavailableException.java | 65 +++++++++++++ .../src/main/java/org/osoa/sca/Version.java | 45 +++++++++ .../sca/annotations/AllowsPassByReference.java | 38 ++++++++ .../java/org/osoa/sca/annotations/Callback.java | 44 +++++++++ .../java/org/osoa/sca/annotations/ComponentID.java | 44 +++++++++ .../java/org/osoa/sca/annotations/Constructor.java | 35 +++++++ .../java/org/osoa/sca/annotations/Context.java | 36 ++++++++ .../org/osoa/sca/annotations/Conversation.java | 51 +++++++++++ .../org/osoa/sca/annotations/ConversationID.java | 35 +++++++ .../java/org/osoa/sca/annotations/Destroy.java | 35 +++++++ .../java/org/osoa/sca/annotations/EagerInit.java | 43 +++++++++ .../org/osoa/sca/annotations/EndConversation.java | 34 +++++++ .../main/java/org/osoa/sca/annotations/Init.java | 36 ++++++++ .../main/java/org/osoa/sca/annotations/OneWay.java | 35 +++++++ .../java/org/osoa/sca/annotations/Property.java | 53 +++++++++++ .../java/org/osoa/sca/annotations/Reference.java | 46 ++++++++++ .../java/org/osoa/sca/annotations/Remotable.java | 36 ++++++++ .../java/org/osoa/sca/annotations/Resource.java | 49 ++++++++++ .../main/java/org/osoa/sca/annotations/Scope.java | 45 +++++++++ .../java/org/osoa/sca/annotations/Service.java | 43 +++++++++ 29 files changed, 1345 insertions(+) create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/CallbackReference.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ComponentContext.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/Conversation.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ConversationEndedException.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/NoRegisteredCallbackException.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ReferenceFactory.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/RequestContext.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceReference.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceRuntimeException.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceUnavailableException.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/Version.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Callback.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/ComponentID.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Constructor.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Context.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Conversation.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/ConversationID.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Destroy.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/EagerInit.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/EndConversation.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Init.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/OneWay.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Property.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Reference.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Remotable.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Resource.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Scope.java create mode 100644 sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Service.java (limited to 'sandbox/jboynes/sca-client/src/main/java/org/osoa') diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/CallbackReference.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/CallbackReference.java new file mode 100644 index 0000000000..bbcf154c6a --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/CallbackReference.java @@ -0,0 +1,27 @@ +package org.osoa.sca; + +/** + * @version $Rev$ $Date$ + */ +public interface CallbackReference { + /** + * Return a proxy that can be used to invoke the callback instance associated with this reference. + * + * @return a proxy that can be used to invoke the callback + */ + CB getCallback(); + + /** + * Returns the conversation associated with this callback. + * + * @return the conversation associated with this callback + */ + Conversation getConversation(); + + /** + * Returns the callback ID. + * + * @return the callback ID + */ + Object getCallbackID(); +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ComponentContext.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ComponentContext.java new file mode 100644 index 0000000000..44f2503d05 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ComponentContext.java @@ -0,0 +1,75 @@ +package org.osoa.sca; + +/** + * @version $Rev$ $Date$ + */ +public interface ComponentContext { + /** + * Returns the absolute URI of the component within the SCA Domain. + * + * @return the absolute URI of the component + */ + String getURI(); + + /** + * Cast a type-safe reference to a ServiceReference. + * Converts a type-safe reference returned by locateService to an equivalent ServiceReference. + * + * @param target a reference proxy provided by the SCA runtime + * @return a ServiceReference equivalent for the proxy + * @throws IllegalArgumentException if the supplied instance is not a reference supplied by the SCA runtime + */ + ServiceReference cast(B target) throws IllegalArgumentException; + + /** + * Returns a proxy for a reference defined by this component. + * + * @param businessInterface the interface that will be used to invoke the service + * @param referenceName the name of the reference + * @return an object that implements the business interface + */ + B getService(Class businessInterface, String referenceName); + + /** + * Returns a ServiceReference for a reference defined by this component. + * + * @param businessInterface the interface that will be used to invoke the service + * @param referenceName the name of the reference + * @return a ServiceReference for the designated reference + */ + ServiceReference getServiceReference(Class businessInterface, String referenceName); + + /** + * Returns the value of an SCA property defined by this component. + * + * @param type the Java type to be returned for the property + * @param propertyName the name of the property whose value should be returned + * @return the property value + */ + B getProperty(Class type, String propertyName); + + /** + * Returns a ServiceReference that can be used to invoke this component over the default service. + * + * @param businessInterface the interface that will be used to invoke the service + * @return a ServiceReference that will invoke this component + */ + ServiceReference createSelfReference(Class businessInterface); + + /** + * Returns a ServiceReference that can be used to invoke this component over the designated service. + * + * @param businessInterface the interface that will be used to invoke the service + * @param serviceName the name of the service to invoke + * @return a ServiceReference that will invoke this component + */ + ServiceReference createSelfReference(Class businessInterface, String serviceName); + + /** + * Returns the context for the current SCA service request, or null if there is no current request + * or if the context is unavailable. + * + * @return the SCA request context; may be null + */ + RequestContext getRequestContext(); +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/Conversation.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/Conversation.java new file mode 100644 index 0000000000..37073adc77 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/Conversation.java @@ -0,0 +1,20 @@ +package org.osoa.sca; + +/** + * @version $Rev$ $Date$ + */ +public interface Conversation { + /** + * Returns the identifier for this conversation. + * If a user-defined identity had been supplied for this reference then its value will be returned; + * otherwise the identity generated by the system when the conversation was initiated will be returned. + * + * @return the identifier for this conversation + */ + Object getConversionID(); + + /** + * End this conversation. + */ + void end(); +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ConversationEndedException.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ConversationEndedException.java new file mode 100644 index 0000000000..63e3907cff --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ConversationEndedException.java @@ -0,0 +1,67 @@ +/* + * 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; + +/** + * Exception thrown to indicate the conversation being used for a stateful interaction has been ended. + * + * @version $Rev$ $Date$ + */ +public class ConversationEndedException extends ServiceRuntimeException { + private static final long serialVersionUID = 3734864942222558406L; + + /** + * Override constructor from ServiceRuntimeException. + * + * @see ServiceRuntimeException + */ + public ConversationEndedException() { + } + + /** + * Override constructor from ServiceRuntimeException. + * + * @param message passed to ServiceRuntimeException + * @see ServiceRuntimeException + */ + public ConversationEndedException(String message) { + super(message); + } + + /** + * Override constructor from ServiceRuntimeException. + * + * @param message passed to ServiceRuntimeException + * @param cause passed to ServiceRuntimeException + * @see ServiceRuntimeException + */ + public ConversationEndedException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Override constructor from ServiceRuntimeException. + * + * @param cause passed to ServiceRuntimeException + * @see ServiceRuntimeException + */ + public ConversationEndedException(Throwable cause) { + super(cause); + } +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/NoRegisteredCallbackException.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/NoRegisteredCallbackException.java new file mode 100644 index 0000000000..7c067a3a43 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/NoRegisteredCallbackException.java @@ -0,0 +1,68 @@ +/* + * 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; + +/** + * Exception thrown to indicate that no callback has been registered + * when interacting with a service. + * + * @version $Rev$ $Date$ + */ +public class NoRegisteredCallbackException extends ServiceRuntimeException { + private static final long serialVersionUID = 3734864942222558406L; + + /** + * Override constructor from ServiceRuntimeException. + * + * @see ServiceRuntimeException + */ + public NoRegisteredCallbackException() { + } + + /** + * Override constructor from ServiceRuntimeException. + * + * @param message passed to ServiceRuntimeException + * @see ServiceRuntimeException + */ + public NoRegisteredCallbackException(String message) { + super(message); + } + + /** + * Override constructor from ServiceRuntimeException. + * + * @param message passed to ServiceRuntimeException + * @param cause passed to ServiceRuntimeException + * @see ServiceRuntimeException + */ + public NoRegisteredCallbackException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Override constructor from ServiceRuntimeException. + * + * @param cause passed to ServiceRuntimeException + * @see ServiceRuntimeException + */ + public NoRegisteredCallbackException(Throwable cause) { + super(cause); + } +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ReferenceFactory.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ReferenceFactory.java new file mode 100644 index 0000000000..05144874a0 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ReferenceFactory.java @@ -0,0 +1,20 @@ +package org.osoa.sca; + +/** + * @version $Rev$ $Date$ + */ +public interface ReferenceFactory { + /** + * Returns the name of the reference associated with this factory. + * + * @return the name of the reference associated with this factory + */ + String getName(); + + /** + * Create a new ServiceReference for the reference associated with this factory. + * + * @return a new ServiceReference that can be used access the reference + */ + ServiceReference newReference(); +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/RequestContext.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/RequestContext.java new file mode 100644 index 0000000000..9e8c335896 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/RequestContext.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; + +import javax.security.auth.Subject; + +/** + * Interface that provides information on the current request. + * + * @version $Rev$ $Date$ + */ +public interface RequestContext { + /** + * Returns the JAAS Subject of the current request. + * + * @return the Subject of the current request + */ + Subject getSecuritySubject(); + + /** + * Returns the name of the service that was invoked. + * + * @return the name of the service that was invoked + */ + String getServiceName(); + + /** + * Returns a ServiceReference to the service that was invoked. + * + * @return a ServiceReference to the service that was invoked + */ + ServiceReference getServiceReference(); +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceReference.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceReference.java new file mode 100644 index 0000000000..0841b8b2c7 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceReference.java @@ -0,0 +1,102 @@ +/* + * 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; + + +/** + * A ServiceReference represents a client's perspective of a reference to another service. + * + * @version $Rev$ $Date$ + */ +public interface ServiceReference { + /** + * Returns a type-safe reference to the target of this reference. + * The instance returned is guaranteed to implement the business interface for this reference + * but may not be a proxy as defined by java.lang.reflect.Proxy. + * + * @return a proxy to the target that implements the business interface associated with this reference + */ + B getService(); + + /** + * Returns the Java class for the business interface associated with this reference. + * + * @return the Class for the business interface associated with this reference + */ + Class getBusinessInterface(); + + /** + * Returns true if this reference is conversational. + * + * @return true if this reference is conversational + */ + boolean isConversational(); + + /** + * Returns the current conversation associated with this reference. + * + * @return the current conversation associated with this reference; null if there is no active conversation + * @throws IllegalStateException if this reference is not conversational + */ + Conversation getConversation() throws IllegalStateException; + + /** + * Returns the id supplied by the user that will be associated with conversations initiated through this reference. + * + * @return the id to associated with any conversation initiated through this reference + */ + Object getConversationID(); + + /** + * Set the id to associate with any conversation started through this reference. + * If the value supplied is null then the id will be generated by the implementation. + * + * @param conversationId the user-defined id to associated with a conversation + * @throws IllegalStateException if a conversation is currently associated with this reference + */ + void setConversationID(Object conversationId) throws IllegalStateException; + + /** + * Returns the callback ID. + * + * @return the callback ID + */ + Object getCallbackID(); + + /** + * Sets the callback ID. + * + * @param callbackID the callback ID + */ + void setCallbackID(Object callbackID); + + /** + * Returns the callback object. + * + * @return the callback object + */ + Object getCallback(); + + /** + * Sets the callback object. + * + * @param callback the callback object + */ + void setCallback(Object callback); +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceRuntimeException.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceRuntimeException.java new file mode 100644 index 0000000000..1c6b436afa --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceRuntimeException.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; + + +/** + * Base for Exceptions that may be raised by an SCA runtime and which typical + * application code is not expected to be able to handle. + * + * @version $Rev$ $Date$ + */ +public class ServiceRuntimeException extends RuntimeException { + private static final long serialVersionUID = -3876058842262557092L; + + /** + * Override constructor from RuntimeException. + * + * @see RuntimeException + */ + public ServiceRuntimeException() { + } + + /** + * Override constructor from RuntimeException. + * + * @param message passed to RuntimeException + * @see RuntimeException + */ + public ServiceRuntimeException(String message) { + super(message); + } + + /** + * Override constructor from RuntimeException. + * + * @param message passed to RuntimeException + * @param cause passed to RuntimeException + * @see RuntimeException + */ + public ServiceRuntimeException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Override constructor from RuntimeException. + * + * @param cause passed to RuntimeException + * @see RuntimeException + */ + public ServiceRuntimeException(Throwable cause) { + super(cause); + } +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceUnavailableException.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceUnavailableException.java new file mode 100644 index 0000000000..d3543799ed --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/ServiceUnavailableException.java @@ -0,0 +1,65 @@ +/* + * 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; + +/** + * Exception used to indicate that a runtime exception occurred during the invocation of and external service. + * + * @version $Rev$ $Date$ + */ +public class ServiceUnavailableException extends ServiceRuntimeException { + + private static final long serialVersionUID = -5869397223249401047L; + + /** + * Constructs a new ServiceUnavailableException. + */ + public ServiceUnavailableException() { + super((Throwable) null); + } + + /** + * Constructs a new ServiceUnavailableException with the specified detail message. + * + * @param message The detail message (which is saved to later retrieval by the getMessage() method). + */ + public ServiceUnavailableException(String message) { + super(message); + } + + /** + * Constructs a new ServiceUnavailableException with the specified cause. + * + * @param cause The cause (which is saved to later retrieval by the getCause() method). + */ + public ServiceUnavailableException(Throwable cause) { + super(cause); + } + + /** + * Constructs a new ServiceUnavailableException with the specified detail message and cause. + * + * @param message The message (which is saved to later retrieval by the getMessage() method). + * @param cause The cause (which is saved to later retrieval by the getCause() method). + */ + public ServiceUnavailableException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/Version.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/Version.java new file mode 100644 index 0000000000..76034f3a2c --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/Version.java @@ -0,0 +1,45 @@ +/* + * 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; + +/** + * Class providing information on the version of the specification + * supported by these API classes. + * + * @version $Rev$ $Date$ + */ +public final class Version { + /** + * Identifier for version 1.0 + */ + public static final String VERSION_1_0 = "1.0"; + + /** + * Identifier for the XML Namespace for version 1.0 + */ + public static final String XML_NAMESPACE_1_0 = "http://www.osoa.org/xmlns/sca/1.0"; + + /** + * The specification version of these API classes. + */ + public static final String API_VERSION = VERSION_1_0; + + private Version() { + } +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java new file mode 100644 index 0000000000..dcf16126da --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.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.METHOD; +import static java.lang.annotation.ElementType.TYPE; +import java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Callback.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Callback.java new file mode 100644 index 0000000000..dbfdce7e7c --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Callback.java @@ -0,0 +1,44 @@ +/* + * 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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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. + * + * @version $Rev$ $Date$ + */ +@Target({TYPE, METHOD, FIELD}) +@Retention(RUNTIME) +public @interface Callback { + /** + * The Class of the callback interface. + */ + Class value() default Void.class; +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/ComponentID.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/ComponentID.java new file mode 100644 index 0000000000..1629ca5714 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/ComponentID.java @@ -0,0 +1,44 @@ +/* + * 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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate an injection site for the SCA identity of a component. + * Every component in a SCA Domain has a unique identity that derived from the base URI of the domain. + * This annotation can be used to indicate to the container that a component implemention requires that + * its identity be injected. The annotation can be applied to: + *

    + *
  • a public or protected field with type @{link java.lang.String} or @{link java.net.URI}
  • + *
  • a public or protected method with a single parameter with type @{link java.lang.String} or @{link java.net.URI}
  • + *
  • a parameter of a public constructor with type @{link java.lang.String} or @{link java.net.URI}
  • + *
+ * + * @version $Rev$ $Date$ + */ +@Target({METHOD, FIELD, PARAMETER}) +@Retention(RUNTIME) +public @interface ComponentID { +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Constructor.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Constructor.java new file mode 100644 index 0000000000..8480b38926 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Constructor.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.CONSTRUCTOR; +import java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Context.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Context.java new file mode 100644 index 0000000000..93f6710578 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Context.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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a field or method that is used to inject the component's CompositeContext. + * + * @version $Rev$ $Date$ + */ +@Target({METHOD, FIELD}) +@Retention(RUNTIME) +public @interface Context { +} + diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Conversation.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Conversation.java new file mode 100644 index 0000000000..fe57e7a9c6 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Conversation.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.TYPE; +import java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate the characteristics of a conversation. + * + * @version $Rev$ $Date$ + */ +@Target(TYPE) +@Retention(RUNTIME) +public @interface Conversation { + /** + * The maximum time that can pass between operations in a single conversation. + * If this time is exceeded the container may end the 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. + */ + public String maxAge() default ""; + + /** + * If true, indicates that only the user that initiated the conversation + * has the authority to continue it. + */ + public boolean singlePrincipal() default false; +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/ConversationID.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/ConversationID.java new file mode 100644 index 0000000000..e521b91797 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/ConversationID.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.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Destroy.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Destroy.java new file mode 100644 index 0000000000..0a81dbe14c --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Destroy.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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/EagerInit.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/EagerInit.java new file mode 100644 index 0000000000..7fb9885fb4 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/EagerInit.java @@ -0,0 +1,43 @@ +/* + * 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 java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate an instance should be eagerly initialized. + * + * @version $Rev$ $Date$ + */ +@Target({TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface EagerInit { + + /** + * A Tuscany-specific extension for specifying the component's initialization order, with lesser values given + * precedence. A value of 0 indicates the component should not be initialized eagerly. + * + * @return the component initalization level + */ + public int value() default 50; + +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/EndConversation.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/EndConversation.java new file mode 100644 index 0000000000..6e3357f954 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/EndConversation.java @@ -0,0 +1,34 @@ +/* + * 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 java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a method ends a conversation. + * + * @version $Rev$ $Date$ + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface EndConversation { +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Init.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Init.java new file mode 100644 index 0000000000..957bec262c --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Init.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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/OneWay.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/OneWay.java new file mode 100644 index 0000000000..37fbaf96cd --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/OneWay.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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Property.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Property.java new file mode 100644 index 0000000000..ace1252c0b --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Property.java @@ -0,0 +1,53 @@ +/* + * 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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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. + */ + public String name() default ""; + + /** + * Indicates if a value must be specified. + */ + public String override() default "may"; + + /** + * The XML Type in a QName format + */ + public String xmlType() default ""; + +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Reference.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Reference.java new file mode 100644 index 0000000000..7fceafadf3 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Reference.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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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. + */ + public String name() default ""; + + /** + * Indicates if a reference must be specified. + */ + public boolean required() default false; +} + diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Remotable.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Remotable.java new file mode 100644 index 0000000000..f447a4126d --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Remotable.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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Resource.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Resource.java new file mode 100644 index 0000000000..fff6dfaed2 --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Resource.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 java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a resource should be provided to an implementation by the runtime. + * + * @version $Rev$ $Date$ + */ +@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +public @interface Resource { + + /** + * Denotes the name of the resource declared by the implementation. + */ + public String name() default ""; + + /** + * Denotes if the resource is optional + */ + public boolean optional() default false; + + /** + * Denotes the default name of the resource provided by the runtime environment. + */ + public String mappedName() default ""; +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Scope.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Scope.java new file mode 100644 index 0000000000..6f952d489c --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Scope.java @@ -0,0 +1,45 @@ +/* + * 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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate a scoped service. + * + * @version $Rev$ $Date$ + */ +@Target(TYPE) +@Retention(RUNTIME) +public @interface Scope { + /** + * The name of the scope. Values currently defined by the specification are: + *
    + *
  • stateless (default)
  • + *
  • request
  • + *
  • session
  • + *
  • module
  • + *
  • conversation
  • + *
+ */ + String value() default "STATELESS"; +} diff --git a/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Service.java b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Service.java new file mode 100644 index 0000000000..5dd4ffb72f --- /dev/null +++ b/sandbox/jboynes/sca-client/src/main/java/org/osoa/sca/annotations/Service.java @@ -0,0 +1,43 @@ +/* + * 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 java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +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. + */ + Class[] interfaces() default {}; + + /** + * Shortcut allowing a single interface to be exposed. + */ + Class value() default Void.class; +} -- cgit v1.2.3