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/14 21:43:18 UTC
svn commit: r377825 - in
/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java:
builder/ integration/
Author: jmarino
Date: Tue Feb 14 12:43:17 2006
New Revision: 377825
URL: http://svn.apache.org/viewcvs?rev=377825&view=rev
Log:
more unit and integration tests for builders
Added:
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockHandlerBuilder.java
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockInterceptorBuilder.java
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
Removed:
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaBuilderIntegrationTestCase.java
Added: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java?rev=377825&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java (added)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java Tue Feb 14 12:43:17 2006
@@ -0,0 +1,169 @@
+package org.apache.tuscany.container.java.builder;
+
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.common.monitor.impl.NullMonitorFactory;
+import org.apache.tuscany.container.java.assembly.pojo.PojoJavaOperationType;
+import org.apache.tuscany.container.java.invocation.mock.MockSyncInterceptor;
+import org.apache.tuscany.container.java.mock.MockAssemblyFactory;
+import org.apache.tuscany.container.java.mock.MockConfigContext;
+import org.apache.tuscany.container.java.mock.components.GenericComponent;
+import org.apache.tuscany.container.java.mock.components.ModuleScopeComponent;
+import org.apache.tuscany.container.java.mock.components.ModuleScopeComponentImpl;
+import org.apache.tuscany.core.builder.RuntimeConfiguration;
+import org.apache.tuscany.core.builder.impl.DefaultWireBuilder;
+import org.apache.tuscany.core.builder.impl.HierarchicalBuilder;
+import org.apache.tuscany.core.config.JavaIntrospectionHelper;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.EventContext;
+import org.apache.tuscany.core.context.InstanceContext;
+import org.apache.tuscany.core.context.ScopeContext;
+import org.apache.tuscany.core.context.ScopeStrategy;
+import org.apache.tuscany.core.context.impl.AggregateContextImpl;
+import org.apache.tuscany.core.context.impl.EventContextImpl;
+import org.apache.tuscany.core.context.scope.DefaultScopeStrategy;
+import org.apache.tuscany.core.context.scope.ModuleScopeContext;
+import org.apache.tuscany.core.invocation.ProxyConfiguration;
+import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.message.impl.PojoMessageFactory;
+import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.Module;
+import org.apache.tuscany.model.assembly.ScopeEnum;
+import org.apache.tuscany.model.assembly.pojo.PojoConfiguredReference;
+import org.apache.tuscany.model.assembly.pojo.PojoConfiguredService;
+import org.apache.tuscany.model.assembly.pojo.PojoInterface;
+import org.apache.tuscany.model.assembly.pojo.PojoInterfaceType;
+import org.apache.tuscany.model.assembly.pojo.PojoJavaInterface;
+import org.apache.tuscany.model.assembly.pojo.PojoModule;
+import org.apache.tuscany.model.assembly.pojo.PojoPort;
+import org.apache.tuscany.model.assembly.pojo.PojoReference;
+import org.apache.tuscany.model.assembly.pojo.PojoService;
+
+public class JavaComponentContextBuilderTestCase extends TestCase {
+
+ public JavaComponentContextBuilderTestCase() {
+ }
+
+ public void testBuilder() throws Exception {
+ JavaComponentContextBuilder2 builder = new JavaComponentContextBuilder2();
+ builder.setMessageFactory(new PojoMessageFactory());
+ HierarchicalBuilder refBuilder = new HierarchicalBuilder();
+ MockSyncInterceptor interceptor = new MockSyncInterceptor();
+ refBuilder.addBuilder(new MockInterceptorBuilder(interceptor, true));
+ builder.setReferenceBuilder(refBuilder);
+ AggregateContext ctx = createContext();
+ builder.setProxyFactoryFactory(new JDKProxyFactoryFactory());
+ JavaTargetWireBuilder javaWireBuilder = new JavaTargetWireBuilder();
+ ScopeStrategy strategy = new DefaultScopeStrategy();
+ DefaultWireBuilder wireBuilder = new DefaultWireBuilder();
+ wireBuilder.addWireBuilder(javaWireBuilder);
+ Module module = createModule();
+ EventContext eCtx = new EventContextImpl();
+ ScopeContext scopeContext = new ModuleScopeContext(eCtx);
+ scopeContext.start();
+ scopeContext.onEvent(EventContext.MODULE_START, null);
+ List<Component> components = module.getComponents();
+ Map<String, Component> compMap = new HashMap(components.size());
+
+ for (Component component : components) {
+ compMap.put(component.getName(), component);
+ builder.build(component, ctx);
+ RuntimeConfiguration config = (RuntimeConfiguration) component.getComponentImplementation().getRuntimeConfiguration();
+ Assert.assertNotNull(config);
+ }
+ for (Component component : components) {
+ RuntimeConfiguration source = (RuntimeConfiguration) component.getComponentImplementation().getRuntimeConfiguration();
+ Assert.assertNotNull(source);
+ for (ProxyFactory factory : (Collection<ProxyFactory>) source.getSourceProxyFactories().values()) {
+ ProxyConfiguration pConfig = factory.getProxyConfiguration();
+ Component target = compMap.get(pConfig.getTargetName().getPartName());
+
+ if (target != null) {
+ RuntimeConfiguration targetConfig = (RuntimeConfiguration) target.getComponentImplementation()
+ .getRuntimeConfiguration();
+ boolean downScope = strategy.downScopeReference(source.getScope(), targetConfig.getScope());
+ wireBuilder.wire(factory, targetConfig.getTargetProxyFactory(factory.getProxyConfiguration().getTargetName()
+ .getPortName()), targetConfig.getClass(), downScope, scopeContext);
+ }
+ factory.initialize();
+ }
+
+ scopeContext.registerConfiguration(source);
+ }
+ for (Component component : components) {
+ RuntimeConfiguration config = (RuntimeConfiguration) component.getComponentImplementation().getRuntimeConfiguration();
+ InstanceContext context = (InstanceContext) config.createInstanceContext();
+ if ("source".equals(component.getName())) {
+ ModuleScopeComponent source = (ModuleScopeComponent) context.getInstance(null);
+ Assert.assertNotNull(source);
+ GenericComponent gComp = (GenericComponent) source.getGenericComponent();
+ gComp.getString();
+ }
+ }
+ }
+
+ public Module createModule() throws Exception {
+ Component sourceComponent = MockAssemblyFactory.createComponent("source", ModuleScopeComponentImpl.class,
+ ScopeEnum.MODULE_LITERAL);
+ Component targetComponent = MockAssemblyFactory.createComponent("target", ModuleScopeComponentImpl.class,
+ ScopeEnum.MODULE_LITERAL);
+ PojoReference ref = new PojoReference();
+ PojoConfiguredReference cref = new PojoConfiguredReference();
+ ref.setName("setGenericComponent");
+ PojoInterface inter = new PojoJavaInterface();
+ PojoInterfaceType type = new PojoInterfaceType();
+ type.setInstanceClass(GenericComponent.class);
+ PojoJavaOperationType oType = new PojoJavaOperationType();
+ oType.setName("getString");
+ oType.setJavaMethod((Method) JavaIntrospectionHelper.getBeanProperty(GenericComponent.class, "getString", null));
+ type.addOperationType(oType);
+ inter.setInterfaceType(type);
+ ref.setInterfaceContract(inter);
+ cref.setReference(ref);
+ cref.setPart(targetComponent);
+ PojoPort port = new PojoPort();
+ port.setName("GenericComponent");
+ cref.setPort(port);
+ sourceComponent.getConfiguredReferences().add(cref);
+ PojoService sourceService = new PojoService();
+ sourceService.setInterfaceContract(inter);
+ sourceService.setName("GenericComponent");
+ PojoConfiguredService cService = new PojoConfiguredService();
+ cService.setService(sourceService);
+ cService.setPart(sourceComponent);
+ cService.setPort(sourceService);
+
+ sourceComponent.getComponentImplementation().getServices().add(sourceService);
+ sourceComponent.getConfiguredServices().add(cService);
+
+ PojoService targetService = new PojoService();
+ targetService.setInterfaceContract(inter);
+ targetService.setName("GenericComponent");
+ PojoConfiguredService cTargetService = new PojoConfiguredService();
+ cTargetService.setService(targetService);
+ cTargetService.setPart(targetComponent);
+ cTargetService.setPort(targetService);
+ targetComponent.getComponentImplementation().getServices().add(targetService);
+ targetComponent.getConfiguredServices().add(cTargetService);
+
+ PojoModule module = new PojoModule();
+ module.setName("test.module");
+ module.addComponent(sourceComponent);
+ module.addComponent(targetComponent);
+ return module;
+ }
+
+ private static AggregateContext createContext() {
+ return new AggregateContextImpl("test.parent", null, new DefaultScopeStrategy(), new EventContextImpl(),
+ new MockConfigContext(null), new NullMonitorFactory());
+ }
+
+}
Added: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockHandlerBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockHandlerBuilder.java?rev=377825&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockHandlerBuilder.java (added)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockHandlerBuilder.java Tue Feb 14 12:43:17 2006
@@ -0,0 +1,86 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.container.java.builder;
+
+import org.apache.tuscany.core.builder.BuilderException;
+import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.context.Context;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.message.handler.MessageHandler;
+import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.assembly.ConfiguredReference;
+import org.apache.tuscany.model.assembly.ConfiguredService;
+
+/**
+ * Adds a handler to a source or target proxy configuration
+ *
+ * @version $Rev$ $Date$
+ */
+public class MockHandlerBuilder implements RuntimeConfigurationBuilder {
+
+ private MessageHandler handler;
+
+ private boolean source;
+
+ private boolean request;
+
+ /**
+ * Creates the builder.
+ *
+ * @param handler the handler to add to the source or target proxy configuration
+ * @param source true if the handler should be added on the source side; false if the handler should be added to the
+ * target side
+ * @param request true if the handler is a request handler; false if the handler is a response handler
+ */
+ public MockHandlerBuilder(MessageHandler handler, boolean source, boolean request) {
+ this.handler = handler;
+ this.source = source;
+ this.request = request;
+ }
+
+ public void build(AssemblyModelObject modelObject, Context context) throws BuilderException {
+ if (source) {
+ if (!(modelObject instanceof ConfiguredReference)) {
+ return;
+ } else {
+ ConfiguredReference cref = (ConfiguredReference) modelObject;
+ ProxyFactory pFactory = (ProxyFactory) cref.getProxyFactory();
+ for (InvocationConfiguration config : pFactory.getProxyConfiguration().getInvocationConfigurations().values()) {
+ if (request) {
+ config.addRequestHandler(handler);
+ } else {
+ config.addResponseHandler(handler);
+ }
+ }
+ }
+ } else {
+ if (!(modelObject instanceof ConfiguredService)) {
+ return;
+ } else {
+ ConfiguredService cservice = (ConfiguredService) modelObject;
+ ProxyFactory pFactory = (ProxyFactory) cservice.getProxyFactory();
+ for (InvocationConfiguration config : pFactory.getProxyConfiguration().getInvocationConfigurations().values()) {
+ if (request) {
+ config.addRequestHandler(handler);
+ } else {
+ config.addResponseHandler(handler);
+ }
+ }
+ }
+
+ }
+ }
+
+}
Added: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockInterceptorBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockInterceptorBuilder.java?rev=377825&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockInterceptorBuilder.java (added)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockInterceptorBuilder.java Tue Feb 14 12:43:17 2006
@@ -0,0 +1,74 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.container.java.builder;
+
+import org.apache.tuscany.core.builder.BuilderException;
+import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.context.Context;
+import org.apache.tuscany.core.invocation.Interceptor;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.assembly.ConfiguredReference;
+import org.apache.tuscany.model.assembly.ConfiguredService;
+
+/**
+ * Adds an interceptor to a source or target proxy configuration
+ *
+ * @version $Rev$ $Date$
+ */
+public class MockInterceptorBuilder implements RuntimeConfigurationBuilder {
+
+ private Interceptor interceptor;
+
+ private boolean source;
+
+ /**
+ * Creates the builder
+ *
+ * @param interceptor the interceptor ot add
+ * @param source true if the interceptor should be added to the source side; false if the interceptor should be
+ * added to the target side
+ */
+ public MockInterceptorBuilder(Interceptor interceptor, boolean source) {
+ this.interceptor = interceptor;
+ this.source = source;
+ }
+
+ public void build(AssemblyModelObject modelObject, Context context) throws BuilderException {
+ if (source) {
+ if (!(modelObject instanceof ConfiguredReference)) {
+ return;
+ } else {
+ ConfiguredReference cref = (ConfiguredReference) modelObject;
+ ProxyFactory pFactory = (ProxyFactory) cref.getProxyFactory();
+ for (InvocationConfiguration config : pFactory.getProxyConfiguration().getInvocationConfigurations().values()) {
+ config.addSourceInterceptor(interceptor);
+ }
+ }
+ } else {
+ if (!(modelObject instanceof ConfiguredService)) {
+ return;
+ } else {
+ ConfiguredService cservice = (ConfiguredService) modelObject;
+ ProxyFactory pFactory = (ProxyFactory) cservice.getProxyFactory();
+ for (InvocationConfiguration config : pFactory.getProxyConfiguration().getInvocationConfigurations().values()) {
+ config.addTargetInterceptor(interceptor);
+ }
+ }
+
+ }
+ }
+
+}
Added: 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=377825&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java (added)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java Tue Feb 14 12:43:17 2006
@@ -0,0 +1,161 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.container.java.integration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.container.java.builder.JavaComponentContextBuilder2;
+import org.apache.tuscany.container.java.builder.JavaTargetWireBuilder;
+import org.apache.tuscany.container.java.builder.MockHandlerBuilder;
+import org.apache.tuscany.container.java.builder.MockInterceptorBuilder;
+import org.apache.tuscany.container.java.invocation.mock.MockHandler;
+import org.apache.tuscany.container.java.invocation.mock.MockSyncInterceptor;
+import org.apache.tuscany.container.java.mock.MockAssemblyFactory;
+import org.apache.tuscany.container.java.mock.MockModuleFactory;
+import org.apache.tuscany.container.java.mock.components.GenericComponent;
+import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.builder.WireBuilder;
+import org.apache.tuscany.core.builder.impl.DefaultWireBuilder;
+import org.apache.tuscany.core.builder.impl.HierarchicalBuilder;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.ContextConstants;
+import org.apache.tuscany.core.context.EventContext;
+import org.apache.tuscany.core.context.impl.AggregateContextImpl;
+import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
+import org.apache.tuscany.core.message.MessageFactory;
+import org.apache.tuscany.core.message.impl.PojoMessageFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.runtime.RuntimeContextImpl;
+import org.apache.tuscany.core.system.builder.SystemComponentContextBuilder;
+import org.apache.tuscany.core.system.builder.SystemEntryPointBuilder;
+import org.apache.tuscany.core.system.builder.SystemExternalServiceBuilder;
+
+/**
+ * Verifies that the aggregate context implementation and java component builders construct references properly
+ *
+ * @version $Rev$ $Date$
+ */
+public class JavaBuilderContextIntegrationTestCase extends TestCase {
+
+ public JavaBuilderContextIntegrationTestCase(String arg0) {
+ super(arg0);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testRefWithSourceInterceptor() 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, true);
+ HierarchicalBuilder refBuilder = new HierarchicalBuilder();
+ refBuilder.addBuilder(interceptorBuilder);
+ 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());
+ source.getGenericComponent().getString();
+ Assert.assertEquals(2, mockInterceptor.getCount());
+ child.fireEvent(EventContext.MODULE_STOP, null);
+ runtime.stop();
+ }
+
+ public void testRefWithSourceInterceptorHandler() 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, true);
+ HierarchicalBuilder refBuilder = new HierarchicalBuilder();
+ refBuilder.addBuilder(interceptorBuilder);
+ MockHandler mockHandler = new MockHandler();
+ 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();
+ }
+
+}