You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/05/10 11:02:32 UTC
svn commit: r536785 - in /incubator/tuscany/java/sca:
modules/core-spi/src/main/java/org/apache/tuscany/provider/
modules/core/src/main/java/org/apache/tuscany/core/runtime/
modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/
mod...
Author: rfeng
Date: Thu May 10 02:02:29 2007
New Revision: 536785
URL: http://svn.apache.org/viewvc?view=rev&rev=536785
Log:
Pass InterfaceContractMapper to RuntimeComponentReferenceImpl and RuntimeComponentServiceImpl
Fix a few issues in interface mapping
Modified:
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeAssemblyFactory.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java
incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/DataType.java
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java
incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/module/CRUDModuleActivator.java
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java Thu May 10 02:02:29 2007
@@ -28,7 +28,7 @@
*
* @version $Rev$ $Date$
*/
-public interface ScopedImplementationProvider<M> extends ImplementationProvider {
+public interface ScopedImplementationProvider extends ImplementationProvider {
/**
* Get the scope for the component implementation
*
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java Thu May 10 02:02:29 2007
@@ -366,7 +366,7 @@
}
addBindingInterceptor(component, reference, binding, chain, operation, false);
if (target != null) {
- addImplementationInterceptor(target, service, chain, operation, false);
+ addImplementationInterceptor(target, service, chain, targetOperation, false);
}
wire.getInvocationChains().add(chain);
}
@@ -383,7 +383,7 @@
chain.addInterceptor(new NonBlockingInterceptor(workScheduler, workContext));
}
addBindingInterceptor(component, reference, binding, chain, operation, true);
- addImplementationInterceptor(component, null, chain, operation, true);
+ addImplementationInterceptor(component, null, chain, targetOperation, true);
wire.getCallbackInvocationChains().add(chain);
}
}
@@ -452,7 +452,7 @@
chain.addInterceptor(new NonBlockingInterceptor(workScheduler, workContext));
}
- addImplementationInterceptor(component, service, chain, operation, false);
+ addImplementationInterceptor(component, service, chain, targetOperation, false);
wire.getInvocationChains().add(chain);
}
// if (sourceContract.getCallbackInterface() != null) {
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeAssemblyFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeAssemblyFactory.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeAssemblyFactory.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeAssemblyFactory.java Thu May 10 02:02:29 2007
@@ -24,20 +24,23 @@
import org.apache.tuscany.assembly.ComponentService;
import org.apache.tuscany.assembly.DefaultAssemblyFactory;
import org.apache.tuscany.assembly.SCABinding;
+import org.apache.tuscany.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.invocation.ProxyFactory;
/**
* @version $Rev$ $Date$
*/
public class RuntimeAssemblyFactory extends DefaultAssemblyFactory {
- private ProxyFactory proxyFactory;
+ private final ProxyFactory proxyFactory;
+ private final InterfaceContractMapper interfaceContractMapper;
/**
* @param proxyFactory
*/
- public RuntimeAssemblyFactory(ProxyFactory proxyFactory) {
+ public RuntimeAssemblyFactory(InterfaceContractMapper interfaceContractMapper, ProxyFactory proxyFactory) {
super();
this.proxyFactory = proxyFactory;
+ this.interfaceContractMapper = interfaceContractMapper;
}
@Override
@@ -47,7 +50,7 @@
@Override
public ComponentReference createComponentReference() {
- return new RuntimeComponentReferenceImpl();
+ return new RuntimeComponentReferenceImpl(interfaceContractMapper);
}
@Override
@@ -57,7 +60,7 @@
@Override
public ComponentService createComponentService() {
- return new RuntimeComponentServiceImpl();
+ return new RuntimeComponentServiceImpl(interfaceContractMapper);
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java Thu May 10 02:02:29 2007
@@ -28,6 +28,7 @@
import org.apache.tuscany.assembly.impl.ComponentReferenceImpl;
import org.apache.tuscany.core.RuntimeComponentReference;
import org.apache.tuscany.core.RuntimeWire;
+import org.apache.tuscany.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.interfacedef.Operation;
import org.apache.tuscany.invocation.InvocationChain;
import org.apache.tuscany.invocation.Invoker;
@@ -36,6 +37,12 @@
public class RuntimeComponentReferenceImpl extends ComponentReferenceImpl implements RuntimeComponentReference {
private List<RuntimeWire> wires = new ArrayList<RuntimeWire>();
private Map<Binding, ReferenceBindingProvider> bindingProviders = new HashMap<Binding, ReferenceBindingProvider>();
+ private InterfaceContractMapper mapper;
+
+ public RuntimeComponentReferenceImpl(InterfaceContractMapper mapper) {
+ super();
+ this.mapper = mapper;
+ }
public void addRuntimeWire(RuntimeWire wire) {
wires.add(wire);
@@ -69,7 +76,7 @@
}
for (InvocationChain chain : wire.getInvocationChains()) {
Operation op = chain.getSourceOperation();
- if (op == operation) {
+ if (mapper.isCompatible(operation, op, op.getInterface().isRemotable())) {
return chain.getHeadInvoker();
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java Thu May 10 02:02:29 2007
@@ -28,12 +28,20 @@
import org.apache.tuscany.assembly.impl.ComponentServiceImpl;
import org.apache.tuscany.core.RuntimeComponentService;
import org.apache.tuscany.core.RuntimeWire;
+import org.apache.tuscany.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.interfacedef.Operation;
import org.apache.tuscany.invocation.InvocationChain;
import org.apache.tuscany.invocation.Invoker;
import org.apache.tuscany.provider.ServiceBindingProvider;
public class RuntimeComponentServiceImpl extends ComponentServiceImpl implements RuntimeComponentService {
+ private InterfaceContractMapper mapper;
+
+ public RuntimeComponentServiceImpl(InterfaceContractMapper mapper) {
+ super();
+ this.mapper = mapper;
+ }
+
private List<RuntimeWire> wires = new ArrayList<RuntimeWire>();
private List<RuntimeWire> callbackWires = new ArrayList<RuntimeWire>();
private Map<Binding, ServiceBindingProvider> bindingProviders = new HashMap<Binding, ServiceBindingProvider>();
@@ -78,9 +86,7 @@
}
for (InvocationChain chain : wire.getInvocationChains()) {
Operation op = chain.getTargetOperation();
- // TODO: Operation.equals doesn seem to work with Operations with diff databindings
- // so just check the name for now
- if (op.getName().equals(operation.getName())) {
+ if (mapper.isCompatible(operation, op, op.getInterface().isRemotable())) {
return chain.getHeadInvoker();
}
}
@@ -92,7 +98,7 @@
if (wire.getTarget().getBinding() == binding) {
for (InvocationChain chain : wire.getCallbackInvocationChains()) {
Operation op = chain.getSourceOperation();
- if (op == operation) {
+ if (mapper.isCompatible(operation, op, op.getInterface().isRemotable())) {
return chain.getHeadInvoker();
}
}
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java Thu May 10 02:02:29 2007
@@ -77,7 +77,7 @@
ProxyFactory proxyFactory = ReallySmallRuntimeBuilder.createProxyFactory(registry, workContext, mapper);
// Create model factories
- assemblyFactory = new RuntimeAssemblyFactory(proxyFactory);
+ assemblyFactory = new RuntimeAssemblyFactory(mapper, proxyFactory);
PolicyFactory policyFactory = new DefaultPolicyFactory();
// Create a contribution service
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java Thu May 10 02:02:29 2007
@@ -109,6 +109,7 @@
// FIXME remove this
registry.addExtensionPoint(ProxyFactory.class, proxyFactory);
+ registry.addExtensionPoint(InterfaceContractMapper.class, mapper);
return proxyFactory;
}
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java Thu May 10 02:02:29 2007
@@ -26,6 +26,7 @@
import org.apache.tuscany.core.ExtensionPointRegistry;
import org.apache.tuscany.core.ModuleActivator;
import org.apache.tuscany.core.runtime.RuntimeAssemblyFactory;
+import org.apache.tuscany.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.interfacedef.java.DefaultJavaInterfaceFactory;
import org.apache.tuscany.interfacedef.java.JavaInterfaceFactory;
import org.apache.tuscany.interfacedef.java.introspect.ExtensibleJavaInterfaceIntrospector;
@@ -58,8 +59,9 @@
public void start(ExtensionPointRegistry registry) {
ProxyFactory proxyFactory = registry.getExtensionPoint(ProxyFactory.class);
+ InterfaceContractMapper mapper = registry.getExtensionPoint(InterfaceContractMapper.class);
// Create the CRUD implementation factory
- AssemblyFactory assemblyFactory = new RuntimeAssemblyFactory(proxyFactory);
+ AssemblyFactory assemblyFactory = new RuntimeAssemblyFactory(mapper, proxyFactory);
JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory();
JavaInterfaceIntrospectorExtensionPoint visitors = registry.getExtensionPoint(JavaInterfaceIntrospectorExtensionPoint.class);
JavaInterfaceIntrospector introspector = new ExtensibleJavaInterfaceIntrospector(javaFactory, visitors);
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java Thu May 10 02:02:29 2007
@@ -45,7 +45,7 @@
/**
* @version $Rev$ $Date$
*/
-public class JavaImplementationProvider implements ScopedImplementationProvider<JavaImplementation> {
+public class JavaImplementationProvider implements ScopedImplementationProvider {
private JavaImplementation implementation;
private JavaComponentInfo atomicComponent;
Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/DataType.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/DataType.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/DataType.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/DataType.java Thu May 10 02:02:29 2007
@@ -54,10 +54,10 @@
* Returns the logical identifier used by the assembly. The type of this
* value identifies the logical type system in use. Known values are:
* <ul>
- * <li>a java.lang.reflect.Type identifies a Java type by name and
+ * <li>a Class identifies a Java type by name and
* ClassLoader; this includes Java Classes as they are specializations of
* Type</li>
- * <li>a javax.xml.namespace.QName identifies an XML type by local name and
+ * <li>a XMLType identifies an XML type by local name and
* namespace</li>
* </ul>
*
Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java Thu May 10 02:02:29 2007
@@ -41,7 +41,9 @@
// For local case
return target.getPhysical() == source.getPhysical();
} else {
- return target.getLogical().equals(source.getLogical());
+ // FIXME: How to test if two remotable data type is compatible?
+ // return target.getLogical().equals(source.getLogical());
+ return true;
}
}
@@ -69,7 +71,13 @@
}
List<DataType> sourceInputType = source.getInputType().getLogical();
+ if (source.isWrapperStyle()) {
+ sourceInputType = source.getWrapper().getUnwrappedInputType().getLogical();
+ }
List<DataType> targetInputType = target.getInputType().getLogical();
+ if (target.isWrapperStyle()) {
+ targetInputType = target.getWrapper().getUnwrappedInputType().getLogical();
+ }
if (sourceInputType.size() != targetInputType.size()) {
return false;
@@ -86,8 +94,9 @@
for (DataType targetFaultType : target.getFaultTypes()) {
// Source fault types must be the same or superset of target fault
// types
- boolean found = false;
+ boolean found = true;
for (DataType sourceFaultType : source.getFaultTypes()) {
+ found = false;
if (isCompatible(targetFaultType, sourceFaultType, remotable)) {
// Target fault type can be covered by the source fault type
found = true;
Modified: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/module/CRUDModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/module/CRUDModuleActivator.java?view=diff&rev=536785&r1=536784&r2=536785
==============================================================================
--- incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/module/CRUDModuleActivator.java (original)
+++ incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/module/CRUDModuleActivator.java Thu May 10 02:02:29 2007
@@ -26,6 +26,7 @@
import org.apache.tuscany.core.ExtensionPointRegistry;
import org.apache.tuscany.core.ModuleActivator;
import org.apache.tuscany.core.runtime.RuntimeAssemblyFactory;
+import org.apache.tuscany.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.interfacedef.java.DefaultJavaInterfaceFactory;
import org.apache.tuscany.interfacedef.java.JavaInterfaceFactory;
import org.apache.tuscany.interfacedef.java.introspect.ExtensibleJavaInterfaceIntrospector;
@@ -58,8 +59,10 @@
public void start(ExtensionPointRegistry registry) {
ProxyFactory proxyFactory = registry.getExtensionPoint(ProxyFactory.class);
+ InterfaceContractMapper mapper = registry.getExtensionPoint(InterfaceContractMapper.class);
// Create the CRUD implementation factory
- AssemblyFactory assemblyFactory = new RuntimeAssemblyFactory(proxyFactory);
+ AssemblyFactory assemblyFactory = new RuntimeAssemblyFactory(mapper, proxyFactory);
+
JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory();
JavaInterfaceIntrospectorExtensionPoint visitors = registry.getExtensionPoint(JavaInterfaceIntrospectorExtensionPoint.class);
JavaInterfaceIntrospector introspector = new ExtensibleJavaInterfaceIntrospector(javaFactory, visitors);
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org