assureEJBHomeInterface(home, cl);
boolean isSession = "Session".equals(ejbRef.getEjbRefType().getStringValue());
String ejbLink = null;
GerEjbRefType remoteRef = (GerEjbRefType) ejbRefMap.get(ejbRefName);
if (remoteRef != null && remoteRef.isSetEjbLink()) {
ejbLink = remoteRef.getEjbLink();
} else if (ejbRef.isSetEjbLink()) {
ejbLink = getJ2eeStringValue(ejbRef.getEjbLink());
}
Reference ejbReference;
if (ejbLink != null) {
ejbReference = refContext.getEJBRemoteRef(uri, ejbLink, isSession, home, remote);
} else if (remoteRef != null) {
if (remoteRef.isSetTargetName()) {
ejbReference = refContext.getEJBRemoteRef(remoteRef.getTargetName(), isSession, home, remote);
} else {
String containerId = null;
try {
containerId = NameFactory.getEjbComponentNameString(remoteRef.getDomain(),
remoteRef.getServer(),
remoteRef.getApplication(),
remoteRef.getModule(),
remoteRef.getName(),
remoteRef.getType(),
j2eeContext);
} catch (MalformedObjectNameException e) {
throw new DeploymentException("Could not construct ejb object name: " + remoteRef.getName(), e);
}
ejbReference = refContext.getEJBRemoteRef(containerId, isSession, home, remote);
}
} else {