From ecc75e3effd3e8a66877f7acd2bc7ce1a7a5a4b4 Mon Sep 17 00:00:00 2001 From: rfeng Date: Mon, 11 Aug 2008 23:24:54 +0000 Subject: Make AssemblyHelper non-static so that factories can be passed in git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@684980 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/contribution/jee/AssemblyHelper.java | 36 ++++++++---- .../sca/contribution/jee/EJBModuleProcessor.java | 68 ++++++++++++---------- .../sca/contribution/jee/WebModuleProcessor.java | 30 ++++++---- 3 files changed, 80 insertions(+), 54 deletions(-) diff --git a/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/AssemblyHelper.java b/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/AssemblyHelper.java index 12a20b0b6e..3634be3bec 100644 --- a/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/AssemblyHelper.java +++ b/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/AssemblyHelper.java @@ -50,8 +50,8 @@ import org.apache.tuscany.sca.policy.PolicyFactory; * @version $Rev$ $Date$ */ public class AssemblyHelper { - private static AssemblyFactory af = new DefaultAssemblyFactory(); - private static JavaInterfaceFactory jif = new DefaultJavaInterfaceFactory(); + private AssemblyFactory af; + private JavaInterfaceFactory jif; public static final Map ALLOWED_ENV_ENTRY_TYPES; public static Intent CONVERSATIONAL_INTENT; @@ -82,7 +82,19 @@ public class AssemblyHelper { } - public static JavaInterfaceContract createInterfaceContract(Class clazz) throws InvalidInterfaceException { + public AssemblyHelper() { + super(); + af = new DefaultAssemblyFactory(); + jif = new DefaultJavaInterfaceFactory(); + } + + public AssemblyHelper(AssemblyFactory af, JavaInterfaceFactory jif) { + super(); + this.af = af; + this.jif = jif; + } + + public JavaInterfaceContract createInterfaceContract(Class clazz) throws InvalidInterfaceException { JavaInterface ji = jif.createJavaInterface(clazz); JavaInterfaceContract jic = jif.createJavaInterfaceContract(); jic.setInterface(ji); @@ -90,23 +102,23 @@ public class AssemblyHelper { return jic; } - public static ComponentService createComponentService() { + public ComponentService createComponentService() { return af.createComponentService(); } - public static ComponentReference createComponentReference() { + public ComponentReference createComponentReference() { return af.createComponentReference(); } - public static ComponentProperty createComponentProperty() { + public ComponentProperty createComponentProperty() { return af.createComponentProperty(); } - public static ComponentType createComponentType() { + public ComponentType createComponentType() { return af.createComponentType(); } - public static Component createComponentFromComponentType(ComponentType componentType, String componentName) { + public Component createComponentFromComponentType(ComponentType componentType, String componentName) { Component component = af.createComponent(); component.setName(componentName); @@ -130,19 +142,19 @@ public class AssemblyHelper { return component; } - public static Composite createComposite() { + public Composite createComposite() { return af.createComposite(); } - public static Component createComponent() { + public Component createComponent() { return af.createComponent(); } - public static CompositeReference createCompositeReference() { + public CompositeReference createCompositeReference() { return af.createCompositeReference(); } - public static CompositeService createCompositeService() { + public CompositeService createCompositeService() { return af.createCompositeService(); } } diff --git a/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/EJBModuleProcessor.java b/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/EJBModuleProcessor.java index 4d25fdeff0..a13080eac4 100644 --- a/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/EJBModuleProcessor.java +++ b/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/EJBModuleProcessor.java @@ -56,14 +56,20 @@ import org.apache.tuscany.sca.interfacedef.java.JavaInterface; * @version $Rev$ $Date$ */ public class EJBModuleProcessor { - private EjbModule ejbModule; - + private AssemblyHelper helper; private Map> intfToBean = new HashMap>(); private List statefulBeans = new ArrayList(); + public EJBModuleProcessor(EjbModule ejbModule, AssemblyHelper helper) { + super(); + this.ejbModule = ejbModule; + this.helper = helper; + } + public EJBModuleProcessor(EjbModule ejbModule) { this.ejbModule = ejbModule; + this.helper = new AssemblyHelper(); } public Map getEjbComponentTypes() throws ContributionException { @@ -100,7 +106,7 @@ public class EJBModuleProcessor { String intf = ((JavaInterface)reference.getInterfaceContract().getInterface()).getName(); for (String bean : intfToBean.get(intf)) { if (statefulBeans.contains(bean)) { - reference.getRequiredIntents().add(AssemblyHelper.CONVERSATIONAL_INTENT); + reference.getRequiredIntents().add(helper.CONVERSATIONAL_INTENT); break; } } @@ -111,7 +117,7 @@ public class EJBModuleProcessor { } public ComponentType getEjbAppComponentType() throws ContributionException { - ComponentType componentType = AssemblyHelper.createComponentType(); + ComponentType componentType = helper.createComponentType(); Map ejbComponentTypes = getEjbComponentTypes(); @@ -120,7 +126,7 @@ public class EJBModuleProcessor { ComponentType ejbComponentType = entry.getValue(); for (Service service : ejbComponentType.getServices()) { - Service service2 = AssemblyHelper.createComponentService(); + Service service2 = helper.createComponentService(); service2.setName(beanName + "_" + service.getName()); service2.setInterfaceContract(service.getInterfaceContract()); service2.getRequiredIntents().addAll(service.getRequiredIntents()); @@ -129,7 +135,7 @@ public class EJBModuleProcessor { } for (Reference reference : ejbComponentType.getReferences()) { - Reference reference2 = AssemblyHelper.createComponentReference(); + Reference reference2 = helper.createComponentReference(); reference2.setName(beanName + "_" + reference.getName()); reference2.setInterfaceContract(reference.getInterfaceContract()); reference2.getRequiredIntents().addAll(reference.getRequiredIntents()); @@ -142,7 +148,7 @@ public class EJBModuleProcessor { } public Composite getEjbAppComposite() throws ContributionException { - Composite composite = AssemblyHelper.createComposite(); + Composite composite = helper.createComposite(); Map ejbComponentTypes = getEjbComponentTypes(); @@ -156,28 +162,28 @@ public class EJBModuleProcessor { EJBImplementation impl = eif.createEJBImplementation(); impl.setEJBLink(ejbModule.getModuleId() + "#" + ejbName); // Create component - Component component = AssemblyHelper.createComponent(); + Component component = helper.createComponent(); String componentName = ejbName; component.setName(componentName); component.setImplementation(impl); // Add services for (Service service : componentType.getServices()) { - ComponentService componentService = AssemblyHelper.createComponentService(); + ComponentService componentService = helper.createComponentService(); componentService.setService(service); component.getServices().add(componentService); } // Add references for (Reference reference : componentType.getReferences()) { - ComponentReference componentReference = AssemblyHelper.createComponentReference(); + ComponentReference componentReference = helper.createComponentReference(); componentReference.setReference(reference); component.getReferences().add(componentReference); } // Add properties for (Property property : componentType.getProperties()) { - ComponentProperty componentProperty = AssemblyHelper.createComponentProperty(); + ComponentProperty componentProperty = helper.createComponentProperty(); componentProperty.setProperty(property); component.getProperties().add(componentProperty); } @@ -187,7 +193,7 @@ public class EJBModuleProcessor { // Add composite services for (ComponentService service : component.getServices()) { - CompositeService compositeService = AssemblyHelper.createCompositeService(); + CompositeService compositeService = helper.createCompositeService(); compositeService.setInterfaceContract(service.getInterfaceContract()); compositeService.setPromotedComponent(component); compositeService.setPromotedService(service); @@ -196,7 +202,7 @@ public class EJBModuleProcessor { // Add composite references for (ComponentReference reference : component.getReferences()) { - CompositeReference compositeReference = AssemblyHelper.createCompositeReference(); + CompositeReference compositeReference = helper.createCompositeReference(); compositeReference.setInterfaceContract(reference.getInterfaceContract()); compositeReference.getPromotedReferences().add(reference); composite.getReferences().add(compositeReference); @@ -206,7 +212,7 @@ public class EJBModuleProcessor { } private ComponentType getEjbComponentType(SessionBean bean, ClassLoader cl) throws ContributionException { - ComponentType componentType = AssemblyHelper.createComponentType(); + ComponentType componentType = helper.createComponentType(); boolean conversational = bean.getSessionType().equals(SessionType.STATEFUL); if (conversational) { @@ -226,12 +232,12 @@ public class EJBModuleProcessor { String serviceName = intfName.lastIndexOf(".") != -1 ? intfName.substring(intfName.lastIndexOf(".") + 1) : intfName; - Service service = AssemblyHelper.createComponentService(); + Service service = helper.createComponentService(); service.setName(serviceName); InterfaceContract ic = null; try { Class clazz = cl.loadClass(intfName); - ic = AssemblyHelper.createInterfaceContract(clazz); + ic = helper.createInterfaceContract(clazz); ic.getInterface().setConversational(conversational); ic.getInterface().setRemotable(true); } catch (Exception e) { @@ -239,7 +245,7 @@ public class EJBModuleProcessor { } service.setInterfaceContract(ic); if (conversational) { - service.getRequiredIntents().add(AssemblyHelper.CONVERSATIONAL_INTENT); + service.getRequiredIntents().add(helper.CONVERSATIONAL_INTENT); } componentType.getServices().add(service); } @@ -248,19 +254,19 @@ public class EJBModuleProcessor { for (String intfName : bean.getBusinessLocal()) { String serviceName = intfName.lastIndexOf(".") != -1 ? intfName.substring(intfName.lastIndexOf(".") + 1) : intfName; - Service service = AssemblyHelper.createComponentService(); + Service service = helper.createComponentService(); service.setName(serviceName); InterfaceContract ic = null; try { Class clazz = cl.loadClass(intfName); - ic = AssemblyHelper.createInterfaceContract(clazz); + ic = helper.createInterfaceContract(clazz); ic.getInterface().setConversational(conversational); } catch (Exception e) { throw new ContributionException(e); } service.setInterfaceContract(ic); if (conversational) { - service.getRequiredIntents().add(AssemblyHelper.CONVERSATIONAL_INTENT); + service.getRequiredIntents().add(helper.CONVERSATIONAL_INTENT); } componentType.getServices().add(service); } @@ -273,12 +279,12 @@ public class EJBModuleProcessor { } String referenceName = entry.getKey(); referenceName = referenceName.replace("/", "_"); - Reference reference = AssemblyHelper.createComponentReference(); + Reference reference = helper.createComponentReference(); reference.setName(referenceName); InterfaceContract ic = null; try { Class clazz = cl.loadClass(ejbRef.getInterface()); - ic = AssemblyHelper.createInterfaceContract(clazz); + ic = helper.createInterfaceContract(clazz); } catch (Exception e) { throw new ContributionException(e); } @@ -290,15 +296,15 @@ public class EJBModuleProcessor { for (Map.Entry entry : bean.getEnvEntryMap().entrySet()) { EnvEntry envEntry = entry.getValue(); String type = envEntry.getEnvEntryType(); - if (!AssemblyHelper.ALLOWED_ENV_ENTRY_TYPES.containsKey(type)) { + if (!helper.ALLOWED_ENV_ENTRY_TYPES.containsKey(type)) { continue; } String propertyName = entry.getKey(); propertyName = propertyName.replace("/", "_"); String value = envEntry.getEnvEntryValue(); - Property property = AssemblyHelper.createComponentProperty(); + Property property = helper.createComponentProperty(); property.setName(propertyName); - property.setXSDType(AssemblyHelper.ALLOWED_ENV_ENTRY_TYPES.get(type)); + property.setXSDType(helper.ALLOWED_ENV_ENTRY_TYPES.get(type)); property.setValue(value); componentType.getProperties().add(property); } @@ -307,7 +313,7 @@ public class EJBModuleProcessor { } private ComponentType getEjbComponentType(MessageDrivenBean bean, ClassLoader cl) throws ContributionException { - ComponentType componentType = AssemblyHelper.createComponentType(); + ComponentType componentType = helper.createComponentType(); // Process Remote EJB References for (Map.Entry entry : bean.getEjbRefMap().entrySet()) { @@ -317,12 +323,12 @@ public class EJBModuleProcessor { } String referenceName = entry.getKey(); referenceName = referenceName.replace("/", "_"); - Reference reference = AssemblyHelper.createComponentReference(); + Reference reference = helper.createComponentReference(); reference.setName(referenceName); InterfaceContract ic = null; try { Class clazz = cl.loadClass(ejbRef.getInterface()); - ic = AssemblyHelper.createInterfaceContract(clazz); + ic = helper.createInterfaceContract(clazz); } catch (Exception e) { throw new ContributionException(e); } @@ -334,15 +340,15 @@ public class EJBModuleProcessor { for (Map.Entry entry : bean.getEnvEntryMap().entrySet()) { EnvEntry envEntry = entry.getValue(); String type = envEntry.getEnvEntryType(); - if (!AssemblyHelper.ALLOWED_ENV_ENTRY_TYPES.containsKey(type)) { + if (!helper.ALLOWED_ENV_ENTRY_TYPES.containsKey(type)) { continue; } String propertyName = entry.getKey(); propertyName = propertyName.replace("/", "_"); String value = envEntry.getEnvEntryValue(); - Property property = AssemblyHelper.createComponentProperty(); + Property property = helper.createComponentProperty(); property.setName(propertyName); - property.setXSDType(AssemblyHelper.ALLOWED_ENV_ENTRY_TYPES.get(type)); + property.setXSDType(helper.ALLOWED_ENV_ENTRY_TYPES.get(type)); property.setValue(value); componentType.getProperties().add(property); } diff --git a/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/WebModuleProcessor.java b/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/WebModuleProcessor.java index b7641bb31f..992151f70f 100644 --- a/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/WebModuleProcessor.java +++ b/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/WebModuleProcessor.java @@ -44,16 +44,24 @@ import org.apache.tuscany.sca.interfacedef.InterfaceContract; public class WebModuleProcessor { private WebModule webModule; private ComponentType componentType; + private AssemblyHelper helper; + + public WebModuleProcessor(WebModule webModule, AssemblyHelper helper) { + super(); + this.webModule = webModule; + this.helper = helper; + } public WebModuleProcessor(WebModule module) { webModule = module; + helper = new AssemblyHelper(); } public ComponentType getWebAppComponentType() throws ContributionException { if (componentType != null) { return componentType; } - componentType = AssemblyHelper.createComponentType(); + componentType = helper.createComponentType(); WebApp webApp = webModule.getWebApp(); ClassLoader classLoader = webModule.getClassLoader(); @@ -68,12 +76,12 @@ public class WebModuleProcessor { } String referenceName = entry.getKey(); referenceName = referenceName.replace("/", "_"); - Reference reference = AssemblyHelper.createComponentReference(); + Reference reference = helper.createComponentReference(); reference.setName(referenceName); InterfaceContract ic = null; try { Class clazz = classLoader.loadClass(ejbRef.getInterface()); - ic = AssemblyHelper.createInterfaceContract(clazz); + ic = helper.createInterfaceContract(clazz); } catch (Exception e) { componentType = null; throw new ContributionException(e); @@ -86,15 +94,15 @@ public class WebModuleProcessor { for (Map.Entry entry : webApp.getEnvEntryMap().entrySet()) { EnvEntry envEntry = entry.getValue(); String type = envEntry.getEnvEntryType(); - if (!AssemblyHelper.ALLOWED_ENV_ENTRY_TYPES.containsKey(type)) { + if (!helper.ALLOWED_ENV_ENTRY_TYPES.containsKey(type)) { continue; } String propertyName = entry.getKey(); propertyName = propertyName.replace("/", "_"); String value = envEntry.getEnvEntryValue(); - Property property = AssemblyHelper.createComponentProperty(); + Property property = helper.createComponentProperty(); property.setName(propertyName); - property.setXSDType(AssemblyHelper.ALLOWED_ENV_ENTRY_TYPES.get(type)); + property.setXSDType(helper.ALLOWED_ENV_ENTRY_TYPES.get(type)); property.setValue(value); componentType.getProperties().add(property); } @@ -105,7 +113,7 @@ public class WebModuleProcessor { public Composite getWebAppComposite() throws ContributionException { getWebAppComponentType(); - Composite composite = AssemblyHelper.createComposite(); + Composite composite = helper.createComposite(); ModelFactoryExtensionPoint mfep = new DefaultModelFactoryExtensionPoint(); WebImplementationFactory wif = mfep.getFactory(WebImplementationFactory.class); @@ -113,21 +121,21 @@ public class WebModuleProcessor { impl.setWebURI(webModule.getModuleId()); // Create component - Component component = AssemblyHelper.createComponent(); + Component component = helper.createComponent(); String componentName = webModule.getModuleId(); component.setName(componentName); component.setImplementation(impl); // Add references for (Reference reference : componentType.getReferences()) { - ComponentReference componentReference = AssemblyHelper.createComponentReference(); + ComponentReference componentReference = helper.createComponentReference(); componentReference.setReference(reference); component.getReferences().add(componentReference); } // Add properties for (Property property : componentType.getProperties()) { - ComponentProperty componentProperty = AssemblyHelper.createComponentProperty(); + ComponentProperty componentProperty = helper.createComponentProperty(); componentProperty.setProperty(property); component.getProperties().add(componentProperty); } @@ -137,7 +145,7 @@ public class WebModuleProcessor { // Add composite references for (ComponentReference reference : component.getReferences()) { - CompositeReference compositeReference = AssemblyHelper.createCompositeReference(); + CompositeReference compositeReference = helper.createCompositeReference(); compositeReference.setInterfaceContract(reference.getInterfaceContract()); compositeReference.getPromotedReferences().add(reference); composite.getReferences().add(compositeReference); -- cgit v1.2.3