diff options
Diffstat (limited to '')
3 files changed, 33 insertions, 11 deletions
diff --git a/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/ExternalEarInfo.java b/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/ExternalEarInfo.java index 509ee7d776..c0b54156ea 100644 --- a/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/ExternalEarInfo.java +++ b/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/ExternalEarInfo.java @@ -18,6 +18,8 @@ */
package org.apache.tuscany.sca.contribution.jee;
+import org.apache.tuscany.sca.assembly.Composite;
+
/**
* @version $Rev: 755722 $ $Date: 2009-03-18 20:23:02 +0000 (Wed, 18 Mar 2009) $
@@ -25,4 +27,5 @@ package org.apache.tuscany.sca.contribution.jee; public interface ExternalEarInfo {
JavaEEApplicationInfo getAppInfo();
+ Composite getAppComposite();
}
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 4b1d45cbc5..99616318ea 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 @@ -116,6 +116,7 @@ public class JEEImplementationProcessor extends BaseStAXArtifactProcessor implem String archive = implementation.getArchive(); if (uri != null) { Object moduleInfo = null; + ExternalEarInfo extEar = null; if(uri.equals("")) { if(moduleInfo == null) { WebModuleInfo unresolved = new WebModuleInfoImpl(); @@ -154,12 +155,19 @@ public class JEEImplementationProcessor extends BaseStAXArtifactProcessor implem } else if(uri.endsWith(".ear")) { final JavaEEApplicationInfo appInfo = new JavaEEApplicationInfoImpl(); appInfo.setUri(URI.create(archive)); - ExternalEarInfo ee = new ExternalEarInfo() { + ExternalEarInfo unresolved = new ExternalEarInfo() { public JavaEEApplicationInfo getAppInfo() { return appInfo; + } + public Composite getAppComposite() { + return null; }}; - ee = resolver.resolveModel(ExternalEarInfo.class, ee); - moduleInfo = ee.getAppInfo(); + + ExternalEarInfo resolved = resolver.resolveModel(ExternalEarInfo.class, unresolved); + if(resolved != unresolved) { + extEar = resolved; + } + moduleInfo = resolved.getAppInfo(); } if(moduleInfo instanceof WebModuleInfo) { @@ -215,21 +223,30 @@ public class JEEImplementationProcessor extends BaseStAXArtifactProcessor implem } } else if(moduleInfo instanceof JavaEEApplicationInfo) { // 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) { + Composite appComposite = null; + if(extEar != null) { + appComposite = extEar.getAppComposite(); + } else { + 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 + appComposite = (Composite)resolved.getObject(); + } + } + + if(appComposite != null) { // Found application 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(includeDefaults || appComposite == null) { if(jeeExtension != null) { ComponentType ct = jeeExtension.createImplementationJeeComponentType((JavaEEApplicationInfo)moduleInfo); implementation.getServices().addAll(ct.getServices()); diff --git a/branches/sca-java-1.x/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java b/branches/sca-java-1.x/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java index 5b0e31fd03..1338b3a27c 100644 --- a/branches/sca-java-1.x/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java +++ b/branches/sca-java-1.x/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java @@ -150,7 +150,6 @@ public class RuntimeBootStrapper { monitorFactory = new DefaultMonitorFactoryImpl(); monitor = monitorFactory.createMonitor(); utilities.addUtility(monitorFactory); - //logger.fine("No MonitorFactory is found on the classpath."); } // Create a contribution service @@ -166,6 +165,9 @@ public class RuntimeBootStrapper { policyDefinitions, policyDefinitionsResolver, monitor); + + // add the contribution service into the utility extension point + utilities.addUtility(contributionService); // Create the ScopeRegistry scopeRegistry = RuntimeBuilder.createScopeRegistry(registry); |