WireSourceConfiguration sourceConfig = new WireSourceConfiguration("foo",new QualifiedName("target/SimpleTarget"),
sourceInvocationConfigs, Thread.currentThread().getContextClassLoader(), msgFactory);
sourceFactory.setConfiguration(sourceConfig);
sourceFactory.setBusinessInterface(SimpleTarget.class);
TargetInvocationConfiguration target = new TargetInvocationConfiguration(hello);
MockHandler targetRequestHandler = new MockHandler();
MockHandler targetResponseHandler = new MockHandler();
MockSyncInterceptor targetInterceptor = new MockSyncInterceptor();
target.addRequestHandler(targetRequestHandler);
target.addResponseHandler(targetResponseHandler);
target.addInterceptor(targetInterceptor);
target.addInterceptor(new InvokerInterceptor());
TargetWireFactory targetFactory = new JDKWireFactoryFactory().createTargetWireFactory();
Map<Method, TargetInvocationConfiguration> targetInvocationConfigs = new MethodHashMap<TargetInvocationConfiguration>();
targetInvocationConfigs.put(hello, target);
WireTargetConfiguration targetConfig = new WireTargetConfiguration(new QualifiedName("target/SimpleTarget"),
targetInvocationConfigs, Thread.currentThread().getContextClassLoader(), msgFactory);
targetFactory.setConfiguration(targetConfig);
targetFactory.setBusinessInterface(SimpleTarget.class);
// bootstrap a scope container with the target in it
Map<String,Object> instances = new HashMap<String,Object>();
SimpleTarget simpleTarget = new SimpleTargetImpl();
instances.put("target",simpleTarget);
MockScopeContext scopeCtx = new MockScopeContext(instances);
// connect the source to the target
DefaultWireBuilder builder = new DefaultWireBuilder();
builder.addWireBuilder(new JavaTargetWireBuilder());
builder.connect(sourceFactory, targetFactory, JavaContextFactory.class, true, scopeCtx);
source.build();
target.build();
Assert.assertNotNull(source.getTargetInvoker());
Message msg = msgFactory.createMessage();
msg.setBody("foo");
msg.setTargetInvoker(source.getTargetInvoker());