You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/05/21 09:58:36 UTC
svn commit: r408146 - in /incubator/tuscany/sandbox/jboynes/sca:
core2/src/main/java/org/apache/tuscany/core/builder/
core2/src/main/java/org/apache/tuscany/core/system/context/
spi/src/main/java/org/apache/tuscany/spi/context/ spi/src/main/java/org/ap...
Author: jmarino
Date: Sun May 21 00:58:36 2006
New Revision: 408146
URL: http://svn.apache.org/viewvc?rev=408146&view=rev
Log:
make ServiceContextExtension concrete
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Sun May 21 00:58:36 2006
@@ -2,6 +2,7 @@
import java.lang.reflect.Method;
import java.util.Map;
+import java.util.Collection;
import org.apache.tuscany.core.wire.InvokerInterceptor;
import org.apache.tuscany.core.wire.MessageChannelImpl;
@@ -132,14 +133,29 @@
}
}
- for (SourceInvocationChain chain : source.getInvocationChains()
- .values()) {
- TargetInvoker invoker = target.createTargetInvoker(targetWire.getServiceName(), chain.getMethod());
+ if (target instanceof ReferenceContext){
+ attachInvoker(targetWire.getServiceName(),source.getInvocationChains().values(),(ReferenceContext)target);
+ }else{
+ attachInvoker(targetWire.getServiceName(),source.getInvocationChains().values(),(ComponentContext)target);
+ }
+ }
+
+ private void attachInvoker(String serviceName, Collection<SourceInvocationChain> chains, ComponentContext<?> target){
+ for (SourceInvocationChain chain : chains) {
+ TargetInvoker invoker = target.createTargetInvoker(serviceName, chain.getMethod());
// TODO fix cacheable attrivute
//invoker.setCacheable(cacheable);
chain.setTargetInvoker(invoker);
}
+ }
+ private void attachInvoker(String serviceName, Collection<SourceInvocationChain> chains, ReferenceContext<?> target){
+ for (SourceInvocationChain chain : chains) {
+ TargetInvoker invoker = target.createTargetInvoker(serviceName, chain.getMethod());
+ // TODO fix cacheable attrivute
+ //invoker.setCacheable(cacheable);
+ chain.setTargetInvoker(invoker);
+ }
}
private boolean isOptimizable(Scope pReferrer, Scope pReferee) {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java Sun May 21 00:58:36 2006
@@ -1,13 +1,11 @@
package org.apache.tuscany.core.system.context;
import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
import org.apache.tuscany.spi.CoreRuntimeException;
import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.extension.ServiceContextExtension;
import org.apache.tuscany.spi.wire.SourceWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
/**
* @version $$Rev$$ $$Date$$
@@ -15,21 +13,11 @@
public class SystemServiceContextImpl<T> extends ServiceContextExtension<T> implements SystemServiceContext<T> {
public SystemServiceContextImpl(String name, SourceWire<T> wire, CompositeContext parent) throws CoreRuntimeException {
- this.name = name;
- this.parentContext = parent;
- this.sourceWire = wire;
+ super(name,wire,parent);
}
public InvocationHandler getHandler() {
throw new UnsupportedOperationException();
}
-
- public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
- throw new UnsupportedOperationException();
- }
-
- public void prepare() {
- // override and do nothing since system services do not proxy
- }
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java Sun May 21 00:58:36 2006
@@ -2,9 +2,11 @@
import java.util.List;
import java.util.Map;
+import java.lang.reflect.Method;
import org.apache.tuscany.spi.wire.SourceWire;
import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.wire.TargetInvoker;
/**
* Provides a runtime context for application artifacts configured as components
@@ -60,5 +62,15 @@
* Returns a collection of target-side wires keyed by service name
*/
Map<String, TargetWire> getTargetWires();
+
+ /**
+ * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to a service
+ * contained by the context
+ *
+ * @param serviceName the name of the service
+ * @param operation the operation to invoke
+ */
+ TargetInvoker createTargetInvoker(String serviceName, Method operation);
+
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java Sun May 21 00:58:36 2006
@@ -55,22 +55,13 @@
void setParent(CompositeContext parent);
Scope getScope();
-
+
/**
* Returns an instance associated with the default service for the context
*
* @throws TargetException if an error occurs retrieving the instance
*/
T getService() throws TargetException;
-
- /**
- * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to a service
- * contained by the context
- *
- * @param serviceName the name of the service
- * @param operation the operation to invoke
- */
- TargetInvoker createTargetInvoker(String serviceName, Method operation);
/**
* Called to signal to the configuration that its parent context has been activated and that it shoud
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java Sun May 21 00:58:36 2006
@@ -1,8 +1,10 @@
package org.apache.tuscany.spi.context;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.wire.TargetInvoker;
/**
* Manages a reference configured for a binding
@@ -26,4 +28,14 @@
public TargetWire<T> getTargetWire();
+ /**
+ * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to a service
+ * contained by the context
+ *
+ * @param serviceName the name of the service
+ * @param operation the operation to invoke
+ */
+ TargetInvoker createTargetInvoker(String serviceName, Method operation);
+
+
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java Sun May 21 00:58:36 2006
@@ -1,7 +1,6 @@
package org.apache.tuscany.spi.extension;
import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
import org.apache.tuscany.common.ObjectFactory;
import org.apache.tuscany.model.Scope;
@@ -9,9 +8,8 @@
import org.apache.tuscany.spi.context.AbstractContext;
import org.apache.tuscany.spi.context.ServiceContext;
import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.wire.SourceInvocationChain;
+import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.wire.SourceWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.WireInvocationHandler;
/**
@@ -19,12 +17,18 @@
*
* @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) $
*/
-public abstract class ServiceContextExtension<T> extends AbstractContext<T> implements ServiceContext<T> {
+public class ServiceContextExtension<T> extends AbstractContext<T> implements ServiceContext<T> {
protected SourceWire<T> sourceWire;
protected ObjectFactory<WireInvocationHandler> handlerFactory;
private T target;
+ public ServiceContextExtension(String name, SourceWire<T> wire, CompositeContext parent) throws CoreRuntimeException {
+ this.name = name;
+ this.parentContext = parent;
+ this.sourceWire = wire;
+ }
+
/**
* Creates a new service context
*/
@@ -64,16 +68,6 @@
public Class<T> getInterface() {
return sourceWire.getBusinessInterface();
- }
-
- public void prepare() {
- for (SourceInvocationChain chain : sourceWire.getInvocationChains().values()) {
- chain.setTargetInvoker(createTargetInvoker(sourceWire.getReferenceName(), chain.getMethod()));
- }
- }
-
- public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
- throw new UnsupportedOperationException();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org