For an entity-bean the ejb-name must be a valid Java identifier.
See ejb specification 2.1 section 10.3.13
Result result = getInitializedResult();
String ejbName = descriptor.getName();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
if(descriptor instanceof EjbEntityDescriptor) {
if (((EjbEntityDescriptor)descriptor).getPersistenceType().equals(EjbEntityDescriptor.CONTAINER_PERSISTENCE)) {
boolean isJavaIdentifier=true;
boolean startChar=Character.isJavaIdentifierStart(ejbName.charAt(0));
if(startChar) {
for(int i=1;i<ejbName.length();i++)
if(!Character.isJavaIdentifierPart(ejbName.charAt(i))) {
isJavaIdentifier=false;
break;
}
} else {
isJavaIdentifier=false;
}
//if start Character is not valid or any of the part characters of ejb-name is not
//valid JavaIdentifier
if(isJavaIdentifier) {
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.passed(smh.getLocalString
(getClass().getName() + ".passed",
"ejb-name [ {0} ] within bean [ {1} ] is a valid java identifier",
new Object[] {ejbName, descriptor.getName()}));
return result;
} else {
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.failed(smh.getLocalString
(getClass().getName() + ".failed",
"ejb-name [ {0} ] within bean [ {1} ] is not a valid java identifier",
new Object[] {ejbName, descriptor.getName()}));
return result;
}
}
}
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable",
"[ {0} ] expected {1} bean, with Container Managed Persistence.",
new Object[] {getClass(),"Entity"}));
return result;