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 [6/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/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/propertyTest.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/propertyTest.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/propertyTest.componentType (original)
+++ incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/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>
<property name="GREETING" type="xsd:string">Bow Wow</property>
Modified: incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java Sat Dec 23 04:14:05 2006
@@ -22,7 +22,6 @@
import java.util.List;
import org.apache.tuscany.spi.ObjectCreationException;
-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;
@@ -71,24 +70,11 @@
return services;
}
- public Object getServiceInstance() throws TargetResolutionException {
- return getServiceInstance(null);
- }
-
protected void onReferenceWire(OutboundWire wire) {
factory.addContextObjectFactory(wire.getReferenceName(), new WireObjectFactory(wire, wireService));
}
- @SuppressWarnings("unchecked")
- 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 Object getTargetInstance() throws TargetException {
+ public Object getTargetInstance() throws TargetResolutionException {
return scopeContainer.getInstance(this);
}
Modified: incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java Sat Dec 23 04:14:05 2006
@@ -28,14 +28,10 @@
import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.RuntimeWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.WireService;
import junit.framework.TestCase;
import org.easymock.EasyMock;
-import org.easymock.IAnswer;
public class ScriptComponentTestCase extends TestCase {
@@ -51,41 +47,6 @@
operation.setServiceContract(new Contract<Type>(List.class));
TargetInvoker invoker = component.createTargetInvoker("hashCode", operation, null);
assertNotNull(invoker);
- }
-
- @SuppressWarnings("unchecked")
- public void testGetServiceInstance() throws Exception {
- WireService wireService = EasyMock.createMock(WireService.class);
- EasyMock.expect(wireService.createProxy(EasyMock.isA(RuntimeWire.class))).andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return "foo";
- }
- });
- EasyMock.replay(wireService);
- ComponentConfiguration config = new ComponentConfiguration();
- config.setName("foo");
- config.setScopeContainer(container);
- config.setWireService(wireService);
- ScriptComponent pc = new ScriptComponent(config);
- InboundWire wire = EasyMock.createMock(InboundWire.class);
- EasyMock.expect(wire.getServiceName()).andReturn("foo");
- EasyMock.replay(wire);
- pc.addInboundWire(wire);
- assertEquals("foo", pc.getServiceInstance());
- EasyMock.verify(wireService);
- }
-
- public void testGetServiceInstanceFail() {
- ComponentConfiguration config = new ComponentConfiguration();
- config.setName("foo");
- config.setScopeContainer(container);
- ScriptComponent pc = new ScriptComponent(config);
- try {
- pc.getServiceInstance();
- fail();
- } catch (TargetException e) {
- // expected
- }
}
public void testGetServiceInterfaces() {
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java Sat Dec 23 04:14:05 2006
@@ -20,6 +20,7 @@
import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.builder.BuilderException;
+import org.apache.tuscany.spi.builder.BuilderInstantiationException;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.ComponentRegistrationException;
import org.apache.tuscany.spi.component.CompositeComponent;
@@ -37,7 +38,6 @@
import org.apache.tuscany.container.spring.model.SpringComponentType;
import org.apache.tuscany.container.spring.model.SpringImplementation;
-import org.apache.tuscany.spi.builder.BuilderInstantiationException;
import org.springframework.core.io.Resource;
/**
@@ -54,7 +54,8 @@
String name = componentDefinition.getName();
SpringImplementation implementation = componentDefinition.getImplementation();
Resource resource = implementation.getApplicationResource();
- SpringCompositeComponent component = new SpringCompositeComponent(name, resource, parent, connector, null);
+ SpringCompositeComponent component =
+ new SpringCompositeComponent(name, resource, parent, wireService, connector, null);
SpringComponentType<Property<?>> componentType = implementation.getComponentType();
// We need to set the target invoker as opposed to having the connector do it since the
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java Sat Dec 23 04:14:05 2006
@@ -31,16 +31,15 @@
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.extension.CompositeComponentExtension;
import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.container.spring.context.SCAApplicationContext;
-import org.springframework.beans.BeanInstantiationException;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanNotOfRequiredTypeException;
@@ -63,6 +62,7 @@
private static final String[] EMPTY_ARRAY = new String[0];
private AbstractApplicationContext springContext;
private Resource resource;
+ private WireService wireService;
/**
* Creates a new composite
@@ -70,23 +70,26 @@
* @param name the name of the SCA composite
* @param resource a resource pointing to the application context
* @param parent the SCA composite parent
+ * @param wireService the wire service to create proxies
* @param connector the connector to use for wiring children
* @param propertyValues the values of this composite's Properties
*/
public SpringCompositeComponent(String name,
Resource resource,
CompositeComponent parent,
+ WireService wireService,
Connector connector,
Map<String, Document> propertyValues) {
super(name, parent, connector, propertyValues);
this.resource = resource;
+ this.wireService = wireService;
}
/**
* Creates a new composite
*
* @param name the name of the SCA composite
- * @param context
+ * @param context the Spring application context
* @param parent the SCA composite parent
* @param connector the connector to use for wiring children
* @param propertyValues the values of this composite's Properties
@@ -142,7 +145,7 @@
springContext.stop();
}
- public <T> T locateService(Class<T> serviceInterface, String name) {
+ public <T> T getBean(Class<T> serviceInterface, String name) {
return serviceInterface.cast(springContext.getBean(name));
}
@@ -165,20 +168,23 @@
}
Class<?> type;
if (object instanceof Reference) {
- type = ((Reference) object).getInterface();
+ Reference reference = (Reference) object;
+ type = reference.getInterface();
+ if (requiredType != null && requiredType.isAssignableFrom(type)) {
+ // need null check since Spring may pass in a null
+ throw new BeanNotOfRequiredTypeException(name, requiredType, type);
+ }
+ return wireService.createProxy(type, reference.getInboundWire());
} else if (object instanceof Service) {
- type = ((Service) object).getInterface();
+ Service service = (Service) object;
+ type = service.getInterface();
+ if (requiredType != null && requiredType.isAssignableFrom(type)) {
+ // need null check since Spring may pass in a null
+ throw new BeanNotOfRequiredTypeException(name, requiredType, type);
+ }
+ return wireService.createProxy(type, service.getInboundWire());
} else {
throw new AssertionError("Illegal object type [" + name + "]");
- }
- if (requiredType != null && requiredType.isAssignableFrom(type)) {
- // need null check since Spring may pass in a null
- throw new BeanNotOfRequiredTypeException(name, requiredType, type);
- }
- try {
- return object.getServiceInstance();
- } catch (TargetException e) {
- throw new BeanInstantiationException(requiredType, "Error returning service or reference", e);
}
}
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java Sat Dec 23 04:14:05 2006
@@ -52,7 +52,7 @@
public Object invokeTarget(final Object object, final short sequence) throws InvocationTargetException {
if (bean == null) {
try {
- bean = component.locateService(Object.class, beanName);
+ bean = component.getBean(Object.class, beanName);
if (bean == null) {
throw new InvocationTargetException(new TargetNotFoundException(beanName));
}
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java Sat Dec 23 04:14:05 2006
@@ -21,10 +21,12 @@
import java.net.URL;
import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.model.ServiceContract;
import junit.framework.TestCase;
import org.apache.tuscany.container.spring.mock.TestBean;
-import org.apache.tuscany.container.spring.mock.TestBeanImpl;
+import org.easymock.EasyMock;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
@@ -41,18 +43,20 @@
public void testInvocation() throws Exception {
URL url = getClass().getClassLoader().getResource("META-INF/sca/testReferenceContext.xml");
Resource resource = new UrlResource(url);
- SpringCompositeComponent parent = new SpringCompositeComponent("spring", resource, null, null, null);
- TestBean referenceTarget = new TestBeanImpl();
+ SpringCompositeComponent parent = new SpringCompositeComponent("spring", resource, null, null, null, null);
+ InboundWire inboundWire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(inboundWire.getServiceContract()).andReturn(new ServiceContract(TestBean.class){});
+ EasyMock.replay(inboundWire);
Reference reference = createMock(Reference.class);
expect(reference.getName()).andReturn("bar").anyTimes();
expect(reference.isSystem()).andReturn(false).atLeastOnce();
expect(reference.getInterface()).andStubReturn(TestBean.class);
- expect(reference.getServiceInstance()).andStubReturn(referenceTarget);
+ expect(reference.getInboundWire()).andStubReturn(inboundWire);
reference.start();
replay(reference);
parent.register(reference);
parent.start();
- parent.locateService(TestBean.class, "testBean");
+ parent.getBean(TestBean.class, "testBean");
}
}
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java Sat Dec 23 04:14:05 2006
@@ -25,6 +25,7 @@
import org.apache.tuscany.spi.wire.InboundInvocationChain;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.WireService;
import junit.framework.TestCase;
import org.apache.tuscany.container.spring.mock.TestBean;
@@ -41,6 +42,7 @@
* @version $$Rev$$ $$Date$$
*/
public class ServiceInvocationTestCase extends TestCase {
+ private WireService wireService;
public void testInvocation() throws Exception {
AbstractApplicationContext springContext = createSpringContext();
@@ -54,12 +56,15 @@
service.setInboundWire(inboundWire);
service.setOutboundWire(outboundWire);
Connector connector = ArtifactFactory.createConnector();
+ outboundWire.setContainer(service);
+ inboundWire.setContainer(service);
connector.connect(inboundWire, outboundWire, true);
for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) {
chain.setTargetInvoker(composite.createTargetInvoker("foo", chain.getOperation(), null));
}
composite.register(service);
- TestBean serviceInstance = (TestBean) composite.getService("fooService").getServiceInstance();
+ InboundWire wire = composite.getService("fooService").getInboundWire();
+ TestBean serviceInstance = wireService.createProxy(TestBean.class, wire);
assertEquals("bar", serviceInstance.echo("bar"));
}
@@ -72,4 +77,9 @@
return beanFactory;
}
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ wireService = ArtifactFactory.createWireService();
+ }
}
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java Sat Dec 23 04:14:05 2006
@@ -64,13 +64,15 @@
public void testImplicitServiceWiring() throws Exception {
// Create a service instance that the mock builder registry will return
WireService wireService = ArtifactFactory.createWireService();
- ServiceExtension serviceContext =
+ ServiceExtension service =
new ServiceExtension("fooService", TestBean.class, null, wireService);
InboundWire inboundWire = ArtifactFactory.createInboundWire("fooService", TestBean.class);
OutboundWire outboundWire = ArtifactFactory.createOutboundWire("fooService", TestBean.class);
ArtifactFactory.terminateWire(outboundWire);
- serviceContext.setInboundWire(inboundWire);
- serviceContext.setOutboundWire(outboundWire);
+ service.setInboundWire(inboundWire);
+ service.setOutboundWire(outboundWire);
+ inboundWire.setContainer(service);
+ outboundWire.setContainer(service);
Connector connector = ArtifactFactory.createConnector();
connector.connect(inboundWire, outboundWire, true);
@@ -78,7 +80,7 @@
BuilderRegistry registry = createMock(BuilderRegistry.class);
expect(registry.build(isA(CompositeComponent.class),
isA(BoundServiceDefinition.class),
- isA(DeploymentContext.class))).andStubReturn(serviceContext);
+ isA(DeploymentContext.class))).andStubReturn(service);
replay(registry);
// Test the SpringCompositeBuilder
@@ -89,8 +91,8 @@
DeploymentContext context = createNiceMock(DeploymentContext.class);
CompositeComponent component = (CompositeComponent) builder.build(parent, definition, context);
component.start();
- Service service = component.getService("fooService");
- TestBean bean = (TestBean) service.getServiceInstance();
+ Service fooService = component.getService("fooService");
+ TestBean bean = wireService.createProxy(TestBean.class, fooService.getInboundWire());
assertEquals("call foo", bean.echo("call foo"));
verify(registry);
}
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java Sat Dec 23 04:14:05 2006
@@ -40,7 +40,7 @@
EasyMock.expectLastCall();
EasyMock.replay(bean);
SpringCompositeComponent context = EasyMock.createMock(SpringCompositeComponent.class);
- EasyMock.expect(context.locateService(Object.class, "foo")).andReturn(bean);
+ EasyMock.expect(context.getBean(Object.class, "foo")).andReturn(bean);
EasyMock.replay(context);
SpringInvoker invoker = new SpringInvoker("foo", TestBean.class.getMethod("test", String.class), context);
Message msg = new MessageImpl();
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java Sat Dec 23 04:14:05 2006
@@ -4,10 +4,12 @@
import org.osoa.sca.CurrentCompositeContext;
import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.container.spring.impl.SpringCompositeComponent;
import org.apache.tuscany.container.spring.mock.TestBean;
import org.apache.tuscany.test.SCATestCase;
+import org.apache.tuscany.test.ArtifactFactory;
/**
* Bootstraps a simple scenario where a service can invoke a Spring bean. This test case is intended to be temporary and
@@ -19,16 +21,18 @@
*/
public class BootstrapTestCase extends SCATestCase {
private CompositeContext context;
+ private WireService wireService;
public void testDemoBoot() throws Exception {
SpringCompositeComponent comp = (SpringCompositeComponent) component.getChild("Spring");
Service service = (Service) comp.getChild("fooService");
- TestBean bean = (TestBean) service.getServiceInstance();
+ TestBean bean = wireService.createProxy(TestBean.class, service.getInboundWire());
bean.echo("foo");
bean.getBean().echo("foo");
}
protected void setUp() throws Exception {
+ wireService = ArtifactFactory.createWireService();
addExtension("spring.extension", getClass().getClassLoader().getResource("META-INF/sca/spring.system.scdl"));
setApplicationSCDL(getClass().getClassLoader().getResource("META-INF/sca/default.scdl"));
super.setUp();
Modified: incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java Sat Dec 23 04:14:05 2006
@@ -25,8 +25,8 @@
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.component.ComponentRegistrationException;
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.SystemAtomicComponent;
import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.implementation.java.ImplementationProcessorExtension;
import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
@@ -59,7 +59,7 @@
}
String unitName = annotation.unitName();
- SystemAtomicComponent component = (SystemAtomicComponent) parent.getSystemChild(unitName);
+ AtomicComponent component = (AtomicComponent) parent.getSystemChild(unitName);
EntityManagerFactory emf;
if (component == null) {
emf = builder.newEntityManagerFactory(unitName, context.getClassLoader());
Modified: incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/PersistenceUnitTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/PersistenceUnitTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/PersistenceUnitTestCase.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/PersistenceUnitTestCase.java Sat Dec 23 04:14:05 2006
@@ -1,10 +1,10 @@
package org.apache.tuscany.service.persistence.common;
import static org.apache.tuscany.spi.bootstrap.ComponentNames.TUSCANY_SYSTEM;
-
-import org.apache.tuscany.core.implementation.java.JavaAtomicComponent;
import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
import org.apache.tuscany.spi.component.CompositeComponent;
+
+import org.apache.tuscany.core.implementation.java.JavaAtomicComponent;
import org.apache.tuscany.test.SCATestCase;
public class PersistenceUnitTestCase extends SCATestCase {
@@ -17,16 +17,16 @@
RuntimeComponent runtime = (RuntimeComponent) component.getParent().getParent();
CompositeComponent systemComposite = runtime.getSystemComponent();
CompositeComponent topLevelComposite = (CompositeComponent) systemComposite.getSystemChild(TUSCANY_SYSTEM);
-
- JavaAtomicComponent cmp = (JavaAtomicComponent)component.getChild("TestService1");
- TestService1 testService1 = (TestService1) cmp.getServiceInstance();
+
+ JavaAtomicComponent cmp = (JavaAtomicComponent) component.getChild("TestService1");
+ TestService1 testService1 = (TestService1) cmp.getTargetInstance();
testService1.testMethod();
}
protected void tearDown() throws Exception {
super.tearDown();
}
-
+
public void testGetComponent() {
}
Modified: incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/DHCPBootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/DHCPBootstrapTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/DHCPBootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/DHCPBootstrapTestCase.java Sat Dec 23 04:14:05 2006
@@ -22,6 +22,8 @@
import java.net.URL;
import javax.sql.DataSource;
+import org.apache.tuscany.spi.component.AtomicComponent;
+
import org.apache.tuscany.test.SCATestCase;
/**
@@ -32,7 +34,7 @@
public class DHCPBootstrapTestCase extends SCATestCase {
public void testBasicConnection() throws Exception {
- DataSource ds = (DataSource) component.getSystemChild("TestDS").getServiceInstance();
+ DataSource ds = (DataSource) ((AtomicComponent)component.getSystemChild("TestDS")).getTargetInstance();
assertNotNull(ds);
Connection conn = ds.getConnection();
conn.createStatement().execute("CREATE TABLE foo (bar char(20));");
Modified: incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/ProviderBootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/ProviderBootstrapTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/ProviderBootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/ProviderBootstrapTestCase.java Sat Dec 23 04:14:05 2006
@@ -21,6 +21,8 @@
import java.net.URL;
import javax.sql.DataSource;
+import org.apache.tuscany.spi.component.AtomicComponent;
+
import org.apache.tuscany.persistence.datasource.integration.mock.Provider;
import org.apache.tuscany.test.SCATestCase;
@@ -33,7 +35,7 @@
public class ProviderBootstrapTestCase extends SCATestCase {
public void testBoot() throws Exception {
- DataSource ds = (DataSource) component.getSystemChild("TestDS").getServiceInstance();
+ DataSource ds = (DataSource) ((AtomicComponent)component.getSystemChild("TestDS")).getTargetInstance();
assertNotNull(ds);
assertEquals("value", ((Provider) ds).getTest());
}
Added: incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java?view=auto&rev=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java (added)
+++ incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java Sat Dec 23 04:14:05 2006
@@ -0,0 +1,31 @@
+/*
+ * 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.service.openjpa;
+
+import org.apache.tuscany.spi.implementation.java.ProcessingException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class EntityManagerFactoryNotConfiguredException extends ProcessingException {
+
+ public EntityManagerFactoryNotConfiguredException() {
+ super("Entity manager factory not configured");
+ }
+}
Propchange: incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java (original)
+++ incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java Sat Dec 23 04:14:05 2006
@@ -32,6 +32,7 @@
import org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
import org.apache.tuscany.spi.implementation.java.ProcessingException;
+import org.apache.tuscany.spi.wire.InboundWire;
/**
@@ -70,7 +71,13 @@
DeploymentContext context) throws ProcessingException {
EntityManagerFactory emf;
try {
- emf = parent.resolveSystemInstance(EntityManagerFactory.class);
+ InboundWire wire = parent.resolveSystemAutowire(EntityManagerFactory.class);
+ if (wire == null) {
+ throw new EntityManagerFactoryNotConfiguredException();
+ }
+ Object o = wire.getTargetService();
+ assert o instanceof EntityManagerFactory;
+ emf = (EntityManagerFactory) o;
} catch (TargetException e) {
throw new ProcessingException(e);
}
Modified: incubator/tuscany/java/sca/services/persistence/openjpa/src/test/java/org/apache/tuscany/service/openjpa/EntityManagerProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/openjpa/src/test/java/org/apache/tuscany/service/openjpa/EntityManagerProcessorTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/openjpa/src/test/java/org/apache/tuscany/service/openjpa/EntityManagerProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/services/persistence/openjpa/src/test/java/org/apache/tuscany/service/openjpa/EntityManagerProcessorTestCase.java Sat Dec 23 04:14:05 2006
@@ -32,6 +32,7 @@
import org.apache.tuscany.spi.implementation.java.JavaMappedReference;
import org.apache.tuscany.spi.implementation.java.JavaMappedService;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
+import org.apache.tuscany.spi.wire.InboundWire;
import junit.framework.TestCase;
import org.easymock.EasyMock;
@@ -92,12 +93,18 @@
super.setUp();
EntityManagerFactory emf = EasyMock.createMock(EntityManagerFactory.class);
EasyMock.replay(emf);
+
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getTargetService()).andReturn(emf);
+ EasyMock.replay(wire);
+
parent = EasyMock.createMock(CompositeComponent.class);
- EasyMock.expect(parent.resolveSystemInstance(EntityManagerFactory.class)).andReturn(emf).atLeastOnce();
+ EasyMock.expect(parent.resolveSystemAutowire(EntityManagerFactory.class)).andReturn(wire).atLeastOnce();
EasyMock.replay(parent);
ImplementationProcessorService service = EasyMock.createMock(ImplementationProcessorService.class);
service.addName(EasyMock.isA(List.class), EasyMock.eq(0), EasyMock.isA(String.class));
EasyMock.expectLastCall().andStubAnswer(new IAnswer() {
+ @SuppressWarnings({"unchecked"})
public Object answer() throws Throwable {
((List<Object>) EasyMock.getCurrentArguments()[0]).add(EasyMock.getCurrentArguments()[2]);
return null;
Modified: incubator/tuscany/java/sca/services/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/performance/MockSCAObject.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/performance/MockSCAObject.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/performance/MockSCAObject.java (original)
+++ incubator/tuscany/java/sca/services/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/performance/MockSCAObject.java Sat Dec 23 04:14:05 2006
@@ -49,10 +49,6 @@
return null;
}
- public Object getServiceInstance() throws TargetResolutionException {
- return null;
- }
-
public void prepare() {
}
Modified: incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java Sat Dec 23 04:14:05 2006
@@ -35,12 +35,12 @@
public void testTransactionManagerLocation() throws Exception {
AtomicComponent tmComponent = (AtomicComponent) jtaComposite.getSystemChild("TransactionManager");
- Object tm = tmComponent.getServiceInstance();
+ Object tm = tmComponent.getTargetInstance();
assertTrue(tm instanceof TransactionManager);
}
public void testAutowire() throws Exception {
- assertNotNull(jtaComposite.resolveSystemInstance(TransactionManager.class));
+ assertNotNull(jtaComposite.resolveSystemAutowire(TransactionManager.class));
}
protected void setUp() throws Exception {
Modified: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java (original)
+++ incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java Sat Dec 23 04:14:05 2006
@@ -24,14 +24,18 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.tuscany.spi.bootstrap.ComponentNames;
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.CompositeComponent;
+import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.deployer.DeploymentMonitor;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.wire.WireService;
import junit.framework.TestCase;
import org.apache.tuscany.api.TuscanyException;
@@ -40,6 +44,7 @@
import org.apache.tuscany.core.launcher.LauncherImpl;
import org.apache.tuscany.core.monitor.JavaLoggingMonitorFactory;
import org.apache.tuscany.host.MonitorFactory;
+import org.apache.tuscany.host.runtime.InitializationException;
/**
* Base class for JUnit tests that want to run in an SCA client environment.
@@ -69,12 +74,20 @@
for (String extensionName : extensions.keySet()) {
deployExtension(composite, extensionName, extensions.get(extensionName));
}
+
+ SCAObject wireServiceComponent = composite.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 (applicationSCDL == null) {
throw new RuntimeException("application SCDL not found: " + applicationSCDL);
}
component = launcher.bootApplication("application", applicationSCDL);
component.start();
- context = new CompositeContextImpl(component);
+ context = new CompositeContextImpl(component, wireService);
context.start();
} catch (TuscanyException e) {
DeploymentMonitor monitor = monitorFactory.getMonitor(DeploymentMonitor.class);
@@ -122,7 +135,7 @@
}
protected void deployExtension(CompositeComponent composite, String extensionName, URL scdlURL)
- throws LoaderException, BuilderException, ComponentException {
+ throws LoaderException, BuilderException, ComponentException, InitializationException {
SystemCompositeImplementation implementation = new SystemCompositeImplementation();
implementation.setScdlLocation(scdlURL);
implementation.setClassLoader(new URLClassLoader(new URL[]{scdlURL}, getClass().getClassLoader()));
@@ -130,7 +143,12 @@
ComponentDefinition<SystemCompositeImplementation> definition =
new ComponentDefinition<SystemCompositeImplementation>(extensionName, implementation);
- Deployer deployer = (Deployer) composite.getSystemChild("deployer").getServiceInstance();
+
+ SCAObject child = composite.getSystemChild(ComponentNames.TUSCANY_DEPLOYER);
+ if (!(child instanceof AtomicComponent)) {
+ throw new InitializationException("Deployer must be an atomic component");
+ }
+ Deployer deployer = (Deployer) ((AtomicComponent) child).getTargetInstance();
Component component = deployer.deploy(composite, definition);
component.start();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org