/** * @param allRefs * @param ejbRefs */ protected void validateDuplicateEJBRefs(Set allRefs, List ejbRefs) { if (!ejbRefs.isEmpty()) { EjbRef firstRef = (EjbRef)(ejbRefs.get(0)); if(!(firstRef.eContainer() instanceof EnterpriseBean)) cleanUpSubTaskMessages(firstRef); for (int refNo = 0; refNo < ejbRefs.size(); refNo++) { EjbRef ref = (EjbRefImpl) (ejbRefs.get(refNo)); String refName = ref.getName(); String[] parms = new String[1]; parms[0] = refName; if (!(allRefs.add(refName))) addError(EREF_CATEGORY, ERROR_EAR_DUPLICATE_EJBREF, parms, ref, EJB_REF_GROUP_NAME); } } }
/** * This returns ejb_reference.gif. */ public Object getImage(Object object) { String key = ((EjbRef) object).isLocal() ? "ejb_local_ref_obj" : "ejb_reference"; //$NON-NLS-1$ //$NON-NLS-2$ return J2EEPlugin.getPlugin().getImage(key); }
/** * Validate EJB references. */ protected void validateEJBRefManadatoryElements(EjbRef eref, String ownerName) { String[] parms = new String[2]; parms[0] = eref.getName(); parms[1] = ownerName; if ((eref.getName() == null) || (eref.getName().trim().length() == 0)) addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFNAME, parms, eref); if (eref.isSetType()) { if (eref.getType() == null) addWarning(EREF_CATEGORY, ERROR_EAR_INVALID_EREFTYPE, parms); } else addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFTYPE, parms); String refHome = eref.getHome(); if ((refHome == null) || (refHome.trim().length() == 0)) addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFHOME, parms, eref); if ((eref.getRemote() == null) || (eref.getRemote().trim().length() == 0)) addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFREMOTE, parms, eref); }
}/** * Return an enterprise bean referenced by the EjbRef, if one exists, within the scope of the parameter. * The ejb-link value of the ref must equate to a named enterprise bean contained in the jar; otherwise * return null */ public boolean isEquivalent(EjbRef anEjbRef) { if (anEjbRef == null) return false; boolean equiv = true; equiv = getName() == anEjbRef.getName() || (getName() != null && getName().equals(anEjbRef.getName())); if (equiv) equiv = getHome() == anEjbRef.getHome() || (getHome() != null && getHome().equals(anEjbRef.getHome())); if (equiv) equiv = getRemote() == anEjbRef.getRemote() || (getRemote() != null && getRemote().equals(anEjbRef.getRemote())); if (equiv) equiv = getLink() == anEjbRef.getLink() || (getLink() != null && getLink().equals(anEjbRef.getLink())); return equiv; } public boolean isLinked(EnterpriseBean anEJB) {
EnterpriseBean bean = (EnterpriseBean)ref.eContainer(); if (ref.eIsSet(CommonPackage.eINSTANCE.getEjbRef_Remote())) { try { String remoteName = ref.getRemote(); JavaHelpers type = ValidationRuleUtility.getType(remoteName, bean); String[] parms = { ref.getRemote()}; IMessage message = MessageUtility.getUtility().getMessage(vc, IEJBValidatorMessageConstants.CHKJ2833, IEJBValidationContext.INFO, bean, parms, this); vc.addMessage(message);
EnterpriseBean bean = (EnterpriseBean)ref.eContainer(); if (ref.eIsSet(CommonPackage.eINSTANCE.getEjbRef_Home())) { try { String homeName = ref.getHome(); JavaHelpers type = ValidationRuleUtility.getType(homeName, bean); String[] parms = { ref.getHome()}; IMessage message = MessageUtility.getUtility().getMessage(vc, IEJBValidatorMessageConstants.CHKJ2832, IEJBValidationContext.INFO, bean, parms, this); vc.addMessage(message);
if (ref.eIsSet(CommonPackage.eINSTANCE.getEjbRef_Link())) { Integer ejbType = new Integer(ref.getType().getValue()); boolean wrongType = false; // is the EJB, identified by ejb-link, of the type specified in the ejb-ref-type element? String type = (namedEjb instanceof Session) ? "Session" : "Entity"; //$NON-NLS-1$ //$NON-NLS-2$ if (ref.getName() != null) { String ejbName = ref.getName(); if (!ejbName.startsWith("ejb/")) { //$NON-NLS-1$ IMessage message = MessageUtility.getUtility().getMessage(vc, IEJBValidatorMessageConstants.CHKJ2838, IEJBValidationContext.INFO, bean, this);
if( eref.isLocal() ) { if( ejb.getLocalHomeInterfaceName() == null || ejb.getLocalInterfaceName() == null || eref.getHome() == null || eref.getRemote() == null ) { return false; boolean isHomeOk = ejb.getHomeInterfaceName().equals( eref.getHome() ); boolean isRemoteOk = ejb.getRemoteInterfaceName().equals( eref.getRemote() );
for (int i = 0; i < ejbRefs.size(); i++) { EjbRef eref = (EjbRef) ejbRefs.get(i); if( eref != null && eref.getLink() != null && eref.getLink().length() > 0) { EnterpriseBean ejb = earFile.getEnterpiseBeanFromRef( eref, uri ); if( ejb == null ) { String[] params = new String[3]; params[0] = eref.getName(); params[1] = uri; params[2] = earFile.getName(); String[] params = new String[3]; params[0] = ejb.getName(); params[1] = eref.getName(); params[2] = uri; String msg = NLS.bind(EARValidationMessageResourceHandler.EJB_BEAN_EJB_LINK_INTEFACE_MISMATCH_ERROR_, params);
/** * This returns the parent of the EjbRef. */ public Object getParent(Object object) { return object == null ? null : ((EjbRef) object).eContainer(); }
public String getText(Object object) { if (object instanceof EJBLocalRef) return "EjbLocalRef " + ((EJBLocalRef) object).getName(); //$NON-NLS-1$ return "EjbRef " + ((EjbRef) object).getName(); //$NON-NLS-1$ }
/** * Return an enterprise bean referenced by the EjbRef, if one exists. The ejb-link value * of the ref must equate to a named enterprise bean contained in the jar; otherwise return * null */ public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref) { String link = ref.getLink(); if (link == null) { return null; } return getEnterpriseBeanNamed(link); } public EnterpriseBean getEnterpriseBeanNamed(String ejbName) {
private EjbRef getEquivalentEjbRef(EjbRef anEjbRef, List someRefs) { if (anEjbRef == null) return null; int size = someRefs.size(); EjbRef ref; for (int i = 0; i < size; i++) { ref = (EjbRef) someRefs.get(i); if (ref.isEquivalent(anEjbRef)) return ref; } return null; } public String getHomeInterfaceName() {
EnterpriseBean bean = (EnterpriseBean)ref.eContainer(); if (ref.eIsSet(CommonPackage.eINSTANCE.getEjbRef_Remote())) { try { String remoteName = ref.getRemote(); JavaHelpers type = ValidationRuleUtility.getType(remoteName, bean); String[] parms = { ref.getRemote()}; IMessage message = MessageUtility.getUtility().getMessage(vc, IEJBValidatorMessageConstants.CHKJ2833, IEJBValidationContext.INFO, bean, parms, this); vc.addMessage(message);
EnterpriseBean bean = (EnterpriseBean)ref.eContainer(); if (ref.eIsSet(CommonPackage.eINSTANCE.getEjbRef_Home())) { try { String homeName = ref.getHome(); JavaHelpers type = ValidationRuleUtility.getType(homeName, bean); String[] parms = { ref.getHome()}; IMessage message = MessageUtility.getUtility().getMessage(vc, IEJBValidatorMessageConstants.CHKJ2832, IEJBValidationContext.INFO, bean, parms, this); vc.addMessage(message);
if (ref.eIsSet(CommonPackage.eINSTANCE.getEjbRef_Link())) { Integer ejbType = new Integer(ref.getType().getValue()); boolean wrongType = false; // is the EJB, identified by ejb-link, of the type specified in the ejb-ref-type element? String type = (namedEjb instanceof Session) ? "Session" : "Entity"; //$NON-NLS-1$ //$NON-NLS-2$ if (ref.eIsSet(CommonPackage.eINSTANCE.getEjbRef_Name())) { String ejbName = ref.getName(); if (!ejbName.startsWith("ejb/")) { //$NON-NLS-1$ IMessage message = MessageUtility.getUtility().getMessage(vc, IEJBValidatorMessageConstants.CHKJ2838, IEJBValidationContext.INFO, bean, this);
for (int i = 0; i < moduleReferences.size(); i++) { ref = (EjbRef) moduleReferences.get(i); link = ref.getLink(); if ((link != null && link.length() > 0 && !filterLinkedReferences) || ((link == null || link.length() == 0) && !filterNonLinkedReferences)) { if (filteredRefs == null)
for(int i = 0; i < ejbRefs.size(); i++) { EjbRef eref = (EjbRef) ejbRefs.get(i); String refName = eref.getName(); String[] params = new String[2]; params[0] = refName; params[1] = uri; if ((eref.getName().trim() == null) || (eref.getName().trim().length() == 0)) { addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFNAME, params); if (eref.isSetType()) {if(eref.getType() == null ) addWarning(EREF_CATEGORY, ERROR_EAR_INVALID_EREFTYPE, params);} else addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFTYPE, params); if ((eref.getHome() == null) || (eref.getHome().trim().length() == 0)) { addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFHOME, params); if ((eref.getRemote() == null) || (eref.getRemote().trim().length() == 0)) { addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFREMOTE, params);
/** * Return an enterprise bean referenced by the EjbRef, if one exists. The ejb-link value of the * ref must equate to a named enterprise bean contained in the jar; otherwise return null. * Returns the first hit found; assumption that the ejb names are unique within the scope of the * ear file. This will likely be replaced with a better way for dereferencing ejb refs. * * Can be used with ejb 1.1 references only. * * @deprecated {@link#getEnterpiseBeanFromRef(EjbRef ref, String moduleUri ) * @param EjbRef * ref - An ejb reference * @return EnterpriseBean */ public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref) { String link = ref.getLink(); if (link == null) { return null; } List jarFiles = getEJBJarFiles(); for (int i = 0; i < jarFiles.size(); i++) { EnterpriseBean bean = ((EJBJarFile) jarFiles.get(i)).getDeploymentDescriptor().getEnterpriseBeanNamed(link); if (bean != null) { return bean; } } return null; }