Author: dblevins
Date: Fri Feb 26 20:12:50 2010
New Revision: 916805
URL: http://svn.apache.org/viewvc?rev=916805&view=rev
Log:
OPENEJB-1238: Custom JNDI name format properties at bean, app, or server level
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/OpenejbJarType.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java?rev=916805&r1=916804&r2=916805&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
Fri Feb 26 20:12:50 2010
@@ -43,6 +43,7 @@
import java.util.Map;
import java.util.HashMap;
import java.util.Comparator;
+import java.util.Properties;
import java.lang.reflect.Constructor;
@@ -167,6 +168,8 @@
private Map<String, StringTemplate> templates;
private String format;
+ private Map<String, String> appContext;
+ private HashMap<String,String> beanContext;
public TemplatedStrategy(EjbJarInfo ejbJarInfo, Map<String,
DeploymentInfo> deployments) {
Options options = new Options(ejbJarInfo.properties,
SystemInstance.get().getOptions());
@@ -187,6 +190,19 @@
for (EnterpriseBeanInfo beanInfo : ejbJarInfo.enterpriseBeans) {
beanInfos.put(beanInfo.ejbDeploymentId, beanInfo);
}
+
+ appContext = new HashMap<String, String>();
+ putAll(appContext, SystemInstance.get().getProperties());
+ putAll(appContext, ejbJarInfo.properties);
+ }
+
+ private void putAll(Map<String, String> map, Properties properties) {
+ for (Map.Entry<Object, Object> e : properties.entrySet()) {
+ if (!(e.getValue() instanceof String)) continue;
+ if (!(e.getKey() instanceof String)) continue;
+
+ map.put((String) e.getKey(), (String) e.getValue());
+ }
}
public void begin(DeploymentInfo deploymentInfo) {
@@ -203,6 +219,16 @@
}
beanInfo.jndiNames.clear();
beanInfo.jndiNamess.clear();
+
+ beanContext = new HashMap<String, String>(appContext);
+ putAll(beanContext, deploymentInfo.getProperties());
+ beanContext.put("moduleId", deploymentInfo.getModuleID());
+ beanContext.put("ejbType",
deploymentInfo.getComponentType().name());
+ beanContext.put("ejbClass",
deploymentInfo.getBeanClass().getName());
+ beanContext.put("ejbClass.simpleName",
deploymentInfo.getBeanClass().getSimpleName());
+ beanContext.put("ejbClass.packageName",
packageName(deploymentInfo.getBeanClass()));
+ beanContext.put("ejbName", deploymentInfo.getEjbName());
+ beanContext.put("deploymentId",
deploymentInfo.getDeploymentID().toString());
}
public void end() {
@@ -213,14 +239,7 @@
if (template == null) template =
templates.get(type.getAnnotationName());
if (template == null) template = templates.get("");
- Map<String,String> contextData = new HashMap<String,String>();
- contextData.put("moduleId", deploymentInfo.getModuleID());
- contextData.put("ejbType",
deploymentInfo.getComponentType().name());
- contextData.put("ejbClass",
deploymentInfo.getBeanClass().getName());
- contextData.put("ejbClass.simpleName",
deploymentInfo.getBeanClass().getSimpleName());
- contextData.put("ejbClass.packageName",
packageName(deploymentInfo.getBeanClass()));
- contextData.put("ejbName", deploymentInfo.getEjbName());
- contextData.put("deploymentId",
deploymentInfo.getDeploymentID().toString());
+ Map<String,String> contextData = new
HashMap<String,String>(beanContext);
contextData.put("interfaceType", type.getAnnotationName());
contextData.put("interfaceType.annotationName",
type.getAnnotationName());
contextData.put("interfaceType.annotationNameLC",type.getAnnotationName().toLowerCase());
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java?rev=916805&r1=916804&r2=916805&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
Fri Feb 26 20:12:50 2010
@@ -104,6 +104,9 @@
}
public void convertEjbRefs(EjbJar ejbJar, OpenejbJar openejbJar,
OpenejbJarType openejbJarType) {
+
+ openejbJar.getProperties().putAll(openejbJarType.getProperties());
+
Map<String, EnterpriseBean> ejbs =
ejbJar.getEnterpriseBeansByEjbName();
Map<String, EjbDeployment> deployments =
openejbJar.getDeploymentsByEjbName();
Modified:
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/OpenejbJarType.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/OpenejbJarType.java?rev=916805&r1=916804&r2=916805&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/OpenejbJarType.java
(original)
+++
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/OpenejbJarType.java
Fri Feb 26 20:12:50 2010
@@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Properties;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@@ -27,8 +28,10 @@
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.openejb.jee.jpa.unit.Persistence;
+import org.apache.openejb.jee.oejb3.PropertiesAdapter;
/**
@@ -74,6 +77,7 @@
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "openejb-jarType", namespace =
"http://openejb.apache.org/xml/ns/openejb-jar-2.2", propOrder = {
"environment",
+ "properties",
"cmpConnectionFactory",
"ejbQlCompilerFactory",
"dbSyntaxFactory",
@@ -87,6 +91,10 @@
})
public class OpenejbJarType {
+ @XmlElement(name = "properties")
+ @XmlJavaTypeAdapter(PropertiesAdapter.class)
+ protected Properties properties;
+
@XmlElement(name = "environment", namespace =
"http://geronimo.apache.org/xml/ns/deployment-1.2")
protected EnvironmentType environment;
@@ -264,4 +272,11 @@
}
return persistence;
}
+
+ public Properties getProperties() {
+ if (properties == null) {
+ properties = new Properties();
+ }
+ return properties;
+ }
}