summaryrefslogtreecommitdiffstats
path: root/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation')
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java93
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java89
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/StaticJavaComponentTargetInvoker.java50
3 files changed, 0 insertions, 232 deletions
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java
deleted file mode 100644
index 33fa9238b6..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.apache.tuscany.container.java.invocation;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Set;
-
-import org.apache.tuscany.core.config.JavaIntrospectionHelper;
-import org.apache.tuscany.core.context.TargetException;
-import org.apache.tuscany.core.wire.Interceptor;
-import org.apache.tuscany.core.wire.InvocationRuntimeException;
-import org.apache.tuscany.core.wire.TargetInvoker;
-import org.apache.tuscany.core.message.Message;
-
-/**
- * Base class for dispatching to a Java based component implementation. Subclasses implement a strategy for resolving
- * implementation instances.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractJavaComponentInvoker implements TargetInvoker {
-
- protected Method operation;
-
- public AbstractJavaComponentInvoker(Method operation) {
- assert (operation != null) : "Operation method cannot be null";
- this.operation = operation;
- }
-
- public Object invokeTarget(Object payload) throws InvocationTargetException {
- try {
- Object instance = getInstance();
- if (!operation.getDeclaringClass().isInstance(instance)) {
- Set<Method> methods = JavaIntrospectionHelper.getAllUniqueMethods(instance.getClass());
- Method newOperation = JavaIntrospectionHelper.findClosestMatchingMethod(operation.getName(), operation
- .getParameterTypes(), methods);
- if (newOperation != null)
- operation = newOperation;
- }
- if (payload != null && !payload.getClass().isArray()) {
- return operation.invoke(instance, payload);
- } else {
- return operation.invoke(instance, (Object[]) payload);
- }
- } catch (IllegalAccessException e) {
- throw new InvocationRuntimeException(e);
- }
- }
-
- public Message invoke(Message msg) {
- try {
- Object resp = invokeTarget(msg.getBody());
- msg.setBody(resp);
- } catch (InvocationTargetException e) {
- msg.setBody(e.getCause());
- } catch (Throwable e) {
- msg.setBody(e);
- }
- return msg;
- }
-
- protected abstract Object getInstance() throws TargetException;
-
- public void setNext(Interceptor next) {
- throw new IllegalStateException("This interceptor must be the last interceptor in an interceptor chain");
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- try {
- AbstractJavaComponentInvoker clone = (AbstractJavaComponentInvoker) super.clone();
- clone.operation = this.operation;
- return clone;
- } catch (CloneNotSupportedException e) {
- return null; // will not happen
- }
- }
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java
deleted file mode 100644
index 85d72b4b0d..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.apache.tuscany.container.java.invocation;
-
-import org.apache.tuscany.core.context.QualifiedName;
-import org.apache.tuscany.core.context.ScopeContext;
-import org.apache.tuscany.core.context.TargetException;
-
-import java.lang.reflect.Method;
-
-/**
- * Uses a scope container to resolve an implementation instance based on the current thread context
- *
- * @version $Rev$ $Date$
- */
-public class ScopedJavaComponentInvoker extends AbstractJavaComponentInvoker {
-
- private ScopeContext container;
-
- private QualifiedName name;
-
- private Object target;
-
- public boolean cacheable;
-
-
- /**
- * Creates a new invoker
- *
- * @param serviceName the name of the component/service pair to invoke
- * @param operation the operation the invoker is associated with
- * @param scopeContext the scope context the component is resolved in
- * @param cacheable Sets whether the target service instance may be cached by the invoker. This is a possible optimization
- * when a wire is configured for a "down-scope" reference, i.e. a reference from a source of a shorter
- * lifetime to a source of greater lifetime.
- */
- public ScopedJavaComponentInvoker(QualifiedName serviceName, Method operation, ScopeContext scopeContext, boolean cacheable) {
- super(operation);
- assert (serviceName != null) : "No service name specified";
- assert (scopeContext != null) : "No scope scopeContext specified";
- name = serviceName;
- this.container = scopeContext;
- this.cacheable = cacheable;
- }
-
- /**
- * Returns whether the target is cacheable.
- */
- public boolean isCacheable() {
- return cacheable;
- }
-
- /**
- * Resolves the target service instance or returns a cached one
- */
- protected Object getInstance() throws TargetException {
- if (!cacheable) {
- return container.getInstance(name);
- } else {
- if (target == null) {
- target = container.getInstance(name);
- }
- return target;
- }
- }
-
- public Object clone() throws CloneNotSupportedException {
- ScopedJavaComponentInvoker invoker = (ScopedJavaComponentInvoker) super.clone();
- invoker.target = null;
- invoker.cacheable = this.cacheable;
- invoker.container = this.container;
- invoker.name = this.name;
- return invoker;
- }
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/StaticJavaComponentTargetInvoker.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/StaticJavaComponentTargetInvoker.java
deleted file mode 100644
index dd757137cf..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/StaticJavaComponentTargetInvoker.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.apache.tuscany.container.java.invocation;
-
-import java.lang.reflect.Method;
-
-/**
- * Caches component instances that do not need to be resolved for every wire, e.g. an wire originating from
- * a lesser scope intended for a target with a wider scope
- *
- * @version $Rev$ $Date$
- */
-public class StaticJavaComponentTargetInvoker extends AbstractJavaComponentInvoker {
-
- private Object instance;
-
- public StaticJavaComponentTargetInvoker(Method operation, Object instance) {
- super(operation);
- assert (instance != null) : "Instance cannot be null";
- this.instance = instance;
- }
-
- protected Object getInstance() {
- return instance;
- }
-
- public boolean isCacheable() {
- return true;
- }
-
- public Object clone() throws CloneNotSupportedException {
- StaticJavaComponentTargetInvoker invoker = (StaticJavaComponentTargetInvoker) super.clone();
- invoker.instance = null;
- return invoker;
- }
-}