Author: jboynes
Date: Fri Mar 24 11:15:51 2006
New Revision: 388606
URL: http://svn.apache.org/viewcvs?rev=388606&view=rev
Log:
add helper methods for creating basic entry points
Modified:
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/SystemAssemblyFactory.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/impl/SystemAssemblyFactoryImpl.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java
Modified:
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java?rev=388606&r1=388605&r2=388606&view=diff
==============================================================================
---
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
(original)
+++
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
Fri Mar 24 11:15:51 2006
@@ -72,7 +72,6 @@
import org.apache.tuscany.core.system.builder.SystemEntryPointBuilder;
import org.apache.tuscany.core.system.builder.SystemExternalServiceBuilder;
import org.apache.tuscany.core.system.context.SystemAggregateContextImpl;
-import org.apache.tuscany.model.assembly.AggregatePart;
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.Component;
import org.apache.tuscany.model.assembly.ComponentType;
@@ -217,58 +216,6 @@
}
/**
- * Creates an entry point wired to the given target (e.g. component,
external service) using the system binding
- *
- * @param name the name of the entry point
- * @param interfaz the inteface exposed by the entry point
- * @param refName the name of the entry point reference
- * @param target the target the entry point is wired to
- */
- public static EntryPoint createEPSystemBinding(String name, Class
interfaz, String refName, AggregatePart target) {
- JavaServiceContract contract =
systemFactory.createJavaServiceContract();
- contract.setInterface(interfaz);
-
- EntryPoint ep = systemFactory.createEntryPoint();
- ep.setName(name);
-
- Reference ref = systemFactory.createReference();
- ref.setName(refName);
- ref.setServiceContract(contract);
- ConfiguredReference configuredReference =
systemFactory.createConfiguredReference();
- configuredReference.setReference(ref);
- Service service = systemFactory.createService();
- service.setServiceContract(contract);
-
- ConfiguredService cService = systemFactory.createConfiguredService();
- cService.setService(service);
- cService.initialize(MockFactory.assemblyContext);
-
- configuredReference.getTargetConfiguredServices().add(cService);
- ep.setConfiguredReference(configuredReference);
-
- Service epService = systemFactory.createService();
- epService.setServiceContract(contract);
-
- ConfiguredService epCService = systemFactory.createConfiguredService();
- epCService.initialize(MockFactory.assemblyContext);
- epCService.setService(epService);
-
- ep.setConfiguredService(epCService);
- SystemBinding binding = systemFactory.createSystemBinding();
- ep.getBindings().add(binding);
- if (target != null) {
- if (target instanceof Component) {
- ((Component) target).getConfiguredServices().add(cService);
- } else if (target instanceof ExternalService) {
- ((ExternalService) target).setConfiguredService(cService);
- }
- target.initialize(MockFactory.assemblyContext);
- }
- ep.initialize(null);
- return ep;
- }
-
- /**
* Creates an external service configured with a [EMAIL PROTECTED]
SystemBinding}
*/
public static ExternalService createESSystemBinding(String name, String
refName) {
@@ -373,7 +320,6 @@
* @param scope the scope of the target service
*/
public static Module createModuleWithEntryPoint(Scope scope) {
- EntryPoint sourceEP = createFooBindingEntryPoint("source",
HelloWorldService.class);
Component targetComponent = createComponent("target",
HelloWorldImpl.class, scope);
Service targetService = factory.createService();
@@ -395,6 +341,8 @@
cref.setReference(ref);
cref.getTargetConfiguredServices().add(cTargetService);
cref.initialize(assemblyContext);
+
+ EntryPoint sourceEP = createFooBindingEntryPoint("source",
HelloWorldService.class);
sourceEP.setConfiguredReference(cref);
sourceEP.getConfiguredService().getService().setName("HelloWorldService");
sourceEP.initialize(assemblyContext);
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java?rev=388606&r1=388605&r2=388606&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
(original)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
Fri Mar 24 11:15:51 2006
@@ -23,28 +23,31 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import org.apache.tuscany.core.loader.assembly.ComponentTypeLoader;
import org.apache.tuscany.core.loader.assembly.ComponentLoader;
+import org.apache.tuscany.core.loader.assembly.ComponentTypeLoader;
import org.apache.tuscany.core.loader.assembly.EntryPointLoader;
import org.apache.tuscany.core.loader.assembly.ExternalServiceLoader;
+import org.apache.tuscany.core.loader.assembly.InterfaceJavaLoader;
+import org.apache.tuscany.core.loader.assembly.InterfaceWSDLLoader;
import org.apache.tuscany.core.loader.assembly.ModuleFragmentLoader;
import org.apache.tuscany.core.loader.assembly.ModuleLoader;
import org.apache.tuscany.core.loader.assembly.PropertyLoader;
import org.apache.tuscany.core.loader.assembly.ReferenceLoader;
import org.apache.tuscany.core.loader.assembly.ServiceLoader;
-import org.apache.tuscany.core.loader.assembly.InterfaceWSDLLoader;
-import org.apache.tuscany.core.loader.assembly.InterfaceJavaLoader;
-import org.apache.tuscany.core.loader.system.SystemImplementationLoader;
+import org.apache.tuscany.core.loader.impl.StAXLoaderRegistryImpl;
import org.apache.tuscany.core.loader.system.SystemBindingLoader;
+import org.apache.tuscany.core.loader.system.SystemImplementationLoader;
import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
import org.apache.tuscany.core.system.assembly.SystemImplementation;
import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.EntryPoint;
import org.apache.tuscany.model.assembly.Module;
import org.apache.tuscany.model.assembly.ModuleComponent;
import org.apache.tuscany.model.assembly.Multiplicity;
import org.apache.tuscany.model.assembly.OverrideOption;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.Scope;
/**
* @version $Rev$ $Date$
@@ -94,6 +97,7 @@
SystemAssemblyFactory factory = new SystemAssemblyFactoryImpl();
Module module = factory.createModule();
module.setName("org.apache.tuscany.core.system.loader");
+
List<Component> components = module.getComponents();
components.add(bootstrapLoader(factory, ComponentLoader.class));
@@ -111,6 +115,8 @@
components.add(bootstrapLoader(factory,
SystemImplementationLoader.class));
components.add(bootstrapLoader(factory, SystemBindingLoader.class));
+ bootstrapLoaderRegistry(factory, module);
+
ModuleComponent mc = factory.createModuleComponent();
mc.setName(name);
mc.setModuleImplementation(module);
@@ -122,10 +128,20 @@
private static Component bootstrapLoader(SystemAssemblyFactory factory,
Class<?> loaderClass) {
SystemImplementation implementation =
factory.createSystemImplementation();
implementation.setImplementationClass(loaderClass);
-
Component component = factory.createSimpleComponent();
component.setName(loaderClass.getName());
component.setComponentImplementation(implementation);
return component;
+ }
+
+ private static void bootstrapLoaderRegistry(SystemAssemblyFactory factory,
Module module) {
+ String epName = StAXLoaderRegistry.class.getName();
+ String compName = StAXLoaderRegistryImpl.class.getName();
+
+ Component component = factory.createSystemComponent(compName,
StAXLoaderRegistry.class, StAXLoaderRegistryImpl.class, Scope.MODULE);
+ EntryPoint entryPoint = factory.createSystemEntryPoint(epName,
StAXLoaderRegistry.class, compName);
+
+ module.getComponents().add(component);
+ module.getEntryPoints().add(entryPoint);
}
}
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/SystemAssemblyFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/SystemAssemblyFactory.java?rev=388606&r1=388605&r2=388606&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/SystemAssemblyFactory.java
(original)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/SystemAssemblyFactory.java
Fri Mar 24 11:15:51 2006
@@ -19,6 +19,7 @@
import org.apache.tuscany.model.assembly.AssemblyFactory;
import org.apache.tuscany.model.assembly.Component;
import org.apache.tuscany.model.assembly.Scope;
+import org.apache.tuscany.model.assembly.EntryPoint;
/**
* A factory for building system assembly model artifacts
@@ -47,4 +48,14 @@
* @return a Component model object with the appropriate system
implementation
*/
<T> Component createSystemComponent(String name, Class<T> service, Class<?
extends T> impl, Scope scope);
+
+ /**
+ * Helper method for creating a system entry point wired to a component.
+ *
+ * @param entryPointName the name of the entry point
+ * @param serviceContract the service contract exposed
+ * @param targetName the component to wire the entry point to
+ * @return a EntryPoint model object that exposes the service contract and
is wired to the named component
+ */
+ EntryPoint createSystemEntryPoint(String entryPointName, Class<?>
serviceContract, String targetName);
}
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/impl/SystemAssemblyFactoryImpl.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/impl/SystemAssemblyFactoryImpl.java?rev=388606&r1=388605&r2=388606&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/impl/SystemAssemblyFactoryImpl.java
(original)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/impl/SystemAssemblyFactoryImpl.java
Fri Mar 24 11:15:51 2006
@@ -19,11 +19,12 @@
import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
import org.apache.tuscany.core.system.assembly.SystemBinding;
import org.apache.tuscany.core.system.assembly.SystemImplementation;
-import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.ComponentType;
+import org.apache.tuscany.model.assembly.EntryPoint;
import org.apache.tuscany.model.assembly.Scope;
import org.apache.tuscany.model.assembly.Service;
-import org.apache.tuscany.model.assembly.ComponentType;
+import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
import org.apache.tuscany.model.types.java.JavaServiceContract;
/**
@@ -63,4 +64,16 @@
sc.setComponentImplementation(sysImpl);
return sc;
}
+
+ public EntryPoint createSystemEntryPoint(String entryPointName, Class<?>
serviceContract, String targetName) {
+ // create the system binding
+ SystemBinding systemBinding = createSystemBinding();
+
+ // define the EP's service contract
+ JavaServiceContract javaServiceContract = createJavaServiceContract();
+ javaServiceContract.setInterface(serviceContract);
+
+ return createEntryPoint(entryPointName, javaServiceContract,
systemBinding, targetName);
+ }
+
}
Modified:
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java?rev=388606&r1=388605&r2=388606&view=diff
==============================================================================
---
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java
(original)
+++
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java
Fri Mar 24 11:15:51 2006
@@ -28,162 +28,162 @@
/**
* Returns a new SimpleComponent.
- *
- * @return
+ *
+ * @return a new SimpleComponent
*/
SimpleComponent createSimpleComponent();
/**
* Returns a new ComponentType.
- *
- * @return
+ *
+ * @return a new ComponentType
*/
ComponentType createComponentType();
/**
* Returns a new EntryPoint.
- *
- * @return
+ *
+ * @return a new EntryPoint
*/
EntryPoint createEntryPoint();
/**
* Returns a new ExternalService.
- *
- * @return
+ *
+ * @return a new ExternalService
*/
ExternalService createExternalService();
/**
* Returns a new JavaServiceContract.
- *
- * @return
+ *
+ * @return a new JavaServiceContract
*/
JavaServiceContract createJavaServiceContract();
/**
* Returns a new Module.
- *
- * @return
+ *
+ * @return a new Module
*/
Module createModule();
/**
* Returns a new ModuleComponent.
- *
- * @return
+ *
+ * @return a new ModuleComponent
*/
ModuleComponent createModuleComponent();
/**
* Returns a new ModuleFragment.
- *
- * @return
+ *
+ * @return a new ModuleFragment
*/
ModuleFragment createModuleFragment();
/**
* Returns a new Reference.
- *
- * @return
+ *
+ * @return a new Reference
*/
Reference createReference();
/**
* Returns a new ConfiguredReference.
- *
- * @return
+ *
+ * @return a new ConfiguredReference
*/
ConfiguredReference createConfiguredReference();
/**
* Returns a new Service.
- *
- * @return
+ *
+ * @return a new Service
*/
Service createService();
/**
* Returns a new ConfiguredService.
- *
- * @return
+ *
+ * @return a new ConfiguredService
*/
ConfiguredService createConfiguredService();
/**
* Returns a new Subsystem.
- *
- * @return
+ *
+ * @return a new Subsystem
*/
Subsystem createSubsystem();
/**
- * Returns Property.
- *
- * @return
+ * Returns a new Property.
+ *
+ * @return a new Property
*/
Property createProperty();
/**
* Returns a new ConfiguredProperty.
- *
- * @return
+ *
+ * @return a new ConfiguredProperty
*/
ConfiguredProperty createConfiguredProperty();
/**
* Returns a new WSDLServiceContract.
- *
- * @return
+ *
+ * @return a new WSDLServiceContract
*/
WSDLServiceContract createWSDLServiceContract();
/**
* Create a new ServiceURI from the given uri string.
- *
- * @param uri
- * @return
+ *
+ * @param uri the URI for the service
+ * @return a new ServiceURI created from the supplied URI
*/
ServiceURI createServiceURI(String uri);
/**
* Creates a new ServiceURI from a module component and a service name.
- *
- * @param moduleComponent
- * @param serviceName
- * @return
+ *
+ * @param moduleComponent the module component exposing the service
+ * @param serviceName the name of the service exposed by the module
+ * @return a new ServiceURI for the exposed service
*/
ServiceURI createServiceURI(ModuleComponent moduleComponent, String
serviceName);
/**
* Creates a new ServiceURI from a module component and configured port.
- *
- * @param moduleComponent
- * @param aggregatePart
- * @param configuredPort
- * @return
+ *
+ * @param moduleComponent the module component exposing the service
+ * @param aggregatePart the aggregatePart that is providing the service
+ * @param configuredPort the port on the aggregatePart
+ * @return a new serviceURI for the exposed service
*/
ServiceURI createServiceURI(ModuleComponent moduleComponent, AggregatePart
aggregatePart, ConfiguredPort configuredPort);
/**
* Create a qname from a URI
- *
+ *
* @param uri
- * @return
+ * @return a new qname
*/
QName createQName(String uri);
/**
* Create a wire
- *
- * @return
+ *
+ * @return an new wire
*/
Wire createWire();
/**
* Helper method for creating a reference.
- *
- * @param name the name of the reference
+ *
+ * @param name the name of the reference
* @param service the Java type of the service
* @return a Reference
*/
@@ -191,20 +191,42 @@
/**
* Helper method for creating a reference.
- *
- * @param name the name of the reference
- * @param service the Java type of the service
- * @param the multiplicity of the reference
+ *
+ * @param name the name of the reference
+ * @param service the Java type of the service
+ * @param multiplicity the multiplicity of the reference
* @return a Reference
*/
Reference createReference(String name, Class<?> service, Multiplicity
multiplicity);
/**
* Helper method for creating a configured reference.
- *
- * @param name the name of the reference
+ *
+ * @param name the name of the reference
* @param targets the targets for the reference
* @return a ConfiguredReference
*/
ConfiguredReference createConfiguredReference(String name, String...
targets);
+
+ /**
+ * Helper method for creating an EntryPoint wired to a single target.
+ *
+ * @param entryPointName the name of the entry point
+ * @param serviceContract the service contract the EntryPoint should expose
+ * @param binding the binding the EntryPoint should use
+ * @param targetName the target the EntryPoint exposes
+ * @return an EntryPoint that exposes the supplied service and is wired to
the target
+ */
+ EntryPoint createEntryPoint(String entryPointName, ServiceContract
serviceContract, Binding binding, String targetName);
+
+ /**
+ * Helper method for creating an EntryPoint wired to a single target.
+ *
+ * @param entryPointName the name of the entry point
+ * @param configuredService the configured service to expose
+ * @param binding the binding the EntryPoint should use
+ * @param configuredReference a configured reference to the target
+ * @return an EntryPoint that exposes the supplied service using the
supplied bindng and which is wired using the supplied reference
+ */
+ EntryPoint createEntryPoint(String entryPointName, ConfiguredService
configuredService, Binding binding, ConfiguredReference configuredReference);
}
Modified:
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java?rev=388606&r1=388605&r2=388606&view=diff
==============================================================================
---
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java
(original)
+++
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java
Fri Mar 24 11:15:51 2006
@@ -38,6 +38,8 @@
import org.apache.tuscany.model.assembly.SimpleComponent;
import org.apache.tuscany.model.assembly.Subsystem;
import org.apache.tuscany.model.assembly.Wire;
+import org.apache.tuscany.model.assembly.Binding;
+import org.apache.tuscany.model.assembly.ServiceContract;
import org.apache.tuscany.model.types.java.JavaServiceContract;
import org.apache.tuscany.model.types.java.impl.JavaServiceContractImpl;
import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
@@ -224,5 +226,31 @@
ref.getTargets().add(target);
}
return ref;
+ }
+
+ public EntryPoint createEntryPoint(String entryPointName, ServiceContract
serviceContract, Binding binding, String targetName) {
+ // create and configure the exposed service
+ Service service = createService();
+ service.setName(entryPointName);
+ service.setServiceContract(serviceContract);
+ ConfiguredService configuredService = createConfiguredService();
+ configuredService.setService(service);
+
+ // create and configure a reference to target
+ Reference reference = createReference();
+ reference.setMultiplicity(Multiplicity.ONE_ONE);
+ ConfiguredReference configuredReference =
createConfiguredReference(null, targetName);
+ configuredReference.setReference(reference);
+
+ return createEntryPoint(entryPointName, configuredService, binding,
configuredReference);
+ }
+
+ public EntryPoint createEntryPoint(String entryPointName,
ConfiguredService configuredService, Binding binding, ConfiguredReference
configuredReference) {
+ EntryPoint entryPoint = createEntryPoint();
+ entryPoint.setName(entryPointName);
+ entryPoint.setConfiguredService(configuredService);
+ entryPoint.setConfiguredReference(configuredReference);
+ entryPoint.getBindings().add((Binding)binding);
+ return entryPoint;
}
}