diff options
Diffstat (limited to 'branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/JavaEEOptionalExtensionImpl.java')
-rw-r--r-- | branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/JavaEEOptionalExtensionImpl.java | 51 |
1 files changed, 45 insertions, 6 deletions
diff --git a/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/JavaEEOptionalExtensionImpl.java b/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/JavaEEOptionalExtensionImpl.java index d1b22c5631..0dc5667823 100644 --- a/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/JavaEEOptionalExtensionImpl.java +++ b/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/JavaEEOptionalExtensionImpl.java @@ -42,6 +42,7 @@ import org.apache.tuscany.sca.contribution.jee.EjbReferenceInfo; import org.apache.tuscany.sca.contribution.jee.EnvEntryInfo; import org.apache.tuscany.sca.contribution.jee.JavaEEApplicationInfo; import org.apache.tuscany.sca.contribution.jee.JavaEEOptionalExtension; +import org.apache.tuscany.sca.contribution.jee.WebImplementationGenerated; import org.apache.tuscany.sca.contribution.jee.WebModuleInfo; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException; @@ -176,7 +177,7 @@ public class JavaEEOptionalExtensionImpl implements JavaEEOptionalExtension { public void createImplementationJeeComposite(WebModuleInfo webModule, Composite composite) { - Component component = findComponent(composite, webModule.getModuleName()); + Component component = findComponent(composite, webModule); // Process Remote EJB References for(Map.Entry<String, EjbReferenceInfo> entry : webModule.getEjbReferences().entrySet()) { @@ -205,7 +206,7 @@ public class JavaEEOptionalExtensionImpl implements JavaEEOptionalExtension { for(Map.Entry<String, EjbInfo> entry : ejbModule.getEjbInfos().entrySet()) { EjbInfo ejbInfo = entry.getValue(); - Component component = findComponent(composite, ejbInfo.beanName); + Component component = findComponent(composite, ejbInfo); // Process Remote EJB References for(Map.Entry<String, EjbReferenceInfo> entry1 : ejbInfo.ejbReferences.entrySet()) { @@ -240,7 +241,7 @@ public class JavaEEOptionalExtensionImpl implements JavaEEOptionalExtension { for(Map.Entry<String, EjbInfo> entry : ejbModule.getEjbInfos().entrySet()) { EjbInfo ejbInfo = entry.getValue(); - Component component = findComponent(composite, ejbInfo.beanName); + Component component = findComponent(composite, ejbInfo); // Process Remote EJB References for(Map.Entry<String, EjbReferenceInfo> entry1 : ejbInfo.ejbReferences.entrySet()) { @@ -268,15 +269,16 @@ public class JavaEEOptionalExtensionImpl implements JavaEEOptionalExtension { } /** - * We are fluffing up the JEEImplemention composite to represented the components + * We are fluffing up the JEEImplemention composite to represent the components * in the JEE archive. Given the JEEimplemenation composite find a named component * it if already exists or create it if it doesn't. * * @param composite - * @param componentName + * @param ejbInfo * @return */ - private Component findComponent(Composite composite, String componentName){ + private Component findComponent(Composite composite, EjbInfo ejbInfo){ + String componentName = ejbInfo.beanName; Component component = null; for (Component tmpComponent : composite.getComponents()){ @@ -294,6 +296,7 @@ public class JavaEEOptionalExtensionImpl implements JavaEEOptionalExtension { EJBImplementationGenerated implementation = new EJBImplementationGeneratedImpl(); implementation.setUnresolved(true); + implementation.setEJBInfo(ejbInfo); component.setImplementation(implementation); } @@ -301,6 +304,42 @@ public class JavaEEOptionalExtensionImpl implements JavaEEOptionalExtension { } /** + * We are fluffing up the JEEImplemention composite to represent the components + * in the JEE archive. Given the JEEimplemenation composite find a named component + * it if already exists or create it if it doesn't. + * + * @param composite + * @param ejbInfo + * @return + */ + private Component findComponent(Composite composite, WebModuleInfo webInfo){ + String componentName = webInfo.getModuleName(); + Component component = null; + + for (Component tmpComponent : composite.getComponents()){ + if (tmpComponent.getName().equals(componentName)){ + component = tmpComponent; + break; + } + } + + if (component == null){ + component = assemblyFactory.createComponent(); + component.setName(componentName); + component.setUnresolved(true); + composite.getComponents().add(component); + + WebImplementationGenerated implementation = new WebImplementationGeneratedImpl(); + implementation.setUnresolved(true); + // need generated impl to represent web modules + implementation.setWebInfo(webInfo); + component.setImplementation(implementation); + } + + return component; + } + + /** * Add a component reference and fluff up a composite reference to match * * @param composite |