You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by va...@apache.org on 2009/10/29 15:54:19 UTC
svn commit: r830981 -
/geronimo/plugins/tuscany/trunk/geronimo-tuscany/src/main/java/org/apache/geronimo/tuscany/TuscanyModuleBuilderExtension.java
Author: vamsic007
Date: Thu Oct 29 14:54:19 2009
New Revision: 830981
URL: http://svn.apache.org/viewvc?rev=830981&view=rev
Log:
Reference injection for SCA references in implementation.web computed by Java EE optional extension
Modified:
geronimo/plugins/tuscany/trunk/geronimo-tuscany/src/main/java/org/apache/geronimo/tuscany/TuscanyModuleBuilderExtension.java
Modified: geronimo/plugins/tuscany/trunk/geronimo-tuscany/src/main/java/org/apache/geronimo/tuscany/TuscanyModuleBuilderExtension.java
URL: http://svn.apache.org/viewvc/geronimo/plugins/tuscany/trunk/geronimo-tuscany/src/main/java/org/apache/geronimo/tuscany/TuscanyModuleBuilderExtension.java?rev=830981&r1=830980&r2=830981&view=diff
==============================================================================
--- geronimo/plugins/tuscany/trunk/geronimo-tuscany/src/main/java/org/apache/geronimo/tuscany/TuscanyModuleBuilderExtension.java (original)
+++ geronimo/plugins/tuscany/trunk/geronimo-tuscany/src/main/java/org/apache/geronimo/tuscany/TuscanyModuleBuilderExtension.java Thu Oct 29 14:54:19 2009
@@ -18,6 +18,7 @@
package org.apache.geronimo.tuscany;
import java.io.File;
+import org.apache.tuscany.sca.contribution.jee.InjectionTarget;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -70,6 +71,7 @@
import org.apache.openejb.assembler.classic.ReferenceLocationInfo;
import org.apache.openejb.assembler.classic.ResourceEnvReferenceInfo;
import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.ComponentReference;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.Artifact;
import org.apache.tuscany.sca.contribution.Contribution;
@@ -415,12 +417,36 @@
}
}
}
+
+ // Process reference injection points from optional extension
+ Map<InjectionTarget, Class<?>> optExtRefInjectionPoints = implementation.getOptExtensionReferenceInjectionPoints();
+ for(Map.Entry<InjectionTarget, Class<?>> entry : optExtRefInjectionPoints.entrySet()) {
+ InjectionTarget injectionTarget = entry.getKey();
+ String referenceName = injectionTarget.targetClass+"_"+injectionTarget.targetName;
+ // Check if the runtime component has this reference configured
+ boolean found = false;
+ for(ComponentReference runtimeRef : thisComponent.getReferences()) {
+ if(runtimeRef.getName().equals(referenceName)) {
+ found = true;
+ break;
+ }
+ }
+ if(!found) {
+ continue;
+ }
+ String target = injectionTarget.targetClass+"/"+injectionTarget.targetName;
+ Class<?> targetType = entry.getValue();
+ holder.addInjection(injectionTarget.targetClass, new Injection(injectionTarget.targetClass, injectionTarget.targetName, target));
+ compContext.put("env/"+target, new SCAServiceReference(targetType, thisComponentName, referenceName, false));
+ }
// Add dependency so that EmbeddedRuntime starts before the WebAppContext
// ((GBeanData)earContext.getConfiguration().findGBeanDatas(Collections.singleton(new AbstractNameQuery(module.getModuleName()))).toArray()[0]).addDependency(abstractName);
// module name is not good enough to query the webappcontext gbean incase of web modules in a EAR file
((GBeanData)module.getEarContext().getConfiguration().findGBeanDatas(Collections.singleton(new AbstractNameQuery("org.apache.geronimo.management.geronimo.WebModule"))).toArray()[0]).addDependency(abstractName);
- namingBuilders.buildNaming(webApp, vendorWebApp, webModule, buildingContext);
+ // TODO: The following is reconfiguring the EJB refs and undoing the effect of reference injection
+ // for SCA references from optional extension. Check if commenting out this leads to any regression.
+ //namingBuilders.buildNaming(webApp, vendorWebApp, webModule, buildingContext);
}
private void handleEjbModule(EARContext earContext, Module module, ClassLoader cl, Collection repository) throws DeploymentException {