ejb-jar file must contain the java class file of the enterprise bean
implementation class, and any of the classes that it depends on.
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
try {
Context context = getVerifierContext();
Class c = Class.forName(descriptor.getEjbClassName(), false,
getVerifierContext().getClassLoader());
// if we are dealing with a CMP2 entity bean, the class is abstract..
if (descriptor instanceof EjbEntityDescriptor) {
String persistentType =
((EjbEntityDescriptor)descriptor).getPersistenceType();
if (EjbEntityDescriptor.CONTAINER_PERSISTENCE.equals(persistentType)) {
if (EjbCMPEntityDescriptor.CMP_1_1!=((EjbCMPEntityDescriptor) descriptor).getCMPVersion()) {
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.passed(smh.getLocalString
(getClass().getName() + ".passed",
"Bean class [ {0} ] exists and it's supporting classes exist.",
new Object[] {descriptor.getEjbClassName()}));
return result;
}
}
}
try {
c.newInstance();
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.passed(smh.getLocalString
(getClass().getName() + ".passed",
"Bean class [ {0} ] exists and it's supporting classes exist.",
new Object[] {descriptor.getEjbClassName()}));
} catch (InstantiationException e) {
Verifier.debug(e);
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.failed(smh.getLocalString
(getClass().getName() + ".failedException",
"Error: Could not instantiate [ {0} ] within bean [ {1} ]",
new Object[] {descriptor.getEjbClassName(),descriptor.getName()}));
} catch (IllegalAccessException e) {
Verifier.debug(e);
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.failed(smh.getLocalString
(getClass().getName() + ".failedException1",
"Error: Illegal Access while trying to instantiate [ {0} ] within bean [ {1} ]",
new Object[] {descriptor.getEjbClassName(),descriptor.getName()}));
}
} catch (ClassNotFoundException e) {
Verifier.debug(e);
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.failed(smh.getLocalString
(getClass().getName() + ".failedException2",
"Error: Can't find class [ {0} ] within bean [ {1} ]",
new Object[] {descriptor.getEjbClassName(),descriptor.getName()}));
} catch (Throwable t) {
Verifier.debug(t);
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable",
"Not Applicable: [ {0} ] class encountered [ {1} ]. Cannot create instance of class [ {2} ] becuase [ {3} ] is not accessible within [ {4} ].",
new Object[] {(descriptor).getEjbClassName(),t.toString(), descriptor.getEjbClassName(), t.getMessage(), descriptor.getEjbBundleDescriptor().getModuleDescriptor().getArchiveUri()}));
}
return result;