You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2006/12/07 12:50:06 UTC
svn commit: r483427 - in /incubator/openejb/trunk/openejb3/container:
openejb-core/src/main/java/org/apache/openejb/
openejb-core/src/main/java/org/apache/openejb/alt/config/
openejb-core/src/main/java/org/apache/openejb/assembler/classic/
openejb-core...
Author: dblevins
Date: Thu Dec 7 03:49:58 2006
New Revision: 483427
URL: http://svn.apache.org/viewvc?view=rev&rev=483427
Log:
OPENEJB-100: Dependency Injection: Setter, OPENEJB-99: Dependency Injection: Public field
OPENEJB-232: javax.ejb.EJB, OPENEJB-233: javax.ejb.EJBs
Added:
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiReference.java
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/DeploymentInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AnnotationDeployer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/EncBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/spring.xml
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/DeploymentInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/DeploymentInfo.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/DeploymentInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/DeploymentInfo.java Thu Dec 7 03:49:58 2006
@@ -19,6 +19,7 @@
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Map;
+import java.util.List;
public interface DeploymentInfo {
@@ -85,6 +86,8 @@
Method getPreDestroy();
Method getPrePassivate();
+
+ List<Injection> getInjections();
void setContainer(Container container);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AnnotationDeployer.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AnnotationDeployer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AnnotationDeployer.java Thu Dec 7 03:49:58 2006
@@ -37,11 +37,15 @@
import org.apache.openejb.jee.InjectionTarget;
import org.apache.openejb.jee.JndiConsumer;
import org.apache.openejb.jee.EjbLocalRef;
+import org.apache.openejb.jee.EnvEntry;
+import org.apache.openejb.jee.JndiReference;
import org.apache.openejb.util.Logger;
import org.apache.xbean.finder.ClassFinder;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
+import javax.annotation.Resource;
+import javax.annotation.Resources;
import javax.ejb.Local;
import javax.ejb.LocalHome;
import javax.ejb.PostActivate;
@@ -140,8 +144,11 @@
for (Class beanClass : classes) {
Stateless stateless = (Stateless) beanClass.getAnnotation(Stateless.class);
String ejbName = stateless.name().length() == 0 ? beanClass.getSimpleName() : stateless.name();
- if (ejbJar.getEnterpriseBean(ejbName) == null) {
+ EnterpriseBean enterpriseBean = ejbJar.getEnterpriseBean(ejbName);
+ if (enterpriseBean == null) {
ejbJar.addEnterpriseBean(new StatelessBean(ejbName, beanClass.getName()));
+ } else if (enterpriseBean.getEjbClass() == null){
+ enterpriseBean.setEjbClass(beanClass.getName());
}
}
@@ -149,8 +156,11 @@
for (Class beanClass : classes) {
Stateful stateful = (Stateful) beanClass.getAnnotation(Stateful.class);
String ejbName = stateful.name().length() == 0 ? beanClass.getSimpleName() : stateful.name();
- if (ejbJar.getEnterpriseBean(ejbName) == null) {
+ EnterpriseBean enterpriseBean = ejbJar.getEnterpriseBean(ejbName);
+ if (enterpriseBean == null) {
ejbJar.addEnterpriseBean(new StatefulBean(ejbName, beanClass.getName()));
+ } else if (enterpriseBean.getEjbClass() == null){
+ enterpriseBean.setEjbClass(beanClass.getName());
}
}
@@ -158,13 +168,16 @@
for (Class beanClass : classes) {
MessageDriven mdb = (MessageDriven) beanClass.getAnnotation(MessageDriven.class);
String ejbName = mdb.name().length() == 0 ? beanClass.getSimpleName() : mdb.name();
- if (ejbJar.getEnterpriseBean(ejbName) == null) {
+ EnterpriseBean enterpriseBean = ejbJar.getEnterpriseBean(ejbName);
+ if (enterpriseBean == null) {
MessageDrivenBean messageBean = new MessageDrivenBean(ejbName);
Class interfce = mdb.messageListenerInterface();
if (interfce != null){
messageBean.setMessagingType(interfce.getName());
}
ejbJar.addEnterpriseBean(messageBean);
+ } else if (enterpriseBean.getEjbClass() == null){
+ enterpriseBean.setEjbClass(beanClass.getName());
}
}
@@ -427,15 +440,17 @@
}
private void buildAnnotatedRefs(Class clazz, JndiConsumer consumer) {
- List<EJB> list = new ArrayList<EJB>();
+ List<EJB> ejbList = new ArrayList<EJB>();
EJBs ejbs = (EJBs) clazz.getAnnotation(EJBs.class);
if(ejbs != null){
- list.addAll(Arrays.asList(ejbs.value()));
+ ejbList.addAll(Arrays.asList(ejbs.value()));
+ }
+ EJB e = (EJB) clazz.getAnnotation(EJB.class);
+ if (e != null){
+ ejbList.add(e);
}
- list.add((EJB) clazz.getAnnotation(EJB.class));
- for (EJB ejb : list) {
- if (ejb == null) continue;
+ for (EJB ejb : ejbList) {
buildEjbRef(consumer, ejb, null);
}
@@ -457,6 +472,78 @@
buildEjbRef(consumer, ejb, member);
}
+
+
+ List<Resource> resourceList = new ArrayList<Resource>();
+ Resources resources = (Resources) clazz.getAnnotation(Resources.class);
+ if(resources != null){
+ resourceList.addAll(Arrays.asList(resources.value()));
+ }
+ Resource r = (Resource) clazz.getAnnotation(Resource.class);
+ if (r != null){
+ resourceList.add(r);
+ }
+
+ for (Resource resource : resourceList) {
+
+ buildResource(consumer, resource, null);
+ }
+
+ for (Field field : finder.findAnnotatedFields(Resource.class)) {
+ Resource resource = field.getAnnotation(Resource.class);
+
+ Member member = new FieldMember(field);
+
+ buildResource(consumer, resource, member);
+ }
+
+ for (Method method : finder.findAnnotatedMethods(Resource.class)) {
+ Resource resource = method.getAnnotation(Resource.class);
+
+ Member member = new MethodMember(method);
+
+ buildResource(consumer, resource, member);
+ }
+
+
+ }
+
+ private void buildResource(JndiConsumer consumer, Resource resource, Member member) {
+ // Get the ref-name
+ String refName = resource.name();
+ if (refName.equals("")){
+ refName = (member == null) ? null : member.getDeclaringClass().getName() + "/" + member.getName();
+ }
+
+ JndiReference reference = null;
+
+ List<EnvEntry> envEntries = consumer.getEnvEntry();
+ for (EnvEntry envEntry : envEntries) {
+ if (envEntry.getName().equals(refName)){
+ reference = envEntry;
+ break;
+ }
+ }
+
+ if (reference == null){
+ return;
+ }
+
+// reference.setName(refName);
+
+ if (member != null){
+ // Set the member name where this will be injected
+ InjectionTarget target = new InjectionTarget();
+ target.setInjectionTargetClass(member.getDeclaringClass().getName());
+ target.setInjectionTargetName(member.getName());
+ reference.getInjectionTarget().add(target);
+ }
+
+ // Override the mapped name if not set
+ if (reference.getMappedName() == null && !resource.mappedName().equals("")){
+ reference.setMappedName(resource.mappedName());
+ }
+
}
private void buildEjbRef(JndiConsumer consumer, EJB ejb, Member member) {
@@ -598,7 +685,7 @@
StringBuilder name = new StringBuilder(setter.getName());
// remove 'set'
- name.delete(0, 2);
+ name.delete(0, 3);
// lowercase first char
name.setCharAt(0, Character.toLowerCase(name.charAt(0)));
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java Thu Dec 7 03:49:58 2006
@@ -19,6 +19,7 @@
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.SystemException;
import org.apache.openejb.BeanType;
+import org.apache.openejb.Injection;
import org.apache.openejb.core.DeploymentContext;
import org.apache.openejb.core.CoreDeploymentInfo;
import org.apache.openejb.core.interceptor.InterceptorData;
@@ -130,6 +131,46 @@
MessageDrivenBeanInfo messageDrivenBeanInfo = (MessageDrivenBeanInfo) bean;
Class mdbInterface = loadClass(messageDrivenBeanInfo.mdbInterface, "classNotFound.mdbInterface");
deployment = new CoreDeploymentInfo(deploymentContext, ejbClass, mdbInterface, messageDrivenBeanInfo.activationProperties);
+ }
+
+ for (EnvEntryInfo info : bean.jndiEnc.envEntries) {
+ for (InjectionInfo target : info.targets) {
+ Class targetClass = loadClass(target.className, "classNotFound.injectionTarget");
+ Injection injection = new Injection(info.name, target.propertyName, targetClass);
+ deployment.getInjections().add(injection);
+ }
+ }
+
+ for (EjbReferenceInfo info : bean.jndiEnc.ejbReferences) {
+ for (InjectionInfo target : info.targets) {
+ Class targetClass = loadClass(target.className, "classNotFound.injectionTarget");
+ Injection injection = new Injection(info.referenceName, target.propertyName, targetClass);
+ deployment.getInjections().add(injection);
+ }
+ }
+
+ for (EjbLocalReferenceInfo info : bean.jndiEnc.ejbLocalReferences) {
+ for (InjectionInfo target : info.targets) {
+ Class targetClass = loadClass(target.className, "classNotFound.injectionTarget");
+ Injection injection = new Injection(info.referenceName, target.propertyName, targetClass);
+ deployment.getInjections().add(injection);
+ }
+ }
+
+ for (PersistenceUnitInfo info : bean.jndiEnc.persistenceUnitRefs) {
+ for (InjectionInfo target : info.targets) {
+ Class targetClass = loadClass(target.className, "classNotFound.injectionTarget");
+ Injection injection = new Injection(info.referenceName, target.propertyName, targetClass);
+ deployment.getInjections().add(injection);
+ }
+ }
+
+ for (ResourceReferenceInfo info : bean.jndiEnc.resourceRefs) {
+ for (InjectionInfo target : info.targets) {
+ Class targetClass = loadClass(target.className, "classNotFound.injectionTarget");
+ Injection injection = new Injection(info.referenceName, target.propertyName, targetClass);
+ deployment.getInjections().add(injection);
+ }
}
deployment.setPostConstruct(getCallback(ejbClass, bean.postConstruct));
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/EncBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/EncBuilder.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/EncBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/EncBuilder.java Thu Dec 7 03:49:58 2006
@@ -135,6 +135,9 @@
obj = new Boolean(entry.getValue());
} else if (type == Byte.class) {
obj = new Byte(entry.getValue());
+ } else if (type == Character.class) {
+ StringBuilder sb = new StringBuilder(entry.getValue() + " ");
+ obj = new Character(sb.charAt(0));
} else {
throw new IllegalArgumentException("Invalid env-ref-type " + type);
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java Thu Dec 7 03:49:58 2006
@@ -25,6 +25,7 @@
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
+import java.util.ArrayList;
import javax.ejb.EJBHome;
import javax.ejb.EJBLocalHome;
import javax.ejb.EJBLocalObject;
@@ -106,6 +107,7 @@
private final Map<String, List<String>> securityRoleReferenceMap = new HashMap<String, List<String>>();
private String jarPath;
private final Map<String, String> activationProperties = new HashMap<String, String>();
+ private final List<Injection> injections = new ArrayList<Injection>();
public Class getInterface(InterfaceType interfaceType) {
switch(interfaceType){
@@ -188,6 +190,10 @@
}
}
createMethodMap();
+ }
+
+ public List<Injection> getInjections() {
+ return injections;
}
public Object getContainerData() {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java Thu Dec 7 03:49:58 2006
@@ -20,6 +20,7 @@
import org.apache.openejb.InvalidateReferenceException;
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.SystemException;
+import org.apache.openejb.Injection;
import org.apache.openejb.core.CoreDeploymentInfo;
import org.apache.openejb.core.Operations;
import org.apache.openejb.core.ThreadContext;
@@ -37,6 +38,8 @@
import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import javax.transaction.TransactionRolledbackException;
+import javax.naming.Context;
+import javax.naming.NamingException;
import java.rmi.RemoteException;
import java.rmi.NoSuchObjectException;
import java.util.Hashtable;
@@ -106,7 +109,20 @@
objectRecipe.allow(Option.FIELD_INJECTION);
objectRecipe.allow(Option.PRIVATE_PROPERTIES);
objectRecipe.allow(Option.IGNORE_MISSING_PROPERTIES);
-
+
+ ThreadContext callContext = ThreadContext.getThreadContext();
+ CoreDeploymentInfo deploymentInfo = callContext.getDeploymentInfo();
+ Context ctx = deploymentInfo.getJndiEnc();
+ for (Injection injection : deploymentInfo.getInjections()) {
+ try {
+ String jndiName = injection.getJndiName();
+ Object object = ctx.lookup("java:comp/env/" + jndiName);
+ objectRecipe.setProperty(injection.getName(), new StaticRecipe(object));
+ } catch (NamingException e) {
+ logger.warning("Injection data not found in enc: jndiName='"+injection.getJndiName()+"', target="+injection.getTarget()+"/"+injection.getName());
+ }
+ }
+
objectRecipe.setProperty("sessionContext", new StaticRecipe(createSessionContext()));
bean = objectRecipe.create(beanClass.getClassLoader());
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java Thu Dec 7 03:49:58 2006
@@ -22,6 +22,7 @@
import org.apache.xbean.recipe.Option;
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.SystemException;
+import org.apache.openejb.Injection;
import org.apache.openejb.core.CoreDeploymentInfo;
import org.apache.openejb.core.Operations;
import org.apache.openejb.core.ThreadContext;
@@ -32,6 +33,8 @@
import javax.ejb.SessionContext;
import javax.transaction.TransactionManager;
+import javax.naming.Context;
+import javax.naming.NamingException;
import java.lang.reflect.Method;
import java.rmi.RemoteException;
import java.util.HashMap;
@@ -84,20 +87,32 @@
if (bean == null) {
- Class beanClass = callContext.getDeploymentInfo().getBeanClass();
+ CoreDeploymentInfo deploymentInfo = callContext.getDeploymentInfo();
+ Class beanClass = deploymentInfo.getBeanClass();
ObjectRecipe objectRecipe = new ObjectRecipe(beanClass);
objectRecipe.allow(Option.FIELD_INJECTION);
objectRecipe.allow(Option.PRIVATE_PROPERTIES);
objectRecipe.allow(Option.IGNORE_MISSING_PROPERTIES);
+
byte originalOperation = callContext.getCurrentOperation();
+
try {
+ Context ctx = deploymentInfo.getJndiEnc();
+ for (Injection injection : deploymentInfo.getInjections()) {
+ try {
+ String jndiName = injection.getJndiName();
+ Object object = ctx.lookup("java:comp/env/" + jndiName);
+ objectRecipe.setProperty(injection.getName(), new StaticRecipe(object));
+ } catch (NamingException e) {
+ logger.warn("Injection data not found in enc: jndiName='"+injection.getJndiName()+"', target="+injection.getTarget()+"/"+injection.getName());
+ }
+ }
callContext.setCurrentOperation(Operations.OP_SET_CONTEXT);
objectRecipe.setProperty("sessionContext", new StaticRecipe(createSessionContext()));
bean = objectRecipe.create(beanClass.getClassLoader());
callContext.setCurrentOperation(Operations.OP_CREATE);
- CoreDeploymentInfo deploymentInfo = callContext.getDeploymentInfo();
Method postConstruct = deploymentInfo.getPostConstruct();
if (postConstruct != null){
postConstruct.invoke(bean);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/spring.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/spring.xml?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/spring.xml (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/spring.xml Thu Dec 7 03:49:58 2006
@@ -243,6 +243,36 @@
</o:jndiContext>
</o:cmpDeployment>
</entry>
+ <entry key="client/tests/entity/cmp/ContextLookupCmpBean">
+ <o:cmpDeployment id="client/tests/entity/cmp/ContextLookupCmpBean" homeInterface="org.apache.openejb.test.entity.cmp.EncCmpHome"
+ remoteInterface="org.apache.openejb.test.entity.cmp.EncCmpObject"
+ beanClass="org.apache.openejb.test.entity.cmp.ContextLookupCmpBean"
+ classLoader="#classLoader"
+ transactionManager="#transactionManager" assembly="#assembly" reentrant="false"
+ pkClass="java.lang.Integer" primKeyField="primaryKey">
+ <o:jndiContext>
+ <o:enc>
+ <o:envEntry jndiName="entity/cmp/references/Boolean" type="java.lang.Boolean" value="true"/>
+ <o:envEntry jndiName="entity/cmp/references/String" type="java.lang.String" value="1"/>
+ <o:envEntry jndiName="entity/cmp/references/Double" type="java.lang.Double" value="1"/>
+ <o:envEntry jndiName="entity/cmp/references/Long" type="java.lang.Long" value="1"/>
+ <o:envEntry jndiName="entity/cmp/references/Float" type="java.lang.Float" value="1"/>
+ <o:envEntry jndiName="entity/cmp/references/Integer" type="java.lang.Integer" value="1"/>
+ <o:envEntry jndiName="entity/cmp/references/Short" type="java.lang.Short" value="1"/>
+ <o:envEntry jndiName="entity/cmp/references/Byte" type="java.lang.Byte" value="1"/>
+ <o:envEntry jndiName="entity/cmp/references/Character" type="java.lang.Character" value="D"/>
+ <o:ejbRef jndiName="entity/cmp/beanReferences/cmp_entity" local="false"
+ ejbId="client/tests/entity/cmp/BasicCmpHome"/>
+ <o:ejbRef jndiName="entity/cmp/beanReferences/stateful" local="false"
+ ejbId="client/tests/stateful/BasicStatefulHome"/>
+ <o:ejbRef jndiName="entity/cmp/beanReferences/stateless" local="false"
+ ejbId="client/tests/stateless/BasicStatelessHome"/>
+ <o:resourceRef jndiName="datasource" resourceId="Default JDBC Database"/>
+ <o:resourceRef jndiName="jdbc/basic/entityDatabase" resourceId="Default JDBC Database"/>
+ </o:enc>
+ </o:jndiContext>
+ </o:cmpDeployment>
+ </entry>
<entry key="client/tests/entity/cmp/allowed_operations/EntityHome">
<o:cmpDeployment id="client/tests/entity/cmp/allowed_operations/EntityHome"
homeInterface="org.apache.openejb.test.entity.cmp.BasicCmpHome"
@@ -327,6 +357,36 @@
</o:jndiContext>
</o:bmpDeployment>
</entry>
+ <entry key="client/tests/entity/bmp/ContextLookupBmpBean">
+ <o:bmpDeployment id="client/tests/entity/bmp/ContextLookupBmpBean" homeInterface="org.apache.openejb.test.entity.bmp.EncBmpHome"
+ remoteInterface="org.apache.openejb.test.entity.bmp.EncBmpObject"
+ beanClass="org.apache.openejb.test.entity.bmp.ContextLookupBmpBean"
+ classLoader="#classLoader"
+ transactionManager="#transactionManager" assembly="#assembly" reentrant="false"
+ pkClass="java.lang.Integer">
+ <o:jndiContext>
+ <o:enc>
+ <o:envEntry jndiName="entity/bmp/references/Boolean" type="java.lang.Boolean" value="true"/>
+ <o:envEntry jndiName="entity/bmp/references/String" type="java.lang.String" value="1"/>
+ <o:envEntry jndiName="entity/bmp/references/Double" type="java.lang.Double" value="1"/>
+ <o:envEntry jndiName="entity/bmp/references/Long" type="java.lang.Long" value="1"/>
+ <o:envEntry jndiName="entity/bmp/references/Float" type="java.lang.Float" value="1"/>
+ <o:envEntry jndiName="entity/bmp/references/Integer" type="java.lang.Integer" value="1"/>
+ <o:envEntry jndiName="entity/bmp/references/Short" type="java.lang.Short" value="1"/>
+ <o:envEntry jndiName="entity/bmp/references/Byte" type="java.lang.Byte" value="1"/>
+ <o:envEntry jndiName="entity/bmp/references/Character" type="java.lang.Character" value="D"/>
+ <o:ejbRef jndiName="entity/bmp/beanReferences/bmp_entity" local="false"
+ ejbId="client/tests/entity/bmp/BasicBmpHome"/>
+ <o:ejbRef jndiName="entity/bmp/beanReferences/stateful" local="false"
+ ejbId="client/tests/stateful/BasicStatefulHome"/>
+ <o:ejbRef jndiName="entity/bmp/beanReferences/stateless" local="false"
+ ejbId="client/tests/stateless/BasicStatelessHome"/>
+ <o:resourceRef jndiName="datasource" resourceId="Default JDBC Database"/>
+ <o:resourceRef jndiName="jdbc/basic/entityDatabase" resourceId="Default JDBC Database"/>
+ </o:enc>
+ </o:jndiContext>
+ </o:bmpDeployment>
+ </entry>
<entry key="client/tests/entity/bmp/allowed_operations/EntityHome">
<o:bmpDeployment id="client/tests/entity/bmp/allowed_operations/EntityHome"
homeInterface="org.apache.openejb.test.entity.bmp.BasicBmpHome"
@@ -411,6 +471,35 @@
</o:jndiContext>
</o:statefulDeployment>
</entry>
+ <entry key="client/tests/stateful/ContextLookupStatefulBean">
+ <o:statefulDeployment id="client/tests/stateful/ContextLookupStatefulBean"
+ homeInterface="org.apache.openejb.test.stateful.EncStatefulHome"
+ remoteInterface="org.apache.openejb.test.stateful.EncStatefulObject"
+ beanClass="org.apache.openejb.test.stateful.ContextLookupStatefulBean"
+ classLoader="#classLoader"
+ transactionManager="#transactionManager" assembly="#assembly" beanManagedTransaction="true">
+ <o:jndiContext>
+ <o:enc>
+ <o:envEntry jndiName="stateful/references/Boolean" type="java.lang.Boolean" value="true"/>
+ <o:envEntry jndiName="stateful/references/String" type="java.lang.String" value="1"/>
+ <o:envEntry jndiName="stateful/references/Double" type="java.lang.Double" value="1"/>
+ <o:envEntry jndiName="stateful/references/Long" type="java.lang.Long" value="1"/>
+ <o:envEntry jndiName="stateful/references/Float" type="java.lang.Float" value="1"/>
+ <o:envEntry jndiName="stateful/references/Integer" type="java.lang.Integer" value="1"/>
+ <o:envEntry jndiName="stateful/references/Short" type="java.lang.Short" value="1"/>
+ <o:envEntry jndiName="stateful/references/Byte" type="java.lang.Byte" value="1"/>
+ <o:envEntry jndiName="stateful/references/Character" type="java.lang.Character" value="D"/>
+ <o:ejbRef jndiName="stateful/beanReferences/bmp_entity" local="false"
+ ejbId="client/tests/entity/bmp/BasicBmpHome"/>
+ <o:ejbRef jndiName="stateful/beanReferences/stateful" local="false"
+ ejbId="client/tests/stateful/BasicStatefulHome"/>
+ <o:ejbRef jndiName="stateful/beanReferences/stateless" local="false"
+ ejbId="client/tests/stateless/BasicStatelessHome"/>
+ <o:resourceRef jndiName="datasource" resourceId="Default JDBC Database"/>
+ </o:enc>
+ </o:jndiContext>
+ </o:statefulDeployment>
+ </entry>
<entry key="client/tests/stateful/BeanManagedTransactionTests/EJBHome">
<o:statefulDeployment id="client/tests/stateful/BeanManagedTransactionTests/EJBHome"
homeInterface="org.apache.openejb.test.stateful.BeanTxStatefulHome"
@@ -490,6 +579,39 @@
homeInterface="org.apache.openejb.test.stateless.EncStatelessHome"
remoteInterface="org.apache.openejb.test.stateless.EncStatelessObject"
beanClass="org.apache.openejb.test.stateless.EncStatelessBean"
+ classLoader="#classLoader"
+ transactionManager="#transactionManager" assembly="#assembly" beanManagedTransaction="true">
+ <o:jndiContext>
+ <o:enc>
+ <o:envEntry jndiName="stateless/references/JNDI_access_to_java_comp_env" type="java.lang.String"
+ value="Success"/>
+ <o:envEntry jndiName="stateless/references/Boolean" type="java.lang.Boolean" value="true"/>
+ <o:envEntry jndiName="stateless/references/String" type="java.lang.String" value="1"/>
+ <o:envEntry jndiName="stateless/references/Double" type="java.lang.Double" value="1"/>
+ <o:envEntry jndiName="stateless/references/Long" type="java.lang.Long" value="1"/>
+ <o:envEntry jndiName="stateless/references/Float" type="java.lang.Float" value="1"/>
+ <o:envEntry jndiName="stateless/references/Integer" type="java.lang.Integer" value="1"/>
+ <o:envEntry jndiName="stateless/references/Short" type="java.lang.Short" value="1"/>
+ <o:envEntry jndiName="stateless/references/Byte" type="java.lang.Byte" value="1"/>
+ <o:envEntry jndiName="stateless/references/Character" type="java.lang.Character" value="D"/>
+ <o:ejbRef jndiName="stateless/beanReferences/Enterprise_bean_access" local="false"
+ ejbId="client/tests/stateful/BasicStatefulHome"/>
+ <o:ejbRef jndiName="stateless/beanReferences/bmp_entity" local="false"
+ ejbId="client/tests/entity/bmp/BasicBmpHome"/>
+ <o:ejbRef jndiName="stateless/beanReferences/stateful" local="false"
+ ejbId="client/tests/stateful/BasicStatefulHome"/>
+ <o:ejbRef jndiName="stateless/beanReferences/stateless" local="false"
+ ejbId="client/tests/stateless/BasicStatelessHome"/>
+ <o:resourceRef jndiName="datasource" resourceId="Default JDBC Database"/>
+ </o:enc>
+ </o:jndiContext>
+ </o:statelessDeployment>
+ </entry>
+ <entry key="client/tests/stateless/ContextLookupStatelessBean">
+ <o:statelessDeployment id="client/tests/stateless/ContextLookupStatelessBean"
+ homeInterface="org.apache.openejb.test.stateless.EncStatelessHome"
+ remoteInterface="org.apache.openejb.test.stateless.EncStatelessObject"
+ beanClass="org.apache.openejb.test.stateless.ContextLookupStatelessBean"
classLoader="#classLoader"
transactionManager="#transactionManager" assembly="#assembly" beanManagedTransaction="true">
<o:jndiContext>
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java Thu Dec 7 03:49:58 2006
@@ -145,12 +145,12 @@
for (EnterpriseBean e : v) enterpriseBeans.put(e.getEjbName(), e);
}
- public JndiConsumer addEnterpriseBean(EnterpriseBean bean){
+ public EnterpriseBean addEnterpriseBean(EnterpriseBean bean){
enterpriseBeans.put(bean.getEjbName(), bean);
return bean;
}
- public JndiConsumer getEnterpriseBean(String ejbName){
+ public EnterpriseBean getEnterpriseBean(String ejbName){
return enterpriseBeans.get(ejbName);
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java Thu Dec 7 03:49:58 2006
@@ -24,6 +24,7 @@
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlID;
import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
@@ -60,7 +61,7 @@
"mappedName",
"injectionTarget"
})
-public class EnvEntry implements Injectable {
+public class EnvEntry implements JndiReference {
@XmlElement(required = true)
protected List<Text> description;
@@ -78,6 +79,24 @@
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
protected String id;
+
+ @XmlTransient
+ public String getName() {
+ return getEnvEntryName();
+ }
+
+ @XmlTransient
+ public String getType() {
+ return getEnvEntryType();
+ }
+
+ public void setName(String name) {
+ setEnvEntryName(name);
+ }
+
+ public void setType(String type) {
+ setEnvEntryType(type);
+ }
public List<Text> getDescription() {
if (description == null) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java Thu Dec 7 03:49:58 2006
@@ -23,4 +23,5 @@
*/
public interface Injectable {
public List<InjectionTarget> getInjectionTarget();
+
}
Added: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiReference.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiReference.java?view=auto&rev=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiReference.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiReference.java Thu Dec 7 03:49:58 2006
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.jee;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public interface JndiReference extends Injectable {
+ String getName();
+ void setName(String name);
+
+ String getType();
+ void setType(String type);
+
+ String getMappedName();
+ void setMappedName(String mappedName);
+}
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java Thu Dec 7 03:49:58 2006
@@ -24,6 +24,7 @@
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlID;
import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
@@ -95,6 +96,24 @@
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
protected String id;
+
+ @XmlTransient
+ public String getName() {
+ return getMessageDestinationRefName();
+ }
+
+ @XmlTransient
+ public String getType() {
+ return getMessageDestinationType();
+ }
+
+ public void setName(String name) {
+ setMessageDestinationRefName(name);
+ }
+
+ public void setType(String type) {
+ setMessageDestinationType(type);
+ }
public List<Text> getDescription() {
if (description == null) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java Thu Dec 7 03:49:58 2006
@@ -24,6 +24,7 @@
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlID;
import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
@@ -66,7 +67,7 @@
"mappedName",
"injectionTarget"
})
-public class ResourceEnvRef implements Injectable {
+public class ResourceEnvRef implements JndiReference {
@XmlElement(required = true)
protected List<Text> description;
@@ -82,6 +83,24 @@
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
protected String id;
+
+ @XmlTransient
+ public String getName() {
+ return getResourceEnvRefName();
+ }
+
+ @XmlTransient
+ public String getType() {
+ return getResourceEnvRefType();
+ }
+
+ public void setName(String name) {
+ setResourceEnvRefName(name);
+ }
+
+ public void setType(String type) {
+ setResourceEnvRefType(type);
+ }
public List<Text> getDescription() {
if (description == null) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java?view=diff&rev=483427&r1=483426&r2=483427
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java Thu Dec 7 03:49:58 2006
@@ -70,7 +70,7 @@
"mappedName",
"injectionTarget"
})
-public class ResourceRef implements Injectable {
+public class ResourceRef implements JndiReference {
@XmlElement(required = true)
protected List<Text> description;
@@ -93,6 +93,25 @@
@XmlTransient
protected String resLink;
+
+ @XmlTransient
+ public String getName() {
+ return getResRefName();
+ }
+
+ @XmlTransient
+ public String getType() {
+ return getResType();
+ }
+
+ public void setName(String name) {
+ setResRefName(name);
+ }
+
+ public void setType(String type) {
+ setResType(type);
+ }
+
public List<Text> getDescription() {
if (description == null) {