summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/implementation-jee/src/main/java/org/apache/tuscany/sca/implementation/jee/xml
diff options
context:
space:
mode:
authorvamsic007 <vamsic007@13f79535-47bb-0310-9956-ffa450edef68>2009-04-25 17:17:11 +0000
committervamsic007 <vamsic007@13f79535-47bb-0310-9956-ffa450edef68>2009-04-25 17:17:11 +0000
commitc4bec56bbd6b8d145ecbe4132e899c5bd89f75ed (patch)
treec7770fc6e3c58dd7822e82656b4d953c30ff2c2d /branches/sca-java-1.x/modules/implementation-jee/src/main/java/org/apache/tuscany/sca/implementation/jee/xml
parent7bccdab8b14f561821b9669de0b47d52bae9caa8 (diff)
TUSCANY-2977 determine implementation.jee component type from application composite if one is available
o Added a model object resolver to obtain application composite using uri git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@768567 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.x/modules/implementation-jee/src/main/java/org/apache/tuscany/sca/implementation/jee/xml')
-rw-r--r--branches/sca-java-1.x/modules/implementation-jee/src/main/java/org/apache/tuscany/sca/implementation/jee/xml/JEEImplementationProcessor.java97
1 files changed, 74 insertions, 23 deletions
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 d9f80a5e00..4b1d45cbc5 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
@@ -29,14 +29,17 @@ import javax.xml.stream.XMLStreamWriter;
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.ComponentType;
+import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.xml.Constants;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.jee.ModelObject;
import org.apache.tuscany.sca.contribution.jee.EjbModuleInfo;
import org.apache.tuscany.sca.contribution.jee.ExternalEarInfo;
import org.apache.tuscany.sca.contribution.jee.JavaEEApplicationInfo;
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.impl.ModelObjectImpl;
import org.apache.tuscany.sca.contribution.jee.impl.EjbModuleInfoImpl;
import org.apache.tuscany.sca.contribution.jee.impl.JavaEEApplicationInfoImpl;
import org.apache.tuscany.sca.contribution.jee.impl.WebModuleInfoImpl;
@@ -160,36 +163,84 @@ public class JEEImplementationProcessor extends BaseStAXArtifactProcessor implem
}
if(moduleInfo instanceof WebModuleInfo) {
- if(jeeOptionalExtension != null) {
- ComponentType ct = jeeOptionalExtension.createImplementationJeeComponentType((WebModuleInfo)moduleInfo);
- implementation.getReferences().addAll(ct.getReferences());
- implementation.getProperties().addAll(ct.getProperties());
+ // Check for web composite
+ ModelObject unresolved = new ModelObjectImpl();
+ unresolved.setUri(URI.create("WEB-INF/web.composite"));
+ ModelObject resolved = resolver.resolveModel(ModelObject.class, unresolved);
+ if(resolved != unresolved) {
+ // Found web composite
+ Composite appComposite = (Composite)resolved.getObject();
+ implementation.getServices().addAll(appComposite.getServices());
+ implementation.getReferences().addAll(appComposite.getReferences());
+ implementation.getProperties().addAll(appComposite.getProperties());
+ }
+
+ // TODO: Obtain includeDefaults value from the composite
+ boolean includeDefaults = false;
+
+ if(includeDefaults || resolved == unresolved) {
+ if(jeeOptionalExtension != null) {
+ ComponentType ct = jeeOptionalExtension.createImplementationJeeComponentType((WebModuleInfo)moduleInfo);
+ implementation.getReferences().addAll(ct.getReferences());
+ implementation.getProperties().addAll(ct.getProperties());
+ }
}
- // TODO: check for web composite
} else if(moduleInfo instanceof EjbModuleInfo) {
- if(jeeExtension != null) {
- ComponentType ct = jeeExtension.createImplementationJeeComponentType((EjbModuleInfo)moduleInfo);
- implementation.getServices().addAll(ct.getServices());
+ // Check for ejb-jar composite
+ ModelObject unresolved = new ModelObjectImpl();
+ unresolved.setUri(URI.create("META-INF/ejb-jar.composite"));
+ ModelObject resolved = resolver.resolveModel(ModelObject.class, unresolved);
+ if(resolved != unresolved) {
+ // Found ejb-jar composite
+ Composite appComposite = (Composite)resolved.getObject();
+ implementation.getServices().addAll(appComposite.getServices());
+ implementation.getReferences().addAll(appComposite.getReferences());
+ implementation.getProperties().addAll(appComposite.getProperties());
}
- if(jeeOptionalExtension != null) {
- ComponentType ct = jeeOptionalExtension.createImplementationJeeComponentType((EjbModuleInfo)moduleInfo);
- implementation.getServices().addAll(ct.getServices());
- implementation.getReferences().addAll(ct.getReferences());
- implementation.getProperties().addAll(ct.getProperties());
+
+ // TODO: Obtain includeDefaults value from the composite
+ boolean includeDefaults = false;
+
+ if(includeDefaults || resolved == unresolved) {
+ if(jeeExtension != null) {
+ ComponentType ct = jeeExtension.createImplementationJeeComponentType((EjbModuleInfo)moduleInfo);
+ implementation.getServices().addAll(ct.getServices());
+ }
+ if(jeeOptionalExtension != null) {
+ ComponentType ct = jeeOptionalExtension.createImplementationJeeComponentType((EjbModuleInfo)moduleInfo);
+ implementation.getServices().addAll(ct.getServices());
+ implementation.getReferences().addAll(ct.getReferences());
+ implementation.getProperties().addAll(ct.getProperties());
+ }
}
- // TODO: check for ejb-jar composite
} else if(moduleInfo instanceof JavaEEApplicationInfo) {
- if(jeeExtension != null) {
- ComponentType ct = jeeExtension.createImplementationJeeComponentType((JavaEEApplicationInfo)moduleInfo);
- implementation.getServices().addAll(ct.getServices());
+ // Check for application composite
+ ModelObject unresolved = new ModelObjectImpl();
+ unresolved.setUri(URI.create("META-INF/application.composite"));
+ ModelObject resolved = resolver.resolveModel(ModelObject.class, unresolved);
+ if(resolved != unresolved) {
+ // Found application composite
+ Composite appComposite = (Composite)resolved.getObject();
+ implementation.getServices().addAll(appComposite.getServices());
+ implementation.getReferences().addAll(appComposite.getReferences());
+ implementation.getProperties().addAll(appComposite.getProperties());
}
- if(jeeOptionalExtension != null) {
- ComponentType ct = jeeOptionalExtension.createImplementationJeeComponentType((JavaEEApplicationInfo)moduleInfo);
- implementation.getServices().addAll(ct.getServices());
- implementation.getReferences().addAll(ct.getReferences());
- implementation.getProperties().addAll(ct.getProperties());
+
+ // TODO: Obtain includeDefaults value from the composite
+ boolean includeDefaults = false;
+
+ if(includeDefaults || resolved == unresolved) {
+ if(jeeExtension != null) {
+ ComponentType ct = jeeExtension.createImplementationJeeComponentType((JavaEEApplicationInfo)moduleInfo);
+ implementation.getServices().addAll(ct.getServices());
+ }
+ if(jeeOptionalExtension != null) {
+ ComponentType ct = jeeOptionalExtension.createImplementationJeeComponentType((JavaEEApplicationInfo)moduleInfo);
+ implementation.getServices().addAll(ct.getServices());
+ implementation.getReferences().addAll(ct.getReferences());
+ implementation.getProperties().addAll(ct.getProperties());
+ }
}
- // TODO: check for application composite
}
}
implementation.setUnresolved(false);