Session Bean's bean-managed transaction demarcation test.
The enterprise bean with bean-managed transaction demarcation must
be a Session bean.
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
String transactionType = descriptor.getTransactionType();
if (EjbSessionDescriptor.BEAN_TRANSACTION_TYPE.equals(transactionType)) {
if (descriptor instanceof EjbSessionDescriptor) {
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.passed(smh.getLocalString
(getClass().getName() + ".passed",
"[ {0} ] is valid transactionType within Session bean [ {1} ]",
new Object[] {transactionType, descriptor.getName()}));
} else if (descriptor instanceof EjbEntityDescriptor) {
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.failed(smh.getLocalString
(getClass().getName() + ".failedException",
"Error: [ {0} ] is not valid transactionType within entity bean [ {1} ]",
new Object[] {transactionType, descriptor.getName()}));
}
return result;
} else if (EjbSessionDescriptor.CONTAINER_TRANSACTION_TYPE.equals(transactionType)) {
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable",
"Expected [ {0} ] transaction demarcation, but [ {1} ] bean has [ {2} ] transaction demarcation.",
new Object[] {EjbSessionDescriptor.BEAN_TRANSACTION_TYPE,descriptor.getName(),EjbSessionDescriptor.CONTAINER_TRANSACTION_TYPE}));
return result;
} else {
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable",
"Expected [ {0} ] transaction demarcation, but [ {1} ] bean has [ {2} ] transaction demarcation.",
new Object[] {EjbSessionDescriptor.BEAN_TRANSACTION_TYPE,descriptor.getName(),transactionType}));
return result;
}