summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/WebImplementation.java2
-rw-r--r--branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java6
-rw-r--r--branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/xml/WebImplementationProcessor.java12
3 files changed, 20 insertions, 0 deletions
diff --git a/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/WebImplementation.java b/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/WebImplementation.java
index 6b02c45208..2aef3477ba 100644
--- a/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/WebImplementation.java
+++ b/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/WebImplementation.java
@@ -66,4 +66,6 @@ public interface WebImplementation extends Implementation {
Map<String, JavaResourceImpl> getResourceInjectionPoints();
Map<InjectionTarget, Class<?>> getOptExtensionReferenceInjectionPoints();
+
+ Map<String, String> getOptExtensionPropertyInjectionPoints();
}
diff --git a/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java b/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java
index 4eeb4d24d1..7764d45693 100644
--- a/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java
+++ b/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java
@@ -51,6 +51,8 @@ class WebImplementationImpl extends ImplementationImpl implements WebImplementat
private Map<String, JavaResourceImpl> resourceInjectionPoints = new HashMap<String, JavaResourceImpl>();
private Map<InjectionTarget, Class<?>> optExtReferenceInjectionPoints = new HashMap<InjectionTarget, Class<?>>();
+
+ private Map<String, String> optExtPropertyInjectionPoints = new HashMap<String, String>();
/**
* Constructs a new Web implementation.
*/
@@ -159,4 +161,8 @@ class WebImplementationImpl extends ImplementationImpl implements WebImplementat
public Map<InjectionTarget, Class<?>> getOptExtensionReferenceInjectionPoints() {
return optExtReferenceInjectionPoints;
}
+
+ public Map<String, String> getOptExtensionPropertyInjectionPoints() {
+ return optExtPropertyInjectionPoints;
+ }
}
diff --git a/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/xml/WebImplementationProcessor.java b/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/xml/WebImplementationProcessor.java
index ccab5cd3cd..7c9af0fee5 100644
--- a/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/xml/WebImplementationProcessor.java
+++ b/branches/sca-java-1.x/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/xml/WebImplementationProcessor.java
@@ -33,9 +33,11 @@ import javax.xml.stream.XMLStreamWriter;
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.ComponentReference;
import org.apache.tuscany.sca.assembly.ComponentType;
+import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.xml.Constants;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.jee.EjbReferenceInfo;
+import org.apache.tuscany.sca.contribution.jee.EnvEntryInfo;
import org.apache.tuscany.sca.contribution.jee.JspReferenceTagInfo;
import org.apache.tuscany.sca.contribution.jee.WebModuleInfo;
import org.apache.tuscany.sca.contribution.jee.JavaEEExtension;
@@ -143,11 +145,21 @@ public class WebImplementationProcessor extends BaseStAXArtifactProcessor implem
ComponentType ct = jeeOptionalExtension.createImplementationWebComponentType(webModuleInfo);
implementation.getReferences().addAll(ct.getReferences());
implementation.getProperties().addAll(ct.getProperties());
+ List<String> propertyNames = new ArrayList<String>();
+ for(Property prop : ct.getProperties()) {
+ propertyNames.add(prop.getName());
+ }
// Injection points from optional extension
for(Map.Entry<String, EjbReferenceInfo> entry : webModuleInfo.getEjbReferences().entrySet()) {
EjbReferenceInfo ejbRef = entry.getValue();
implementation.getOptExtensionReferenceInjectionPoints().put(ejbRef.injectionTarget, ejbRef.businessInterface);
}
+ for(Map.Entry<String, EnvEntryInfo> entry : webModuleInfo.getEnvEntries().entrySet()) {
+ EnvEntryInfo envEntry = entry.getValue();
+ if(propertyNames.contains(envEntry.name.replace("/", "_"))) {
+ implementation.getOptExtensionPropertyInjectionPoints().put(envEntry.name, envEntry.type);
+ }
+ }
}
// Introspection of classes