You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/12/23 13:14:11 UTC
svn commit: r489888 [5/6] - in /incubator/tuscany/java/sca:
kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/
kernel/core/src/main/java/org/apache/tuscany/core/builder/
kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ kerne...
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java Sat Dec 23 04:14:05 2006
@@ -37,11 +37,11 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.DuplicateNameException;
import org.apache.tuscany.spi.component.IllegalTargetException;
+import org.apache.tuscany.spi.component.InvalidAutowireInterface;
import org.apache.tuscany.spi.component.PrepareException;
import org.apache.tuscany.spi.component.Reference;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.component.TargetNotFoundException;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.event.Event;
import org.apache.tuscany.spi.model.Scope;
@@ -66,10 +66,10 @@
protected final List<Reference> systemReferences = new ArrayList<Reference>();
// autowire mappings
- protected final Map<Class, SCAObject> autowireInternal = new ConcurrentHashMap<Class, SCAObject>();
- protected final Map<Class, Service> autowireExternal = new ConcurrentHashMap<Class, Service>();
- protected final Map<Class, SCAObject> systemAutowireInternal = new ConcurrentHashMap<Class, SCAObject>();
- protected final Map<Class, Service> systemAutowireExternal = new ConcurrentHashMap<Class, Service>();
+ protected final Map<Class, InboundWire> autowireInternal = new ConcurrentHashMap<Class, InboundWire>();
+ protected final Map<Class, InboundWire> autowireExternal = new ConcurrentHashMap<Class, InboundWire>();
+ protected final Map<Class, InboundWire> systemAutowireInternal = new ConcurrentHashMap<Class, InboundWire>();
+ protected final Map<Class, InboundWire> systemAutowireExternal = new ConcurrentHashMap<Class, InboundWire>();
protected CompositeComponentExtension(String name,
CompositeComponent parent,
@@ -78,6 +78,7 @@
super(name, parent);
this.propertyValues = propertyValues;
this.connector = connector;
+ // JFM FIXME
}
public Scope getScope() {
@@ -224,14 +225,6 @@
return null;
}
- public Object getServiceInstance() throws TargetResolutionException {
- Service service = services.get(0);
- if (service == null) {
- throw new TargetNotFoundException("Component has no services");
- }
- return service.getServiceInstance();
- }
-
public Service getSystemService(String name) {
SCAObject ctx = systemChildren.get(name);
if (ctx instanceof Service) {
@@ -240,52 +233,6 @@
return null;
}
- public <T> T locateService(Class<T> serviceInterface, String name) throws TargetResolutionException {
- SCAObject target = children.get(name);
- if (target == null) {
- TargetNotFoundException e = new TargetNotFoundException(name);
- e.addContextName(getName());
- throw e;
- }
- return serviceInterface.cast(target.getServiceInstance());
- }
-
- public <T> T locateSystemService(Class<T> serviceInterface, String name) throws TargetResolutionException {
- SCAObject object = systemChildren.get(name);
- if (object == null) {
- TargetNotFoundException e = new TargetNotFoundException(name);
- e.addContextName(getName());
- throw e;
- }
- return serviceInterface.cast(object.getServiceInstance());
- }
-
- public Object getServiceInstance(String name) throws TargetResolutionException {
- SCAObject context = children.get(name);
- if (context == null) {
- TargetNotFoundException e = new TargetNotFoundException(name);
- e.addContextName(getName());
- throw e;
- } else if (context instanceof Service) {
- return context.getServiceInstance();
- } else {
- throw new IllegalTargetException("Target must be a service", name);
- }
- }
-
- public Object getSystemServiceInstance(String name) throws TargetResolutionException {
- SCAObject target = systemChildren.get(name);
- if (target == null) {
- TargetNotFoundException e = new TargetNotFoundException(name);
- e.addContextName(getName());
- throw e;
- } else if (target instanceof Service) {
- return target.getServiceInstance();
- } else {
- throw new IllegalTargetException("Target must be a service", name);
- }
- }
-
public List<Class<?>> getServiceInterfaces() {
List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>(services.size());
synchronized (services) {
@@ -296,67 +243,46 @@
return serviceInterfaces;
}
- public <T> T resolveInstance(Class<T> instanceInterface) throws TargetResolutionException {
- if (CompositeComponent.class.equals(instanceInterface)) {
- return instanceInterface.cast(this);
- }
- SCAObject context = autowireInternal.get(instanceInterface);
- if (context != null) {
- try {
- if (context instanceof AtomicComponent || context instanceof Reference || context instanceof Service) {
- return instanceInterface.cast(context.getServiceInstance());
- } else {
- String interfaceName = instanceInterface.getName();
- throw new IllegalTargetException("Autowire target must be a system type", interfaceName);
- }
- } catch (CoreRuntimeException e) {
- e.addContextName(getName());
- throw e;
+ public InboundWire resolveAutowire(Class<?> instanceInterface) throws TargetResolutionException {
+ InboundWire wire = autowireInternal.get(instanceInterface);
+ if (wire != null) {
+ SCAObject parent = wire.getContainer();
+ if (parent instanceof AtomicComponent || parent instanceof Reference
+ || parent instanceof Service) {
+ return wire;
+ } else {
+ throw new IllegalTargetException("Autowire target must be a system type", parent.getName());
}
} else {
- if (CompositeComponent.class.isAssignableFrom(instanceInterface)) {
- return instanceInterface.cast(this);
- }
// resolve to parent
if (getParent() == null) {
return null;
}
- return getParent().resolveInstance(instanceInterface);
+ return getParent().resolveAutowire(instanceInterface);
}
}
- public <T> T resolveSystemInstance(Class<T> instanceInterface) throws TargetResolutionException {
- if (CompositeComponent.class.equals(instanceInterface)) {
- return instanceInterface.cast(this);
- }
- SCAObject context = systemAutowireInternal.get(instanceInterface);
- if (context != null) {
- try {
- if (context instanceof AtomicComponent || context instanceof Reference || context instanceof Service) {
- return instanceInterface.cast(context.getServiceInstance());
- } else {
- String interfaceName = instanceInterface.getName();
- throw new IllegalTargetException("Autowire target must be a system type", interfaceName);
- }
- } catch (CoreRuntimeException e) {
- e.addContextName(getName());
- throw e;
- }
+
+ public InboundWire resolveSystemAutowire(Class<?> instanceInterface) throws TargetResolutionException {
+ InboundWire wire = systemAutowireInternal.get(instanceInterface);
+ if (wire != null) {
+ return wire;
} else {
// resolve to parent
if (getParent() != null) {
- return getParent().resolveSystemInstance(instanceInterface);
+ return getParent().resolveSystemAutowire(instanceInterface);
} else {
return null;
}
}
}
- public <T> T resolveExternalInstance(Class<T> instanceInterface) throws TargetResolutionException {
- Service service = autowireExternal.get(instanceInterface);
- if (service != null) {
+
+ public InboundWire resolveExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException {
+ InboundWire wire = autowireExternal.get(instanceInterface);
+ if (wire != null) {
try {
- return instanceInterface.cast(service.getServiceInstance());
+ return wire;
} catch (CoreRuntimeException e) {
e.addContextName(getName());
throw e;
@@ -366,11 +292,11 @@
}
}
- public <T> T resolveSystemExternalInstance(Class<T> instanceInterface) throws TargetResolutionException {
- Service service = systemAutowireExternal.get(instanceInterface);
- if (service != null) {
+ public InboundWire resolveSystemExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException {
+ InboundWire wire = systemAutowireExternal.get(instanceInterface);
+ if (wire != null) {
try {
- return instanceInterface.cast(service.getServiceInstance());
+ return wire;
} catch (CoreRuntimeException e) {
e.addContextName(getName());
throw e;
@@ -427,7 +353,7 @@
}
}
- protected void registerAutowireExternal(Class<?> interfaze, Service service) {
+ protected void registerAutowireExternal(Class<?> interfaze, Service service) throws InvalidAutowireInterface {
if (interfaze == null) {
// The ServiceContract is not from Java
return;
@@ -436,52 +362,131 @@
if (systemAutowireExternal.containsKey(interfaze)) {
return;
}
- systemAutowireExternal.put(interfaze, service);
+ InboundWire wire = service.getInboundWire();
+ if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
+ throw new InvalidAutowireInterface("Matching inbound wire not found for interface",
+ interfaze.getName());
+ }
+ systemAutowireExternal.put(interfaze, wire);
} else {
if (autowireExternal.containsKey(interfaze)) {
return;
}
- autowireExternal.put(interfaze, service);
+ // JFM fixme hack remove null check; the null check is needed because of
+ // JDKWireService. public void createWires(Service service, String targetName, ServiceContract<?> contract)
+ // does not set the inbound wire on Composite Services. This should be changed
+ if (service.getInboundWire() != null) {
+ InboundWire wire = service.getInboundWire();
+ if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
+ String iName = interfaze.getName();
+ throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName);
+ }
+ autowireExternal.put(interfaze, service.getInboundWire());
+ }
}
}
- protected void registerAutowireInternal(Class<?> interfaze, SCAObject object) {
+ protected void registerAutowireInternal(Class<?> interfaze, Service service) throws InvalidAutowireInterface {
if (interfaze == null) {
// The ServiceContract is not from Java
return;
}
- if (object.isSystem()) {
+ if (service.isSystem()) {
if (systemAutowireInternal.containsKey(interfaze)) {
return;
}
- systemAutowireInternal.put(interfaze, object);
+ systemAutowireInternal.put(interfaze, service.getInboundWire());
} else {
if (autowireInternal.containsKey(interfaze)) {
return;
}
- autowireInternal.put(interfaze, object);
+ InboundWire wire = service.getInboundWire();
+ if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
+ String iName = interfaze.getName();
+ throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName);
+ }
+ autowireInternal.put(interfaze, wire);
+ }
+ }
+
+ protected void registerAutowireInternal(Class<?> interfaze, Reference reference) throws InvalidAutowireInterface {
+ if (interfaze == null) {
+ // The ServiceContract is not from Java
+ return;
+ }
+ if (reference.isSystem()) {
+ if (systemAutowireInternal.containsKey(interfaze)) {
+ return;
+ }
+ InboundWire wire = reference.getInboundWire();
+ if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
+ throw new InvalidAutowireInterface("Matching inbound wire not found for interface",
+ interfaze.getName());
+ }
+ systemAutowireInternal.put(interfaze, wire);
+ } else {
+ if (autowireInternal.containsKey(interfaze)) {
+ return;
+ }
+ InboundWire wire = reference.getInboundWire();
+ if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
+ String iName = interfaze.getName();
+ throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName);
+ }
+ autowireInternal.put(interfaze, reference.getInboundWire());
+ }
+ }
+
+ protected void registerAutowireInternal(Class<?> interfaze, AtomicComponent component)
+ throws InvalidAutowireInterface {
+ if (interfaze == null) {
+ // The ServiceContract is not from Java
+ return;
+ }
+ if (component.isSystem()) {
+ if (systemAutowireInternal.containsKey(interfaze) || component.getInboundWires().size() == 0) {
+ return;
+ }
+ for (InboundWire wire : component.getInboundWires().values()) {
+ if (wire.getServiceContract().getInterfaceClass().isAssignableFrom(interfaze)) {
+ systemAutowireInternal.put(interfaze, wire);
+ return;
+ }
+ }
+ throw new InvalidAutowireInterface("Matching inbound wire not found for interface", interfaze.getName());
+ } else {
+ if (autowireInternal.containsKey(interfaze) || component.getInboundWires().size() == 0) {
+ return;
+ }
+ for (InboundWire wire : component.getInboundWires().values()) {
+ if (interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
+ autowireInternal.put(interfaze, wire);
+ return;
+ }
+ }
+ throw new InvalidAutowireInterface("Matching inbound wire not found for interface", interfaze.getName());
}
}
- protected void registerAutowire(CompositeComponent component) {
+ protected void registerAutowire(CompositeComponent component) throws InvalidAutowireInterface {
List<Service> services = component.getServices();
for (Service service : services) {
registerAutowireInternal(service.getInterface(), service);
}
}
- protected void registerAutowire(AtomicComponent component) {
+ protected void registerAutowire(AtomicComponent component) throws InvalidAutowireInterface {
List<Class<?>> services = component.getServiceInterfaces();
for (Class<?> service : services) {
registerAutowireInternal(service, component);
}
}
- protected void registerAutowire(Reference reference) {
+ protected void registerAutowire(Reference reference) throws InvalidAutowireInterface {
registerAutowireInternal(reference.getInterface(), reference);
}
- protected void registerAutowire(Service service) {
+ protected void registerAutowire(Service service) throws InvalidAutowireInterface {
registerAutowireExternal(service.getInterface(), service);
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java Sat Dec 23 04:14:05 2006
@@ -22,7 +22,6 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
import org.apache.tuscany.spi.component.TargetInvokerCreationException;
-import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
@@ -76,10 +75,6 @@
public Class<?> getInterface() {
return referenceInterface;
- }
-
- public Object getServiceInstance() throws TargetResolutionException {
- return wireService.createProxy(inboundWire);
}
public WireInvocationHandler getHandler() {
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceExtension.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceExtension.java Sat Dec 23 04:14:05 2006
@@ -23,7 +23,6 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.component.TargetInvokerCreationException;
-import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
@@ -91,10 +90,6 @@
public TargetInvoker createCallbackTargetInvoker(ServiceContract contract, Operation operation)
throws TargetInvokerCreationException {
throw new UnsupportedOperationException();
- }
-
- public Object getServiceInstance() throws TargetResolutionException {
- return wireService.createProxy(inboundWire);
}
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java Sat Dec 23 04:14:05 2006
@@ -22,8 +22,6 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.SystemAtomicComponent;
-import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -31,7 +29,7 @@
/**
* @version $Rev$ $Date$
*/
-public abstract class SystemAtomicComponentExtension extends AtomicComponentExtension implements SystemAtomicComponent {
+public abstract class SystemAtomicComponentExtension extends AtomicComponentExtension {
protected List<Class<?>> interfazes;
public SystemAtomicComponentExtension(String name,
@@ -48,14 +46,6 @@
int initLevel) {
super(name, parent, scopeContainer, null, null, null, null, initLevel);
this.interfazes = serviceInterfaces;
- }
-
- public Object getServiceInstance() throws TargetResolutionException {
- return getTargetInstance();
- }
-
- public Object getServiceInstance(String name) throws TargetResolutionException {
- throw new UnsupportedOperationException();
}
public List<Class<?>> getServiceInterfaces() {
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java Sat Dec 23 04:14:05 2006
@@ -35,8 +35,7 @@
/**
* Introspects the given interface to produce a mapped service
*/
- JavaMappedService createService(Class<?> interfaze) throws InvalidServiceContractException,
- InvalidServiceContractException;
+ JavaMappedService createService(Class<?> interfaze) throws InvalidServiceContractException;
JavaMappedReference createReference(String name, Member member, Class<?> paramType) throws ProcessingException;
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java Sat Dec 23 04:14:05 2006
@@ -52,6 +52,10 @@
*/
void setTargetName(QualifiedName name);
+ boolean isAutowire();
+
+ void setAutowire(boolean val);
+
/**
* Sets the callback interface type generated proxies implement
*/
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireObjectFactory.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireObjectFactory.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireObjectFactory.java Sat Dec 23 04:14:05 2006
@@ -27,7 +27,6 @@
* @version $Rev$ $Date$
*/
public class WireObjectFactory implements ObjectFactory {
-
private RuntimeWire wire;
private WireService wireService;
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java Sat Dec 23 04:14:05 2006
@@ -23,8 +23,6 @@
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.Operation;
-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;
@@ -39,7 +37,7 @@
* Create a proxy for the supplied wire that implements the supplied interface.
*
* @param interfaze the interface that the proxy class must implement
- * @param wire the wire to connect the proxy to
+ * @param wire the wire to connect the proxy to
* @return a proxy that allows invocation of the wire
* @throws ProxyCreationException if there was a problem creating the proxy
*/
@@ -110,7 +108,7 @@
* @param def the model artifact representing the target reference
* @return the wire for flowing outbound invocations to a reference
*/
- OutboundWire createWire(ReferenceTarget reference, ReferenceDefinition def);
+ //OutboundWire createWire(ReferenceTarget reference, ReferenceDefinition def);
/**
* Creates wires for a component and injects them on the component
Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java Sat Dec 23 04:14:05 2006
@@ -106,9 +106,6 @@
return null;
}
- public Object getServiceInstance() throws TargetResolutionException {
- return null;
- }
}
private class TestEvent implements Event {
Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java Sat Dec 23 04:14:05 2006
@@ -78,15 +78,11 @@
super(null, null, scopeContainer, null, null, null, null, 0);
}
- public Object getServiceInstance() throws TargetResolutionException {
- return null;
- }
-
public Object createInstance() throws ObjectCreationException {
return null;
}
- public Object getServiceInstance(String name) throws TargetResolutionException {
+ public Object getTargetInstance() throws TargetResolutionException {
return null;
}
Modified: incubator/tuscany/java/sca/plugins/plugin.itest/src/main/java/org/apache/tuscany/sca/plugin/itest/MavenEmbeddedRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/plugins/plugin.itest/src/main/java/org/apache/tuscany/sca/plugin/itest/MavenEmbeddedRuntime.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/plugins/plugin.itest/src/main/java/org/apache/tuscany/sca/plugin/itest/MavenEmbeddedRuntime.java (original)
+++ incubator/tuscany/java/sca/plugins/plugin.itest/src/main/java/org/apache/tuscany/sca/plugin/itest/MavenEmbeddedRuntime.java Sat Dec 23 04:14:05 2006
@@ -29,16 +29,19 @@
import org.apache.tuscany.spi.bootstrap.ComponentNames;
import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
import org.apache.tuscany.spi.builder.BuilderException;
+import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.ComponentException;
import org.apache.tuscany.spi.component.ComponentRegistrationException;
import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.deployer.CompositeClassLoader;
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.services.artifact.ArtifactRepository;
+import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.core.bootstrap.Bootstrapper;
import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
@@ -61,6 +64,7 @@
private CompositeComponent application;
private ArtifactRepository artifactRepository;
+ // leave untyped b/c of QDox error
private Map extensions = new HashMap();
public void addExtension(String extensionName, URL extentionSCDL) {
@@ -110,7 +114,17 @@
tuscanySystem.start();
// switch to the system deployer
- deployer = (Deployer) tuscanySystem.getSystemChild("deployer").getServiceInstance();
+ SCAObject deployerComponent = tuscanySystem.getSystemChild(ComponentNames.TUSCANY_DEPLOYER);
+ if (!(deployerComponent instanceof AtomicComponent)) {
+ throw new InitializationException("Deployer must be an atomic component");
+ }
+ deployer = (Deployer) ((AtomicComponent) deployerComponent).getTargetInstance();
+
+ SCAObject wireServiceComponent = tuscanySystem.getSystemChild(ComponentNames.TUSCANY_WIRE_SERVICE);
+ if (!(wireServiceComponent instanceof AtomicComponent)) {
+ throw new InitializationException("WireService must be an atomic component");
+ }
+ WireService wireService = (WireService) ((AtomicComponent) wireServiceComponent).getTargetInstance();
for (Object extensionName : extensions.keySet()) {
deployExtension(tuscanySystem, deployer, (String) extensionName, (URL) extensions.get(extensionName));
@@ -123,7 +137,7 @@
getApplicationClassLoader());
application.start();
- context = new CompositeContextImpl(application);
+ context = new CompositeContextImpl(application, wireService);
} catch (LoaderException e) {
// FIXME do something with this
e.printStackTrace();
Modified: incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java (original)
+++ incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java Sat Dec 23 04:14:05 2006
@@ -23,7 +23,6 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.SCAObjectStartException;
-import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.extension.ServiceExtension;
import org.apache.tuscany.spi.wire.WireService;
@@ -64,11 +63,7 @@
super.start();
Properties properties = new Properties();
Object instance;
- try {
- instance = getServiceInstance();
- } catch (TargetException e) {
- throw new SCAObjectStartException(e);
- }
+ instance = wireService.createProxy(inboundWire);
if (instance instanceof ServiceFactory) {
host.registerService(osgiServiceName, instance, properties);
} else {
Modified: incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java Sat Dec 23 04:14:05 2006
@@ -25,11 +25,14 @@
import org.apache.tuscany.spi.bootstrap.ComponentNames;
import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
import org.apache.tuscany.spi.builder.BuilderException;
+import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.ComponentException;
import org.apache.tuscany.spi.component.ComponentRegistrationException;
import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.loader.LoaderException;
+import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.core.bootstrap.Bootstrapper;
import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
@@ -90,7 +93,17 @@
tuscanySystem.start();
// switch to the system deployer
- deployer = (Deployer) tuscanySystem.getSystemChild("deployer").getServiceInstance();
+ SCAObject deployerComponent = tuscanySystem.getSystemChild(ComponentNames.TUSCANY_DEPLOYER);
+ if (!(deployerComponent instanceof AtomicComponent)) {
+ throw new InitializationException("Deployer must be an atomic component");
+ }
+ deployer = (Deployer) ((AtomicComponent) deployerComponent).getTargetInstance();
+
+ SCAObject wireServiceComponent = tuscanySystem.getSystemChild(ComponentNames.TUSCANY_WIRE_SERVICE);
+ if (!(wireServiceComponent instanceof AtomicComponent)) {
+ throw new InitializationException("WireService must be an atomic component");
+ }
+ WireService wireService = (WireService) ((AtomicComponent) wireServiceComponent).getTargetInstance();
application = deployApplicationScdl(deployer,
runtime.getRootComponent(),
@@ -99,7 +112,7 @@
getApplicationClassLoader());
application.start();
- context = new CompositeContextImpl(application);
+ context = new CompositeContextImpl(application, wireService);
} catch (LoaderException e) {
// FIXME do something with this
e.printStackTrace();
Modified: incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/WebappRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/WebappRuntimeImpl.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/WebappRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/WebappRuntimeImpl.java Sat Dec 23 04:14:05 2006
@@ -27,11 +27,13 @@
import org.apache.tuscany.spi.bootstrap.ComponentNames;
import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
+import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.ComponentRegistrationException;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.event.EventPublisher;
+import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.core.bootstrap.Bootstrapper;
import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
@@ -103,7 +105,7 @@
// hence the need to register this twice
systemComponent.registerJavaObject(RuntimeInfo.COMPONENT_NAME,
RuntimeInfo.class,
- (WebappRuntimeInfo) getRuntimeInfo());
+ getRuntimeInfo());
systemComponent.registerJavaObject(WebappRuntimeInfo.COMPONENT_NAME,
WebappRuntimeInfo.class,
(WebappRuntimeInfo) getRuntimeInfo());
@@ -130,10 +132,24 @@
bootClassLoader);
tuscanySystem.start();
- requestInjector = (ServletRequestInjector) tuscanySystem.getSystemChild("servletHost").getServiceInstance();
+ SCAObject host = tuscanySystem.getSystemChild("servletHost");
+ if (!(host instanceof AtomicComponent)) {
+ throw new InitializationException("Servlet host must be an atomic component");
+ }
+ requestInjector = (ServletRequestInjector) ((AtomicComponent) host).getTargetInstance();
// switch to the system deployer
- deployer = (Deployer) tuscanySystem.getSystemChild("deployer").getServiceInstance();
+ SCAObject child = tuscanySystem.getSystemChild(ComponentNames.TUSCANY_DEPLOYER);
+ if (!(child instanceof AtomicComponent)) {
+ throw new InitializationException("Deployer must be an atomic component");
+ }
+ deployer = (Deployer) ((AtomicComponent) child).getTargetInstance();
+
+ SCAObject wireServiceComponent = tuscanySystem.getSystemChild(ComponentNames.TUSCANY_WIRE_SERVICE);
+ if (!(wireServiceComponent instanceof AtomicComponent)) {
+ throw new InitializationException("WireService must be an atomic component");
+ }
+ WireService wireService = (WireService) ((AtomicComponent) wireServiceComponent).getTargetInstance();
if (getApplicationScdl() == null) {
throw new TuscanyInitException("Could not find application SCDL");
@@ -157,7 +173,7 @@
current = (CompositeComponent) o;
}
}
- context = new CompositeContextImpl(current);
+ context = new CompositeContextImpl(current, wireService);
} catch (Exception e) {
throw new ServletLauncherInitException(e);
}
Modified: incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java Sat Dec 23 04:14:05 2006
@@ -18,7 +18,6 @@
*/
package org.apache.tuscany.binding.celtix;
-import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
@@ -42,7 +41,6 @@
import org.apache.tuscany.spi.CoreRuntimeException;
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.extension.ServiceExtension;
import org.apache.tuscany.spi.wire.WireService;
@@ -213,37 +211,41 @@
}
boolean inout = false;
- Class<?> serviceInterface = this.getInterface();
- Method meth = getMethod(serviceInterface, operationName.getLocalPart());
+ // Class<?> serviceInterface = this.getInterface();
+ // Method meth = getMethod(serviceInterface, operationName.getLocalPart());
- Object proxy = null;
- try {
- proxy = this.getServiceInstance();
- } catch (TargetException e) {
- throw new CeltixServiceInitException(e);
- }
-
- return new SCAServerDataBindingCallback(opInfo, inout, meth, proxy, typeHelper);
- }
-
- protected Method getMethod(Class<?> serviceInterface, String operationName) {
- // Note: this doesn't support overloaded operations
- Method[] methods = serviceInterface.getMethods();
- for (Method m : methods) {
- if (m.getName().equals(operationName)) {
- return m;
- }
- // tolerate WSDL with capatalized operation name
- StringBuilder sb = new StringBuilder(operationName);
- sb.setCharAt(0, Character.toLowerCase(sb.charAt(0)));
- if (m.getName().equals(sb.toString())) {
- return m;
- }
- }
- // FIXME
- throw new CeltixServiceInitException("no operation named " + operationName
- + " found on service interface: " + serviceInterface.getName());
- }
+ // Object proxy = null;
+// try {
+// // proxy = this.getServiceInstance();
+// } catch (TargetException e) {
+// throw new CeltixServiceInitException(e);
+// }
+
+ return new SCAServerDataBindingCallback(opInfo,
+ inout,
+ operationName.getLocalPart(),
+ getInboundWire(),
+ typeHelper);
+ }
+
+// protected Method getMethod(Class<?> serviceInterface, String operationName) {
+// // Note: this doesn't support overloaded operations
+// Method[] methods = serviceInterface.getMethods();
+// for (Method m : methods) {
+// if (m.getName().equals(operationName)) {
+// return m;
+// }
+// // tolerate WSDL with capatalized operation name
+// StringBuilder sb = new StringBuilder(operationName);
+// sb.setCharAt(0, Character.toLowerCase(sb.charAt(0)));
+// if (m.getName().equals(sb.toString())) {
+// return m;
+// }
+// }
+// // FIXME
+// throw new CeltixServiceInitException("no operation named " + operationName
+// + " found on service interface: " + serviceInterface.getName());
+// }
public DataBindingCallback getFaultDataBindingCallback(ObjectMessageContext objContext) {
// REVISIT - what to do about faults
Modified: incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/io/SCAServerDataBindingCallback.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/io/SCAServerDataBindingCallback.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/io/SCAServerDataBindingCallback.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/io/SCAServerDataBindingCallback.java Sat Dec 23 04:14:05 2006
@@ -19,39 +19,51 @@
package org.apache.tuscany.binding.celtix.io;
import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
+import java.util.Map;
-import commonj.sdo.helper.TypeHelper;
+import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.wire.InboundInvocationChain;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.MessageImpl;
+import commonj.sdo.helper.TypeHelper;
import org.objectweb.celtix.bindings.ServerDataBindingCallback;
import org.objectweb.celtix.bus.bindings.WSDLOperationInfo;
import org.objectweb.celtix.context.ObjectMessageContext;
/**
- *
* @version $Rev$ $Date$
*/
public class SCAServerDataBindingCallback extends SCADataBindingCallback
- implements ServerDataBindingCallback {
- Method method;
- Object targetObject;
+ implements ServerDataBindingCallback {
+ String operationName;
+ InboundWire wire;
public SCAServerDataBindingCallback(WSDLOperationInfo op,
boolean inout,
- Method meth,
- Object target,
+ String operationName,
+ InboundWire wire,
TypeHelper theTypeHelper) {
super(op, inout, theTypeHelper);
- method = meth;
- targetObject = target;
+ this.operationName = operationName;
+ this.wire = wire;
}
public void invoke(ObjectMessageContext octx) throws InvocationTargetException {
Object ret;
try {
- ret = method.invoke(targetObject, octx.getMessageObjects());
+ InboundInvocationChain chain = null;
+ for (Map.Entry<Operation<?>, InboundInvocationChain> entry : wire.getInvocationChains().entrySet()) {
+ if (entry.getKey().getName().equals(operationName)) {
+ chain = entry.getValue();
+ break;
+ }
+ }
+ MessageImpl msg = new MessageImpl();
+ msg.setBody(octx.getMessageObjects());
+ ret = chain.getHeadInterceptor().invoke(msg);
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
@@ -60,10 +72,10 @@
octx.setReturn(ret);
}
- public void initObjectContext(ObjectMessageContext octx) {
- Object o[] = new Object[method.getParameterTypes().length];
- //REVIST - holders?
- octx.setMessageObjects(o);
- }
+// public void initObjectContext(ObjectMessageContext octx) {
+// Object o[] = new Object[method.getParameterTypes().length];
+// //REVIST - holders?
+// octx.setMessageObjects(o);
+// }
}
Modified: incubator/tuscany/java/sca/services/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java Sat Dec 23 04:14:05 2006
@@ -19,6 +19,9 @@
package org.apache.tuscany.binding.celtix;
import java.net.URL;
+import java.util.Map;
+import java.util.HashMap;
+import java.lang.reflect.Type;
import javax.wsdl.Definition;
import javax.wsdl.Port;
import javax.wsdl.Service;
@@ -31,6 +34,11 @@
import org.apache.tuscany.spi.idl.java.JavaServiceContract;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.spi.wire.InboundInvocationChain;
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.MessageImpl;
+import org.apache.tuscany.spi.model.Operation;
import junit.framework.TestCase;
import org.easymock.classextension.EasyMock;
@@ -51,7 +59,21 @@
public void testGetDataBindingCallback() throws Exception {
CeltixService celtixService = createCeltixService();
-
+ Message msg = new MessageImpl();
+ msg.setBody("Hello Celtix");
+ Interceptor interceptor = EasyMock.createMock(Interceptor.class);
+ EasyMock.expect(interceptor.invoke(EasyMock.isA(Message.class))).andReturn(msg);
+ EasyMock.replay(interceptor);
+ InboundInvocationChain chain = EasyMock.createMock(InboundInvocationChain.class);
+ EasyMock.expect(chain.getHeadInterceptor()) .andReturn(interceptor);
+ EasyMock.replay(chain);
+ Map<Operation<?>,InboundInvocationChain> chains = new HashMap<Operation<?>, InboundInvocationChain>();
+ Operation<?> op = new Operation<Type>("greetMe", null, null, null);
+ chains.put(op, chain);
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getInvocationChains()).andReturn(chains);
+ EasyMock.replay(wire);
+ celtixService.setInboundWire(wire);
QName operationName = new QName("greetMe");
ObjectMessageContextImpl ctx = new ObjectMessageContextImpl();
ctx.setMessageObjects(new String[]{"Celtix"});
@@ -59,8 +81,8 @@
assertNotNull(callback1);
callback1.invoke(ctx);
- Object rtn = (String) ctx.getReturn();
- assertEquals("Hello Celtix", rtn);
+ Message rtn = (Message) ctx.getReturn();
+ assertEquals("Hello Celtix", rtn.getBody());
}
Modified: incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilder.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilder.java Sat Dec 23 04:14:05 2006
@@ -25,6 +25,7 @@
import org.apache.tuscany.spi.extension.BindingBuilderExtension;
import org.apache.tuscany.spi.host.ServletHost;
import org.apache.tuscany.spi.model.BoundServiceDefinition;
+import org.apache.tuscany.spi.wire.WireService;
/**
* Builds a Service for JSON-RPC binding.
@@ -33,13 +34,24 @@
*/
public class JSONRPCBindingBuilder extends BindingBuilderExtension<JSONRPCBinding> {
- ServletHost servletHost;
+ private ServletHost servletHost;
+ private WireService wireService;
@Autowire()
public void setServletHost(ServletHost servletHost) {
this.servletHost = servletHost;
}
+ @Autowire
+ public void setWireService(WireService wireService) {
+ this.wireService = wireService;
+ }
+
+
+ public ServletHost getServletHost() {
+ return servletHost;
+ }
+
protected Class<JSONRPCBinding> getBindingType() {
return JSONRPCBinding.class;
}
@@ -50,7 +62,7 @@
DeploymentContext deploymentContext) {
Class<?> interfaze = serviceDefinition.getServiceContract().getInterfaceClass();
- return new JSONRPCService(serviceDefinition.getName(), interfaze, parent, wireService, servletHost);
+ return new JSONRPCService(serviceDefinition.getName(), interfaze, parent, this.wireService, servletHost);
}
-}
+}
\ No newline at end of file
Modified: incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java Sat Dec 23 04:14:05 2006
@@ -18,13 +18,12 @@
*/
package org.apache.tuscany.binding.jsonrpc;
+import org.osoa.sca.annotations.Destroy;
+
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.SCAObjectStartException;
-import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.extension.ServiceExtension;
import org.apache.tuscany.spi.host.ServletHost;
import org.apache.tuscany.spi.wire.WireService;
-import org.osoa.sca.annotations.Destroy;
/**
* @version $Rev$ $Date$
@@ -37,7 +36,8 @@
public static final String SCRIPT_GETTER_SERVICE_MAPPING = "/SCA/scripts";
- public JSONRPCService(String theName, Class<?> interfaze, CompositeComponent parent, WireService wireService, ServletHost servletHost) {
+ public JSONRPCService(String theName, Class<?> interfaze, CompositeComponent parent, WireService wireService,
+ ServletHost servletHost) {
super(theName, interfaze, parent, wireService);
@@ -46,12 +46,10 @@
public synchronized void start() {
super.start();
- JSONRPCEntryPointServlet servlet;
- try {
- servlet = new JSONRPCEntryPointServlet(getName(), interfaze, this.getServiceInstance());
- } catch (TargetException e) {
- throw new SCAObjectStartException(e);
- }
+ JSONRPCEntryPointServlet servlet;
+ // FIXME this should not have to create a proxy but should instead dispatch directly down an invocation chain
+ Object instance = wireService.createProxy(interfaze, getInboundWire());
+ servlet = new JSONRPCEntryPointServlet(getName(), interfaze, instance);
// register the servlet based on the service name
servletHost.registerMapping("/" + getName(), servlet);
Modified: incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilderTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilderTestCase.java Sat Dec 23 04:14:05 2006
@@ -37,7 +37,7 @@
ServletHost mockServletHost = createMock(ServletHost.class);
replay(mockServletHost);
bindingBuilder.setServletHost(mockServletHost);
- assertEquals(mockServletHost, bindingBuilder.servletHost);
+ assertEquals(mockServletHost, bindingBuilder.getServletHost());
}
public void testGetBindingType() {
Modified: incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCServiceTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCServiceTestCase.java Sat Dec 23 04:14:05 2006
@@ -23,35 +23,42 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.host.ServletHost;
import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.spi.wire.InboundWire;
import static org.easymock.classextension.EasyMock.*;
+import org.easymock.EasyMock;
import junit.framework.TestCase;
public class JSONRPCServiceTestCase extends TestCase {
private static final String SERVICE_NAME = "test_service_name";
+ @SuppressWarnings({"unchecked"})
public void testStart() {
CompositeComponent mockParent = createMock(CompositeComponent.class);
replay(mockParent);
WireService mockWireService = createMock(WireService.class);
- expect(mockWireService.createProxy(null)).andReturn(this);
+ expect(mockWireService.createProxy(EasyMock.isA(Class.class), EasyMock.isA(InboundWire.class))).andReturn(this);
replay(mockWireService);
ServletHost mockServletHost = createMock(ServletHost.class);
expect(mockServletHost.isMappingRegistered(JSONRPCService.SCRIPT_GETTER_SERVICE_MAPPING)).andReturn(false);
mockServletHost.registerMapping(eq("/" + SERVICE_NAME), (Servlet) notNull());
mockServletHost.registerMapping(eq(JSONRPCService.SCRIPT_GETTER_SERVICE_MAPPING), (Servlet) notNull());
replay(mockServletHost);
-
+
JSONRPCService jsonRpcService = new JSONRPCService(SERVICE_NAME, this.getClass(), mockParent, mockWireService, mockServletHost );
+ InboundWire wire = EasyMock.createNiceMock(InboundWire.class);
+ EasyMock.replay(wire);
+ jsonRpcService.setInboundWire(wire);
jsonRpcService.start();
}
+ @SuppressWarnings({"unchecked"})
public void testStop() {
CompositeComponent mockParent = createMock(CompositeComponent.class);
replay(mockParent);
WireService mockWireService = createMock(WireService.class);
- expect(mockWireService.createProxy(null)).andReturn(this);
+ expect(mockWireService.createProxy(EasyMock.isA(Class.class), EasyMock.isA(InboundWire.class))).andReturn(this);
replay(mockWireService);
ServletHost mockServletHost = createMock(ServletHost.class);
expect(mockServletHost.isMappingRegistered(JSONRPCService.SCRIPT_GETTER_SERVICE_MAPPING)).andReturn(false);
@@ -62,6 +69,9 @@
replay(mockServletHost);
JSONRPCService jsonRpcService = new JSONRPCService(SERVICE_NAME, this.getClass(), mockParent, mockWireService, mockServletHost );
+ InboundWire wire = EasyMock.createNiceMock(InboundWire.class);
+ EasyMock.replay(wire);
+ jsonRpcService.setInboundWire(wire);
jsonRpcService.start();
jsonRpcService.stop();
}
Modified: incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java Sat Dec 23 04:14:05 2006
@@ -25,7 +25,6 @@
import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.ObjectFactory;
-import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.component.TargetNotFoundException;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.extension.AtomicComponentExtension;
@@ -95,21 +94,8 @@
return instance;
}
- public GroovyObject getTargetInstance() throws TargetException {
+ public GroovyObject getTargetInstance() throws TargetResolutionException {
return (GroovyObject) scopeContainer.getInstance(this);
- }
-
- public Object getServiceInstance() throws TargetResolutionException {
- //TODO this should return a default service from a wire
- return scopeContainer.getInstance(this);
- }
-
- public Object getServiceInstance(String service) throws TargetResolutionException {
- InboundWire wire = getInboundWire(service);
- if (wire == null) {
- throw new TargetNotFoundException("Service not found", service);
- }
- return wireService.createProxy(wire);
}
public void addPropertyFactory(String name, ObjectFactory<?> factory) {
Modified: incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java Sat Dec 23 04:14:05 2006
@@ -70,7 +70,7 @@
expect((String) factory.getInstance()).andReturn("bar");
replay(factory);
component.addPropertyFactory("property", factory);
- Greeting greeting = (Greeting) component.getServiceInstance();
+ Greeting greeting = (Greeting) component.getTargetInstance();
assertEquals("bar", greeting.greet("foo"));
}
Modified: incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java Sat Dec 23 04:14:05 2006
@@ -58,8 +58,8 @@
configuration.setServices(services);
configuration.setScopeContainer(scopeContainer);
configuration.setWireService(createWireService());
- GroovyAtomicComponent context = new GroovyAtomicComponent(configuration);
- GroovyObject object = (GroovyObject) context.getServiceInstance();
+ GroovyAtomicComponent component = new GroovyAtomicComponent(configuration);
+ GroovyObject object = component.getTargetInstance();
assertEquals("foo", object.invokeMethod("greet", "foo"));
}
Modified: incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java Sat Dec 23 04:14:05 2006
@@ -18,8 +18,6 @@
*/
package org.apache.tuscany.container.groovy;
-import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION;
-
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
@@ -27,6 +25,7 @@
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.model.Operation;
+import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION;
import org.apache.tuscany.spi.wire.InboundInvocationChain;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.Message;
@@ -34,11 +33,13 @@
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.WireService;
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;
import junit.framework.TestCase;
import org.apache.tuscany.container.groovy.mock.Greeting;
+import org.apache.tuscany.test.ArtifactFactory;
import static org.apache.tuscany.test.ArtifactFactory.createInboundWire;
import static org.apache.tuscany.test.ArtifactFactory.createOutboundWire;
import static org.apache.tuscany.test.ArtifactFactory.createWireService;
@@ -81,6 +82,7 @@
private Class<? extends GroovyObject> implClass1;
private Class<? extends GroovyObject> implClass2;
private ScopeContainer scopeContainer;
+ private WireService wireService;
/**
* Tests a basic invocation down a source wire
@@ -109,7 +111,7 @@
chain.setTargetInvoker(invoker);
}
component.addOutboundWire(wire);
- Greeting greeting = (Greeting) component.getServiceInstance();
+ Greeting greeting = (Greeting) component.getTargetInstance();
assertEquals("foo", greeting.greet("foo"));
verify(invoker);
}
@@ -171,10 +173,11 @@
chain.setTargetInvoker(component.createTargetInvoker(null, chain.getOperation(), null));
}
component.addInboundWire(wire);
- Greeting greeting = (Greeting) component.getServiceInstance("Greeting");
+ Greeting greeting = wireService.createProxy(Greeting.class, component.getInboundWire("Greeting"));
assertEquals("foo", greeting.greet("foo"));
}
+ @SuppressWarnings({"unchecked"})
protected void setUp() throws Exception {
super.setUp();
GroovyClassLoader cl = new GroovyClassLoader(getClass().getClassLoader());
@@ -187,5 +190,6 @@
}
});
replay(scopeContainer);
+ wireService = ArtifactFactory.createWireService();
}
}
Modified: incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java Sat Dec 23 04:14:05 2006
@@ -25,7 +25,6 @@
import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.component.TargetNotFoundException;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.component.WorkContext;
@@ -104,20 +103,8 @@
return properties;
}
- public RhinoScriptInstance getTargetInstance() throws TargetException {
+ public RhinoScriptInstance getTargetInstance() throws TargetResolutionException {
return (RhinoScriptInstance) scopeContainer.getInstance(this);
- }
-
- public Object getServiceInstance() throws TargetResolutionException {
- return getServiceInstance(null);
- }
-
- public Object getServiceInstance(String service) throws TargetResolutionException {
- InboundWire wire = getInboundWire(service);
- if (wire == null) {
- throw new TargetNotFoundException("ServiceDefinition not found", service);
- }
- return wireService.createProxy(wire);
}
}
Modified: incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptIntrospector.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptIntrospector.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptIntrospector.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptIntrospector.java Sat Dec 23 04:14:05 2006
@@ -80,6 +80,7 @@
try {
ServiceContract<?> sc = processorRegistry.introspect(Class.forName(serviceClass));
service.setServiceContract(sc);
+ service.setName(sc.getInterfaceClass().getName());
componentType.add(service);
} catch (ClassNotFoundException e) {
throw new MissingResourceException("Interface not found", e);
Modified: incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java Sat Dec 23 04:14:05 2006
@@ -18,26 +18,25 @@
*/
package org.apache.tuscany.container.javascript;
-import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION;
-
-import static org.easymock.EasyMock.reportMatcher;
-
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.container.javascript.mock.Greeting;
-import org.apache.tuscany.container.javascript.rhino.RhinoScript;
-import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
import org.apache.tuscany.spi.model.Operation;
+import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION;
import org.apache.tuscany.spi.wire.InboundInvocationChain;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.WireService;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.container.javascript.mock.Greeting;
+import org.apache.tuscany.container.javascript.rhino.RhinoScript;
+import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
import org.apache.tuscany.test.ArtifactFactory;
+import static org.easymock.EasyMock.reportMatcher;
import org.easymock.IArgumentMatcher;
/**
@@ -61,6 +60,7 @@
private RhinoScript implClass1;
private RhinoScript implClass2;
+ private WireService wireService;
/**
* Tests a basic invocation down a source wire
@@ -150,13 +150,14 @@
chain.setTargetInvoker(context.createTargetInvoker(null, chain.getOperation(), null));
}
context.addInboundWire(wire);
- Greeting greeting = (Greeting) context.getServiceInstance("Greeting");
+ Greeting greeting = wireService.createProxy(Greeting.class, context.getInboundWire("Greeting"));
assertEquals("foo", greeting.greet("foo"));
scope.stop();
}
protected void setUp() throws Exception {
super.setUp();
+ wireService = ArtifactFactory.createWireService();
implClass1 = new RhinoScript("script1", SCRIPT);
implClass2 = new RhinoScript("script2", SCRIPT2);
}
Modified: incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/HelloWorld.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/HelloWorld.componentType?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/HelloWorld.componentType (original)
+++ incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/HelloWorld.componentType Sat Dec 23 04:14:05 2006
@@ -20,7 +20,7 @@
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <service name="HelloWorldService">
+ <service name="helloworld.HelloWorldService">
<interface.java interface="helloworld.HelloWorldService"/>
</service>
</componentType>
Modified: incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/e4x.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/e4x.componentType?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/e4x.componentType (original)
+++ incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/e4x.componentType Sat Dec 23 04:14:05 2006
@@ -20,7 +20,7 @@
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <service name="HelloWorldService">
+ <service name="helloworld.HelloWorldService">
<!-- <interface.wsdl interface="http://integration.rhino.container.tuscany.apache.org#HelloWorld"/> -->
<interface.java interface="helloworld.HelloWorldService"/>
</service>
Modified: incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/propertyTest.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/propertyTest.componentType?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/propertyTest.componentType (original)
+++ incubator/tuscany/java/sca/services/containers/container.javascript/src/test/resources/org/apache/tuscany/container/javascript/function/propertyTest.componentType Sat Dec 23 04:14:05 2006
@@ -19,7 +19,7 @@
-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <service name="HelloWorldService">
+ <service name="helloworld.HelloWorldService">
<interface.java interface="helloworld.HelloWorldService"/>
</service>
Modified: incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponent.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponent.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponent.java Sat Dec 23 04:14:05 2006
@@ -25,7 +25,6 @@
import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.component.TargetNotFoundException;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.component.WorkContext;
@@ -121,21 +120,8 @@
return properties;
}
- public RubyScriptInstance getTargetInstance() throws TargetException {
+ public RubyScriptInstance getTargetInstance() throws TargetResolutionException {
return (RubyScriptInstance) scopeContainer.getInstance(this);
- }
-
- public Object getServiceInstance() throws TargetResolutionException {
- return getServiceInstance(null);
- }
-
- @SuppressWarnings("unchecked")
- public Object getServiceInstance(String service) throws TargetResolutionException {
- InboundWire wire = getInboundWire(service);
- if (wire == null) {
- throw new TargetNotFoundException("ServiceDefinition not found", service); // TODO better error message
- }
- return wireService.createProxy(wire);
}
}
Modified: incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyIntrospector.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyIntrospector.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyIntrospector.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyIntrospector.java Sat Dec 23 04:14:05 2006
@@ -80,6 +80,7 @@
try {
ServiceContract<?> sc = processorRegistry.introspect(Class.forName(serviceClass));
service.setServiceContract(sc);
+ service.setName(sc.getInterfaceClass().getName());
componentType.add(service);
} catch (ClassNotFoundException e) {
throw new MissingResourceException("Interface not found", e);
Modified: incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/WireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/WireTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/WireTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/WireTestCase.java Sat Dec 23 04:14:05 2006
@@ -18,24 +18,23 @@
*/
package org.apache.tuscany.container.ruby;
-import static org.easymock.EasyMock.reportMatcher;
-
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.container.ruby.mock.Greeting;
-import org.apache.tuscany.container.ruby.rubyscript.RubyScript;
-import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
-
import org.apache.tuscany.spi.model.DataType;
import org.apache.tuscany.spi.wire.InboundInvocationChain;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.WireService;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.container.ruby.mock.Greeting;
+import org.apache.tuscany.container.ruby.rubyscript.RubyScript;
+import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
import org.apache.tuscany.test.ArtifactFactory;
+import static org.easymock.EasyMock.reportMatcher;
import org.easymock.IArgumentMatcher;
/**
@@ -44,15 +43,16 @@
public class WireTestCase extends TestCase {
private static final String SCRIPT = " def setWire(ref)\n" + " wire = ref\n"
- + "end \n" + " def greet(name)\n" + " return wire.greet(name) \n"
- + " end\n";
+ + "end \n" + " def greet(name)\n" + " return wire.greet(name) \n"
+ + " end\n";
private static final String SCRIPT2 = " def greet(name)\n" + " return name \n"
- + "end \n";
+ + "end \n";
private RubyScript implClass1;
private RubyScript implClass2;
+ private WireService wireSerivce;
/**
* Tests a basic invocation down a source wire
@@ -113,19 +113,19 @@
scope.start();
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
- Map<String, Object> properties = new Hashtable<String,Object>();
- properties.put("greeting","HeyThere");
-
+ Map<String, Object> properties = new Hashtable<String, Object>();
+ properties.put("greeting", "HeyThere");
+
RubyComponent context = new RubyComponent("source",
- implClass2,
- null,
- services,
- properties,
- null,
- scope,
- ArtifactFactory.createWireService(),
- null,
- null);
+ implClass2,
+ null,
+ services,
+ properties,
+ null,
+ scope,
+ ArtifactFactory.createWireService(),
+ null,
+ null);
scope.register(context);
DataType<String> returnDataType = new DataType<String>(String.class, String.class.getName());
// Operation<String> operation = new Operation<String>("greet",
@@ -150,36 +150,37 @@
scope.start();
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
- Map<String, Object> properties = new Hashtable<String,Object>();
- properties.put("greeting","HeyThere");
+ Map<String, Object> properties = new Hashtable<String, Object>();
+ properties.put("greeting", "HeyThere");
RubyComponent context = new RubyComponent("source",
- implClass2,
- null,
- services,
- properties,
- null,
- scope,
- ArtifactFactory.createWireService(),
- null,
- null);
+ implClass2,
+ null,
+ services,
+ properties,
+ null,
+ scope,
+ ArtifactFactory.createWireService(),
+ null,
+ null);
scope.register(context);
InboundWire wire = ArtifactFactory.createInboundWire("Greeting",
- Greeting.class);
+ Greeting.class);
ArtifactFactory.terminateWire(wire);
for (InboundInvocationChain chain : wire.getInvocationChains().values()) {
chain.setTargetInvoker(context.createTargetInvoker(null,
- chain.getOperation(), null));
+ chain.getOperation(), null));
}
context.addInboundWire(wire);
- Greeting greeting = (Greeting) context.getServiceInstance("Greeting");
+ Greeting greeting = wireSerivce.createProxy(Greeting.class, context.getInboundWire("Greeting"));
assertEquals("foo",
- greeting.greet("foo"));
+ greeting.greet("foo"));
scope.stop();
}
protected void setUp() throws Exception {
super.setUp();
+ wireSerivce = ArtifactFactory.createWireService();
implClass1 = new RubyScript("script1", SCRIPT);
implClass2 = new RubyScript("script2", SCRIPT2);
}
Modified: incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/HelloWorld.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/HelloWorld.componentType?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/HelloWorld.componentType (original)
+++ incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/HelloWorld.componentType Sat Dec 23 04:14:05 2006
@@ -18,7 +18,7 @@
* under the License.
-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <service name="HelloWorldService">
+ <service name="helloworld.HelloWorldService">
<interface.java interface="helloworld.HelloWorldService"/>
</service>
<reference name="extHelloWorld">
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org