WebEjbReferencesElementpublic class WebEjbReferencesElement extends com.sun.enterprise.tools.verifier.tests.web.WebTest implements com.sun.enterprise.tools.verifier.tests.web.WebCheckThe Bean Provider must declare all enterprise bean's references to the
homes of other enterprise beans as specified in section 14.3.2 of the
Moscone spec. Check for one within the same jar file, can't check
outside of jar file. Load/locate & check other bean's home/remote/bean,
ensure they match with what the linking bean says they should be; check
for pair of referencing and referenced beans exist. |
Fields Summary |
---|
boolean | oneFailed |
Methods Summary |
---|
public Result | check(WebBundleDescriptor descriptor)
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
String f=descriptor.getModuleDescriptor().getArchiveUri();
loadWarFile(descriptor);
result.notApplicable(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addNaDetails(smh.getLocalString
(getClass().getName() + ".notApplicable",
"There is no ejb-ref inside [ {0} ].",
new Object[] {compName}));
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName}));
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
Set references = descriptor.getEjbReferenceDescriptors();
Iterator iterator = references.iterator();
while (iterator.hasNext()) {
EjbReferenceDescriptor ejbReference = (EjbReferenceDescriptor) iterator.next();
checkInterface(result, ejbReference, ejbReference.getEjbHomeInterface(), f);
checkInterface(result, ejbReference, ejbReference.getEjbInterface(), f);
}
return result;
| private void | checkInterface(Result result, EjbReferenceDescriptor ejbRef, java.lang.String intf, java.lang.String f)
Class cl = loadClass(result, intf);
if(cl==null){
oneFailed=true;
result.failed(smh.getLocalString
(getClass().getName() + ".failed",
"Error: For ejb-ref element [ {0} ] the home/component interface class [ {1} ] is not loadable within [ {2} ].",
new Object[] {ejbRef.getName(), intf, f}));
}else if(!oneFailed) {
result.passed(smh.getLocalString
(getClass().getName() + ".passed",
"For ejb-ref element [ {0} ] the home/component interface class [ {1} ] is loadable within [ {2} ].",
new Object[] {ejbRef.getName(), intf, f}));
}
|
|