ASEjbJndiNamepublic class ASEjbJndiName extends com.sun.enterprise.tools.verifier.tests.ejb.EjbTest implements com.sun.enterprise.tools.verifier.tests.ejb.EjbCheckejb [0,n]
jndi-name ? [String]
The jndi-name of an ejb is valid for MDBs.
The jndi-name should not be an empty string. |
Fields Summary |
---|
boolean | oneFailed | boolean | oneWarning |
Methods Summary |
---|
public com.sun.enterprise.tools.verifier.Result | check(com.sun.enterprise.deployment.EjbDescriptor descriptor)
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
String ejbName = null, jndiName=null;
ejbName = descriptor.getName(); //get ejb-name
jndiName=getXPathValue("/sun-ejb-jar/enterprise-beans/ejb/jndi-name");
if(jndiName != null){
if(jndiName.trim().length()==0){
check(result, descriptor, compName);
}else{
addGoodDetails(result, compName);
result.passed(smh.getLocalString(getClass().getName()+".passed",
"PASSED [AS-EJB ejb] : jndi-name is {0}", new Object[]{jndiName}));
}
}else
check(result, descriptor, compName);
if(oneFailed)
result.setStatus(Result.FAILED);
else if(oneWarning)
result.setStatus(Result.WARNING);
return result;
| public void | check(com.sun.enterprise.tools.verifier.Result result, com.sun.enterprise.deployment.EjbDescriptor descriptor, com.sun.enterprise.tools.verifier.tests.ComponentNameConstructor compName)
if(descriptor instanceof EjbMessageBeanDescriptor) {
String mdbres = getXPathValue("sun-ejb-jar/enetrprise-beans/ejb/mdb-resource-adapter");
if (mdbres != null) {
addGoodDetails(result, compName);
result.passed(smh.getLocalString(getClass().getName()+".passed1",
"mdb-resource-adapter is defined for the EJB {0}", new Object[]{mdbres}));
}else{
oneFailed=true;
addErrorDetails(result, compName);
result.addErrorDetails(smh.getLocalString(getClass().getName()+".failed",
"jndi-name or mdb-resource-adapter should be defined for an MDB"));
}
}else if(descriptor.isRemoteInterfacesSupported()) {
/** Bug#5060283 -- It is possible to use this ejb by referencing thru' ejb-ref/ejb-link.
* Only thing is, the accessibility of the ejb is reduced.
* It is only accessible to other clients bundled within this ear file.
* Hence, report a warning, instead of an error.
*/
// oneFailed=true;
// addErrorDetails(result, compName);
// result.addErrorDetails(smh.getLocalString(getClass().getName()+".failed1",
// "jndi-name should be defined for a bean implementing a remote interface"));
oneWarning = true;
addWarningDetails(result, compName);
result.warning(smh.getLocalString(getClass().getName() + ".warning",
"WARNING [AS-EJB ejb] : jndi-name is not defined for the EJB {0} although it has a remote interface.",
new Object[]{descriptor.getName()}));
}else {
result.notApplicable(smh.getLocalString(getClass().getName()+".notApplicable", "NOT APPLICABLE"));
}
|
|