/** * Adds a reference to another ejb to me. */ @Override public void addEjbReferenceDescriptor(EjbReference ejbReference) { try { EjbReference existing = getEjbReference(ejbReference.getName()); for(InjectionTarget next : ejbReference.getInjectionTargets() ) { existing.addInjectionTarget(next); } } catch(IllegalArgumentException e) { if (env != null) env.addEjbReferenceDescriptor(ejbReference); else ejbReferences.add(ejbReference); ejbReference.setReferringBundleDescriptor(getEjbBundleDescriptor()); } }
/** * write the descriptor class to a DOM tree and return it * * @param parent node for the DOM tree * @param node name for the descriptor * @param the descriptor to write * @return the DOM tree top node */ public Node writeDescriptor(Node parent, String nodeName, EjbReference ejbRef) { Node ejbRefNode = appendChild(parent, nodeName); appendTextChild(ejbRefNode, RuntimeTagNames.EJB_REFERENCE_NAME, ejbRef.getName()); String jndiName = ejbRef.getJndiName(); EjbDescriptor ejbReferee = ejbRef.getEjbDescriptor(); // If this is an intra-app remote ejb dependency, write out the portable jndi name // of the target ejb. if( ejbReferee != null ) { if( !ejbRef.isLocal() && ejbRef.getType().equals(EjbSessionDescriptor.TYPE) ) { EjbSessionDescriptor sessionDesc = (EjbSessionDescriptor) ejbReferee; String intf = ejbRef.isEJB30ClientView() ? ejbRef.getEjbInterface() : ejbRef.getEjbHomeInterface(); jndiName = sessionDesc.getPortableJndiName(intf); } } appendTextChild(ejbRefNode, RuntimeTagNames.JNDI_NAME, jndiName); return ejbRefNode; }
if (ejbRef.getEjbDescriptor()!=null) return; if (ejbRef.getType() == null) { if (ejbRef.isEJB30ClientView()) { ejbRef.setType("Session"); } else { String homeIntf = ejbRef.getEjbHomeInterface(); BundleDescriptor referringJar = ejbRef.getReferringBundleDescriptor(); if (referringJar == null) { referringJar = getBundleDescriptor(); for (Method method : clazz.getDeclaredMethods()) { if (method.getName().equals("findByPrimaryKey")) { ejbRef.setType("Entity"); break; if (ejbRef.getType() == null) { ejbRef.setType("Session"); if (ejbRef.getJndiName()!=null && ejbRef.getJndiName().length()!=0) { if (!ejbRef.isLocal() || (ejbRef.isLocal() && ejbRef.getLinkName()==null)) { DOLUtils.getDefaultLogger().fine("Ref " + ejbRef.getName() + " is bound to Ejb with JNDI Name " + ejbRef.getJndiName()); if (getEjbDescriptors() != null) { for (Iterator iter = getEjbDescriptors().iterator(); iter.hasNext();) { EjbDescriptor ejb = (EjbDescriptor)iter.next();
writeLocalizedDescriptions(ejbRefNode, ejbRefDesc); appendTextChild(ejbRefNode, TagNames.EJB_REFERENCE_NAME, descriptor.getName()); appendTextChild(ejbRefNode, TagNames.EJB_REFERENCE_TYPE, descriptor.getType()); if (descriptor.isLocal()) { appendTextChild(ejbRefNode, TagNames.LOCAL_HOME, descriptor.getEjbHomeInterface()); appendTextChild(ejbRefNode, TagNames.LOCAL, descriptor.getEjbInterface()); } else { appendTextChild(ejbRefNode, TagNames.HOME, descriptor.getEjbHomeInterface()); appendTextChild(ejbRefNode, TagNames.REMOTE, descriptor.getEjbInterface()); appendTextChild(ejbRefNode, TagNames.EJB_LINK, descriptor.getLinkName()); appendTextChild(ejbRefNode, TagNames.MAPPED_NAME, envProp.getMappedName()); if( descriptor.isInjectable() ) { InjectionTargetNode ijNode = new InjectionTargetNode(); for (InjectionTarget target : descriptor.getInjectionTargets()) { ijNode.writeDescriptor(ejbRefNode, TagNames.INJECTION_TARGET, target); if( descriptor.hasLookupName() ) { appendTextChild(ejbRefNode, TagNames.LOOKUP_NAME, descriptor.getLookupName());
EjbReference preRef = (EjbReference) preObject; EjbReference curRef = (EjbReference) curEntry; if (areConflicting(preRef.getType(), curRef.getType()) || areConflicting(preRef.getEjbHomeInterface(), curRef.getEjbHomeInterface()) || areConflicting(preRef.getEjbInterface(), curRef.getEjbInterface()) || ((preRef.getLinkName() != null && curRef.getLinkName() != null && !preRef.getLinkName().equals(curRef.getLinkName()))) || (preRef.isLocal() != curRef.isLocal()) || areConflicting(preRef.getLookupName(), curRef.getLookupName())) { throwConflictException(name, namespace.toString());
/** * Adds a reference to another ejb to me. */ public void addEjbReferenceDescriptor(EjbReference ejbReference) { ejbReferences.add(ejbReference); ejbReference.setReferringBundleDescriptor(this); }
protected EjbReference _getEjbReference(String name) { for (EjbReference er : getEjbReferenceDescriptors()) { if (er.getName().equals(name)) { return er; } } return null; }
/** * write the descriptor class to a DOM tree and return it * * @param parent node for the DOM tree * @param nodeName node name * @param descriptor the descriptor to write * @return the DOM tree top node */ @Override public Node writeDescriptor(Node parent, String nodeName, EjbReference descriptor) { Node ejbRef = appendChild(parent, nodeName); appendTextChild(ejbRef, RuntimeTagNames.EJB_REFERENCE_NAME, descriptor.getName()); appendTextChild(ejbRef, RuntimeTagNames.JNDI_NAME, descriptor.getJndiName()); return ejbRef; }
/** * writes all the runtime information for ejb references * * @param parent node to add the runtime xml info * @param the J2EE component containing ejb references */ public static void writeEjbReferences(Node parent, EjbReferenceContainer descriptor) { // ejb-ref* Iterator ejbRefs = descriptor.getEjbReferenceDescriptors().iterator(); if (ejbRefs.hasNext()) { EjbRefNode refNode = new EjbRefNode(); while (ejbRefs.hasNext()) { EjbReference ejbRef = (EjbReference) ejbRefs.next(); if (!ejbRef.isLocal()) { refNode.writeDescriptor(parent, RuntimeTagNames.EJB_REFERENCE, ejbRef ); } } } } }
if (ejbRef.getEjbDescriptor()!=null) return; if (ejbRef.getType() == null) { if (ejbRef.isEJB30ClientView()) { ejbRef.setType("Session"); } else { String homeIntf = ejbRef.getEjbHomeInterface(); BundleDescriptor referringJar = ejbRef.getReferringBundleDescriptor(); if (referringJar == null) { referringJar = getBundleDescriptor(); for (Method method : clazz.getDeclaredMethods()) { if (method.getName().equals("findByPrimaryKey")) { ejbRef.setType("Entity"); break; if (ejbRef.getType() == null) { ejbRef.setType("Session"); if (ejbRef.getJndiName()!=null && ejbRef.getJndiName().length()!=0) { if (!ejbRef.isLocal() || ejbRef.getLinkName()==null) { if (DOLUtils.getDefaultLogger().isLoggable(Level.FINE)) { DOLUtils.getDefaultLogger().fine("Ref " + ejbRef.getName() + " is bound to Ejb with JNDI Name " + ejbRef.getJndiName()); if (ejbRef.getJndiName().equals(ejb.getJndiName())) {
writeLocalizedDescriptions(ejbRefNode, ejbRefDesc); appendTextChild(ejbRefNode, EjbTagNames.EJB_REFERENCE_NAME, descriptor.getName()); appendTextChild(ejbRefNode, EjbTagNames.EJB_REFERENCE_TYPE, descriptor.getType()); if (descriptor.isLocal()) { appendTextChild(ejbRefNode, EjbTagNames.LOCAL_HOME, descriptor.getEjbHomeInterface()); appendTextChild(ejbRefNode, EjbTagNames.LOCAL, descriptor.getEjbInterface()); } else { appendTextChild(ejbRefNode, EjbTagNames.HOME, descriptor.getEjbHomeInterface()); appendTextChild(ejbRefNode, EjbTagNames.REMOTE, descriptor.getEjbInterface()); appendTextChild(ejbRefNode, EjbTagNames.EJB_LINK, descriptor.getLinkName()); appendTextChild(ejbRefNode, TagNames.MAPPED_NAME, envProp.getMappedName()); if( descriptor.isInjectable() ) { InjectionTargetNode ijNode = new InjectionTargetNode(); for (InjectionTarget target : descriptor.getInjectionTargets()) { ijNode.writeDescriptor(ejbRefNode, TagNames.INJECTION_TARGET, target); if( descriptor.hasLookupName() ) { appendTextChild(ejbRefNode, TagNames.LOOKUP_NAME, descriptor.getLookupName());
/** * Adds a reference to another ejb to me. */ @Override public void addEjbReferenceDescriptor(EjbReference ejbReference) { ejbReferences.add(ejbReference); ejbReference.setReferringBundleDescriptor(this); }
@Override public boolean equals(Object object) { if (object instanceof EjbReference) { EjbReference ejbReference = (EjbReference) object; return ejbReference.getName().equals(this.getName()); } return false; }
/** * write the ejb references (local or remote) to the DOM tree * * @param parentNode parent node for the DOM tree * @param refs the set of EjbReferenceDescriptor to write */ protected void writeEjbReferenceDescriptors(Node parentNode, Iterator refs) { if (refs==null || !refs.hasNext()) return; EjbReferenceNode subNode = new EjbReferenceNode(); // ejb-ref* Set localRefDescs = new HashSet(); for (;refs.hasNext();) { EjbReference ejbRef = (EjbReference) refs.next(); if (ejbRef.isLocal()) { localRefDescs.add(ejbRef); } else { subNode.writeDescriptor(parentNode, TagNames.EJB_REFERENCE, ejbRef); } } // ejb-local-ref* for (Iterator e=localRefDescs.iterator(); e.hasNext();) { EjbReference ejbRef = (EjbReference) e.next(); subNode.writeDescriptor(parentNode, TagNames.EJB_LOCAL_REFERENCE,ejbRef); } }
/** * write the descriptor class to a DOM tree and return it * * @param parent node for the DOM tree * @param node name for the descriptor * @param the descriptor to write * @return the DOM tree top node */ public Node writeDescriptor(Node parent, String nodeName, EjbReference ejbRef) { Node ejbRefNode = appendChild(parent, nodeName); appendTextChild(ejbRefNode, RuntimeTagNames.EJB_REFERENCE_NAME, ejbRef.getName()); String jndiName = ejbRef.getJndiName(); EjbDescriptor ejbReferee = ejbRef.getEjbDescriptor(); // If this is an intra-app remote ejb dependency, write out the portable jndi name // of the target ejb. if( ejbReferee != null ) { if( !ejbRef.isLocal() && ejbRef.getType().equals(EjbSessionDescriptor.TYPE) ) { EjbSessionDescriptor sessionDesc = (EjbSessionDescriptor) ejbReferee; String intf = ejbRef.isEJB30ClientView() ? ejbRef.getEjbInterface() : ejbRef.getEjbHomeInterface(); jndiName = sessionDesc.getPortableJndiName(intf); } } appendTextChild(ejbRefNode, RuntimeTagNames.JNDI_NAME, jndiName); return ejbRefNode; }
/** * Adds a reference to another ejb to me. */ @Override public final void addEjbReferenceDescriptor(EjbReference ejbReference) { try { EjbReference existing = getEjbReference(ejbReference.getName()); for(InjectionTarget next : ejbReference.getInjectionTargets() ) { existing.addInjectionTarget(next); } } catch(IllegalArgumentException e) { if (env != null) env.addEjbReferenceDescriptor(ejbReference); else ejbReferences.add(ejbReference); ejbReference.setReferringBundleDescriptor(getEjbBundleDescriptor()); } }
/** * Adds a reference to another ejb to me. */ public void addEjbReferenceDescriptor(EjbReference ejbReference) { ejbReferences.add(ejbReference); ejbReference.setReferringBundleDescriptor(this); }
public boolean equals(Object object) { if (object instanceof EjbReference) { EjbReference ejbReference = (EjbReference) object; return ejbReference.getName().equals(this.getName()); } return false; }
/** * write the ejb references (local or remote) to the DOM tree * * @param parentNode parent node for the DOM tree * @param refs the set of EjbReferenceDescriptor to write */ protected void writeEjbReferenceDescriptors(Node parentNode, Iterator refs) { if (refs==null || !refs.hasNext()) return; EjbReferenceNode subNode = new EjbReferenceNode(); // ejb-ref* Set localRefDescs = new HashSet(); for (;refs.hasNext();) { EjbReference ejbRef = (EjbReference) refs.next(); if (ejbRef.isLocal()) { localRefDescs.add(ejbRef); } else { subNode.writeDescriptor(parentNode, TagNames.EJB_REFERENCE, ejbRef); } } // ejb-local-ref* for (Iterator e=localRefDescs.iterator(); e.hasNext();) { EjbReference ejbRef = (EjbReference) e.next(); subNode.writeDescriptor(parentNode, TagNames.EJB_LOCAL_REFERENCE,ejbRef); } }
/** * Adds a reference to another ejb to me. */ public void addEjbReferenceDescriptor(EjbReference ejbReference) { ejbReferences.add(ejbReference); ejbReference.setReferringBundleDescriptor(this); }