summaryrefslogtreecommitdiffstats
path: root/tags/java-M1-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java-M1-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java')
-rw-r--r--tags/java-M1-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java819
1 files changed, 0 insertions, 819 deletions
diff --git a/tags/java-M1-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java b/tags/java-M1-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
deleted file mode 100644
index 3b45352865..0000000000
--- a/tags/java-M1-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
+++ /dev/null
@@ -1,819 +0,0 @@
-/**
- *
- * 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.mock;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.Assert;
-import org.apache.tuscany.common.monitor.MonitorFactory;
-import org.apache.tuscany.common.monitor.impl.NullMonitorFactory;
-import org.apache.tuscany.container.java.assembly.JavaAssemblyFactory;
-import org.apache.tuscany.container.java.assembly.JavaImplementation;
-import org.apache.tuscany.container.java.assembly.impl.JavaAssemblyFactoryImpl;
-import org.apache.tuscany.container.java.assembly.mock.HelloWorldImpl;
-import org.apache.tuscany.container.java.assembly.mock.HelloWorldService;
-import org.apache.tuscany.container.java.builder.JavaContextFactoryBuilder;
-import org.apache.tuscany.container.java.builder.JavaTargetWireBuilder;
-import org.apache.tuscany.container.java.context.JavaAtomicContext;
-import org.apache.tuscany.container.java.mock.binding.foo.FooBinding;
-import org.apache.tuscany.container.java.mock.binding.foo.FooBindingBuilder;
-import org.apache.tuscany.container.java.mock.binding.foo.FooBindingWireBuilder;
-import org.apache.tuscany.container.java.mock.components.GenericComponent;
-import org.apache.tuscany.container.java.mock.components.HelloWorldClient;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeComponent;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeComponentImpl;
-import org.apache.tuscany.container.java.mock.components.OtherTarget;
-import org.apache.tuscany.container.java.mock.components.OtherTargetImpl;
-import org.apache.tuscany.container.java.mock.components.Source;
-import org.apache.tuscany.container.java.mock.components.SourceImpl;
-import org.apache.tuscany.container.java.mock.components.Target;
-import org.apache.tuscany.container.java.mock.components.TargetImpl;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.builder.ContextFactoryBuilder;
-import org.apache.tuscany.core.builder.ContextFactoryBuilderRegistry;
-import org.apache.tuscany.core.builder.WireBuilder;
-import org.apache.tuscany.core.builder.impl.DefaultWireBuilder;
-import org.apache.tuscany.core.builder.system.DefaultPolicyBuilderRegistry;
-import org.apache.tuscany.core.builder.system.PolicyBuilderRegistry;
-import org.apache.tuscany.core.client.BootstrapHelper;
-import org.apache.tuscany.core.config.ComponentTypeIntrospector;
-import org.apache.tuscany.core.config.ConfigurationException;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.core.config.JavaIntrospectionHelper;
-import org.apache.tuscany.core.config.processor.ProcessorUtils;
-import org.apache.tuscany.core.context.CompositeContext;
-import org.apache.tuscany.core.context.Context;
-import org.apache.tuscany.core.context.SystemCompositeContext;
-import org.apache.tuscany.core.context.event.ModuleStart;
-import org.apache.tuscany.core.context.impl.CompositeContextImpl;
-import org.apache.tuscany.core.injection.EventInvoker;
-import org.apache.tuscany.core.injection.FieldInjector;
-import org.apache.tuscany.core.injection.Injector;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.MethodInjector;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-import org.apache.tuscany.core.injection.SingletonObjectFactory;
-import org.apache.tuscany.core.message.MessageFactory;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.runtime.RuntimeContext;
-import org.apache.tuscany.core.runtime.RuntimeContextImpl;
-import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
-import org.apache.tuscany.core.system.assembly.SystemBinding;
-import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
-import org.apache.tuscany.core.system.builder.SystemContextFactoryBuilder;
-import org.apache.tuscany.core.system.builder.SystemEntryPointBuilder;
-import org.apache.tuscany.core.system.builder.SystemExternalServiceBuilder;
-import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
-import org.apache.tuscany.core.wire.WireFactoryFactory;
-import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
-import org.apache.tuscany.core.wire.service.DefaultWireFactoryService;
-import org.apache.tuscany.model.assembly.AssemblyContext;
-import org.apache.tuscany.model.assembly.AtomicComponent;
-import org.apache.tuscany.model.assembly.Component;
-import org.apache.tuscany.model.assembly.ComponentType;
-import org.apache.tuscany.model.assembly.ConfiguredReference;
-import org.apache.tuscany.model.assembly.ConfiguredService;
-import org.apache.tuscany.model.assembly.EntryPoint;
-import org.apache.tuscany.model.assembly.ExternalService;
-import org.apache.tuscany.model.assembly.Module;
-import org.apache.tuscany.model.assembly.Multiplicity;
-import org.apache.tuscany.model.assembly.Reference;
-import org.apache.tuscany.model.assembly.Scope;
-import org.apache.tuscany.model.assembly.Service;
-import org.apache.tuscany.model.assembly.impl.AssemblyContextImpl;
-import org.apache.tuscany.model.types.java.JavaServiceContract;
-import org.osoa.sca.annotations.ComponentName;
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.Init;
-
-/**
- * Generates test components, modules, and runtime artifacts
- *
- * @version $Rev$ $Date$
- */
-public class MockFactory {
-
- public static final String JAVA_BUILDER = "java.runtime.builder";
- public static final String MESSAGE_FACTORY = "java.runtime.messageFactory";
- public static final String PROXY_FACTORY_FACTORY = "java.runtime.wireFactoryFactory";
- public static final String WIRE_FACTORY_SERVICE = "java.runtime.wireFactoryservice";
- public static final String JAVA_WIRE_BUILDER = "java.wire.builder";
- public static final String FOO_BUILDER = "foo.binding.builder";
- public static final String FOO_WIRE_BUILDER = "foo.binding.wire.builder";
- public static final String POLICY_BUILDER_REGISTRY = "foo.binding.policy.registry";
- public static final String SYSTEM_CHILD = "tuscany.system.child";
-
- private static JavaAssemblyFactory factory = new JavaAssemblyFactoryImpl();
- private static SystemAssemblyFactory systemFactory = new SystemAssemblyFactoryImpl();
- private static AssemblyContext assemblyContext = new AssemblyContextImpl(null, null);
- private static ComponentTypeIntrospector introspector;
- private static ComponentType systemComponentType;
- private static ComponentType compositeComponentType;
-
- public static ComponentType getComponentType() throws ConfigurationLoadException {
- if (systemComponentType == null) {
- systemComponentType = getIntrospector().introspect(SystemCompositeContextImpl.class);
- }
- return systemComponentType;
- }
-
- public static ComponentType getCompositeComponentType() throws ConfigurationLoadException {
- if (compositeComponentType == null) {
- compositeComponentType = getIntrospector().introspect(CompositeContextImpl.class);
- }
- return compositeComponentType;
- }
-
- public static ComponentTypeIntrospector getIntrospector() {
- if (introspector == null) {
- introspector = ProcessorUtils.createCoreIntrospector(systemFactory);
- }
- return introspector;
- }
-
- /**
- * Creates an initialized simple component
- *
- * @param name the component name
- * @param type the implementation type
- * @param scope the component scope
- */
- public static AtomicComponent createComponent(String name, Class type, Scope scope) throws ConfigurationLoadException {
- AtomicComponent sc = factory.createSimpleComponent();
- JavaImplementation impl = factory.createJavaImplementation();
- impl.setComponentType(getIntrospector().introspect(type));
- impl.setImplementationClass(type);
- sc.setImplementation(impl);
- Service s = factory.createService();
- JavaServiceContract ji = factory.createJavaServiceContract();
- ji.setInterface(type);
- s.setServiceContract(ji);
- ji.setScope(scope);
- impl.getComponentType().getServices().add(s);
- sc.setName(name);
- sc.setImplementation(impl);
- return sc;
- }
-
- public static AtomicComponent createNonIntrospectedComponent(String name, Class service, Class type, Scope scope) throws ConfigurationLoadException {
- AtomicComponent sc = factory.createSimpleComponent();
- JavaImplementation impl = factory.createJavaImplementation();
- impl.setComponentType(factory.createComponentType());
- impl.setImplementationClass(type);
- sc.setImplementation(impl);
- Service s = factory.createService();
- JavaServiceContract ji = factory.createJavaServiceContract();
- ji.setInterface(service);
- s.setServiceContract(ji);
- ji.setScope(scope);
- impl.getComponentType().getServices().add(s);
- sc.setName(name);
- sc.setImplementation(impl);
- return sc;
- }
-
-
- /**
- * Creates an composite component with the given name
- */
- public static Component createCompositeComponent(String name) throws ConfigurationLoadException {
- Component sc = systemFactory.createModuleComponent();
- Module impl = systemFactory.createModule();
- impl.setName(name);
- //impl.setImplementationClass(CompositeContextImpl.class);
- sc.setImplementation(impl);
- Service s = systemFactory.createService();
- JavaServiceContract ji = systemFactory.createJavaServiceContract();
- s.setServiceContract(ji);
- ji.setScope(Scope.AGGREGATE);
- //impl.setComponentType(systemFactory.createComponentType());
- impl.setImplementationClass(CompositeContextImpl.class);
- impl.setComponentType(getCompositeComponentType());
- impl.getComponentType().getServices().add(s);
- sc.setName(name);
- sc.setImplementation(impl);
-
- return sc;
- }
-
- /**
- * Creates a system composite component with the given name
- */
- public static Component createSystemCompositeComponent(String name) throws ConfigurationLoadException {
- Component sc = systemFactory.createModuleComponent();
- Module impl = systemFactory.createSystemModule();
- impl.setName(name);
- //impl.setImplementationClass(SystemCompositeContextImpl.class);
- sc.setImplementation(impl);
- Service s = systemFactory.createService();
- JavaServiceContract ji = systemFactory.createJavaServiceContract();
- s.setServiceContract(ji);
- ji.setScope(Scope.AGGREGATE);
- impl.setComponentType(getComponentType());
- //impl.setComponentType(systemFactory.createComponentType());
- impl.getComponentType().getServices().add(s);
- sc.setName(name);
- sc.setImplementation(impl);
- return sc;
- }
-
- /**
- * Creates an external service configured with the 'Foo' test binding
- */
- public static ExternalService createFooBindingExternalService(String name, Class interfaz) {
- ExternalService es = factory.createExternalService();
- es.setName(name);
- Service s = factory.createService();
- JavaServiceContract ji = factory.createJavaServiceContract();
- ji.setScope(Scope.MODULE);
- ji.setInterface(interfaz);
- s.setServiceContract(ji);
- ConfiguredService configuredService = factory.createConfiguredService();
- es.setConfiguredService(configuredService);
-
- FooBinding binding = new FooBinding();
- es.getBindings().add(binding);
- return es;
- }
-
- /**
- * Creates an entry point with the given name configured with the given interface and the {@link
- * FooBinding}
- */
- public static EntryPoint createFooBindingEntryPoint(String name, Class interfaz) {
- EntryPoint ep = factory.createEntryPoint();
- ep.setName(name);
- Service s = factory.createService();
- JavaServiceContract ji = factory.createJavaServiceContract();
- ji.setScope(Scope.MODULE);
- ji.setInterface(interfaz);
- s.setServiceContract(ji);
- ConfiguredService configuredService = factory.createConfiguredService();
- configuredService.setPort(s);
- ep.setConfiguredService(configuredService);
- FooBinding binding = new FooBinding();
- ep.getBindings().add(binding);
- return ep;
- }
-
- /**
- * Creates an external service configured with a {@link SystemBinding}
- */
- public static ExternalService createESSystemBinding(String name, String refName) {
- ExternalService es = systemFactory.createExternalService();
- es.setName(name);
- ConfiguredService configuredService = systemFactory.createConfiguredService();
- es.setConfiguredService(configuredService);
- SystemBinding binding = systemFactory.createSystemBinding();
- binding.setTargetName(refName);
- es.getBindings().add(binding);
- es.initialize(null);
- return es;
- }
-
- /**
- * Creates a module with a Java-based "target" module-scoped component wired to a module-scoped "source"
- */
- public static Module createModule() throws ConfigurationLoadException {
- return createModule(Scope.MODULE, Scope.MODULE);
- }
-
- /**
- * Creates a module with a Java-based "target" component wired to a "source"
- */
- public static Module createModule(Scope sourceScope, Scope targetScope) throws ConfigurationLoadException {
- Component sourceComponent = createNonIntrospectedComponent("source", ModuleScopeComponent.class, ModuleScopeComponentImpl.class, sourceScope);
- Component targetComponent = createNonIntrospectedComponent("target", ModuleScopeComponent.class, ModuleScopeComponentImpl.class, targetScope);
-
- Service targetService = factory.createService();
- JavaServiceContract targetContract = factory.createJavaServiceContract();
- targetContract.setInterface(GenericComponent.class);
- targetService.setServiceContract(targetContract);
- targetService.setName("GenericComponent");
- targetContract.setScope(targetScope);
- ConfiguredService cTargetService = factory.createConfiguredService();
- cTargetService.setPort(targetService);
- cTargetService.initialize(assemblyContext);
- targetComponent.getConfiguredServices().add(cTargetService);
- targetComponent.initialize(assemblyContext);
-
- Reference ref = factory.createReference();
- ref.setName("setGenericComponent");
- JavaServiceContract inter = factory.createJavaServiceContract();
- inter.setInterface(GenericComponent.class);
- ref.setServiceContract(inter);
- sourceComponent.getImplementation().getComponentType().getReferences().add(ref);
-
- ConfiguredReference cref = factory.createConfiguredReference("setGenericComponent", "target");
- cref.initialize(assemblyContext);
- sourceComponent.getConfiguredReferences().add(cref);
- sourceComponent.initialize(assemblyContext);
-
- Module module = factory.createModule();
- module.setName("test.module");
- module.getComponents().add(sourceComponent);
- module.getComponents().add(targetComponent);
- module.initialize(assemblyContext);
- return module;
- }
-
- /**
- * Creates a module with a Java-based source component wired to a "target" external service configured
- * with the {@link FooBinding}
- */
- public static Module createModuleWithExternalService() throws ConfigurationLoadException {
- Component sourceComponent = createComponent("source", HelloWorldClient.class, Scope.MODULE);
- ExternalService targetES = createFooBindingExternalService("target", HelloWorldService.class);
-
- Service targetService = factory.createService();
- JavaServiceContract targetContract = factory.createJavaServiceContract();
- targetContract.setInterface(HelloWorldService.class);
- targetService.setServiceContract(targetContract);
- targetService.setName("HelloWorld");
- ConfiguredService cTargetService = factory.createConfiguredService();
- cTargetService.setPort(targetService);
- targetES.setConfiguredService(cTargetService);
- targetES.initialize(assemblyContext);
-
- Reference ref = factory.createReference();
- ref.setName("setHelloWorldService");
- JavaServiceContract inter = factory.createJavaServiceContract();
- inter.setInterface(HelloWorldService.class);
- ref.setServiceContract(inter);
- sourceComponent.getImplementation().getComponentType().getReferences().add(ref);
-
- ConfiguredReference cref = factory.createConfiguredReference(ref.getName(), "target");
- cref.initialize(assemblyContext);
- sourceComponent.getConfiguredReferences().add(cref);
- sourceComponent.initialize(assemblyContext);
-
- Module module = factory.createModule();
- module.setName("test.module");
- module.getComponents().add(sourceComponent);
- module.getExternalServices().add(targetES);
- module.initialize(assemblyContext);
- return module;
- }
-
- /**
- * Creates a module with an entry point named "source" configured with the {@link FooBinding} wired to a
- * service offered by a Java-based component named "target"
- *
- * @param scope the scope of the target service
- */
- public static Module createModuleWithEntryPoint(Scope scope) throws ConfigurationLoadException {
- Component targetComponent = createComponent("target", HelloWorldImpl.class, scope);
-
- Service targetService = factory.createService();
- JavaServiceContract targetContract = factory.createJavaServiceContract();
- targetContract.setInterface(HelloWorldService.class);
- targetService.setServiceContract(targetContract);
- targetService.setName("HelloWorldService");
- ConfiguredService cTargetService = factory.createConfiguredService();
- cTargetService.setPort(targetService);
- targetComponent.getConfiguredServices().add(cTargetService);
- targetComponent.initialize(assemblyContext);
-
- Reference ref = factory.createReference();
- ConfiguredReference cref = factory.createConfiguredReference();
- ref.setName("setHelloWorldService");
- JavaServiceContract inter = factory.createJavaServiceContract();
- inter.setInterface(HelloWorldService.class);
- ref.setServiceContract(inter);
- cref.setPort(ref);
- cref.getTargetConfiguredServices().add(cTargetService);
- cref.initialize(assemblyContext);
-
- EntryPoint sourceEP = createFooBindingEntryPoint("source", HelloWorldService.class);
- sourceEP.setConfiguredReference(cref);
- sourceEP.getConfiguredService().getPort().setName("HelloWorldService");
- sourceEP.initialize(assemblyContext);
-
- Module module = factory.createModule();
- module.setName("test.module");
- module.getEntryPoints().add(sourceEP);
- module.getComponents().add(targetComponent);
- module.setImplementationClass(CompositeContextImpl.class);
- module.setComponentType(getCompositeComponentType());
- module.initialize(assemblyContext);
- return module;
- }
-
- /**
- * Creates a module with an entry point wired to a "target" external service configured with the {@link
- * FooBinding}
- */
- public static Module createModuleWithEntryPointToExternalService() {
- //Component sourceComponent = createComponent("source", HelloWorldClient.class, Scope.MODULE);
-
- EntryPoint sourceEP = createFooBindingEntryPoint("source", HelloWorldService.class);
- sourceEP.getConfiguredService().getPort().setName("HelloWorldService");
- sourceEP.initialize(assemblyContext);
-
-
- ExternalService targetES = createFooBindingExternalService("target", HelloWorldService.class);
-
- Service targetService = factory.createService();
- JavaServiceContract targetContract = factory.createJavaServiceContract();
- targetContract.setInterface(HelloWorldService.class);
- targetService.setServiceContract(targetContract);
- targetService.setName("HelloWorld");
- ConfiguredService cTargetService = factory.createConfiguredService();
- cTargetService.setPort(targetService);
- targetES.setConfiguredService(cTargetService);
- targetES.initialize(assemblyContext);
-
- Reference ref = factory.createReference();
- ref.setName("setHelloWorldService");
- JavaServiceContract inter = factory.createJavaServiceContract();
- inter.setInterface(HelloWorldService.class);
- ref.setServiceContract(inter);
-
-
- ConfiguredReference cref = factory.createConfiguredReference(ref.getName(), "target");
- cref.setPort(ref);
- cref.initialize(assemblyContext);
- sourceEP.setConfiguredReference(cref);
- sourceEP.initialize(assemblyContext);
-
- Module module = factory.createModule();
- module.setName("test.module");
- module.getEntryPoints().add(sourceEP);
- module.getExternalServices().add(targetES);
- module.initialize(assemblyContext);
- return module;
- }
-
-
- /**
- * Creates a test system module with source and target components wired together.
- *
- * @see org.apache.tuscany.core.mock.component.Source
- * @see org.apache.tuscany.core.mock.component.Target
- */
-
- public static Module createModuleWithWiredComponents(Scope sourceScope, Scope targetScope) {
-
- // create the target component
- AtomicComponent target = factory.createSimpleComponent();
- target.setName("target");
- JavaImplementation targetImpl = factory.createJavaImplementation();
- targetImpl.setComponentType(factory.createComponentType());
- targetImpl.setImplementationClass(TargetImpl.class);
- target.setImplementation(targetImpl);
- Service targetService = factory.createService();
- JavaServiceContract targetContract = factory.createJavaServiceContract();
- targetContract.setInterface(Target.class);
- targetService.setServiceContract(targetContract);
- targetService.setName("Target");
- targetImpl.getComponentType().getServices().add(targetService);
- targetContract.setScope(targetScope);
- ConfiguredService cTargetService = factory.createConfiguredService();
- cTargetService.setPort(targetService);
- cTargetService.initialize(assemblyContext);
- target.getConfiguredServices().add(cTargetService);
- target.initialize(assemblyContext);
-
- // create the source component
- AtomicComponent source = factory.createSimpleComponent();
- ComponentType componentType = factory.createComponentType();
- source.setName("source");
- JavaImplementation impl = factory.createJavaImplementation();
- impl.setComponentType(componentType);
- impl.setImplementationClass(SourceImpl.class);
- source.setImplementation(impl);
- Service s = systemFactory.createService();
- JavaServiceContract contract = systemFactory.createJavaServiceContract();
- contract.setInterface(Source.class);
- s.setServiceContract(contract);
- contract.setScope(sourceScope);
- impl.getComponentType().getServices().add(s);
- source.setImplementation(impl);
-
- // wire source to target
- JavaServiceContract refContract = systemFactory.createJavaServiceContract();
- refContract.setInterface(Target.class);
- Reference reference = systemFactory.createReference();
- reference.setName("setTarget");
- reference.setServiceContract(refContract);
- componentType.getReferences().add(reference);
- ConfiguredReference cReference = systemFactory.createConfiguredReference(reference.getName(), "target");
- cReference.initialize(assemblyContext);
- source.getConfiguredReferences().add(cReference);
-
- // wire multiplicity using a setter
- JavaServiceContract refContract2 = systemFactory.createJavaServiceContract();
- refContract2.setInterface(Target.class);
- Reference reference2 = systemFactory.createReference();
- reference2.setName("setTargets");
- reference2.setServiceContract(refContract2);
- reference2.setMultiplicity(Multiplicity.ONE_N);
- componentType.getReferences().add(reference2);
- ConfiguredReference cReference2 = systemFactory.createConfiguredReference(reference2.getName(), "target");
- cReference2.initialize(assemblyContext);
- source.getConfiguredReferences().add(cReference2);
-
- // wire multiplicity using a field
- JavaServiceContract refContract3 = systemFactory.createJavaServiceContract();
- refContract3.setInterface(Target.class);
- Reference reference3 = systemFactory.createReference();
- reference3.setName("targetsThroughField");
- reference3.setServiceContract(refContract3);
- reference3.setMultiplicity(Multiplicity.ONE_N);
- componentType.getReferences().add(reference3);
- ConfiguredReference cReference3 = systemFactory.createConfiguredReference(reference3.getName(), "target");
- cReference3.initialize(assemblyContext);
- source.getConfiguredReferences().add(cReference3);
-
- // wire multiplicity using a array
- JavaServiceContract refContract4 = systemFactory.createJavaServiceContract();
- refContract4.setInterface(Target.class);
- Reference reference4 = systemFactory.createReference();
- reference4.setName("setArrayOfTargets");
- reference4.setServiceContract(refContract4);
- reference4.setMultiplicity(Multiplicity.ONE_N);
- componentType.getReferences().add(reference4);
- ConfiguredReference cReference4 = systemFactory.createConfiguredReference(reference4.getName(), "target");
- cReference4.initialize(assemblyContext);
- source.getConfiguredReferences().add(cReference4);
-
- source.initialize(assemblyContext);
-
- Module module = systemFactory.createModule();
- module.setName("system.module");
-
- module.getComponents().add(source);
- module.getComponents().add(target);
- module.initialize(assemblyContext);
- return module;
- }
-
-
- /**
- * Creates a test system module with source and target components wired together.
- *
- * @see org.apache.tuscany.core.mock.component.Source
- * @see org.apache.tuscany.core.mock.component.Target
- */
-
- public static Module createModuleWithWiredComponentsOfDifferentInterface(Scope sourceScope, Scope targetScope) {
-
- // create the target component
- AtomicComponent target = factory.createSimpleComponent();
- target.setName("target");
- JavaImplementation targetImpl = factory.createJavaImplementation();
- targetImpl.setComponentType(factory.createComponentType());
- targetImpl.setImplementationClass(OtherTargetImpl.class);
- target.setImplementation(targetImpl);
- Service targetService = factory.createService();
- JavaServiceContract targetContract = factory.createJavaServiceContract();
- targetContract.setInterface(OtherTarget.class);
- targetService.setServiceContract(targetContract);
- targetService.setName("Target");
- targetImpl.getComponentType().getServices().add(targetService);
- targetContract.setScope(targetScope);
- ConfiguredService cTargetService = factory.createConfiguredService();
- cTargetService.setPort(targetService);
- cTargetService.initialize(assemblyContext);
- target.getConfiguredServices().add(cTargetService);
- target.initialize(assemblyContext);
-
- // create the source component
- AtomicComponent source = factory.createSimpleComponent();
- ComponentType componentType = factory.createComponentType();
- source.setName("source");
- JavaImplementation impl = factory.createJavaImplementation();
- impl.setComponentType(componentType);
- impl.setImplementationClass(SourceImpl.class);
- source.setImplementation(impl);
- Service s = systemFactory.createService();
- JavaServiceContract contract = systemFactory.createJavaServiceContract();
- contract.setInterface(Source.class);
- s.setServiceContract(contract);
- contract.setScope(sourceScope);
- impl.getComponentType().getServices().add(s);
- source.setImplementation(impl);
-
- // wire source to target
- JavaServiceContract refContract = systemFactory.createJavaServiceContract();
- refContract.setInterface(Target.class);
- Reference reference = systemFactory.createReference();
- reference.setName("setTarget");
- reference.setServiceContract(refContract);
- componentType.getReferences().add(reference);
- ConfiguredReference cReference = systemFactory.createConfiguredReference(reference.getName(), "target");
- cReference.initialize(assemblyContext);
- source.getConfiguredReferences().add(cReference);
-
- // wire multiplicity using a setter
- JavaServiceContract refContract2 = systemFactory.createJavaServiceContract();
- refContract2.setInterface(Target.class);
- Reference reference2 = systemFactory.createReference();
- reference2.setName("setTargets");
- reference2.setServiceContract(refContract2);
- reference2.setMultiplicity(Multiplicity.ONE_N);
- componentType.getReferences().add(reference2);
- ConfiguredReference cReference2 = systemFactory.createConfiguredReference(reference2.getName(), "target");
- cReference2.initialize(assemblyContext);
- source.getConfiguredReferences().add(cReference2);
-
- // wire multiplicity using a field
- JavaServiceContract refContract3 = systemFactory.createJavaServiceContract();
- refContract3.setInterface(Target.class);
- Reference reference3 = systemFactory.createReference();
- reference3.setName("targetsThroughField");
- reference3.setServiceContract(refContract3);
- reference3.setMultiplicity(Multiplicity.ONE_N);
- componentType.getReferences().add(reference3);
- ConfiguredReference cReference3 = systemFactory.createConfiguredReference(reference3.getName(), "target");
- cReference3.initialize(assemblyContext);
- source.getConfiguredReferences().add(cReference3);
-
- // wire multiplicity using a array
- JavaServiceContract refContract4 = systemFactory.createJavaServiceContract();
- refContract4.setInterface(Target.class);
- Reference reference4 = systemFactory.createReference();
- reference4.setName("setArrayOfTargets");
- reference4.setServiceContract(refContract4);
- reference4.setMultiplicity(Multiplicity.ONE_N);
- componentType.getReferences().add(reference4);
- ConfiguredReference cReference4 = systemFactory.createConfiguredReference(reference4.getName(), "target");
- cReference4.initialize(assemblyContext);
- source.getConfiguredReferences().add(cReference4);
-
- source.initialize(assemblyContext);
-
- Module module = systemFactory.createModule();
- module.setName("system.module");
-
- module.getComponents().add(source);
- module.getComponents().add(target);
- module.initialize(assemblyContext);
- return module;
- }
-
-
- /**
- * Returns a collection of bootstrap configuration builders
- */
- public static List<ContextFactoryBuilder> createSystemBuilders() {
- List<ContextFactoryBuilder> builders = new ArrayList<ContextFactoryBuilder>();
- builders.add((new SystemContextFactoryBuilder(null)));
- builders.add(new SystemEntryPointBuilder());
- builders.add(new SystemExternalServiceBuilder());
- return builders;
- }
-
- /**
- * Creates an composite context faxtory
- *
- * @param name the name of the component
- * @throws BuilderException
- * @see ContextFactory
- */
- public static ContextFactory<Context> createCompositeConfiguration(String name
- ) throws BuilderException, ConfigurationLoadException {
-
- Component sc = createCompositeComponent(name);
- SystemContextFactoryBuilder builder = new SystemContextFactoryBuilder(null);
- builder.build(sc);
- return (ContextFactory<Context>) sc.getContextFactory();
- }
-
- /**
- * Creates a Java POJO component context
- *
- * @param name the name of the context
- * @param implType the POJO class
- * @param scope the component scope
- * @param moduleComponentContext the containing composite context
- * @throws NoSuchMethodException if the POJO does not have a default noi-args constructor
- */
- public static JavaAtomicContext createPojoContext(String name, Class implType, Scope scope,
- CompositeContext moduleComponentContext) throws NoSuchMethodException, ConfigurationLoadException {
- AtomicComponent component = createComponent(name, implType, scope);
-
- Set<Field> fields = JavaIntrospectionHelper.getAllFields(implType);
- Set<Method> methods = JavaIntrospectionHelper.getAllUniqueMethods(implType);
- List<Injector> injectors = new ArrayList<Injector>();
-
- EventInvoker initInvoker = null;
- boolean eagerInit = false;
- EventInvoker destroyInvoker = null;
- for (Field field : fields) {
- ComponentName compName = field.getAnnotation(ComponentName.class);
- if (compName != null) {
- Injector injector = new FieldInjector(field, new SingletonObjectFactory(name));
- injectors.add(injector);
- }
- org.osoa.sca.annotations.Context context = field.getAnnotation(org.osoa.sca.annotations.Context.class);
- if (context != null) {
- Injector injector = new FieldInjector(field, new SingletonObjectFactory(moduleComponentContext));
- injectors.add(injector);
- }
- }
- for (Method method : methods) {
- // FIXME Java5
- Init init = method.getAnnotation(Init.class);
- if (init != null && initInvoker == null) {
- initInvoker = new MethodEventInvoker(method);
- eagerInit = init.eager();
- continue;
- }
- Destroy destroy = method.getAnnotation(Destroy.class);
- if (destroy != null && destroyInvoker == null) {
- destroyInvoker = new MethodEventInvoker(method);
- continue;
- }
- ComponentName compName = method.getAnnotation(ComponentName.class);
- if (compName != null) {
- Injector injector = new MethodInjector(method, new SingletonObjectFactory(name));
- injectors.add(injector);
- }
- org.osoa.sca.annotations.Context context = method.getAnnotation(org.osoa.sca.annotations.Context.class);
- if (context != null) {
- Injector injector = new MethodInjector(method, new SingletonObjectFactory(moduleComponentContext));
- injectors.add(injector);
- }
- }
- boolean stateless = (scope == Scope.INSTANCE);
- return new JavaAtomicContext("foo", new PojoObjectFactory(JavaIntrospectionHelper
- .getDefaultConstructor(implType), null, injectors), eagerInit, initInvoker, destroyInvoker, stateless);
- }
-
- /**
- * Creates a default {@link RuntimeContext} configured with support for Java component implementations
- *
- * @throws ConfigurationException
- */
- public static RuntimeContext createJavaRuntime() throws ConfigurationException {
- MonitorFactory monitorFactory = new NullMonitorFactory();
- ContextFactoryBuilderRegistry builderRegistry = BootstrapHelper.bootstrapContextFactoryBuilders(monitorFactory);
- DefaultWireBuilder wireBuilder = new DefaultWireBuilder();
- RuntimeContext runtime = new RuntimeContextImpl(monitorFactory, builderRegistry, wireBuilder);
- runtime.start();
- runtime.getSystemContext().registerModelObject(createSystemCompositeComponent(SYSTEM_CHILD));
- SystemCompositeContext ctx = (SystemCompositeContext) runtime.getSystemContext().getContext(SYSTEM_CHILD);
- Component comp = systemFactory.createSystemComponent(POLICY_BUILDER_REGISTRY, PolicyBuilderRegistry.class, DefaultPolicyBuilderRegistry.class, Scope.MODULE);
- comp.getImplementation().setComponentType(getIntrospector().introspect(DefaultPolicyBuilderRegistry.class));
- ctx.registerModelObject(comp);
- comp = systemFactory.createSystemComponent(MESSAGE_FACTORY, MessageFactory.class, MessageFactoryImpl.class, Scope.MODULE);
- comp.getImplementation().setComponentType(getIntrospector().introspect(MessageFactoryImpl.class));
- ctx.registerModelObject(comp);
- comp = systemFactory.createSystemComponent(PROXY_FACTORY_FACTORY, WireFactoryFactory.class, JDKWireFactoryFactory.class, Scope.MODULE);
- comp.getImplementation().setComponentType(getIntrospector().introspect(JDKWireFactoryFactory.class));
- ctx.registerModelObject(comp);
- comp = systemFactory.createSystemComponent(WIRE_FACTORY_SERVICE, org.apache.tuscany.core.wire.service.WireFactoryService.class, DefaultWireFactoryService.class, Scope.MODULE);
- comp.getImplementation().setComponentType(getIntrospector().introspect(DefaultWireFactoryService.class));
- ctx.registerModelObject(comp);
- comp = systemFactory.createSystemComponent(JAVA_BUILDER, ContextFactoryBuilder.class, JavaContextFactoryBuilder.class, Scope.MODULE);
- comp.getImplementation().setComponentType(getIntrospector().introspect(JavaContextFactoryBuilder.class));
- ctx.registerModelObject(comp);
- comp = systemFactory.createSystemComponent(JAVA_WIRE_BUILDER, WireBuilder.class, JavaTargetWireBuilder.class, Scope.MODULE);
- comp.getImplementation().setComponentType(getIntrospector().introspect(JavaTargetWireBuilder.class));
- ctx.registerModelObject(comp);
- ctx.publish(new ModuleStart(new Object()));
- return runtime;
- }
-
- /**
- * Registers the {@link FooBinding} builders with a given runtime
- *
- * @throws ConfigurationException
- */
- public static RuntimeContext registerFooBinding(RuntimeContext runtime) throws ConfigurationException {
- CompositeContext child = (CompositeContext) runtime.getSystemContext().getContext(MockFactory.SYSTEM_CHILD);
- child.getContext(MockFactory.JAVA_BUILDER).getInstance(null);
- Component comp = systemFactory.createSystemComponent(FOO_BUILDER, ContextFactoryBuilder.class, FooBindingBuilder.class, Scope.MODULE);
- comp.getImplementation().setComponentType(getIntrospector().introspect(FooBindingBuilder.class));
- child.registerModelObject(comp);
- comp = systemFactory.createSystemComponent(FOO_WIRE_BUILDER, WireBuilder.class, FooBindingWireBuilder.class, Scope.MODULE);
- comp.getImplementation().setComponentType(getIntrospector().introspect(FooBindingWireBuilder.class));
- child.registerModelObject(comp);
- // since the child context is already started, we need to manually retrieve the components to init them
- Assert.assertNotNull(child.getContext(FOO_BUILDER).getInstance(null));
- Assert.assertNotNull(child.getContext(FOO_WIRE_BUILDER).getInstance(null));
- return runtime;
- }
-
-
-}