From 33a374fb68af272fb1b130ed8e68538141028cef Mon Sep 17 00:00:00 2001 From: vamsic007 Date: Thu, 19 Mar 2009 19:34:49 +0000 Subject: Use the JavaEE extensions to compute SCA services, SCA references and SCA properties from EJB3 business interfaces, Remote EJB3 references and EnvEntries. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@756150 13f79535-47bb-0310-9956-ffa450edef68 --- .../modules/implementation-jee/pom.xml | 6 +++ .../jee/xml/JEEImplementationProcessor.java | 63 +++++++++++++++++++--- 2 files changed, 61 insertions(+), 8 deletions(-) (limited to 'branches/sca-java-1.x') diff --git a/branches/sca-java-1.x/modules/implementation-jee/pom.xml b/branches/sca-java-1.x/modules/implementation-jee/pom.xml index ebe1daa169..e35c93dfd0 100644 --- a/branches/sca-java-1.x/modules/implementation-jee/pom.xml +++ b/branches/sca-java-1.x/modules/implementation-jee/pom.xml @@ -46,6 +46,12 @@ 1.5-SNAPSHOT + + org.apache.tuscany.sca + tuscany-contribution-jee + 1.5-SNAPSHOT + + org.apache.tuscany.sca tuscany-host-embedded diff --git a/branches/sca-java-1.x/modules/implementation-jee/src/main/java/org/apache/tuscany/sca/implementation/jee/xml/JEEImplementationProcessor.java b/branches/sca-java-1.x/modules/implementation-jee/src/main/java/org/apache/tuscany/sca/implementation/jee/xml/JEEImplementationProcessor.java index 984cd1a5fa..d832f904d1 100644 --- a/branches/sca-java-1.x/modules/implementation-jee/src/main/java/org/apache/tuscany/sca/implementation/jee/xml/JEEImplementationProcessor.java +++ b/branches/sca-java-1.x/modules/implementation-jee/src/main/java/org/apache/tuscany/sca/implementation/jee/xml/JEEImplementationProcessor.java @@ -20,6 +20,8 @@ package org.apache.tuscany.sca.implementation.jee.xml; import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; +import java.net.URI; + import javax.xml.namespace.QName; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; @@ -29,6 +31,14 @@ import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.ComponentType; import org.apache.tuscany.sca.assembly.xml.Constants; import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; +import org.apache.tuscany.sca.contribution.jee.EjbModuleInfo; +import org.apache.tuscany.sca.contribution.jee.JavaEEExtension; +import org.apache.tuscany.sca.contribution.jee.JavaEEOptionalExtension; +import org.apache.tuscany.sca.contribution.jee.WebModuleInfo; +import org.apache.tuscany.sca.contribution.jee.JavaEEApplicationInfo; +import org.apache.tuscany.sca.contribution.jee.impl.EjbModuleInfoImpl; +import org.apache.tuscany.sca.contribution.jee.impl.WebModuleInfoImpl; +import org.apache.tuscany.sca.contribution.jee.impl.JavaEEApplicationInfoImpl; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; @@ -49,11 +59,15 @@ public class JEEImplementationProcessor extends BaseStAXArtifactProcessor implem private AssemblyFactory assemblyFactory; private JEEImplementationFactory implementationFactory; + private JavaEEExtension jeeExtension; + private JavaEEOptionalExtension jeeOptionalExtension; private Monitor monitor; public JEEImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); this.implementationFactory = modelFactories.getFactory(JEEImplementationFactory.class); + this.jeeExtension = modelFactories.getFactory(JavaEEExtension.class); + this.jeeOptionalExtension = modelFactories.getFactory(JavaEEOptionalExtension.class); this.monitor = monitor; } @@ -95,15 +109,48 @@ public class JEEImplementationProcessor extends BaseStAXArtifactProcessor implem public void resolve(JEEImplementation implementation, ModelResolver resolver) throws ContributionResolveException { // Resolve the component type String uri = implementation.getURI(); + String archive = implementation.getArchive(); if (uri != null) { - ComponentType componentType = assemblyFactory.createComponentType(); - componentType.setURI(uri + ".componentType"); - componentType = resolver.resolveModel(ComponentType.class, componentType); - if (!componentType.isUnresolved()) { - // Initialize the implementation's services, references and properties - implementation.getServices().addAll(componentType.getServices()); - implementation.getReferences().addAll(componentType.getReferences()); - implementation.getProperties().addAll(componentType.getProperties()); + if(uri.endsWith(".war")) { + WebModuleInfo webModuleInfo = new WebModuleInfoImpl(); + webModuleInfo.setUri(URI.create(archive)); + webModuleInfo = resolver.resolveModel(WebModuleInfo.class, webModuleInfo); + if(jeeOptionalExtension != null) { + ComponentType ct = jeeOptionalExtension.createImplementationJeeComponentType(webModuleInfo); + implementation.getReferences().addAll(ct.getReferences()); + implementation.getProperties().addAll(ct.getProperties()); + } + // TODO: check for web composite + } else if(uri.endsWith(".jar")) { + EjbModuleInfo ejbModuleInfo = new EjbModuleInfoImpl(); + ejbModuleInfo.setUri(URI.create(archive)); + ejbModuleInfo = resolver.resolveModel(EjbModuleInfo.class, ejbModuleInfo); + if(jeeExtension != null) { + ComponentType ct = jeeExtension.createImplementationJeeComponentType(ejbModuleInfo); + implementation.getServices().addAll(ct.getServices()); + } + if(jeeOptionalExtension != null) { + ComponentType ct = jeeOptionalExtension.createImplementationJeeComponentType(ejbModuleInfo); + implementation.getServices().addAll(ct.getServices()); + implementation.getReferences().addAll(ct.getReferences()); + implementation.getProperties().addAll(ct.getProperties()); + } + // TODO: check for ejb-jar composite + } else if(uri.endsWith(".ear")) { + JavaEEApplicationInfo appInfo = new JavaEEApplicationInfoImpl(); + appInfo.setUri(URI.create(archive)); + appInfo = resolver.resolveModel(JavaEEApplicationInfo.class, appInfo); + if(jeeExtension != null) { + ComponentType ct = jeeExtension.createImplementationJeeComponentType(appInfo); + implementation.getServices().addAll(ct.getServices()); + } + if(jeeOptionalExtension != null) { + ComponentType ct = jeeOptionalExtension.createImplementationJeeComponentType(appInfo); + implementation.getServices().addAll(ct.getServices()); + implementation.getReferences().addAll(ct.getReferences()); + implementation.getProperties().addAll(ct.getProperties()); + } + // TODO: check for application composite } } implementation.setUnresolved(false); -- cgit v1.2.3