Author: jmarino
Date: Fri May 5 10:10:27 2006
New Revision: 400113
URL: http://svn.apache.org/viewcvs?rev=400113&view=rev
Log:
movement of impl classes from spi to core
Added:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvocationConfigurationImpl.java
- copied, changed from r399998,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java
- copied, changed from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvokerInterceptor.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageChannelImpl.java
(contents, props changed)
- copied, changed from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageChannelImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageDispatcher.java
(contents, props changed)
- copied, changed from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageDispatcher.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/RequestResponseInterceptor.java
(contents, props changed)
- copied, changed from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RequestResponseInterceptor.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/SourceInvocationConfigurationImpl.java
- copied, changed from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceInvocationConfiguration.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/TargetInvocationConfigurationImpl.java
- copied, changed from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvocationConfiguration.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceInvocationConfiguration.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvocationConfiguration.java
Removed:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvokerInterceptor.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageChannelImpl.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageDispatcher.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RequestResponseInterceptor.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/util/MethodHashMap.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java
Fri May 5 10:10:27 2006
@@ -16,7 +16,7 @@
import org.apache.tuscany.core.builder.impl.DefaultWireBuilder;
import org.apache.tuscany.core.context.QualifiedName;
import org.apache.tuscany.core.util.MethodHashMap;
-import org.apache.tuscany.spi.wire.InvokerInterceptor;
+import org.apache.tuscany.core.wire.InvokerInterceptor;
import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
import org.apache.tuscany.core.wire.WireSourceConfiguration;
import org.apache.tuscany.core.wire.WireTargetConfiguration;
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java
Fri May 5 10:10:27 2006
@@ -23,7 +23,7 @@
private final Map<AtomicContext, Map<Thread, InstanceContext>> contexts;
private final Map<Thread, List<InstanceContext>> destroyQueues;
-
+ //flip Thread, Map<AtomicContext,InstanceContext>
public RequestScopeContext(WorkContext workContext) {
super("Request Scope", workContext);
contexts = new ConcurrentHashMap<AtomicContext, Map<Thread,
InstanceContext>>();
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/util/MethodHashMap.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/util/MethodHashMap.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/util/MethodHashMap.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/util/MethodHashMap.java
Fri May 5 10:10:27 2006
@@ -16,15 +16,16 @@
*/
package org.apache.tuscany.core.util;
-import org.apache.tuscany.spi.wire.InvocationConfiguration;
-
import java.lang.reflect.Method;
import java.util.HashMap;
+import org.apache.tuscany.spi.wire.InvocationConfiguration;
+
/**
- * A <code>Map</code> implementation that performs a lookup on a collection of
methods by method name. This implementation is used
- * to map methods on one interface to compatible methods on another interface,
for example, when flowing an invocation from a
- * proxy injected on a source reference to a target service instance.
+ * A <code>Map</code> implementation that performs a lookup on a collection of
methods by method name. This
+ * implementation is used to map methods on one interface to compatible
methods on another interface, for
+ * example, when flowing an invocation from a proxy injected on a source
reference to a target service
+ * instance.
*
* @version $Rev$ $Date$
*/
Copied:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvocationConfigurationImpl.java
(from r399998,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java)
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvocationConfigurationImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvocationConfigurationImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java&r1=399998&r2=400113&rev=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvocationConfigurationImpl.java
Fri May 5 10:10:27 2006
@@ -14,74 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.tuscany.spi.wire;
+package org.apache.tuscany.core.wire;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
-/**
- * Contains a source- or target-side invocation pipeline for a service
operation. The runtime framework
- * creates invocation chains on a per-operation, per-service basis. Further,
invocation chains are further
- * distinguished by being part of the source or target sides of a wire. Chains
are "bridged" together by the
- * runtime by a set of [EMAIL PROTECTED]
org.apache.tuscany.spi.builder.WireBuilder}s with the source-side holding
- * references to the target.
- * <p/>
- * <code>InvocationChain</code>s are managed by [EMAIL PROTECTED]
WireSourceConfiguration}s and [EMAIL PROTECTED]
- * WireTargetConfiguration}s, which are used by wire factories to
- * buildSource wires and proxies.
- * <p/>
- * Invocation configurations must contain at least one interceptor and may
have 0 to N handlers. Handlers
- * process a wire request or response in a one-way fashion. A typical wire
sequence where interceptors and
- * handlers are configured for both the source and target-side will proceed as
follows:
- * <pre>
- * <ol>
- * <li>The first source interceptor will be called with a message, which will
in
- * turn invoke the next interceptor in the chain <li>The last source
interceptor, which must be of type
- * [EMAIL PROTECTED]
- * org.apache.tuscany.core.wire.impl.RequestResponseInterceptor} if there
are handlers present, will be
- * invoked. The RR
- * interceptor will in turn pass the message to a [EMAIL PROTECTED]
MessageChannel} which
- * will invoke all source-side request handlers.
- * <li>The RR interceptor will then invoke the target-side request
<code>MessageChannel</code>.
- * <li>The last source-side handler, an instance of [EMAIL PROTECTED]
MessageDispatcher},
- * will invoke the
- * first source-side interceptor, which in turn will pass the message down
the target-side interceptor
- * chain.
- * <li>If the target is a component instance the last target-side interceptor,
an instance of
- * [EMAIL PROTECTED] InvokerInterceptor} will retrieve the [EMAIL
PROTECTED] TargetInvoker} from the
- * message and
- * call it to invoke the operation on a target instance.
<tt>TargetInvoker</tt>s are help by
- * the source proxy to enable optimizations such as caching of target
instances. <li> The response is
- * returned up the wire
- * stack
- * until it reaches the source-side <tt>RequestResponseInterceptor</tt>,
which invokes the target and
- * source-side response
- * channels respectively.
- * <li>The response is then passed back up the rest of the wire stack. </ol>
- * </pre>
- * <p/>
- * The source-to-target bridge may be constructed in any of the following ways:
- * <pre>
- * <ul>
- * <li>Source handler-to-target handler
- * <li>Source handler-to-target interceptor
- * <li>Source interceptor-to-target handler
- * <li>Source interceptor-to-target interceptor
- * </ul>
- * </pre>
- * <p/>
- * In some scenarios, a service proxy may only contain target-side invocaton
chains, for example, when a
- * service is resolved through a locate operation by a non-component client.
In this case, there will be no
- * source-side wire chains and the target invoker will be held by the
target-side and passed down the
- * pipeline.
- *
- * @version $Rev: 396284 $ $Date: 2006-04-23 08:27:42 -0700 (Sun, 23 Apr 2006)
$
- * @see org.apache.tuscany.spi.builder.WireBuilder
- * @see TargetInvoker
- * @see MessageDispatcher
- */
-public abstract class InvocationConfiguration {
+import org.apache.tuscany.spi.wire.InvocationConfiguration;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.MessageHandler;
+
+
+public abstract class InvocationConfigurationImpl implements
InvocationConfiguration {
// the operation on the target that will utlimately be invoked
protected Method operation;
@@ -97,21 +42,15 @@
protected List<MessageHandler> responseHandlers;
- public InvocationConfiguration(Method operation) {
+ public InvocationConfigurationImpl(Method operation) {
assert (operation != null) : "No operation type specified";
this.operation = operation;
}
- /**
- * Returns the target operation for this invocation chain
- */
public Method getMethod() {
return operation;
}
- /**
- * Adds an request handler to the invocation chain
- */
public void addRequestHandler(MessageHandler handler) {
if (requestHandlers == null) {
requestHandlers = new ArrayList<MessageHandler>();
@@ -119,9 +58,6 @@
requestHandlers.add(handler);
}
- /**
- * Adds an response handler to the invocation chain
- */
public void addResponseHandler(MessageHandler handler) {
if (responseHandlers == null) {
responseHandlers = new ArrayList<MessageHandler>();
@@ -129,37 +65,22 @@
responseHandlers.add(handler);
}
- /**
- * Returns the request handler chain
- */
public List<MessageHandler> getRequestHandlers() {
return requestHandlers;
}
- /**
- * Returns the response handler chain
- */
public List<MessageHandler> getResponseHandlers() {
return responseHandlers;
}
- /**
- * Sets the target invoker to pass down the chain
- */
public void setTargetInvoker(TargetInvoker invoker) {
this.targetInvoker = invoker;
}
- /**
- * Returns the target invoker that is passed down the chain
- */
public TargetInvoker getTargetInvoker() {
return targetInvoker;
}
- /**
- * Adds an interceptor to the chain
- */
public void addInterceptor(Interceptor interceptor) {
if (interceptorChainHead == null) {
interceptorChainHead = interceptor;
@@ -169,23 +90,12 @@
interceptorChainTail = interceptor;
}
- /**
- * Returns the last interceptor in the chain
- */
public Interceptor getTailInterceptor() {
return interceptorChainTail;
}
- /**
- * Returns the first interceptor in the chain
- */
public Interceptor getHeadInterceptor() {
return interceptorChainHead;
}
- /**
- * Signals to the chain that its configuration is complete.
Implementations may use this callback to
- * prepare there invocation chains.
- */
- public abstract void build();
}
Copied:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java
(from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvokerInterceptor.java)
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java&p1=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvokerInterceptor.java&r1=399988&r2=400113&rev=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvokerInterceptor.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java
Fri May 5 10:10:27 2006
@@ -11,7 +11,12 @@
* 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.spi.wire;
+package org.apache.tuscany.core.wire;
+
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.InvocationRuntimeException;
+import org.apache.tuscany.spi.wire.TargetInvoker;
/**
* Serves as a tail interceptor on a target wire chain. This implementation
dispatches to the target invoker
@@ -19,7 +24,7 @@
* target instances.
*
* @version $Rev$ $Date$
- * @see TargetInvoker
+ * @see org.apache.tuscany.spi.wire.TargetInvoker
*/
public class InvokerInterceptor implements Interceptor {
Copied:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageChannelImpl.java
(from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageChannelImpl.java)
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageChannelImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageChannelImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageChannelImpl.java&r1=399988&r2=400113&rev=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageChannelImpl.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageChannelImpl.java
Fri May 5 10:10:27 2006
@@ -14,9 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.tuscany.spi.wire;
+package org.apache.tuscany.core.wire;
import java.util.List;
+
+import org.apache.tuscany.spi.wire.MessageChannel;
+import org.apache.tuscany.spi.wire.MessageHandler;
+import org.apache.tuscany.spi.wire.Message;
/**
* A channel comprising an ordered collection of message handlers.
Propchange:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageChannelImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageChannelImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageDispatcher.java
(from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageDispatcher.java)
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageDispatcher.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageDispatcher.java&p1=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageDispatcher.java&r1=399988&r2=400113&rev=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/MessageDispatcher.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageDispatcher.java
Fri May 5 10:10:27 2006
@@ -14,7 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.tuscany.spi.wire;
+package org.apache.tuscany.core.wire;
+
+import org.apache.tuscany.spi.wire.MessageHandler;
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.Message;
/**
* A message handler that dispatches the message through an interceptor stack
and the uses the response
Propchange:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageDispatcher.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/MessageDispatcher.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/RequestResponseInterceptor.java
(from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RequestResponseInterceptor.java)
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/RequestResponseInterceptor.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/RequestResponseInterceptor.java&p1=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RequestResponseInterceptor.java&r1=399988&r2=400113&rev=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RequestResponseInterceptor.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/RequestResponseInterceptor.java
Fri May 5 10:10:27 2006
@@ -14,7 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.tuscany.spi.wire;
+package org.apache.tuscany.core.wire;
+
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.MessageChannel;
+import org.apache.tuscany.spi.wire.Message;
/**
* An interceptor that first sends a message down its request channel then
extracts the response from the
Propchange:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/RequestResponseInterceptor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/RequestResponseInterceptor.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/SourceInvocationConfigurationImpl.java
(from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceInvocationConfiguration.java)
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/SourceInvocationConfigurationImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/SourceInvocationConfigurationImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceInvocationConfiguration.java&r1=399988&r2=400113&rev=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceInvocationConfiguration.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/SourceInvocationConfigurationImpl.java
Fri May 5 10:10:27 2006
@@ -11,16 +11,21 @@
* 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.spi.wire;
+package org.apache.tuscany.core.wire;
import java.lang.reflect.Method;
+import org.apache.tuscany.spi.wire.SourceInvocationConfiguration;
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.MessageChannel;
+import org.apache.tuscany.spi.wire.MessageHandler;
+
/**
* Contains a source-side invocation pipeline for a service operation.
*
* @version $Rev: 394379 $ $Date: 2006-04-15 15:01:36 -0700 (Sat, 15 Apr 2006)
$
*/
-public class SourceInvocationConfiguration extends InvocationConfiguration {
+public class SourceInvocationConfigurationImpl extends
InvocationConfigurationImpl implements SourceInvocationConfiguration {
// the pointer to the bridged target head interceptor or null if the
target has no interceptors
private Interceptor targetInterceptorChainHead;
@@ -37,47 +42,27 @@
* @param operation the method on the interface representing specified by
the reference, where the method corresponds to the
* service operation
*/
- public SourceInvocationConfiguration(Method operation) {
+ public SourceInvocationConfigurationImpl(Method operation) {
super(operation);
}
- /**
- * Sets the head interceptor of the target-side configuration for the
wire. Used when the runtime bridges source and target
- * chains.
- *
- * @param interceptor
- */
public void setTargetInterceptor(Interceptor interceptor) {
targetInterceptorChainHead = interceptor;
}
- /**
- * Returns the head target-side interceptor. This will be the head
interceptor of the "bridged" target configuration.
- */
public Interceptor getTargetInterceptor() {
return targetInterceptorChainHead;
}
- /**
- * Sets the target-side request channel. Used when the runtime bridges
source and target chains.
- */
public void setTargetRequestChannel(MessageChannel channel) {
targetRequestChannel = channel;
}
- /**
- * Sets the target-side response channel. Used when the runtime bridges
source and target chains.
- */
public void setTargetResponseChannel(MessageChannel channel) {
targetResponseChannel = channel;
}
- /**
- * Prepares the configuration by linking interceptors and handlers
- */
- @Override
public void build() {
-
if (requestHandlers != null && targetInterceptorChainHead != null) {
// on target-side, connect existing handlers and interceptors
MessageHandler messageDispatcher = new
MessageDispatcher(targetInterceptorChainHead);
Copied:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/TargetInvocationConfigurationImpl.java
(from r399988,
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvocationConfiguration.java)
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/TargetInvocationConfigurationImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/TargetInvocationConfigurationImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvocationConfiguration.java&r1=399988&r2=400113&rev=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvocationConfiguration.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/TargetInvocationConfigurationImpl.java
Fri May 5 10:10:27 2006
@@ -11,16 +11,19 @@
* 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.spi.wire;
+package org.apache.tuscany.core.wire;
import java.lang.reflect.Method;
+import org.apache.tuscany.spi.wire.TargetInvocationConfiguration;
+import org.apache.tuscany.spi.wire.MessageHandler;
+
/**
* Contains a target-side invocation pipeline for a service operation.
*
* @version $Rev: 394379 $ $Date: 2006-04-15 15:01:36 -0700 (Sat, 15 Apr 2006)
$
*/
-public class TargetInvocationConfiguration extends InvocationConfiguration {
+public class TargetInvocationConfigurationImpl extends
InvocationConfigurationImpl implements TargetInvocationConfiguration {
/**
* Creates an new target-side pipeline for the given operation
@@ -28,14 +31,10 @@
* @param operation the method on the interface representing target
service, where the method corresponds
* to the service operation
*/
- public TargetInvocationConfiguration(Method operation) {
+ public TargetInvocationConfigurationImpl(Method operation) {
super(operation);
}
- /**
- * Prepares the configuration by linking interceptors and handlers
- */
- @Override
public void build() {
if (requestHandlers != null && interceptorChainHead != null) {
// on target-side, connect existing handlers and interceptors
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java
Fri May 5 10:10:27 2006
@@ -16,22 +16,22 @@
*/
package org.apache.tuscany.core.wire.jdk;
-import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.wire.Interceptor;
-import org.apache.tuscany.spi.wire.InvocationConfiguration;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.core.wire.MessageImpl;
-
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
+import org.apache.tuscany.core.wire.MessageImpl;
+import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.InvocationConfiguration;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+
/**
* Receives a request from a JDK proxy and dispatches it to a target invoker
or source interceptor stack
- *
+ *
* @version $Rev$ $Date$
*/
public class JDKInvocationHandler implements InvocationHandler {
@@ -66,15 +66,15 @@
}
InvocationConfiguration config = holder.config;
if (config != null) {
- headInterceptor = config.getHeadInterceptor();
+ headInterceptor = config.getHeadInterceptor();
}
TargetInvoker invoker;
if (holder.cachedInvoker == null) {
assert config != null;
- if(config.getTargetInvoker() == null){
- TargetException e= new TargetException("No target invoker
configured for operation");
+ if (config.getTargetInvoker() == null) {
+ TargetException e = new TargetException("No target invoker
configured for operation");
e.setIdentifier(config.getMethod().getName());
throw e;
}
@@ -116,18 +116,18 @@
}
/**
- * A holder used to associate an wire configuration with a local copy of a
target invoker that was previously
- * cloned from the configuration master
+ * A holder used to associate an wire configuration with a local copy of a
target invoker that was
+ * previously cloned from the configuration master
*/
private class ConfigHolder {
+ InvocationConfiguration config;
+ TargetInvoker cachedInvoker;
+
public ConfigHolder(InvocationConfiguration config) {
this.config = config;
}
- InvocationConfiguration config;
-
- TargetInvoker cachedInvoker;
}
}
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
Fri May 5 10:10:27 2006
@@ -13,20 +13,20 @@
*/
package org.apache.tuscany.core.wire.jdk;
-import org.apache.tuscany.core.util.MethodHashMap;
-import org.apache.tuscany.spi.wire.WireFactoryInitException;
-import org.apache.tuscany.spi.wire.SourceInvocationConfiguration;
-import org.apache.tuscany.spi.wire.SourceWireFactory;
-import org.apache.tuscany.spi.wire.WireSourceConfiguration;
-
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Map;
+import org.apache.tuscany.core.util.MethodHashMap;
+import org.apache.tuscany.spi.wire.SourceInvocationConfiguration;
+import org.apache.tuscany.spi.wire.SourceWireFactory;
+import org.apache.tuscany.spi.wire.WireFactoryInitException;
+import org.apache.tuscany.spi.wire.WireSourceConfiguration;
+
/**
- * Creates proxies that are injected on references using JDK dynamic proxy
facilities and front a wire. The proxies implement the
- * business interface associated with the service required by reference.
+ * Creates proxies that are injected on references using JDK dynamic proxy
facilities and front a wire. The
+ * proxies implement the business interface associated with the service
required by reference.
*
* @version $Rev: 394431 $ $Date: 2006-04-15 21:27:44 -0700 (Sat, 15 Apr 2006)
$
*/
@@ -79,7 +79,7 @@
}
public T getBusinessInterface() {
- return (T)businessInterfaceArray[0];
+ return (T) businessInterfaceArray[0];
}
public void addInterface(Class claz) {
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java
Fri May 5 10:10:27 2006
@@ -67,7 +67,7 @@
}
public T getBusinessInterface() {
- return (T)businessInterfaceArray[0];
+ return (T) businessInterfaceArray[0];
}
public void addInterface(Class claz) {
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactory.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactory.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactory.java
Fri May 5 10:10:27 2006
@@ -24,7 +24,7 @@
import java.lang.reflect.Proxy;
/**
- * A system service that creates JDK dynamic proxy-based [EMAIL PROTECTED]
org.apache.tuscany.spi.wire.WireFactory}s
+ * A system service that creates JDK dynamic proxy-based wire factories
*
* @version $Rev$ $Date$
*/
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
Fri May 5 10:10:27 2006
@@ -1,17 +1,20 @@
package org.apache.tuscany.core.wire.jdk;
import junit.framework.TestCase;
-import org.apache.tuscany.spi.wire.InvocationConfiguration;
+import org.apache.tuscany.core.wire.InvocationConfigurationImpl;
import org.apache.tuscany.core.util.MethodHashMap;
import org.apache.tuscany.core.wire.mock.SimpleTarget;
import org.apache.tuscany.core.wire.mock.SimpleTargetImpl;
import org.apache.tuscany.core.wire.mock.MockStaticInvoker;
import org.apache.tuscany.core.wire.mock.MockHandler;
import org.apache.tuscany.core.wire.mock.MockSyncInterceptor;
-import org.apache.tuscany.spi.wire.InvokerInterceptor;
-import org.apache.tuscany.spi.wire.MessageChannelImpl;
-import org.apache.tuscany.spi.wire.TargetInvocationConfiguration;
+import org.apache.tuscany.core.wire.SourceInvocationConfigurationImpl;
+import org.apache.tuscany.core.wire.InvokerInterceptor;
+import org.apache.tuscany.core.wire.MessageChannelImpl;
+import org.apache.tuscany.core.wire.TargetInvocationConfigurationImpl;
import org.apache.tuscany.spi.wire.SourceInvocationConfiguration;
+import org.apache.tuscany.spi.wire.TargetInvocationConfiguration;
+import org.apache.tuscany.spi.wire.InvocationConfiguration;
import java.lang.reflect.Method;
import java.util.Map;
@@ -52,7 +55,7 @@
}
public void testDirectErrorInvoke() throws Throwable {
- SourceInvocationConfiguration source = new
SourceInvocationConfiguration(hello);
+ SourceInvocationConfigurationImpl source = new
SourceInvocationConfigurationImpl(hello);
MockStaticInvoker invoker = new MockStaticInvoker(hello, new
SimpleTargetImpl());
source.setTargetInvoker(invoker);
@@ -68,18 +71,18 @@
}
public void testDirectInvoke() throws Throwable {
- SourceInvocationConfiguration source = new
SourceInvocationConfiguration(hello);
+ SourceInvocationConfigurationImpl source = new
SourceInvocationConfigurationImpl(hello);
MockStaticInvoker invoker = new MockStaticInvoker(hello, new
SimpleTargetImpl());
source.setTargetInvoker(invoker);
- Map<Method, InvocationConfiguration> configs = new
MethodHashMap<InvocationConfiguration>();
+ Map<Method, InvocationConfigurationImpl> configs = new
MethodHashMap<InvocationConfigurationImpl>();
configs.put(hello, source);
JDKInvocationHandler handler = new JDKInvocationHandler(configs);
assertEquals("foo", handler.invoke(null, hello, new Object[] { "foo"
}));
}
private InvocationConfiguration getInvocationHandler(Method m) {
- SourceInvocationConfiguration source = new
SourceInvocationConfiguration(m);
+ SourceInvocationConfiguration source = new
SourceInvocationConfigurationImpl(m);
MockHandler sourceRequestHandler = new MockHandler();
MockHandler sourceResponseHandler = new MockHandler();
MockSyncInterceptor sourceInterceptor = new MockSyncInterceptor();
@@ -87,7 +90,7 @@
source.addResponseHandler(sourceResponseHandler);
source.addInterceptor(sourceInterceptor);
- TargetInvocationConfiguration target = new
TargetInvocationConfiguration(m);
+ TargetInvocationConfiguration target = new
TargetInvocationConfigurationImpl(m);
MockHandler targetRequestHandler = new MockHandler();
MockHandler targetResponseHandler = new MockHandler();
MockSyncInterceptor targetInterceptor = new MockSyncInterceptor();
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
Fri May 5 10:10:27 2006
@@ -22,12 +22,14 @@
import org.apache.tuscany.core.wire.mock.MockSyncInterceptor;
import org.apache.tuscany.core.wire.mock.SimpleTarget;
import org.apache.tuscany.core.wire.mock.SimpleTargetImpl;
+import org.apache.tuscany.core.wire.SourceInvocationConfigurationImpl;
import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.wire.InvokerInterceptor;
-import org.apache.tuscany.spi.wire.SourceInvocationConfiguration;
-import org.apache.tuscany.spi.wire.TargetInvocationConfiguration;
+import org.apache.tuscany.core.wire.InvokerInterceptor;
+import org.apache.tuscany.core.wire.TargetInvocationConfigurationImpl;
import org.apache.tuscany.spi.wire.WireSourceConfiguration;
import org.apache.tuscany.spi.wire.WireTargetConfiguration;
+import org.apache.tuscany.spi.wire.SourceInvocationConfiguration;
+import org.apache.tuscany.spi.wire.TargetInvocationConfiguration;
public class JDKWireFactoryFactoryTestCase extends TestCase {
@@ -42,7 +44,7 @@
}
public void testSourceWireFactory() throws Exception {
- SourceInvocationConfiguration source = new
SourceInvocationConfiguration(hello);
+ SourceInvocationConfigurationImpl source = new
SourceInvocationConfigurationImpl(hello);
MockSyncInterceptor sourceInterceptor = new MockSyncInterceptor();
source.addInterceptor(sourceInterceptor);
source.setTargetInterceptor(new InvokerInterceptor());
@@ -60,7 +62,7 @@
}
public void testTargetWireFactory() throws Exception {
- TargetInvocationConfiguration source = new
TargetInvocationConfiguration(hello);
+ TargetInvocationConfigurationImpl source = new
TargetInvocationConfigurationImpl(hello);
MockSyncInterceptor sourceInterceptor = new MockSyncInterceptor();
source.addInterceptor(sourceInterceptor);
source.addInterceptor(new InvokerInterceptor());
Added:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java?rev=400113&view=auto
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
(added)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
Fri May 5 10:10:27 2006
@@ -0,0 +1,122 @@
+package org.apache.tuscany.spi.wire;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+/**
+ * Contains a source- or target-side invocation pipeline for a service
operation. The runtime framework
+ * creates invocation chains on a per-operation, per-service basis. Further,
invocation chains are further
+ * distinguished by being part of the source or target sides of a wire. Chains
are "bridged" together by the
+ * runtime by a set of [EMAIL PROTECTED]
org.apache.tuscany.spi.builder.WireBuilder}s with the source-side holding
+ * references to the target.
+ * <p/>
+ * <code>InvocationChain</code>s are managed by [EMAIL PROTECTED]
WireSourceConfiguration}s and [EMAIL PROTECTED]
+ * WireTargetConfiguration}s, which are used by wire factories to
+ * buildSource wires and proxies.
+ * <p/>
+ * Invocation configurations must contain at least one interceptor and may
have 0 to N handlers. Handlers
+ * process a wire request or response in a one-way fashion. A typical wire
sequence where interceptors and
+ * handlers are configured for both the source and target-side will proceed as
follows:
+ * <pre>
+ * <ol>
+ * <li>The first source interceptor will be called with a message, which will
in
+ * turn invoke the next interceptor in the chain <li>The last source
interceptor, which must be of type
+ * [EMAIL PROTECTED]
+ * org.apache.tuscany.core.wire.impl.RequestResponseInterceptor} if there
are handlers present, will be
+ * invoked. The RR
+ * interceptor will in turn pass the message to a [EMAIL PROTECTED]
MessageChannel} which
+ * will invoke all source-side request handlers.
+ * <li>The RR interceptor will then invoke the target-side request
<code>MessageChannel</code>.
+ * <li>The last source-side handler, an instance of [EMAIL PROTECTED]
MessageDispatcher},
+ * will invoke the
+ * first source-side interceptor, which in turn will pass the message down
the target-side interceptor
+ * chain.
+ * <li>If the target is a component instance the last target-side interceptor,
an instance of
+ * [EMAIL PROTECTED] InvokerInterceptor} will retrieve the [EMAIL
PROTECTED] TargetInvoker} from the
+ * message and
+ * call it to invoke the operation on a target instance.
<tt>TargetInvoker</tt>s are help by
+ * the source proxy to enable optimizations such as caching of target
instances. <li> The response is
+ * returned up the wire
+ * stack
+ * until it reaches the source-side <tt>RequestResponseInterceptor</tt>,
which invokes the target and
+ * source-side response
+ * channels respectively.
+ * <li>The response is then passed back up the rest of the wire stack. </ol>
+ * </pre>
+ * <p/>
+ * The source-to-target bridge may be constructed in any of the following ways:
+ * <pre>
+ * <ul>
+ * <li>Source handler-to-target handler
+ * <li>Source handler-to-target interceptor
+ * <li>Source interceptor-to-target handler
+ * <li>Source interceptor-to-target interceptor
+ * </ul>
+ * </pre>
+ * <p/>
+ * In some scenarios, a service proxy may only contain target-side invocaton
chains, for example, when a
+ * service is resolved through a locate operation by a non-component client.
In this case, there will be no
+ * source-side wire chains and the target invoker will be held by the
target-side and passed down the
+ * pipeline.
+ *
+ * @version $Rev: 396284 $ $Date: 2006-04-23 08:27:42 -0700 (Sun, 23 Apr 2006)
$
+ * @see org.apache.tuscany.spi.builder.WireBuilder
+ * @see TargetInvoker
+ */
+public interface InvocationConfiguration {
+ /**
+ * Returns the target operation for this invocation chain
+ */
+ Method getMethod();
+
+ /**
+ * Adds an request handler to the invocation chain
+ */
+ void addRequestHandler(MessageHandler handler);
+
+ /**
+ * Adds an response handler to the invocation chain
+ */
+ void addResponseHandler(MessageHandler handler);
+
+ /**
+ * Returns the request handler chain
+ */
+ List<MessageHandler> getRequestHandlers();
+
+ /**
+ * Returns the response handler chain
+ */
+ List<MessageHandler> getResponseHandlers();
+
+ /**
+ * Sets the target invoker to pass down the chain
+ */
+ void setTargetInvoker(TargetInvoker invoker);
+
+ /**
+ * Returns the target invoker that is passed down the chain
+ */
+ TargetInvoker getTargetInvoker();
+
+ /**
+ * Adds an interceptor to the chain
+ */
+ void addInterceptor(Interceptor interceptor);
+
+ /**
+ * Returns the last interceptor in the chain
+ */
+ Interceptor getTailInterceptor();
+
+ /**
+ * Returns the first interceptor in the chain
+ */
+ Interceptor getHeadInterceptor();
+
+ /**
+ * Signals to the chain that its configuration is complete.
Implementations may use this callback to
+ * prepare there invocation chains.
+ */
+ void build();
+}
Added:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceInvocationConfiguration.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceInvocationConfiguration.java?rev=400113&view=auto
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceInvocationConfiguration.java
(added)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceInvocationConfiguration.java
Fri May 5 10:10:27 2006
@@ -0,0 +1,30 @@
+package org.apache.tuscany.spi.wire;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public interface SourceInvocationConfiguration extends InvocationConfiguration
{
+ /**
+ * Sets the head interceptor of the target-side configuration for the
wire. Used when the runtime bridges source and target
+ * chains.
+ *
+ * @param interceptor
+ */
+ void setTargetInterceptor(Interceptor interceptor);
+
+ /**
+ * Returns the head target-side interceptor. This will be the head
interceptor of the "bridged" target configuration.
+ */
+ Interceptor getTargetInterceptor();
+
+ /**
+ * Sets the target-side request channel. Used when the runtime bridges
source and target chains.
+ */
+ void setTargetRequestChannel(MessageChannel channel);
+
+ /**
+ * Sets the target-side response channel. Used when the runtime bridges
source and target chains.
+ */
+ void setTargetResponseChannel(MessageChannel channel);
+
+}
Added:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvocationConfiguration.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvocationConfiguration.java?rev=400113&view=auto
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvocationConfiguration.java
(added)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvocationConfiguration.java
Fri May 5 10:10:27 2006
@@ -0,0 +1,8 @@
+package org.apache.tuscany.spi.wire;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public interface TargetInvocationConfiguration extends InvocationConfiguration
{
+
+}
Modified:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java
Fri May 5 10:10:27 2006
@@ -25,12 +25,12 @@
/**
* Creates a target-side wire factory
*/
- public TargetWireFactory createTargetWireFactory();
+ public TargetWireFactory<?> createTargetWireFactory();
/**
* Creates a source-side wire factory
*/
- public SourceWireFactory createSourceWireFactory();
+ public SourceWireFactory<?> createSourceWireFactory();
/**
* Determines whether the given object is a proxy
Modified:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java?rev=400113&r1=400112&r2=400113&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
Fri May 5 10:10:27 2006
@@ -13,7 +13,6 @@
public class WireTargetConfiguration {
protected Map<Method, TargetInvocationConfiguration> configurations;
-
protected QualifiedName targetName;