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 2007/01/18 09:38:35 UTC
svn commit: r497349 - in /incubator/openejb/trunk/openejb3/container:
openejb-core/src/main/java/org/apache/openejb/alt/config/
openejb-core/src/main/java/org/apache/openejb/assembler/classic/
openejb-core/src/main/java/org/apache/openejb/core/ivm/nami...
Author: dblevins
Date: Thu Jan 18 00:38:33 2007
New Revision: 497349
URL: http://svn.apache.org/viewvc?view=rev&rev=497349
Log:
removed old ResourceReferenceLocationInfo code and replaced it with something more functional that works for all reference types
Added:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/MessageDestinationReferenceInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReferenceLocationInfo.java (contents, props changed)
- copied, changed from r497307, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceLocationInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceReferenceInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/JndiUrlReference.java
Removed:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceLocationInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceEnvReferenceLocationInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceLocationInfo.java
Modified:
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/alt/config/AutoConfigAndDeploy.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnvEntryInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceEnvReferenceInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceInfo.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.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/PersistenceContextRef.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java
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=497349&r1=497348&r2=497349
==============================================================================
--- 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 Jan 18 00:38:33 2007
@@ -657,7 +657,7 @@
// whether to use an EjbLocalRef or EjbRef (remote).
// We flag it uknown and let the linking code take care of
// figuring out what to do with it.
- ejbRef.setType(EjbRef.Type.UNKNOWN);
+ ejbRef.setRefType(EjbRef.Type.UNKNOWN);
if (member != null) {
// Set the member name where this will be injected
@@ -682,7 +682,7 @@
break;
}
}
- ejbRef.setType(EjbRef.Type.REMOTE);
+ ejbRef.setRefType(EjbRef.Type.REMOTE);
} else if (EJBLocalHome.class.isAssignableFrom(interfce)) {
ejbRef.setHome(interfce.getName());
Method[] methods = interfce.getMethods();
@@ -692,13 +692,13 @@
break;
}
}
- ejbRef.setType(EjbRef.Type.LOCAL);
+ ejbRef.setRefType(EjbRef.Type.LOCAL);
} else {
ejbRef.setRemote(interfce.getName());
if (interfce.getAnnotation(Local.class) != null) {
- ejbRef.setType(EjbRef.Type.LOCAL);
+ ejbRef.setRefType(EjbRef.Type.LOCAL);
} else if (interfce.getAnnotation(Remote.class) != null) {
- ejbRef.setType(EjbRef.Type.REMOTE);
+ ejbRef.setRefType(EjbRef.Type.REMOTE);
}
}
}
@@ -724,7 +724,7 @@
}
ejbRef.setMappedName(mappedName);
- switch (ejbRef.getType()) {
+ switch (ejbRef.getRefType()) {
case UNKNOWN:
case REMOTE:
consumer.getEjbRef().add(ejbRef);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java Thu Jan 18 00:38:33 2007
@@ -114,9 +114,11 @@
}
// check the resource refs
- ResourceRef[] refs = bean.getResourceRef();
- for (int j = 0; j < refs.length; j++) {
- ResourceRef ref = refs[j];
+ for (ResourceRef ref : bean.getResourceRef()) {
+ if ((ref.getMappedName() + "").startsWith("jndi:")){
+ continue;
+ }
+
ResourceLink link = ejbDeployment.getResourceLink(ref.getResRefName());
if (link == null) {
link = new ResourceLink();
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java Thu Jan 18 00:38:33 2007
@@ -16,18 +16,18 @@
*/
package org.apache.openejb.alt.config;
-import java.lang.reflect.Method;
-import java.util.List;
-
-import org.apache.openejb.jee.ResourceRef;
-import org.apache.openejb.jee.ApplicationClient;
import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.assembler.classic.ContainerInfo;
import org.apache.openejb.alt.config.ejb.EjbDeployment;
import org.apache.openejb.alt.config.ejb.OpenejbJar;
import org.apache.openejb.alt.config.ejb.ResourceLink;
+import org.apache.openejb.assembler.classic.ContainerInfo;
+import org.apache.openejb.jee.ApplicationClient;
+import org.apache.openejb.jee.ResourceRef;
import org.apache.openejb.util.SafeToolkit;
+import java.lang.reflect.Method;
+import java.util.List;
+
public class AutoDeployer implements DynamicDeployer {
private final ConfigurationFactory config;
@@ -59,7 +59,7 @@
}
public EjbModule deploy(EjbModule ejbModule) throws OpenEJBException {
- if (ejbModule.getOpenejbJar() != null){
+ if (ejbModule.getOpenejbJar() != null) {
return ejbModule;
}
@@ -90,11 +90,14 @@
throw new OpenEJBException("Beans with more that one resource-ref cannot be autodeployed; there is no accurate way to determine how the references should be mapped.");
}
- for (int i = 0; i < refs.length; i++) {
- deployment.getResourceLink().add(autoAssingResourceRef(refs[i]));
+ for (ResourceRef ref : refs) {
+ if ((ref.getMappedName() + "").startsWith("jndi:")) {
+ continue;
+ }
+ deployment.getResourceLink().add(autoAssingResourceRef(ref));
}
- if (bean.getType().equals("CMP_ENTITY") && ((EntityBean)bean).getCmpVersion() == 1 ) {
+ if (bean.getType().equals("CMP_ENTITY") && ((EntityBean) bean).getCmpVersion() == 1) {
if (bean.getHome() != null) {
Class tempBean = loadClass(ejbModule, bean.getHome());
if (hasFinderMethods(tempBean)) {
@@ -149,13 +152,14 @@
private String getUsableContainer(Class<? extends ContainerInfo> containerInfoType) {
for (ContainerInfo containerInfo : config.getContainerInfos()) {
- if (containerInfo.getClass().equals(containerInfoType)){
+ if (containerInfo.getClass().equals(containerInfoType)) {
return containerInfo.id;
}
}
return null;
}
+
private ResourceLink autoAssingResourceRef(ResourceRef ref) throws OpenEJBException {
List<String> resources = config.getConnectorIds();
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java Thu Jan 18 00:38:33 2007
@@ -87,11 +87,12 @@
out(3, "--[" + iterator.previousIndex() + "]----------------------");
out(3, "homeType ", ejbReference.homeType);
out(3, "referenceName ", ejbReference.referenceName);
- out(3, "location ", ejbReference.location);
- out(3, "ejbDeploymentId ", ejbReference.location.ejbDeploymentId);
- out(3, "jndiContextId ", ejbReference.location.jndiContextId);
- out(3, "remote ", ejbReference.location.remote);
- out(3, "remoteRefName ", ejbReference.location.remoteRefName);
+ out(3, "ejbDeploymentId ", ejbReference.ejbDeploymentId);
+ if (ejbReference.location != null){
+ out(3, "location ", ejbReference.location);
+ out(3, "jndiContextId ", ejbReference.location.jndiProviderId);
+ out(3, "remoteRefName ", ejbReference.location.jndiName);
+ }
}
out(2, "resourceRefs ", jndiEnc.resourceRefs.size());
for (ListIterator<ResourceReferenceInfo> iterator = jndiEnc.resourceRefs.listIterator(); iterator.hasNext();) {
@@ -102,9 +103,8 @@
out(3, "referenceType ", resourceRef.referenceType);
if (resourceRef.location != null) {
out(3, "location ", resourceRef.location);
- out(3, "jndiContextId ", resourceRef.location.jndiContextId);
- out(3, "remote ", resourceRef.location.remote);
- out(3, "remoteRefName ", resourceRef.location.remoteRefName);
+ out(3, "jndiContextId ", resourceRef.location.jndiName);
+ out(3, "remoteRefName ", resourceRef.location.jndiProviderId);
}
}
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java Thu Jan 18 00:38:33 2007
@@ -17,39 +17,44 @@
package org.apache.openejb.alt.config;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
import org.apache.openejb.assembler.classic.EjbLocalReferenceInfo;
import org.apache.openejb.assembler.classic.EjbReferenceInfo;
-import org.apache.openejb.assembler.classic.EjbReferenceLocationInfo;
import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
import org.apache.openejb.assembler.classic.EnvEntryInfo;
+import org.apache.openejb.assembler.classic.InjectionInfo;
import org.apache.openejb.assembler.classic.JndiEncInfo;
+import org.apache.openejb.assembler.classic.PersistenceContextInfo;
+import org.apache.openejb.assembler.classic.PersistenceUnitInfo;
+import org.apache.openejb.assembler.classic.ReferenceLocationInfo;
import org.apache.openejb.assembler.classic.ResourceEnvReferenceInfo;
import org.apache.openejb.assembler.classic.ResourceReferenceInfo;
-import org.apache.openejb.assembler.classic.EjbJarInfo;
-import org.apache.openejb.assembler.classic.PersistenceUnitInfo;
-import org.apache.openejb.assembler.classic.InjectionInfo;
-import org.apache.openejb.assembler.classic.PersistenceContextInfo;
+import org.apache.openejb.assembler.classic.MessageDestinationReferenceInfo;
+import org.apache.openejb.assembler.classic.ServiceReferenceInfo;
import org.apache.openejb.jee.EjbLocalRef;
import org.apache.openejb.jee.EjbRef;
import org.apache.openejb.jee.EnvEntry;
-import org.apache.openejb.jee.JndiConsumer;
-import org.apache.openejb.jee.PersistenceUnitRef;
-import org.apache.openejb.jee.ResourceEnvRef;
-import org.apache.openejb.jee.ResourceRef;
import org.apache.openejb.jee.Injectable;
import org.apache.openejb.jee.InjectionTarget;
+import org.apache.openejb.jee.JndiConsumer;
+import org.apache.openejb.jee.JndiReference;
import org.apache.openejb.jee.PersistenceContextRef;
import org.apache.openejb.jee.PersistenceContextType;
+import org.apache.openejb.jee.PersistenceUnitRef;
import org.apache.openejb.jee.Property;
+import org.apache.openejb.jee.ResourceEnvRef;
+import org.apache.openejb.jee.ResourceRef;
+import org.apache.openejb.jee.ServiceRef;
+import org.apache.openejb.jee.MessageDestinationRef;
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.Messages;
+import java.io.File;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.HashMap;
-import java.util.Collection;
-import java.io.File;
/**
* @version $Rev$ $Date$
@@ -77,20 +82,20 @@
}
private void index(EnterpriseBeanInfo bean) {
- byInterfaces.put("r="+bean.remote+":"+bean.home, bean);
- byInterfaces.put("r="+bean.businessRemote+":"+null, bean);
- byInterfaces.put("l="+bean.local+":"+bean.localHome, bean);
- byInterfaces.put("l="+bean.businessLocal+":"+null, bean);
+ byInterfaces.put("r=" + bean.remote + ":" + bean.home, bean);
+ byInterfaces.put("r=" + bean.businessRemote + ":" + null, bean);
+ byInterfaces.put("l=" + bean.local + ":" + bean.localHome, bean);
+ byInterfaces.put("l=" + bean.businessLocal + ":" + null, bean);
byEjbName.put(bean.ejbName, bean);
// TODO: DMB: this path part should actually *only* be relative to the app archive,
// this way will work to find them :)
File file = new File(bean.codebase);
- String path = file.getName()+"#"+bean.ejbName;
+ String path = file.getName() + "#" + bean.ejbName;
byEjbName.put(path, bean);
file = file.getParentFile();
- while (file != null){
- path = file.getName() +"/"+ path;
+ while (file != null) {
+ path = file.getName() + "/" + path;
byEjbName.put(path, bean);
file = file.getParentFile();
}
@@ -118,15 +123,45 @@
jndi.persistenceUnitRefs.addAll(buildPersistenceUnitRefInfos(jndiConsumer));
jndi.persistenceContextRefs.addAll(buildPersistenceContextRefInfos(jndiConsumer));
+
+ jndi.messageDestinationRefs.addAll(buildMessageDestinationRefInfos(jndiConsumer));
+
+ jndi.serviceRefs.addAll(buildServiceRefInfos(jndiConsumer));
+
return jndi;
}
+ private List<ServiceReferenceInfo> buildServiceRefInfos(JndiConsumer jndiConsumer) {
+ ArrayList<ServiceReferenceInfo> infos = new ArrayList<ServiceReferenceInfo>();
+ for (ServiceRef ref : jndiConsumer.getServiceRef()) {
+ ServiceReferenceInfo info = new ServiceReferenceInfo();
+ info.referenceName = ref.getName();
+ info.location = buildLocationInfo(ref);
+ info.targets.addAll(buildInjectionInfos(ref));
+ infos.add(info);
+ }
+ return infos;
+ }
+
+ private List<MessageDestinationReferenceInfo> buildMessageDestinationRefInfos(JndiConsumer jndiConsumer) {
+ ArrayList<MessageDestinationReferenceInfo> infos = new ArrayList<MessageDestinationReferenceInfo>();
+ for (MessageDestinationRef ref : jndiConsumer.getMessageDestinationRef()) {
+ MessageDestinationReferenceInfo info = new MessageDestinationReferenceInfo();
+ info.referenceName = ref.getName();
+ info.location = buildLocationInfo(ref);
+ info.targets.addAll(buildInjectionInfos(ref));
+ infos.add(info);
+ }
+ return infos;
+ }
+
private List<PersistenceUnitInfo> buildPersistenceUnitRefInfos(JndiConsumer jndiConsumer) {
ArrayList<PersistenceUnitInfo> infos = new ArrayList<PersistenceUnitInfo>();
for (PersistenceUnitRef puRef : jndiConsumer.getPersistenceUnitRef()) {
PersistenceUnitInfo info = new PersistenceUnitInfo();
info.referenceName = puRef.getPersistenceUnitRefName();
info.persistenceUnitName = puRef.getPersistenceUnitName();
+ info.location = buildLocationInfo(puRef);
info.targets.addAll(buildInjectionInfos(puRef));
infos.add(info);
}
@@ -140,6 +175,7 @@
PersistenceContextInfo info = new PersistenceContextInfo();
info.referenceName = contextRef.getPersistenceContextRefName();
info.persistenceUnitName = contextRef.getPersistenceUnitName();
+ info.location = buildLocationInfo(contextRef);
info.extended = (contextRef.getPersistenceContextType() == PersistenceContextType.EXTENDED);
List<Property> persistenceProperty = contextRef.getPersistenceProperty();
for (Property property : persistenceProperty) {
@@ -155,7 +191,7 @@
private void buildAmbiguousEjbRefInfos(JndiEncInfo sjndi, JndiConsumer jndiConsumer, String referringComponent) throws OpenEJBException {
ArrayList<EjbRef> ejbRefs = new ArrayList<EjbRef>(jndiConsumer.getEjbRef());
for (EjbRef ejb : ejbRefs) {
- if (ejb.getType() != EjbRef.Type.UNKNOWN) continue;
+ if (ejb.getRefType() != EjbRef.Type.UNKNOWN) continue;
String interfce = ejb.getRemote();
@@ -166,19 +202,19 @@
otherBean = byEjbName.get(ejbLink);
}
- if (otherBean != null){
- if (interfce.equals(otherBean.businessRemote)){
- ejb.setType(EjbRef.Type.REMOTE);
- } else {
- ejb.setType(EjbRef.Type.LOCAL);
+ if (otherBean != null) {
+ if (interfce.equals(otherBean.businessRemote)) {
+ ejb.setRefType(EjbRef.Type.REMOTE);
+ } else {
+ ejb.setRefType(EjbRef.Type.LOCAL);
jndiConsumer.getEjbRef().remove(ejb);
jndiConsumer.getEjbLocalRef().add(new EjbLocalRef(ejb));
}
} else {
- if (byInterfaces.get("r="+ejb.getRemote()+":"+ejb.getHome()) != null){
- ejb.setType(EjbRef.Type.REMOTE);
+ if (byInterfaces.get("r=" + ejb.getRemote() + ":" + ejb.getHome()) != null) {
+ ejb.setRefType(EjbRef.Type.REMOTE);
} else {
- ejb.setType(EjbRef.Type.LOCAL);
+ ejb.setRefType(EjbRef.Type.LOCAL);
jndiConsumer.getEjbRef().remove(ejb);
jndiConsumer.getEjbLocalRef().add(new EjbLocalRef(ejb));
}
@@ -193,31 +229,32 @@
info.homeType = ejb.getLocalHome();
info.referenceName = ejb.getEjbRefName();
- info.location = new EjbReferenceLocationInfo();
-
- EnterpriseBeanInfo otherBean = null;
+ info.location = buildLocationInfo(ejb);
- if (ejb.getEjbLink() != null) {
- String ejbLink = ejb.getEjbLink();
- otherBean = byEjbName.get(ejbLink);
- } else {
- otherBean = byInterfaces.get("l="+ejb.getLocal()+":"+ejb.getLocalHome());
- }
+ if (info.location == null) {
+ EnterpriseBeanInfo otherBean = null;
- if (otherBean == null) {
- String msg;
- if (ejb.getEjbLink() == null) {
- msg = messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
+ if (ejb.getEjbLink() != null) {
+ String ejbLink = ejb.getEjbLink();
+ otherBean = byEjbName.get(ejbLink);
} else {
- msg = messages.format("config.noBeanFoundEjbLink", ejb.getEjbRefName(), referringComponent, ejb.getEjbLink());
+ otherBean = byInterfaces.get("l=" + ejb.getLocal() + ":" + ejb.getLocalHome());
}
- logger.fatal(msg);
- throw new OpenEJBException(msg);
- }
- info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
+ if (otherBean == null) {
+ String msg;
+ if (ejb.getEjbLink() == null) {
+ msg = messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
+ } else {
+ msg = messages.format("config.noBeanFoundEjbLink", ejb.getEjbRefName(), referringComponent, ejb.getEjbLink());
+ }
+ logger.fatal(msg);
+ throw new OpenEJBException(msg);
+ }
+ info.ejbDeploymentId = otherBean.ejbDeploymentId;
+ }
info.targets.addAll(buildInjectionInfos(ejb));
infos.add(info);
}
@@ -232,29 +269,32 @@
info.homeType = ejb.getHome();
info.remoteType = ejb.getRemote();
info.referenceName = ejb.getEjbRefName();
- info.location = new EjbReferenceLocationInfo();
- EnterpriseBeanInfo otherBean = null;
+ info.location = buildLocationInfo(ejb);
- if (ejb.getEjbLink() != null) {
- String ejbLink = ejb.getEjbLink();
- otherBean = byEjbName.get(ejbLink);
- } else {
- otherBean = byInterfaces.get("r="+ejb.getRemote()+":"+ejb.getHome());
- }
+ if (info.location == null) {
+ EnterpriseBeanInfo otherBean = null;
- if (otherBean == null) {
- String msg;
- if (ejb.getEjbLink() == null) {
- msg = messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
+ if (ejb.getEjbLink() != null) {
+ String ejbLink = ejb.getEjbLink();
+ otherBean = byEjbName.get(ejbLink);
} else {
- msg = messages.format("config.noBeanFoundEjbLink", ejb.getEjbRefName(), referringComponent, ejb.getEjbLink());
+ otherBean = byInterfaces.get("r=" + ejb.getRemote() + ":" + ejb.getHome());
}
- logger.fatal(msg);
- throw new OpenEJBException(msg);
+ if (otherBean == null) {
+ String msg;
+ if (ejb.getEjbLink() == null) {
+ msg = messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
+ } else {
+ msg = messages.format("config.noBeanFoundEjbLink", ejb.getEjbRefName(), referringComponent, ejb.getEjbLink());
+ }
+
+ logger.fatal(msg);
+ throw new OpenEJBException(msg);
+ }
+ info.ejbDeploymentId = otherBean.ejbDeploymentId;
}
- info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
info.targets.addAll(buildInjectionInfos(ejb));
infos.add(info);
@@ -271,6 +311,7 @@
info.referenceName = res.getResRefName();
info.referenceType = res.getResType();
info.resourceID = res.getResLink();
+ info.location = buildLocationInfo(res);
info.targets.addAll(buildInjectionInfos(res));
infos.add(info);
}
@@ -283,7 +324,7 @@
ResourceEnvReferenceInfo info = new ResourceEnvReferenceInfo();
info.resourceEnvRefName = res.getResourceEnvRefName();
info.resourceEnvRefType = res.getResourceEnvRefType();
- info.mappedName = res.getMappedName();
+ info.location = buildLocationInfo(res);
info.targets.addAll(buildInjectionInfos(res));
infos.add(info);
}
@@ -298,10 +339,21 @@
info.name = env.getEnvEntryName();
info.type = env.getEnvEntryType();
info.value = env.getEnvEntryValue();
+ info.location = buildLocationInfo(env);
info.targets.addAll(buildInjectionInfos(env));
infos.add(info);
}
return infos;
+ }
+
+ private ReferenceLocationInfo buildLocationInfo(JndiReference reference) {
+ String mappedName = reference.getMappedName();
+ if (mappedName == null || !mappedName.startsWith("jndi:")) {
+ return null;
+ }
+ ReferenceLocationInfo location = new ReferenceLocationInfo();
+ location.jndiName = mappedName.replaceFirst("^jndi:", "");
+ return location;
}
private Collection<? extends InjectionInfo> buildInjectionInfos(Injectable injectable) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java Thu Jan 18 00:38:33 2007
@@ -20,5 +20,7 @@
public String referenceName;
public String homeType;
- public EjbReferenceLocationInfo location;
+ public String ejbDeploymentId;
+
+ public ReferenceLocationInfo location;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java Thu Jan 18 00:38:33 2007
@@ -21,5 +21,7 @@
public String referenceName;
public String homeType;
public String remoteType;
- public EjbReferenceLocationInfo location;
+ public String ejbDeploymentId;
+
+ public ReferenceLocationInfo location;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnvEntryInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnvEntryInfo.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnvEntryInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnvEntryInfo.java Thu Jan 18 00:38:33 2007
@@ -22,4 +22,5 @@
public String type;
public String value;
+ public ReferenceLocationInfo location;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java Thu Jan 18 00:38:33 2007
@@ -29,6 +29,7 @@
import org.apache.openejb.core.ivm.naming.PersistenceUnitReference;
import org.apache.openejb.core.ivm.naming.Reference;
import org.apache.openejb.core.ivm.naming.PersistenceContextReference;
+import org.apache.openejb.core.ivm.naming.JndiUrlReference;
import javax.ejb.EJBContext;
import javax.naming.Context;
@@ -40,8 +41,8 @@
import javax.transaction.TransactionSynchronizationRegistry;
import java.io.File;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
+import java.util.List;
/**
* TODO: This class is essentially an over glorified sym-linker. The names
@@ -54,17 +55,11 @@
private final ReferenceWrapper referenceWrapper;
private final boolean beanManagedTransactions;
- private final EjbReferenceInfo[] ejbReferences;
- private final EjbLocalReferenceInfo[] ejbLocalReferences;
- private final EnvEntryInfo[] envEntries;
- private final ResourceReferenceInfo[] resourceRefs;
- private final ResourceEnvReferenceInfo[] resourceEnvRefs;
- private final PersistenceUnitInfo[] persistenceUnitRefs;
- private final PersistenceContextInfo[] persistenceContextRefs;
private final Map<String, EntityManagerFactory> entityManagerFactories;
private final Map<String, Map<String, EntityManagerFactory>> allFactories;
private final String jarPath;
-
+ private final JndiEncInfo jndiEnc;
+
public JndiEncBuilder(JndiEncInfo jndiEnc) throws OpenEJBException {
this(jndiEnc, null, null, null,null);
@@ -87,60 +82,20 @@
beanManagedTransactions = transactionType != null && transactionType.equalsIgnoreCase("Bean");
- if ((jndiEnc != null && jndiEnc.ejbReferences != null)) {
- ejbReferences = jndiEnc.ejbReferences.toArray(new EjbReferenceInfo[0]);
- } else {
- ejbReferences = new EjbReferenceInfo[]{};
- }
-
- if ((jndiEnc != null && jndiEnc.ejbLocalReferences != null)) {
- ejbLocalReferences = jndiEnc.ejbLocalReferences.toArray(new EjbLocalReferenceInfo[0]);
- } else {
- ejbLocalReferences = new EjbLocalReferenceInfo[]{};
- }
-
- if ((jndiEnc != null && jndiEnc.envEntries != null)) {
- envEntries = jndiEnc.envEntries.toArray(new EnvEntryInfo[0]);
- } else {
- envEntries = new EnvEntryInfo[]{};
- }
+ this.jndiEnc = jndiEnc;
- if ((jndiEnc != null && jndiEnc.resourceRefs != null)) {
- resourceRefs = jndiEnc.resourceRefs.toArray(new ResourceReferenceInfo[0]);
+ if(allFactories != null){
+ this.allFactories = allFactories;
} else {
- resourceRefs = new ResourceReferenceInfo[]{};
+ this.allFactories = new HashMap<String, Map<String, EntityManagerFactory>>();
}
- if ((jndiEnc != null && jndiEnc.resourceEnvRefs != null)) {
- resourceEnvRefs = jndiEnc.resourceEnvRefs.toArray(new ResourceEnvReferenceInfo[0]);
- } else {
- resourceEnvRefs = new ResourceEnvReferenceInfo[]{};
- }
-
- if ((jndiEnc != null && jndiEnc.persistenceUnitRefs != null)) {
- persistenceUnitRefs = jndiEnc.persistenceUnitRefs.toArray(new PersistenceUnitInfo[0]);
- } else {
- persistenceUnitRefs = new PersistenceUnitInfo[]{};
- }
-
- if ((jndiEnc != null && jndiEnc.persistenceContextRefs != null)) {
- persistenceContextRefs = jndiEnc.persistenceContextRefs.toArray(new PersistenceContextInfo[0]);
- } else {
- persistenceContextRefs = new PersistenceContextInfo[]{};
- }
+ this.jarPath = path;
- if(allFactories != null){
- this.allFactories = allFactories;
- } else {
- this.allFactories = new HashMap<String, Map<String, EntityManagerFactory>>();
- }
-
- this.jarPath = path;
-
if(this.allFactories.get(jarPath) != null){
- entityManagerFactories = this.allFactories.get(jarPath);
+ entityManagerFactories = this.allFactories.get(jarPath);
} else {
- entityManagerFactories = new HashMap<String, EntityManagerFactory>();
+ entityManagerFactories = new HashMap<String, EntityManagerFactory>();
}
}
@@ -164,50 +119,51 @@
bindings.put("java:comp/UserTransaction", userTransaction);
}
- for (int i = 0; i < ejbReferences.length; i++) {
- EjbReferenceInfo referenceInfo = ejbReferences[i];
- EjbReferenceLocationInfo location = referenceInfo.location;
+ for (EjbReferenceInfo referenceInfo : jndiEnc.ejbReferences) {
Reference reference = null;
- if (!location.remote) {
+ if (referenceInfo.location != null) {
+ reference = buildReferenceLocation(referenceInfo.location);
+ } else {
// TODO: Before JndiNameStrategy can be used, this assumption has to be updated
if (referenceInfo.homeType == null){
- String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId + "BusinessRemote";
+ String jndiName = "java:openejb/ejb/" + referenceInfo.ejbDeploymentId + "BusinessRemote";
reference = new IntraVmJndiReference(jndiName);
} else {
// TODO: Before JndiNameStrategy can be used, this assumption has to be updated
- String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId;
+ String jndiName = "java:openejb/ejb/" + referenceInfo.ejbDeploymentId;
reference = new IntraVmJndiReference(jndiName);
}
- } else {
- String openEjbSubContextName = "java:openejb/remote_jndi_contexts/" + location.jndiContextId;
- reference = new JndiReference(openEjbSubContextName, location.remoteRefName);
}
bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
}
- for (int i = 0; i < ejbLocalReferences.length; i++) {
- EjbLocalReferenceInfo referenceInfo = ejbLocalReferences[i];
- EjbReferenceLocationInfo location = referenceInfo.location;
+ for (EjbLocalReferenceInfo referenceInfo : jndiEnc.ejbLocalReferences) {
Reference reference = null;
- if (location != null && !location.remote) {
- if (referenceInfo.homeType == null){
- // TODO: Before JndiNameStrategy can be used, this assumption has to be updated
- String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId + "BusinessLocal";
- reference = new IntraVmJndiReference(jndiName);
- } else {
- String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId + "Local";
- reference = new IntraVmJndiReference(jndiName);
- }
- bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
+ if (referenceInfo.location != null) {
+ reference = buildReferenceLocation(referenceInfo.location);
+ } else if (referenceInfo.homeType == null){
+ // TODO: Before JndiNameStrategy can be used, this assumption has to be updated
+ String jndiName = "java:openejb/ejb/" + referenceInfo.ejbDeploymentId + "BusinessLocal";
+ reference = new IntraVmJndiReference(jndiName);
+ } else {
+ String jndiName = "java:openejb/ejb/" + referenceInfo.ejbDeploymentId + "Local";
+ reference = new IntraVmJndiReference(jndiName);
}
+ bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
}
- for (int i = 0; i < envEntries.length; i++) {
- EnvEntryInfo entry = envEntries[i];
+ for (EnvEntryInfo entry : jndiEnc.envEntries) {
+
+ if (entry.location != null) {
+ Reference reference = buildReferenceLocation(entry.location);
+ bindings.put(normalize(entry.name), reference);
+ continue;
+ }
+
try {
Class type = Class.forName(entry.type.trim());
Object obj = null;
@@ -242,51 +198,62 @@
}
}
- for (int i = 0; i < resourceRefs.length; i++) {
- ResourceReferenceInfo referenceInfo = resourceRefs[i];
+ for (ResourceReferenceInfo referenceInfo : jndiEnc.resourceRefs) {
Reference reference = null;
- if (referenceInfo.resourceID != null) {
+ if (referenceInfo.location != null) {
+ reference = buildReferenceLocation(referenceInfo.location);
+ } else if (referenceInfo.resourceID != null) {
String jndiName = "java:openejb/Connector/" + referenceInfo.resourceID;
reference = new IntraVmJndiReference(jndiName);
- } else if (referenceInfo.location != null) {
- String openEjbSubContextName1 = "java:openejb/remote_jndi_contexts/" + referenceInfo.location.jndiContextId;
- String jndiName2 = referenceInfo.location.remoteRefName;
- reference = new JndiReference(openEjbSubContextName1, jndiName2);
} else {
String jndiName = "java:openejb/Connector/" + referenceInfo.referenceName;
reference = new IntraVmJndiReference(jndiName);
}
bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
}
-
- for (int i = 0; i < resourceEnvRefs.length; i++) {
- ResourceEnvReferenceInfo referenceInfo = resourceEnvRefs[i];
- Reference reference = null;
+
+ for (ResourceEnvReferenceInfo referenceInfo : jndiEnc.resourceEnvRefs) {
LinkRef linkRef = null;
try {
if (EJBContext.class.isAssignableFrom(Class.forName(referenceInfo.resourceEnvRefType))) {
String jndiName = "java:comp/EJBContext";
- linkRef = new LinkRef(jndiName);
+ linkRef = new LinkRef(jndiName);
bindings.put(normalize(referenceInfo.resourceEnvRefName), linkRef);
continue;
- }
- } catch (ClassNotFoundException e) {
+ }
+ } catch (ClassNotFoundException e) {
throw new OpenEJBException(e);
- }
- //TODO code for handling other resource-env-refs need to be added here.
+ }
+
+ if (referenceInfo.location != null){
+ Reference reference = buildReferenceLocation(referenceInfo.location);
+ bindings.put(normalize(referenceInfo.resourceEnvRefName), wrapReference(reference));
+ }
+
+ //TODO code for handling other resource-env-refs need to be added here.
}
-
- for (int i = 0; i < persistenceUnitRefs.length; i++){
- PersistenceUnitInfo puRefInfo = persistenceUnitRefs[i];
- EntityManagerFactory factory = findEntityManagerFactory(puRefInfo.persistenceUnitName);
+
+ for (PersistenceUnitInfo referenceInfo : jndiEnc.persistenceUnitRefs) {
+ if (referenceInfo.location != null){
+ Reference reference = buildReferenceLocation(referenceInfo.location);
+ bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
+ continue;
+ }
+
+ EntityManagerFactory factory = findEntityManagerFactory(referenceInfo.persistenceUnitName);
Reference reference = new PersistenceUnitReference(factory);
- bindings.put(normalize(puRefInfo.referenceName), wrapReference(reference));
+ bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
}
- for (int i = 0; i < persistenceContextRefs.length; i++) {
- PersistenceContextInfo contextInfo = persistenceContextRefs[i];
+ for (PersistenceContextInfo contextInfo : jndiEnc.persistenceContextRefs) {
+ if (contextInfo.location != null){
+ Reference reference = buildReferenceLocation(contextInfo.location);
+ bindings.put(normalize(contextInfo.referenceName), wrapReference(reference));
+ continue;
+ }
+
EntityManagerFactory factory = findEntityManagerFactory(contextInfo.persistenceUnitName);
JtaEntityManager jtaEntityManager = new JtaEntityManager(jtaEntityManagerRegistry, factory, contextInfo.properties, contextInfo.extended);
@@ -294,6 +261,20 @@
bindings.put(normalize(contextInfo.referenceName), wrapReference(reference));
}
+ for (MessageDestinationReferenceInfo referenceInfo : jndiEnc.messageDestinationRefs) {
+ if (referenceInfo.location != null){
+ Reference reference = buildReferenceLocation(referenceInfo.location);
+ bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
+ }
+ }
+
+ for (ServiceReferenceInfo referenceInfo : jndiEnc.serviceRefs) {
+ if (referenceInfo.location != null){
+ Reference reference = buildReferenceLocation(referenceInfo.location);
+ bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
+ }
+ }
+
IvmContext enc = new IvmContext(new NameNode(null, new ParsedName("comp"), null));
try {
enc.createSubcontext("comp/env");
@@ -302,8 +283,7 @@
throw new IllegalStateException("Unable to create subcontext 'java:comp/env'. Exception:"+e.getMessage(),e);
}
- for (Iterator iterator = bindings.entrySet().iterator(); iterator.hasNext();) {
- Map.Entry entry = (Map.Entry) iterator.next();
+ for (Map.Entry<String, Object> entry : bindings.entrySet()) {
String name = (String) entry.getKey();
Object value = entry.getValue();
try {
@@ -315,6 +295,15 @@
return enc;
}
+ private Reference buildReferenceLocation(ReferenceLocationInfo location) {
+ if (location.jndiProviderId != null){
+ String subContextName = "java:openejb/remote_jndi_contexts/" + location.jndiProviderId;
+ return new JndiReference(subContextName, location.jndiName);
+ } else {
+ return new JndiUrlReference(location.jndiName);
+ }
+ }
+
private String normalize(String name) {
if (name.charAt(0) == '/')
name = name.substring(1);
@@ -376,7 +365,7 @@
return new org.apache.openejb.core.mdb.MdbEncUserTransaction((CoreUserTransaction) userTransaction);
}
}
-
+
private static class DefaultReferenceWrapper extends ReferenceWrapper {
Object wrap(Reference reference) {
@@ -387,7 +376,7 @@
return reference;
}
}
-
+
public EntityManagerFactory findEntityManagerFactory(String persistenceName) throws OpenEJBException {
EntityManagerFactory factory;
if (persistenceName != null) {
@@ -410,29 +399,29 @@
* path.The paths are calculated relative to the referencing component jar. See 16.10.2 in ejb core spec.
*/
private EntityManagerFactory findEntityManagerFactory(Map<String, Map<String, EntityManagerFactory>> allFactories, String path, String puName) throws OpenEJBException{
- int index = puName.indexOf("#");
- String relativePath = puName.substring(0,index);
- String unitName = puName.substring(index+1,puName.length());
- if(new File(path).isFile()){
- path=path.substring(0,path.lastIndexOf(File.separator));
- }
- while(relativePath.startsWith("../")){
- relativePath = relativePath.substring(3,relativePath.length());
- path = path.substring(0,path.lastIndexOf(File.separator));
- }
-
- while(relativePath.startsWith("./")){
- relativePath = relativePath.substring(2,relativePath.length());
- }
- path = path + File.separator + relativePath;
- path = new File(path).getPath();
- Map factories = allFactories.get(path);
- if (factories != null){
- EntityManagerFactory factory = (EntityManagerFactory)factories.get(unitName);
- if(factory != null){
- return factory;
- }
- }
- throw new OpenEJBException("The persistence unit referred by the persistence-unit-name tag "+puName+" could not be found");
+ int index = puName.indexOf("#");
+ String relativePath = puName.substring(0,index);
+ String unitName = puName.substring(index+1,puName.length());
+ if(new File(path).isFile()){
+ path=path.substring(0,path.lastIndexOf(File.separator));
+ }
+ while(relativePath.startsWith("../")){
+ relativePath = relativePath.substring(3,relativePath.length());
+ path = path.substring(0,path.lastIndexOf(File.separator));
+ }
+
+ while(relativePath.startsWith("./")){
+ relativePath = relativePath.substring(2,relativePath.length());
+ }
+ path = path + File.separator + relativePath;
+ path = new File(path).getPath();
+ Map factories = allFactories.get(path);
+ if (factories != null){
+ EntityManagerFactory factory = (EntityManagerFactory)factories.get(unitName);
+ if(factory != null){
+ return factory;
+ }
+ }
+ throw new OpenEJBException("The persistence unit referred by the persistence-unit-name tag "+puName+" could not be found");
}
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java Thu Jan 18 00:38:33 2007
@@ -28,5 +28,7 @@
public final List<ResourceReferenceInfo> resourceRefs = new ArrayList<ResourceReferenceInfo>();
public final List<PersistenceUnitInfo> persistenceUnitRefs = new ArrayList<PersistenceUnitInfo>();
public final List<PersistenceContextInfo> persistenceContextRefs = new ArrayList<PersistenceContextInfo>();
- public final List <ResourceEnvReferenceInfo> resourceEnvRefs = new ArrayList<ResourceEnvReferenceInfo>();
+ public final List<ResourceEnvReferenceInfo> resourceEnvRefs = new ArrayList<ResourceEnvReferenceInfo>();
+ public final List<MessageDestinationReferenceInfo> messageDestinationRefs = new ArrayList<MessageDestinationReferenceInfo>();
+ public final List<ServiceReferenceInfo> serviceRefs = new ArrayList<ServiceReferenceInfo>();
}
Added: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/MessageDestinationReferenceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/MessageDestinationReferenceInfo.java?view=auto&rev=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/MessageDestinationReferenceInfo.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/MessageDestinationReferenceInfo.java Thu Jan 18 00:38:33 2007
@@ -0,0 +1,27 @@
+/**
+ * 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.assembler.classic;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class MessageDestinationReferenceInfo extends InjectableInfo {
+
+ public String referenceName;
+
+ public ReferenceLocationInfo location;
+}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java Thu Jan 18 00:38:33 2007
@@ -26,5 +26,7 @@
public String referenceName;
public String persistenceUnitName;
public boolean extended;
- public final Properties properties = new Properties();
+ public final Properties properties = new Properties();
+
+ public ReferenceLocationInfo location;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java Thu Jan 18 00:38:33 2007
@@ -22,4 +22,6 @@
public class PersistenceUnitInfo extends InjectableInfo {
public String referenceName;
public String persistenceUnitName;
+
+ public ReferenceLocationInfo location;
}
Copied: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReferenceLocationInfo.java (from r497307, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceLocationInfo.java)
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReferenceLocationInfo.java?view=diff&rev=497349&p1=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceLocationInfo.java&r1=497307&p2=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReferenceLocationInfo.java&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceLocationInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReferenceLocationInfo.java Thu Jan 18 00:38:33 2007
@@ -16,10 +16,9 @@
*/
package org.apache.openejb.assembler.classic;
-public class ResourceReferenceLocationInfo extends InfoObject {
+public class ReferenceLocationInfo extends InfoObject {
- public boolean remote;
- public String remoteRefName;
- public String jndiContextId;
+ public String jndiProviderId;
+ public String jndiName;
}
Propchange: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReferenceLocationInfo.java
------------------------------------------------------------------------------
svn:keywords = Date Rev Author Id Revision HeadURL
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceEnvReferenceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceEnvReferenceInfo.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceEnvReferenceInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceEnvReferenceInfo.java Thu Jan 18 00:38:33 2007
@@ -21,5 +21,6 @@
public String resourceEnvRefType;
public String mappedName;
public String resourceID;
- public ResourceEnvReferenceLocationInfo location;
+
+ public ReferenceLocationInfo location;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceInfo.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ResourceReferenceInfo.java Thu Jan 18 00:38:33 2007
@@ -23,5 +23,6 @@
public String referenceAuth;
public String resourceID;
public java.util.Properties properties;
- public ResourceReferenceLocationInfo location;
+
+ public ReferenceLocationInfo location;
}
Added: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceReferenceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceReferenceInfo.java?view=auto&rev=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceReferenceInfo.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceReferenceInfo.java Thu Jan 18 00:38:33 2007
@@ -0,0 +1,27 @@
+/**
+ * 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.assembler.classic;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ServiceReferenceInfo extends InjectableInfo {
+
+ public String referenceName;
+
+ public ReferenceLocationInfo location;
+}
Added: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/JndiUrlReference.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/JndiUrlReference.java?view=auto&rev=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/JndiUrlReference.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/JndiUrlReference.java Thu Jan 18 00:38:33 2007
@@ -0,0 +1,37 @@
+/**
+ * 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.core.ivm.naming;
+
+import org.apache.openejb.spi.ContainerSystem;
+import org.apache.openejb.loader.SystemInstance;
+
+import javax.naming.*;
+import javax.naming.NamingException;
+import java.util.Hashtable;
+
+public class JndiUrlReference implements Reference {
+ private String jndiName;
+
+ public JndiUrlReference(String jndiName) {
+ this.jndiName = jndiName;
+ }
+
+ public Object getObject() throws javax.naming.NamingException {
+ return new InitialContext().lookup(jndiName);
+ }
+
+}
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java Thu Jan 18 00:38:33 2007
@@ -62,7 +62,7 @@
"mappedName",
"injectionTarget"
})
-public class EjbLocalRef implements Injectable {
+public class EjbLocalRef implements JndiReference {
@XmlElement(required = true)
protected List<Text> description;
@@ -98,6 +98,20 @@
this.localHome = ref.getHome();
}
+ public String getName() {
+ return getEjbRefName();
+ }
+
+ public String getType() {
+ return getEjbRefType().name();
+ }
+
+ public void setName(String name) {
+ setEjbRefName(name);
+ }
+
+ public void setType(String type) {
+ }
public List<Text> getDescription() {
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.java Thu Jan 18 00:38:33 2007
@@ -64,7 +64,7 @@
"mappedName",
"injectionTarget"
})
-public class EjbRef implements Injectable {
+public class EjbRef implements JndiReference {
@XmlElement(required = true)
protected List<Text> description;
@@ -90,14 +90,14 @@
}
@XmlTransient
- protected Type type = Type.REMOTE;
+ protected Type refType = Type.REMOTE;
- public Type getType() {
- return type;
+ public Type getRefType() {
+ return refType;
}
- public void setType(Type type) {
- this.type = type;
+ public void setRefType(Type refType) {
+ this.refType = refType;
}
public List<Text> getDescription() {
@@ -109,6 +109,21 @@
public String getEjbRefName() {
return ejbRefName;
+ }
+
+ public String getName() {
+ return getEjbRefName();
+ }
+
+ public String getType() {
+ return getEjbRefType().name();
+ }
+
+ public void setName(String name) {
+ setEjbRefName(name);
+ }
+
+ public void setType(String type) {
}
/**
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=497349&r1=497348&r2=497349
==============================================================================
--- 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 Jan 18 00:38:33 2007
@@ -76,7 +76,7 @@
"mappedName",
"injectionTarget"
})
-public class MessageDestinationRef implements Injectable {
+public class MessageDestinationRef implements JndiReference {
@XmlElement(required = true)
protected List<Text> description;
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceContextRef.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceContextRef.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceContextRef.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceContextRef.java Thu Jan 18 00:38:33 2007
@@ -71,7 +71,7 @@
"mappedName",
"injectionTarget"
})
-public class PersistenceContextRef implements Injectable {
+public class PersistenceContextRef implements JndiReference {
@XmlElement(required = true)
protected List<Text> description;
@@ -91,6 +91,21 @@
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
protected String id;
+
+ public String getName() {
+ return getPersistenceContextRefName();
+ }
+
+ public String getType() {
+ return getPersistenceContextType().name();
+ }
+
+ public void setName(String name) {
+ setPersistenceContextRefName(name);
+ }
+
+ public void setType(String type) {
+ }
public List<Text> getDescription() {
if (description == null) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java Thu Jan 18 00:38:33 2007
@@ -64,7 +64,7 @@
"mappedName",
"injectionTarget"
})
-public class PersistenceUnitRef implements Injectable {
+public class PersistenceUnitRef implements JndiReference {
@XmlElement(required = true)
protected List<Text> description;
@@ -80,6 +80,21 @@
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
protected String id;
+
+ public String getName() {
+ return getPersistenceUnitRefName();
+ }
+
+ public String getType() {
+ return getPersistenceUnitName();
+ }
+
+ public void setName(String name) {
+ setPersistenceUnitRefName(name);
+ }
+
+ public void setType(String type) {
+ }
public List<Text> getDescription() {
if (description == null) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java?view=diff&rev=497349&r1=497348&r2=497349
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java Thu Jan 18 00:38:33 2007
@@ -56,7 +56,7 @@
"mappedName",
"injectionTarget"
})
-public class ServiceRef implements Injectable {
+public class ServiceRef implements JndiReference {
@XmlElement(required = true)
protected List<Text> description;
@@ -90,6 +90,21 @@
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
protected String id;
+
+ public String getName() {
+ return getServiceRefName();
+ }
+
+ public String getType() {
+ return getServiceRefType();
+ }
+
+ public void setName(String name) {
+ setServiceRefName(name);
+ }
+
+ public void setType(String type) {
+ }
public List<Text> getDescription() {
if (description == null) {