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;
     }
 }


Reply via email to