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/04/05 08:08:41 UTC
svn commit: r525717 [2/4] - in /incubator/tuscany/java/sca/modules/core: ./
src/main/java/org/apache/tuscany/core/binding/local/
src/main/java/org/apache/tuscany/core/bootstrap/
src/main/java/org/apache/tuscany/core/builder/ src/main/java/org/apache/tu...
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java Wed Apr 4 23:08:37 2007
@@ -18,6 +18,10 @@
*/
package org.apache.tuscany.core.implementation.composite;
+import org.apache.tuscany.assembly.Composite;
+import org.apache.tuscany.assembly.CompositeReference;
+import org.apache.tuscany.assembly.CompositeService;
+import org.apache.tuscany.assembly.Implementation;
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.BuilderInstantiationException;
import org.apache.tuscany.spi.component.Component;
@@ -26,38 +30,30 @@
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.CompositeComponentType;
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceDefinition;
/**
* Abstract builder for composites
- *
+ *
* @version $Rev$ $Date$
*/
-public abstract class AbstractCompositeBuilder<T extends Implementation<CompositeComponentType>>
- extends ComponentBuilderExtension<T> {
+public abstract class AbstractCompositeBuilder<T extends Implementation> extends ComponentBuilderExtension<T> {
- public Component build(
- Component component,
- CompositeComponentType<?, ?, ?> componentType,
- DeploymentContext deploymentContext) throws BuilderException {
- for (ComponentDefinition<? extends Implementation<?>> definition : componentType.getComponents().values()) {
+ public Component build(Component component, Composite componentType, DeploymentContext deploymentContext)
+ throws BuilderException {
+ for (org.apache.tuscany.assembly.Component definition : componentType.getComponents()) {
builderRegistry.build(definition, deploymentContext);
}
- for (ServiceDefinition definition : componentType.getServices().values()) {
+ for (org.apache.tuscany.assembly.Service definition : componentType.getServices()) {
try {
- Service service = builderRegistry.build(definition, deploymentContext);
+ Service service = builderRegistry.build((CompositeService)definition, deploymentContext);
component.register(service);
} catch (RegistrationException e) {
throw new BuilderInstantiationException("Error registering service", e);
}
}
- for (ReferenceDefinition definition : componentType.getReferences().values()) {
+ for (org.apache.tuscany.assembly.Reference definition : componentType.getReferences()) {
try {
- Reference reference = builderRegistry.build(definition, deploymentContext);
+ Reference reference = builderRegistry.build((CompositeReference)definition, deploymentContext);
component.register(reference);
} catch (RegistrationException e) {
throw new BuilderInstantiationException("Error registering reference", e);
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java Wed Apr 4 23:08:37 2007
@@ -20,32 +20,30 @@
import java.net.URI;
+import org.apache.tuscany.assembly.Composite;
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.CompositeComponentType;
-import org.apache.tuscany.spi.model.CompositeImplementation;
/**
* Instantiates a composite component from an assembly definition
*
* @version $Rev$ $Date$
*/
-public class CompositeBuilder extends AbstractCompositeBuilder<CompositeImplementation> {
+public class CompositeBuilder extends AbstractCompositeBuilder<Composite> {
- public Component build(ComponentDefinition<CompositeImplementation> componentDefinition,
+ public Component build(org.apache.tuscany.assembly.Component definition,
DeploymentContext deploymentContext) throws BuilderException {
- CompositeImplementation implementation = componentDefinition.getImplementation();
- CompositeComponentType<?, ?, ?> componentType = implementation.getComponentType();
- URI name = componentDefinition.getUri();
+ Composite composite = (Composite) definition.getImplementation();
+ // FIXME
+ URI name = URI.create(composite.getName().getLocalPart());
CompositeComponentImpl component = new CompositeComponentImpl(name);
- return build(component, componentType, deploymentContext);
+ return build(component, composite, deploymentContext);
}
- protected Class<CompositeImplementation> getImplementationType() {
- return CompositeImplementation.class;
+ protected Class<Composite> getImplementationType() {
+ return Composite.class;
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java Wed Apr 4 23:08:37 2007
@@ -23,10 +23,10 @@
import java.util.Collections;
import java.util.List;
+import org.apache.tuscany.assembly.Contract;
import org.apache.tuscany.spi.component.AbstractSCAObject;
import org.apache.tuscany.spi.component.Reference;
import org.apache.tuscany.spi.component.ReferenceBinding;
-import org.apache.tuscany.spi.model.ServiceContract;
/**
* The default implementation of a {@link org.apache.tuscany.spi.component.Reference}
@@ -34,15 +34,15 @@
* @version $Rev$ $Date$
*/
public class ReferenceImpl extends AbstractSCAObject implements Reference {
- private ServiceContract<?> serviceContract;
+ private Contract serviceContract;
private List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>();
- public ReferenceImpl(URI name, ServiceContract<?> contract) {
+ public ReferenceImpl(URI name, Contract contract) {
super(name);
this.serviceContract = contract;
}
- public ServiceContract<?> getServiceContract() {
+ public Contract getServiceContract() {
return serviceContract;
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java Wed Apr 4 23:08:37 2007
@@ -23,10 +23,10 @@
import java.util.Collections;
import java.util.List;
+import org.apache.tuscany.assembly.Contract;
import org.apache.tuscany.spi.component.AbstractSCAObject;
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.component.ServiceBinding;
-import org.apache.tuscany.spi.model.ServiceContract;
/**
* The default implementation of a {@link Service}
@@ -34,21 +34,21 @@
* @version $Rev$ $Date$
*/
public class ServiceImpl extends AbstractSCAObject implements Service {
- private ServiceContract<?> serviceContract;
+ private Contract serviceContract;
private List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
private URI targetUri;
- public ServiceImpl(URI name, ServiceContract<?> contract) {
+ public ServiceImpl(URI name, Contract contract) {
this(name, contract, null);
}
- public ServiceImpl(URI name, ServiceContract<?> contract, URI targetUri) {
+ public ServiceImpl(URI name, Contract contract, URI targetUri) {
super(name);
this.serviceContract = contract;
this.targetUri = targetUri;
}
- public ServiceContract<?> getServiceContract() {
+ public Contract getServiceContract() {
return serviceContract;
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java Wed Apr 4 23:08:37 2007
@@ -20,9 +20,9 @@
import java.io.PrintWriter;
-import org.apache.tuscany.api.TuscanyException;
-import org.apache.tuscany.api.TuscanyRuntimeException;
import org.apache.tuscany.host.monitor.ExceptionFormatter;
+import org.apache.tuscany.spi.TuscanyException;
+import org.apache.tuscany.spi.TuscanyRuntimeException;
/**
* Performs basics formatting of exceptions for JDK logging
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/ProxyMonitorFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/ProxyMonitorFactory.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/ProxyMonitorFactory.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/ProxyMonitorFactory.java Wed Apr 4 23:08:37 2007
@@ -18,27 +18,27 @@
*/
package org.apache.tuscany.core.monitor;
-import java.util.Map;
-import java.util.Properties;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.lang.ref.WeakReference;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.ArrayList;
import java.util.HashMap;
-import java.util.ResourceBundle;
+import java.util.List;
import java.util.Locale;
+import java.util.Map;
import java.util.MissingResourceException;
-import java.util.List;
-import java.util.ArrayList;
+import java.util.Properties;
+import java.util.ResourceBundle;
import java.util.WeakHashMap;
import java.util.logging.Level;
-import java.lang.ref.WeakReference;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Proxy;
-import java.io.PrintWriter;
-import java.io.StringWriter;
import org.apache.tuscany.host.MonitorFactory;
-import org.apache.tuscany.host.monitor.FormatterRegistry;
import org.apache.tuscany.host.monitor.ExceptionFormatter;
-import org.apache.tuscany.api.annotation.LogLevel;
+import org.apache.tuscany.host.monitor.FormatterRegistry;
+import org.apache.tuscany.spi.LogLevel;
/**
* @version $Rev$ $Date$
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java Wed Apr 4 23:08:37 2007
@@ -20,10 +20,10 @@
import java.net.URI;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.CompositeComponentType;
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.assembly.Component;
+import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.assembly.Composite;
+import org.apache.tuscany.assembly.Contract;
import org.apache.tuscany.spi.resolver.ResolutionException;
/**
@@ -41,8 +41,8 @@
* @param definition the component definition to resolve autowires for
* @throws ResolutionException
*/
- void resolve(ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>> parentDefinition,
- ComponentDefinition<? extends Implementation<?>> definition) throws ResolutionException;
+ void resolve(Composite parentDefinition,
+ Component definition) throws ResolutionException;
/**
* Resolves autowires for a composite component type and its decendents
@@ -51,7 +51,7 @@
* @throws ResolutionException
*/
@SuppressWarnings({"unchecked"})
- public void resolve(CompositeComponentType<?, ?, ?> compositeType) throws ResolutionException;
+ public void resolve(Composite compositeType) throws ResolutionException;
/**
* Adds the uri of a host system service that can be an autowire target
@@ -59,6 +59,6 @@
* @param contract the service contract of the system service
* @param uri the component uri
*/
- void addHostUri(ServiceContract contract, URI uri);
+ void addPrimordialService(ComponentService contract, URI uri);
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java Wed Apr 4 23:08:37 2007
@@ -20,160 +20,161 @@
import java.net.URI;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.ComponentType;
-import org.apache.tuscany.spi.model.CompositeComponentType;
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ReferenceTarget;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.assembly.Component;
+import org.apache.tuscany.assembly.ComponentReference;
+import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.assembly.ComponentType;
+import org.apache.tuscany.assembly.Composite;
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.assembly.Implementation;
+import org.apache.tuscany.assembly.Multiplicity;
+import org.apache.tuscany.assembly.Reference;
+import org.apache.tuscany.assembly.Service;
+import org.apache.tuscany.core.wire.IDLMappingService;
import org.apache.tuscany.spi.resolver.ResolutionException;
/**
* Default implementation of an autowire resolver
- *
+ *
* @version $Rev$ $Date$
*/
public class DefaultAutowireResolver implements AutowireResolver {
- private Map<ServiceContract, URI> hostAutowire = new HashMap<ServiceContract, URI>();
+ private Map<ComponentService, URI> hostAutowire = new HashMap<ComponentService, URI>();
+ private IDLMappingService mappingService;
+ /**
+ * @param mappingService
+ */
+ public DefaultAutowireResolver(IDLMappingService mappingService) {
+ super();
+ this.mappingService = mappingService;
+ }
- @SuppressWarnings({"unchecked"})
- public void resolve(ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>> parentDefinition,
- ComponentDefinition<? extends Implementation<?>> definition)
- throws ResolutionException {
- ComponentType<?, ?, ?> type = definition.getImplementation().getComponentType();
+ @SuppressWarnings( {"unchecked"})
+ public void resolve(Composite parentDefinition, Component definition) throws ResolutionException {
+ ComponentType type = definition.getImplementation();
// resolve autowires
- if (type instanceof CompositeComponentType) {
- CompositeComponentType<?, ?, ?> compositeType = (CompositeComponentType<?, ?, ?>) type;
- for (ComponentDefinition<? extends Implementation<?>> child : compositeType.getComponents().values()) {
- Implementation<?> implementation = child.getImplementation();
- ComponentType<?, ?, ?> childType = implementation.getComponentType();
- if (childType instanceof CompositeComponentType) {
+ if (type instanceof Composite) {
+ Composite compositeType = (Composite)type;
+ for (Component child : compositeType.getComponents()) {
+ Implementation implementation = child.getImplementation();
+ ComponentType childType = implementation;
+ if (childType instanceof Composite) {
// recurse decendents for composites
- resolve((ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>>) definition, child);
+ resolve((Composite)definition, child);
}
- Map<String, ReferenceTarget> targets = child.getReferenceTargets();
- for (ReferenceDefinition reference : childType.getReferences().values()) {
- ReferenceTarget target = targets.get(reference.getUri().getFragment());
+ List<ComponentReference> targets = child.getReferences();
+ for (Reference reference : childType.getReferences()) {
+ ComponentReference target = (ComponentReference)getReference(targets, reference.getName());
if (target == null) {
continue;
}
if (target.isAutowire()) {
- ServiceContract requiredContract = reference.getServiceContract();
- resolve(compositeType, requiredContract, target, reference.isRequired());
+ boolean required = reference.getMultiplicity() == Multiplicity.ONE_N || reference
+ .getMultiplicity() == Multiplicity.ONE_ONE;
+ resolve(compositeType, reference, target, required);
}
}
}
} else {
// a leaf level component
- ComponentType<?, ?, ?> componentType = definition.getImplementation().getComponentType();
- Map<String, ReferenceTarget> targets = definition.getReferenceTargets();
- for (ReferenceDefinition reference : componentType.getReferences().values()) {
- ReferenceTarget target = targets.get(reference.getUri().getFragment());
+ ComponentType componentType = definition.getImplementation();
+ List<ComponentReference> targets = definition.getReferences();
+ for (Reference reference : componentType.getReferences()) {
+ ComponentReference target = getReference(targets, reference.getName());
if (target == null) {
continue;
}
if (target.isAutowire()) {
- ServiceContract requiredContract = reference.getServiceContract();
- CompositeComponentType<?, ?, ?> ctype = parentDefinition.getImplementation().getComponentType();
- resolve(ctype, requiredContract, target, reference.isRequired());
+ Composite ctype = parentDefinition;
+ boolean required = reference.getMultiplicity() == Multiplicity.ONE_N || reference.getMultiplicity() == Multiplicity.ONE_ONE;
+ resolve(ctype, reference, target, required);
}
}
}
}
- public void addHostUri(ServiceContract contract, URI uri) {
- hostAutowire.put(contract, uri);
+ public void addPrimordialService(ComponentService service, URI uri) {
+ hostAutowire.put(service, uri);
+ }
+
+ private <T extends Reference> T getReference(List<T> refs, String name) {
+ for (T ref : refs) {
+ if (ref.getName().equals(name)) {
+ return ref;
+ }
+ }
+ return null;
}
- public void resolve(CompositeComponentType<?, ?, ?> compositeType) throws ResolutionException {
- for (ComponentDefinition<? extends Implementation<?>> child : compositeType.getComponents().values()) {
- Implementation<?> implementation = child.getImplementation();
- ComponentType<?, ?, ?> childType = implementation.getComponentType();
- if (childType instanceof CompositeComponentType) {
+ public void resolve(Composite compositeType) throws ResolutionException {
+ for (Component child : compositeType.getComponents()) {
+ ComponentType childType = child.getImplementation();
+ if (childType instanceof Composite) {
// recurse decendents for composites
resolve(null, child);
}
- Map<String, ReferenceTarget> targets = child.getReferenceTargets();
- for (ReferenceDefinition reference : childType.getReferences().values()) {
- ReferenceTarget target = targets.get(reference.getUri().getFragment());
+ for (Reference reference : child.getReferences()) {
+ Reference target = getReference(childType.getReferences(), reference.getName());
if (target == null) {
continue;
}
if (target.isAutowire()) {
- ServiceContract requiredContract = reference.getServiceContract();
- resolve(compositeType, requiredContract, target, reference.isRequired());
+ Contract requiredContract = reference;
+ boolean required = target.getMultiplicity() == Multiplicity.ONE_N || target.getMultiplicity() == Multiplicity.ONE_ONE;
+ resolve(compositeType, requiredContract, target, required);
}
}
}
}
+
/**
- * Performs the actual resolution against a composite TODO this should be extensible allowing for path
- * optimizations
- *
- * @param compositeType the composite component type to resolve against
+ * Performs the actual resolution against a composite TODO this should be
+ * extensible allowing for path optimizations
+ *
+ * @param composite the composite component type to resolve against
* @param requiredContract the required target contract
- * @param target the reference target
- * @param required true if the autowire is required
+ * @param target the reference target
+ * @param required true if the autowire is required
* @throws AutowireTargetNotFoundException
- *
*/
- private void resolve(CompositeComponentType<?, ?, ?> compositeType,
- ServiceContract requiredContract,
- ReferenceTarget target,
- boolean required) throws AutowireTargetNotFoundException {
- // for now, attempt to match on interface, assume the class can be loaded
- Class<?> requiredInterface = requiredContract.getInterfaceClass();
- if (requiredInterface == null) {
- throw new UnsupportedOperationException("Only interfaces support for autowire");
- }
+ private void resolve(Composite composite, Contract requiredContract, Reference target, boolean required)
+ throws AutowireTargetNotFoundException {
+
+ ComponentService targetService = null;
// autowire to a target in the parent
- URI targetUri = null;
- URI candidateUri = null;
// find a suitable target, starting with components first
- for (ComponentDefinition<? extends Implementation<?>> candidate : compositeType.getComponents().values()) {
- Implementation<?> candidateImpl = candidate.getImplementation();
- ComponentType<?, ?, ?> candidateType = candidateImpl.getComponentType();
- for (ServiceDefinition service : candidateType.getServices().values()) {
- Class<?> serviceInterface = service.getServiceContract().getInterfaceClass();
- if (serviceInterface == null) {
- continue;
- }
- if (requiredInterface.equals(serviceInterface)) {
- targetUri = URI.create(candidate.getUri().toString() + service.getUri());
+ for (Component candidate : composite.getComponents()) {
+ ComponentType candidateType = candidate.getImplementation();
+ for (Service service : candidateType.getServices()) {
+ if(mappingService.isCompatible(requiredContract, service)) {
+ targetService = (ComponentService) service;
break;
- } else if (candidateUri == null && requiredInterface.isAssignableFrom(serviceInterface)) {
- candidateUri = URI.create(candidate.getUri().toString() + service.getUri());
}
}
- if (targetUri != null) {
+ if (targetService != null) {
break;
}
}
- if (targetUri == null) {
- targetUri = resolvePrimordial(requiredContract);
- }
- if (candidateUri != null) {
- targetUri = candidateUri;
+ if (targetService == null) {
+ targetService = resolvePrimordial(requiredContract);
}
- if (targetUri != null) {
- target.addTarget(targetUri);
+ if (targetService != null) {
+ target.getTargets().add(targetService);
}
- if (targetUri == null && required) {
- String uri = target.getReferenceName().toString();
+ if (targetService == null && required) {
+ String uri = target.getName();
throw new AutowireTargetNotFoundException("No suitable target found for", uri);
}
}
- private URI resolvePrimordial(ServiceContract contract) {
- Class<?> requiredClass = contract.getInterfaceClass();
- for (Map.Entry<ServiceContract, URI> entry : hostAutowire.entrySet()) {
- if (requiredClass.isAssignableFrom(entry.getKey().getInterfaceClass())) {
- return entry.getValue();
+ private ComponentService resolvePrimordial(Contract contract) {
+ for (Map.Entry<ComponentService, URI> entry : hostAutowire.entrySet()) {
+ if (mappingService.isCompatible(contract, entry.getKey())) {
+ return entry.getKey();
}
}
return null;
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java Wed Apr 4 23:08:37 2007
@@ -37,6 +37,10 @@
import javax.xml.stream.XMLInputFactory;
+import org.apache.tuscany.assembly.AssemblyFactory;
+import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
import org.apache.tuscany.core.bootstrap.Bootstrapper;
import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
import org.apache.tuscany.core.bootstrap.ExtensionActivator;
@@ -44,33 +48,29 @@
import org.apache.tuscany.core.builder.ConnectorImpl;
import org.apache.tuscany.core.component.ComponentManagerImpl;
import org.apache.tuscany.core.component.SimpleWorkContext;
-import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
-import org.apache.tuscany.core.component.scope.ScopeRegistryImpl;
-import org.apache.tuscany.core.deployer.DeployerImpl;
import org.apache.tuscany.core.monitor.NullMonitorFactory;
import org.apache.tuscany.core.resolver.AutowireResolver;
import org.apache.tuscany.core.resolver.DefaultAutowireResolver;
import org.apache.tuscany.core.services.classloading.ClassLoaderRegistryImpl;
import org.apache.tuscany.core.util.IOHelper;
+import org.apache.tuscany.core.wire.IDLMappingService;
import org.apache.tuscany.host.MonitorFactory;
import org.apache.tuscany.host.RuntimeInfo;
import org.apache.tuscany.host.management.ManagementService;
import org.apache.tuscany.host.monitor.FormatterRegistry;
import org.apache.tuscany.host.runtime.InitializationException;
import org.apache.tuscany.host.runtime.TuscanyRuntime;
-import org.apache.tuscany.spi.builder.BuilderRegistry;
+import org.apache.tuscany.idl.java.JavaInterface;
+import org.apache.tuscany.idl.java.impl.DefaultJavaFactory;
import org.apache.tuscany.spi.builder.Connector;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.ComponentManager;
import org.apache.tuscany.spi.component.RegistrationException;
-import org.apache.tuscany.spi.component.ScopeContainerMonitor;
import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.deployer.Deployer;
-import org.apache.tuscany.spi.idl.java.JavaServiceContract;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.services.classloading.ClassLoaderRegistry;
import org.apache.tuscany.spi.services.management.TuscanyManagementService;
import org.osoa.sca.ComponentContext;
@@ -244,7 +244,7 @@
protected Bootstrapper createBootstrapper() {
TuscanyManagementService tms = (TuscanyManagementService)getManagementService();
- resolver = new DefaultAutowireResolver();
+ resolver = new DefaultAutowireResolver(new IDLMappingService());
componentManager = new ComponentManagerImpl(tms, resolver);
Connector connector = new ConnectorImpl(componentManager);
return new DefaultBootstrapper(getMonitorFactory(), xmlFactory, componentManager, resolver, connector);
@@ -276,7 +276,7 @@
protected <S, I extends S> void registerSystemComponent(URI uri, Class<S> type, I component)
throws InitializationException {
try {
- JavaServiceContract<S> contract = new JavaServiceContract<S>(type);
+ ComponentService contract = createContract(type);
componentManager.registerJavaObject(uri, contract, component);
extensionRegistry.addExtension(type, component);
} catch (RegistrationException e) {
@@ -284,13 +284,21 @@
}
}
+ private <S> ComponentService createContract(Class<S> type) {
+ AssemblyFactory factory = new DefaultAssemblyFactory();
+ ComponentService contract = factory.createComponentService();
+ JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
+ javaInterface.setJavaClass(type);
+ contract.setInterface(javaInterface);
+ return contract;
+ }
+
protected <I> void registerSystemComponent(URI uri, List<Class<?>> types, I component)
throws InitializationException {
try {
- List<JavaServiceContract<?>> contracts = new ArrayList<JavaServiceContract<?>>();
+ List<ComponentService> contracts = new ArrayList<ComponentService>();
for (Class<?> type : types) {
- contracts.add(new JavaServiceContract(type));
-
+ contracts.add(createContract(type));
}
componentManager.registerJavaObject(uri, contracts, component);
} catch (RegistrationException e) {
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java Wed Apr 4 23:08:37 2007
@@ -24,12 +24,7 @@
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Property;
-import org.osoa.sca.annotations.Service;
-
+import org.apache.tuscany.spi.Monitor;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.event.AbstractEventPublisher;
import org.apache.tuscany.spi.services.store.DuplicateRecordException;
@@ -38,8 +33,11 @@
import org.apache.tuscany.spi.services.store.StoreExpirationEvent;
import org.apache.tuscany.spi.services.store.StoreMonitor;
import org.apache.tuscany.spi.services.store.StoreWriteException;
-
-import org.apache.tuscany.api.annotation.Monitor;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Service;
/**
* Implements a non-durable, non-transactional store using a simple in-memory map
Added: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java?view=auto&rev=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java Wed Apr 4 23:08:37 2007
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.util;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.idl.DataType;
+import org.apache.tuscany.idl.Operation;
+
+/**
+ * Contains methods for mapping between an operation in a
+ * {@link org.apache.tuscany.spi.model.ServiceContract} and a method defined by
+ * a Java interface
+ *
+ * @version $Rev$ $Date$
+ */
+public final class JavaIDLUtils {
+
+ private JavaIDLUtils() {
+ }
+
+ /**
+ * Return the method on the implementation class that matches the operation.
+ *
+ * @param implClass the implementation class or interface
+ * @param operation the operation to match
+ * @return the method described by the operation
+ * @throws NoSuchMethodException if no such method exists
+ * @Deprecated
+ */
+ public static Method findMethod(Class<?> implClass, Operation operation) throws NoSuchMethodException {
+ String name = operation.getName();
+ Class<?>[] paramTypes = getPhysicalTypes(operation);
+ return implClass.getMethod(name, paramTypes);
+ }
+
+ /**
+ * @Deprecated
+ */
+ private static Class<?>[] getPhysicalTypes(Operation operation) {
+ DataType<List<DataType>> inputType = operation.getInputType();
+ if (inputType == null) {
+ return new Class[] {};
+ }
+ List<DataType> types = inputType.getLogical();
+ Class<?>[] javaTypes = new Class<?>[types.size()];
+ for (int i = 0; i < javaTypes.length; i++) {
+ Type physical = types.get(i).getPhysical();
+ if (physical instanceof Class<?>) {
+ javaTypes[i] = (Class<?>)physical;
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+ return javaTypes;
+ }
+
+ /**
+ * Searches a collection of operations for a match against the given method
+ *
+ * @param method the method to match
+ * @param operations the operations to match against
+ * @return a matching operation or null
+ * @Deprecated
+ */
+ public static Operation findOperation(Method method, Collection<Operation> operations) {
+ for (Operation operation : operations) {
+ if (match(operation, method)) {
+ return operation;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Determines if the given operation matches the given method
+ *
+ * @return true if the operation matches, false if does not
+ */
+ private static boolean match(Operation operation, Method method) {
+ Class<?>[] params = method.getParameterTypes();
+ DataType<List<DataType>> inputType = operation.getInputType();
+ List<DataType> types = inputType.getLogical();
+ boolean found = true;
+ if (types.size() == params.length && method.getName().equals(operation.getName())) {
+ for (int i = 0; i < params.length; i++) {
+ Class<?> clazz = params[i];
+ if (!clazz.equals(operation.getInputType().getLogical().get(i).getPhysical())) {
+ found = false;
+ }
+ }
+ } else {
+ found = false;
+ }
+ return found;
+
+ }
+
+}
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java?view=auto&rev=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java Wed Apr 4 23:08:37 2007
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.core.wire;
+
+import java.util.List;
+
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.idl.DataType;
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class IDLMappingService {
+ public boolean isCompatible(Contract source, Contract target) {
+ return true;
+ }
+
+ public Operation map(Contract target, Operation sourceOp) {
+ return null;
+ }
+
+ public boolean isCompatible(DataType source, DataType target) {
+ if(source == target) {
+ return true;
+ } else {
+ return target.getPhysical().isAssignableFrom(source.getPhysical());
+ }
+
+ }
+
+ public boolean isCompatible(Operation source, Operation target) {
+ if(!source.getName().equals(target.getName())) {
+ return false;
+ }
+ DataType<List<DataType>> inputType = source.getInputType();
+ DataType outputType = source.getOutputType();
+
+ return true;
+ }
+
+ // FIXME: How to improve the performance for the lookup
+ private Operation getOperation(List<Operation> operations, String name) {
+ for (Operation op : operations) {
+ if (op.getName().equals(name)) {
+ return op;
+ }
+ }
+ return null;
+ }
+
+ public boolean checkCompatibility(Contract source, Contract target, boolean ignoreCallback, boolean silent)
+ throws IncompatibleServiceContractException {
+ if (source == target) {
+ // Shortcut for performance
+ return true;
+ }
+ if (source.getInterface().isRemotable() != target.getInterface().isRemotable()) {
+ if (!silent) {
+ throw new IncompatibleServiceContractException("Remotable settings do not match", source, target);
+ } else {
+ return false;
+ }
+ }
+ if (source.getInterface().isConversational() != target.getInterface().isConversational()) {
+ if (!silent) {
+ throw new IncompatibleServiceContractException("Interaction scopes do not match", source, target);
+ } else {
+ return false;
+ }
+ }
+
+ for (Operation operation : source.getInterface().getOperations()) {
+ Operation targetOperation = getOperation(target.getInterface().getOperations(), operation.getName());
+ if (targetOperation == null) {
+ if (!silent) {
+ throw new IncompatibleServiceContractException("Operation not found on target", source, target);
+ } else {
+ return false;
+ }
+ }
+ if (!operation.equals(targetOperation)) {
+ if (!silent) {
+ throw new IncompatibleServiceContractException("Target operations are not compatible", source,
+ target);
+ } else {
+ return false;
+ }
+ }
+ }
+
+ if (ignoreCallback) {
+ return true;
+ }
+
+ for (Operation operation : source.getCallbackInterface().getOperations()) {
+ Operation targetOperation = getOperation(target.getCallbackInterface().getOperations(), operation.getName());
+ if (targetOperation == null) {
+ if (!silent) {
+ throw new IncompatibleServiceContractException("Callback operation not found on target", source,
+ target, null, targetOperation);
+ } else {
+ return false;
+ }
+ }
+ if (!operation.equals(targetOperation)) {
+ if (!silent) {
+ throw new IncompatibleServiceContractException("Target callback operation is not compatible",
+ source, target, operation, targetOperation);
+ } else {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+}
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java (from r525375, incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java?view=diff&rev=525717&p1=incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java&r1=525375&p2=incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java Wed Apr 4 23:08:37 2007
@@ -20,27 +20,25 @@
import java.io.PrintWriter;
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.host.monitor.ExceptionFormatter;
+import org.apache.tuscany.host.monitor.FormatterRegistry;
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
import org.osoa.sca.annotations.Destroy;
import org.osoa.sca.annotations.EagerInit;
import org.osoa.sca.annotations.Reference;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
-
-import org.apache.tuscany.host.monitor.ExceptionFormatter;
-import org.apache.tuscany.host.monitor.FormatterRegistry;
-
/**
* Formats {@link org.apache.tuscany.spi.wire.IncompatibleServiceContractException} for JDK logging
*
* @version $Rev$ $Date$
*/
@EagerInit
-public class IncompatibleServiceContractExceptionFormatter implements ExceptionFormatter {
+public class IncompatibleContractExceptionFormatter implements ExceptionFormatter {
private FormatterRegistry factory;
- public IncompatibleServiceContractExceptionFormatter(@Reference FormatterRegistry factory) {
+ public IncompatibleContractExceptionFormatter(@Reference FormatterRegistry factory) {
this.factory = factory;
factory.register(this);
}
@@ -58,12 +56,12 @@
assert exception instanceof IncompatibleServiceContractException;
IncompatibleServiceContractException e = (IncompatibleServiceContractException) exception;
e.appendBaseMessage(writer);
- ServiceContract<?> source = e.getSource();
+ Contract source = e.getSource();
String sourceContractName = null;
if (source != null) {
- sourceContractName = source.getInterfaceName();
+ sourceContractName = source.getInterface().toString();
}
- Operation<?> sourceOperation = e.getSourceOperation();
+ Operation sourceOperation = e.getSourceOperation();
String sourceOpName = null;
if (sourceOperation != null) {
sourceOpName = sourceOperation.getName();
@@ -73,12 +71,12 @@
} else {
writer.write("\nSource Contract: " + sourceContractName + "/" + sourceOpName);
}
- ServiceContract<?> target = e.getTarget();
+ Contract target = e.getTarget();
String targetContractName = null;
if (target != null) {
- targetContractName = target.getInterfaceName();
+ targetContractName = target.getInterface().toString();
}
- Operation<?> targetOperation = e.getTargetOperation();
+ Operation targetOperation = e.getTargetOperation();
String targetOpName = null;
if (targetOperation != null) {
targetOpName = targetOperation.getName();
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java Wed Apr 4 23:08:37 2007
@@ -18,8 +18,7 @@
*/
package org.apache.tuscany.core.wire;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.idl.Operation;
import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -31,15 +30,10 @@
*/
public class InvocationChainImpl implements InvocationChain {
protected Operation operation;
- protected PhysicalOperationDefinition physicalOperation;
protected TargetInvoker targetInvoker;
protected Interceptor interceptorChainHead;
protected Interceptor interceptorChainTail;
- public InvocationChainImpl(PhysicalOperationDefinition operation) {
- this.physicalOperation = operation;
- }
-
public InvocationChainImpl(Operation operation) {
assert operation != null;
this.operation = operation;
@@ -47,10 +41,6 @@
public Operation getOperation() {
return operation;
- }
-
- public PhysicalOperationDefinition getPhysicalOperation() {
- return physicalOperation;
}
public void setTargetInvoker(TargetInvoker invoker) {
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java Wed Apr 4 23:08:37 2007
@@ -21,15 +21,14 @@
import java.net.URI;
import java.util.LinkedList;
-import org.osoa.sca.ServiceRuntimeException;
-
+import org.apache.tuscany.spi.Scope;
import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.services.work.WorkScheduler;
import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.Wire;
+import org.osoa.sca.ServiceRuntimeException;
/**
* Adds non-blocking behavior to an invocation chain
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java Wed Apr 4 23:08:37 2007
@@ -18,15 +18,17 @@
*/
package org.apache.tuscany.core.wire;
+import java.util.List;
+
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.idl.Operation;
import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
import org.apache.tuscany.spi.wire.ProxyService;
/**
* Base class for wire service extensions
- *
+ *
* @version $Rev$ $Date$
*/
public abstract class ProxyServiceExtension implements ProxyService {
@@ -36,23 +38,30 @@
this.context = context;
}
- public boolean checkCompatibility(ServiceContract<?> source,
- ServiceContract<?> target,
- boolean ignoreCallback,
- boolean silent)
+ // FIXME: How to improve the performance for the lookup
+ private Operation getOperation(List<Operation> operations, String name) {
+ for (Operation op : operations) {
+ if (op.getName().equals(name)) {
+ return op;
+ }
+ }
+ return null;
+ }
+
+ public boolean checkCompatibility(Contract source, Contract target, boolean ignoreCallback, boolean silent)
throws IncompatibleServiceContractException {
if (source == target) {
// Shortcut for performance
return true;
}
- if (source.isRemotable() != target.isRemotable()) {
+ if (source.getInterface().isRemotable() != target.getInterface().isRemotable()) {
if (!silent) {
throw new IncompatibleServiceContractException("Remotable settings do not match", source, target);
} else {
return false;
}
}
- if (source.isConversational() != target.isConversational()) {
+ if (source.getInterface().isConversational() != target.getInterface().isConversational()) {
if (!silent) {
throw new IncompatibleServiceContractException("Interaction scopes do not match", source, target);
} else {
@@ -60,8 +69,8 @@
}
}
- for (Operation<?> operation : source.getOperations().values()) {
- Operation<?> targetOperation = target.getOperations().get(operation.getName());
+ for (Operation operation : source.getInterface().getOperations()) {
+ Operation targetOperation = getOperation(target.getInterface().getOperations(), operation.getName());
if (targetOperation == null) {
if (!silent) {
throw new IncompatibleServiceContractException("Operation not found on target", source, target);
@@ -72,7 +81,7 @@
if (!operation.equals(targetOperation)) {
if (!silent) {
throw new IncompatibleServiceContractException("Target operations are not compatible", source,
- target);
+ target);
} else {
return false;
}
@@ -83,33 +92,29 @@
return true;
}
- for (Operation<?> operation : source.getCallbackOperations().values()) {
- Operation<?> targetOperation = target.getCallbackOperations().get(operation.getName());
- if (targetOperation == null) {
- if (!silent) {
- throw new IncompatibleServiceContractException("Callback operation not found on target",
- source,
- target,
- null,
- targetOperation);
- } else {
- return false;
+ if (source.getCallbackInterface() != null) {
+ for (Operation operation : source.getCallbackInterface().getOperations()) {
+ Operation targetOperation = getOperation(target.getCallbackInterface().getOperations(), operation
+ .getName());
+ if (targetOperation == null) {
+ if (!silent) {
+ throw new IncompatibleServiceContractException("Callback operation not found on target",
+ source, target, null, targetOperation);
+ } else {
+ return false;
+ }
}
- }
- if (!operation.equals(targetOperation)) {
- if (!silent) {
- throw new IncompatibleServiceContractException("Target callback operation is not compatible",
- source,
- target,
- operation,
- targetOperation);
- } else {
- return false;
+ if (!operation.equals(targetOperation)) {
+ if (!silent) {
+ throw new IncompatibleServiceContractException("Target callback operation is not compatible",
+ source, target, operation, targetOperation);
+ } else {
+ return false;
+ }
}
}
}
return true;
}
-
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java Wed Apr 4 23:08:37 2007
@@ -22,13 +22,13 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+
import javax.xml.namespace.QName;
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.idl.Operation;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.TargetResolutionException;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.Wire;
@@ -41,15 +41,11 @@
private URI sourceUri;
private URI targetUri;
private QName bindingType;
- private ServiceContract sourceContract;
- private ServiceContract targetContract;
+ private Contract sourceContract;
+ private Contract targetContract;
private boolean optimizable;
- private Map<Operation<?>, InvocationChain> chains = new HashMap<Operation<?>, InvocationChain>();
- private Map<Operation<?>, InvocationChain> callbackChains = new HashMap<Operation<?>, InvocationChain>();
- private Map<PhysicalOperationDefinition, InvocationChain> pChains =
- new HashMap<PhysicalOperationDefinition, InvocationChain>();
- private Map<PhysicalOperationDefinition, InvocationChain> pCallbackChains =
- new HashMap<PhysicalOperationDefinition, InvocationChain>();
+ private Map<Operation, InvocationChain> chains = new HashMap<Operation, InvocationChain>();
+ private Map<Operation, InvocationChain> callbackChains = new HashMap<Operation, InvocationChain>();
private AtomicComponent target;
/**
@@ -88,20 +84,20 @@
}
- public ServiceContract getSourceContract() {
+ public Contract getSourceContract() {
return sourceContract;
}
- public void setSourceContract(ServiceContract contract) {
+ public void setSourceContract(Contract contract) {
this.sourceContract = contract;
}
- public ServiceContract getTargetContract() {
+ public Contract getTargetContract() {
return targetContract;
}
- public void setTargetContract(ServiceContract contract) {
+ public void setTargetContract(Contract contract) {
this.targetContract = contract;
}
@@ -124,36 +120,20 @@
this.target = target;
}
- public Map<Operation<?>, InvocationChain> getInvocationChains() {
+ public Map<Operation, InvocationChain> getInvocationChains() {
return Collections.unmodifiableMap(chains);
}
- public void addInvocationChain(Operation<?> operation, InvocationChain chain) {
+ public void addInvocationChain(Operation operation, InvocationChain chain) {
chains.put(operation, chain);
}
- public void addInvocationChain(PhysicalOperationDefinition operation, InvocationChain chain) {
- pChains.put(operation, chain);
- }
-
- public Map<PhysicalOperationDefinition, InvocationChain> getPhysicalInvocationChains() {
- return Collections.unmodifiableMap(pChains);
- }
-
- public Map<Operation<?>, InvocationChain> getCallbackInvocationChains() {
+ public Map<Operation, InvocationChain> getCallbackInvocationChains() {
return Collections.unmodifiableMap(callbackChains);
}
- public void addCallbackInvocationChain(Operation<?> operation, InvocationChain chain) {
+ public void addCallbackInvocationChain(Operation operation, InvocationChain chain) {
callbackChains.put(operation, chain);
- }
-
- public Map<PhysicalOperationDefinition, InvocationChain> getCallbackPhysicalInvocationChains() {
- return Collections.unmodifiableMap(pCallbackChains);
- }
-
- public void addCallbackInvocationChain(PhysicalOperationDefinition operation, InvocationChain chain) {
- pCallbackChains.put(operation, chain);
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.java Wed Apr 4 23:08:37 2007
@@ -22,6 +22,8 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.tuscany.idl.Interface;
+import org.apache.tuscany.idl.java.JavaInterface;
import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.component.TargetResolutionException;
@@ -31,8 +33,8 @@
/**
* Uses a wire to return an object instance
- * @Deprecated
- *
+ *
+ * @Deprecated
* @version $Rev$ $Date$
*/
public class WireObjectFactory<T> implements ObjectFactory<T> {
@@ -45,9 +47,9 @@
/**
* Constructor.
- *
- * @param interfaze the interface to inject on the client
- * @param wire the backing wire
+ *
+ * @param interfaze the interface to inject on the client
+ * @param wire the backing wire
* @param proxyService the wire service to create the proxy
* @throws NoMethodForOperationException
*/
@@ -57,11 +59,16 @@
this.wire = wire;
this.proxyService = proxyService;
this.mappings = WireUtils.createInterfaceToWireMapping(interfaze, wire);
- if (wire.isOptimizable()
- && wire.getSourceContract().getInterfaceClass() != null
- && interfaze.isAssignableFrom(wire.getSourceContract().getInterfaceClass())) {
- optimizable = true;
+ if (wire.isOptimizable()) {
+ Interface iface = wire.getSourceContract().getInterface();
+ if (iface instanceof JavaInterface) {
+ Class type = ((JavaInterface)iface).getJavaClass();
+ if (interfaze.isAssignableFrom(type)) {
+ optimizable = true;
+ }
+ }
}
+
}
public T getInstance() throws ObjectCreationException {
@@ -80,6 +87,5 @@
return interfaze.cast(proxyService.createProxy(interfaze, wire, newChains));
}
}
-
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireUtils.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireUtils.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireUtils.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireUtils.java Wed Apr 4 23:08:37 2007
@@ -22,14 +22,11 @@
import java.util.HashMap;
import java.util.Map;
-import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod;
-import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod2;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.core.util.JavaIDLUtils;
+import org.apache.tuscany.idl.Operation;
import org.apache.tuscany.spi.wire.ChainHolder;
import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.InvocationChain;
-import org.apache.tuscany.spi.wire.ProxyCreationException;
import org.apache.tuscany.spi.wire.Wire;
/**
@@ -54,35 +51,16 @@
*/
public static Map<Method, ChainHolder> createInterfaceToWireMapping(Class<?> interfaze, Wire wire)
throws NoMethodForOperationException {
- Map<Operation<?>, InvocationChain> invocationChains = wire.getInvocationChains();
+ Map<Operation, InvocationChain> invocationChains = wire.getInvocationChains();
Map<Method, ChainHolder> chains = new HashMap<Method, ChainHolder>(invocationChains.size());
- for (Map.Entry<Operation<?>, InvocationChain> entry : invocationChains.entrySet()) {
+ for (Map.Entry<Operation, InvocationChain> entry : invocationChains.entrySet()) {
Operation operation = entry.getKey();
try {
- Method method = findMethod(interfaze, operation);
+ Method method = JavaIDLUtils.findMethod(interfaze, operation);
chains.put(method, new ChainHolder(entry.getValue()));
} catch (NoSuchMethodException e) {
throw new NoMethodForOperationException(operation.getName());
- }
- }
- return chains;
- }
-
- public static Map<Method, InvocationChain> createInterfaceToWireMapping2(Class<?> interfaze, Wire wire)
- throws NoMethodForOperationException {
- Map<PhysicalOperationDefinition, InvocationChain> invocationChains = wire.getPhysicalInvocationChains();
-
- Map<Method, InvocationChain> chains = new HashMap<Method, InvocationChain>(invocationChains.size());
- for (Map.Entry<PhysicalOperationDefinition, InvocationChain> entry : invocationChains.entrySet()) {
- PhysicalOperationDefinition operation = entry.getKey();
- try {
- Method method = findMethod2(interfaze, operation);
- chains.put(method, entry.getValue());
- } catch (NoSuchMethodException e) {
- throw new NoMethodForOperationException(operation.getName());
- } catch (ClassNotFoundException e) {
- throw new ProxyCreationException(e);
}
}
return chains;
Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java Wed Apr 4 23:08:37 2007
@@ -18,12 +18,11 @@
*/
package org.apache.tuscany.core.binding.local;
-import java.net.URI;
+import junit.framework.TestCase;
+import org.apache.tuscany.assembly.CompositeService;
+import org.apache.tuscany.assembly.impl.CompositeServiceImpl;
import org.apache.tuscany.spi.component.ServiceBinding;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-import junit.framework.TestCase;
/**
* @version $Rev$ $Date$
@@ -32,8 +31,8 @@
public void testBuild() throws Exception {
LocalBindingBuilder builder = new LocalBindingBuilder();
- ServiceDefinition def = new ServiceDefinition();
- def.setUri(new URI("#foo"));
+ CompositeService def = new CompositeServiceImpl();
+ def.setName("foo");
ServiceBinding binding = builder.build(def, null, null);
assertEquals(LocalServiceBinding.class, binding.getClass());
}
Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java Wed Apr 4 23:08:37 2007
@@ -18,19 +18,18 @@
*/
package org.apache.tuscany.core.binding.local;
-import java.lang.reflect.Type;
+import junit.framework.TestCase;
-import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.core.wire.InvocationChainImpl;
+import org.apache.tuscany.core.wire.WireImpl;
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.idl.impl.OperationImpl;
import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.MessageImpl;
import org.apache.tuscany.spi.wire.Wire;
-import junit.framework.TestCase;
-import org.apache.tuscany.core.wire.InvocationChainImpl;
-import org.apache.tuscany.core.wire.WireImpl;
-
/**
* @version $Rev$ $Date$
*/
@@ -41,7 +40,8 @@
* the originating error is unwrapped
*/
public void testThrowableTargetInvocation() throws Exception {
- Operation<Type> operation = new Operation<Type>("echo", null, null, null);
+ Operation operation = new OperationImpl();
+ operation.setName("echo");
Interceptor head = new ErrorInterceptor();
InvocationChain chain = new InvocationChainImpl(operation);
chain.addInterceptor(head);
Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java Wed Apr 4 23:08:37 2007
@@ -18,19 +18,19 @@
*/
package org.apache.tuscany.core.binding.local;
-import java.lang.reflect.Type;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
-import org.apache.tuscany.spi.model.Operation;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.idl.impl.OperationImpl;
import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.MessageImpl;
import org.apache.tuscany.spi.wire.Wire;
-
-import junit.framework.TestCase;
import org.easymock.EasyMock;
/**
@@ -62,7 +62,8 @@
message.setBody("foo");
Message response = new MessageImpl();
response.setBody("response");
- Operation<Type> operation = new Operation<Type>("echo", null, null, null);
+ Operation operation = new OperationImpl();
+ operation.setName("echo");
head = EasyMock.createMock(Interceptor.class);
EasyMock.expect(head.invoke(EasyMock.isA(Message.class))).andReturn(response);
EasyMock.replay(head);
@@ -70,7 +71,7 @@
EasyMock.expect(chain.getTargetInvoker()).andReturn(null);
EasyMock.expect(chain.getHeadInterceptor()).andReturn(head);
EasyMock.replay(chain);
- Map<Operation<?>, InvocationChain> chains = new HashMap<Operation<?>, InvocationChain>();
+ Map<Operation, InvocationChain> chains = new HashMap<Operation, InvocationChain>();
chains.put(operation, chain);
wire = EasyMock.createMock(Wire.class);
EasyMock.expect(wire.getCallbackInvocationChains()).andReturn(chains);
Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java Wed Apr 4 23:08:37 2007
@@ -18,19 +18,18 @@
*/
package org.apache.tuscany.core.binding.local;
-import java.lang.reflect.Type;
+import junit.framework.TestCase;
-import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.core.wire.InvocationChainImpl;
+import org.apache.tuscany.core.wire.WireImpl;
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.idl.impl.OperationImpl;
import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.MessageImpl;
import org.apache.tuscany.spi.wire.Wire;
-import junit.framework.TestCase;
-import org.apache.tuscany.core.wire.InvocationChainImpl;
-import org.apache.tuscany.core.wire.WireImpl;
-
/**
* @version $Rev$ $Date$
*/
@@ -54,7 +53,8 @@
@SuppressWarnings("unchecked")
protected void setUp() throws Exception {
super.setUp();
- Operation<Type> operation = new Operation<Type>("echo", null, null, null);
+ Operation operation = new OperationImpl();
+ operation.setName("echo");
InvocationChain chain = new InvocationChainImpl(operation);
chain.addInterceptor(new InsidiuousInterceptor());
Wire wire = new WireImpl();
Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java Wed Apr 4 23:08:37 2007
@@ -20,25 +20,29 @@
import java.net.URI;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.assembly.impl.ComponentServiceImpl;
+import org.apache.tuscany.core.wire.InvocationChainImpl;
+import org.apache.tuscany.core.wire.WireImpl;
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.idl.impl.OperationImpl;
+import org.apache.tuscany.idl.java.JavaInterface;
+import org.apache.tuscany.idl.java.impl.DefaultJavaFactory;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.MessageImpl;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.Wire;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.wire.InvocationChainImpl;
-import org.apache.tuscany.core.wire.WireImpl;
import org.easymock.EasyMock;
/**
* @version $Rev$ $Date$
*/
public class LocalTargetInvokerTestCase extends TestCase {
- private ServiceContract<Object> serviceContract;
- private Operation<Object> operation;
+ private Contract serviceContract;
+ private Operation operation;
public void testInvoke() {
TargetInvoker targetInvoker = EasyMock.createMock(TargetInvoker.class);
@@ -56,10 +60,10 @@
}
public void testCallbackSetInvoke() {
- ServiceContract<?> contract = new ServiceContract<Object>() {
-
- };
- contract.setCallbackClass(Object.class);
+ Contract contract = new ComponentServiceImpl();
+ JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
+ javaInterface.setJavaClass(Object.class);
+ contract.setCallbackInterface(javaInterface);
TargetInvoker targetInvoker = EasyMock.createMock(TargetInvoker.class);
EasyMock.expect(targetInvoker.invoke(EasyMock.isA(Message.class))).andReturn(new MessageImpl());
EasyMock.replay(targetInvoker);
@@ -100,14 +104,12 @@
EasyMock.verify(targetInvoker);
}
-
protected void setUp() throws Exception {
super.setUp();
- serviceContract = new ServiceContract<Object>() {
- };
- operation = new Operation<Object>("foo", null, null, null);
+ serviceContract = new ComponentServiceImpl();
+ operation = new OperationImpl();
+ operation.setName("foo");
}
-
private class TestException extends RuntimeException {
Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java Wed Apr 4 23:08:37 2007
@@ -18,8 +18,19 @@
*/
package org.apache.tuscany.core.builder;
-import java.net.URI;
+import junit.framework.TestCase;
+import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.assembly.CompositeReference;
+import org.apache.tuscany.assembly.CompositeService;
+import org.apache.tuscany.assembly.Multiplicity;
+import org.apache.tuscany.assembly.impl.ComponentServiceImpl;
+import org.apache.tuscany.assembly.impl.CompositeReferenceImpl;
+import org.apache.tuscany.assembly.impl.CompositeServiceImpl;
+import org.apache.tuscany.core.binding.local.LocalBindingBuilder;
+import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
+import org.apache.tuscany.core.binding.local.LocalReferenceBinding;
+import org.apache.tuscany.core.binding.local.LocalServiceBinding;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.Reference;
@@ -27,15 +38,6 @@
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.component.ServiceBinding;
import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.Multiplicity;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.binding.local.LocalBindingBuilder;
-import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
-import org.apache.tuscany.core.binding.local.LocalReferenceBinding;
-import org.apache.tuscany.core.binding.local.LocalServiceBinding;
import org.easymock.EasyMock;
/**
@@ -49,8 +51,11 @@
public void testNoServiceBindings() throws Exception {
ServiceBinding binding = EasyMock.createNiceMock(ServiceBinding.class);
EasyMock.replay(binding);
- ServiceDefinition definition = new ServiceDefinition(URI.create("#foo"), null, false);
- definition.setTarget(new URI("foo"));
+ CompositeService definition = new CompositeServiceImpl();
+ definition.setName("foo");
+ ComponentService componentService = new ComponentServiceImpl();
+ componentService.setName("foo");
+ definition.setPromotedService(componentService);
EasyMock.replay(deploymentContext);
EasyMock.replay(parent);
@@ -65,7 +70,9 @@
public void testReferenceBindingBuilderDispatch() throws Exception {
ReferenceBinding binding = EasyMock.createNiceMock(ReferenceBinding.class);
EasyMock.replay(binding);
- ReferenceDefinition definition = new ReferenceDefinition(URI.create("#foo"), null, Multiplicity.ONE_ONE);
+ CompositeReference definition = new CompositeReferenceImpl();
+ definition.setName("foo");
+ definition.setMultiplicity(Multiplicity.ONE_ONE);
EasyMock.replay(deploymentContext);
EasyMock.replay(parent);
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org