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/02/15 00:42:43 UTC
svn commit: r377888 - in /incubator/tuscany/java/sca:
container.java/src/test/java/org/apache/tuscany/container/java/integration/
core/src/main/java/org/apache/tuscany/core/context/impl/
core/src/main/java/org/apache/tuscany/core/invocation/
Author: jmarino
Date: Tue Feb 14 15:42:41 2006
New Revision: 377888
URL: http://svn.apache.org/viewcvs?rev=377888&view=rev
Log:
added code to build target side proxies to aggregate context
Modified:
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractAggregateContext.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/invocation/InvocationConfiguration.java
Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java?rev=377888&r1=377887&r2=377888&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java Tue Feb 14 15:42:41 2006
@@ -127,15 +127,61 @@
MockHandlerBuilder handlerBuilder = new MockHandlerBuilder(mockHandler,true,true);
refBuilder.addBuilder(handlerBuilder);
-
-
javaBuilder.setReferenceBuilder(refBuilder);
builders.add(javaBuilder);
List<WireBuilder> wireBuilders = new ArrayList();
DefaultWireBuilder defaultWireBuilder = new DefaultWireBuilder();
defaultWireBuilder.addWireBuilder(new JavaTargetWireBuilder());
+ wireBuilders.add(defaultWireBuilder);
+
+ RuntimeContext runtime = new RuntimeContextImpl(null, builders, wireBuilders);
+ runtime.start();
+ runtime.getRootContext().registerModelObject(
+ MockAssemblyFactory.createSystemComponent("test.module", AggregateContextImpl.class.getName(),
+ ContextConstants.AGGREGATE_SCOPE_ENUM));
+ AggregateContext child = (AggregateContext) runtime.getRootContext().getContext("test.module");
+ child.registerModelObject(MockModuleFactory.createModule());
+ child.fireEvent(EventContext.MODULE_START, null);
+ GenericComponent source = (GenericComponent) child.locateInstance("source");
+ Assert.assertNotNull(source);
+ source.getGenericComponent().getString();
+ Assert.assertEquals(1, mockInterceptor.getCount());
+ Assert.assertEquals(1, mockHandler.getCount());
+ source.getGenericComponent().getString();
+ Assert.assertEquals(2, mockInterceptor.getCount());
+ Assert.assertEquals(2, mockHandler.getCount());
+ child.fireEvent(EventContext.MODULE_STOP, null);
+ runtime.stop();
+ }
+
+
+ public void testRefWithTargetInterceptorHandler() throws Exception {
+ MessageFactory msgFactory = new PojoMessageFactory();
+ List<RuntimeConfigurationBuilder> builders = new ArrayList();
+ builders.add((new SystemComponentContextBuilder()));
+ builders.add(new SystemEntryPointBuilder());
+ builders.add(new SystemExternalServiceBuilder());
+
+ JavaComponentContextBuilder2 javaBuilder = new JavaComponentContextBuilder2();
+ javaBuilder.setMessageFactory(msgFactory);
+ javaBuilder.setProxyFactoryFactory(new JDKProxyFactoryFactory());
+
+ MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
+ MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, false);
+ HierarchicalBuilder refBuilder = new HierarchicalBuilder();
+ refBuilder.addBuilder(interceptorBuilder);
+ MockHandler mockHandler = new MockHandler();
+ MockHandlerBuilder handlerBuilder = new MockHandlerBuilder(mockHandler,false,true);
+ refBuilder.addBuilder(handlerBuilder);
+
+ javaBuilder.setReferenceBuilder(refBuilder);
+ builders.add(javaBuilder);
+
+ List<WireBuilder> wireBuilders = new ArrayList();
+ DefaultWireBuilder defaultWireBuilder = new DefaultWireBuilder();
+ defaultWireBuilder.addWireBuilder(new JavaTargetWireBuilder());
wireBuilders.add(defaultWireBuilder);
RuntimeContext runtime = new RuntimeContextImpl(null, builders, wireBuilders);
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractAggregateContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractAggregateContext.java?rev=377888&r1=377887&r2=377888&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractAggregateContext.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractAggregateContext.java Tue Feb 14 15:42:41 2006
@@ -39,6 +39,7 @@
import org.apache.tuscany.core.context.SimpleComponentContext;
import org.apache.tuscany.core.context.TargetException;
import org.apache.tuscany.core.context.scope.DefaultScopeStrategy;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
import org.apache.tuscany.core.invocation.spi.ProxyFactory;
import org.apache.tuscany.core.invocation.spi.ProxyInitializationException;
import org.apache.tuscany.core.system.annotation.Autowire;
@@ -150,6 +151,7 @@
// FIXME scopes are defined at the interface level
int sourceScope = source.getScope();
wireSource(source);
+ buildTarget(source);
scopeIndex.put(source.getName(), scopeContexts.get(sourceScope));
List<RuntimeConfiguration<SimpleComponentContext>> list = configurationsByScope.get(sourceScope);
if (list == null) {
@@ -319,6 +321,7 @@
RuntimeConfiguration<InstanceContext> config = (RuntimeConfiguration<InstanceContext>) component
.getComponentImplementation().getRuntimeConfiguration();
wireSource(config);
+ buildTarget(config);
try {
if (config.getSourceProxyFactories() != null) {
for (ProxyFactory sourceProxyFactory : (Collection<ProxyFactory>) config.getSourceProxyFactories()
@@ -538,6 +541,19 @@
}
}
source.prepare();
+ }
+
+ protected void buildTarget(RuntimeConfiguration target){
+ if (target.getTargetProxyFactories() != null) {
+ for (ProxyFactory targetFactory : ((Map<String, ProxyFactory>) target.getTargetProxyFactories()).values()) {
+ for (InvocationConfiguration iConfig : (Collection<InvocationConfiguration>) targetFactory
+ .getProxyConfiguration().getInvocationConfigurations().values()) {
+
+ iConfig.build();
+
+ }
+ }
+ }
}
protected void initializeProxies() throws ProxyInitializationException {
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/invocation/InvocationConfiguration.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/invocation/InvocationConfiguration.java?rev=377888&r1=377887&r2=377888&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/invocation/InvocationConfiguration.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/invocation/InvocationConfiguration.java Tue Feb 14 15:42:41 2006
@@ -61,12 +61,12 @@
public OperationType getOperationType() {
return operation;
}
-
- public void addTargetRequestChannel(MessageChannel channel){
+
+ public void addTargetRequestChannel(MessageChannel channel) {
targetRequestChannel = channel;
}
- public void addTargetResponseChannel(MessageChannel channel){
+ public void addTargetResponseChannel(MessageChannel channel) {
targetResponseChannel = channel;
}
@@ -118,26 +118,26 @@
return targetInterceptorChainHead;
}
- public List<MessageHandler> getRequestHandlers(){
+ public List<MessageHandler> getRequestHandlers() {
return requestHandlers;
}
- public List<MessageHandler> getResponseHandlers(){
+ public List<MessageHandler> getResponseHandlers() {
return responseHandlers;
}
-
+
/**
* Build the configuration, link the interceptors and handlers together
*/
public void build() {
- // Connect request handler chain to target interceptor chain
+ // Connect source request handler chain directly to target interceptor chain
if (requestHandlers != null && targetInterceptorChainHead != null) {
MessageHandler messageDispatcher = new MessageDispatcher(targetInterceptorChainHead);
requestHandlers.add(messageDispatcher);
}
- // Connect source interceptor chain to handler chain
+ // Connect source interceptor chain to source handler chain
if (requestHandlers != null) {
MessageChannel requestChannel = new MessageChannelImpl(requestHandlers);
MessageChannel responseChannel = new MessageChannelImpl(responseHandlers);
@@ -156,7 +156,13 @@
if (sourceInterceptorChainHead != null) {
sourceInterceptorChainTail.setNext(targetInterceptorChainHead);
} else if (targetInterceptorChainHead != targetInvoker) {
- sourceInterceptorChainHead = targetInterceptorChainHead;
+ if (targetInterceptorChainHead == null) {
+ Interceptor channelInterceptor = new RequestResponseInterceptor(null, targetRequestChannel, null,
+ targetResponseChannel);
+ sourceInterceptorChainHead = channelInterceptor;
+ } else {
+ sourceInterceptorChainHead = targetInterceptorChainHead;
+ }
}
}