String resName;
String resType;
Result result = getInitializedResult();
WebComponentNameConstructor compName = new WebComponentNameConstructor(descriptor);
String jndiName;
boolean oneFailed = false;
boolean notApp = false;
boolean chkOk=true;
ResourceEnvRef[] envRefs= descriptor.getIasWebApp().getResourceEnvRef();
if (envRefs.length > 0) {
boolean isValidResRefName;
for (int rep=0; rep<envRefs.length; rep++ ) {
isValidResRefName=false;
resName = envRefs[rep].getResourceEnvRefName();
jndiName = envRefs[rep].getJndiName();
if (validResEnvRefName(resName,descriptor)) {
isValidResRefName=true;
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addGoodDetails(smh.getLocalString
(getClass().getName() + ".passed",
"Proper resource env reference name [ {0} ] defined in the war file.",
new Object[] {resName}));
} else {
if (!oneFailed)
oneFailed = true;
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addErrorDetails(smh.getLocalString
(getClass().getName() + ".failed",
"Error: Resource env reference name [ {0} ] is not valid, either empty or not defined in web.xml.",
new Object[] {resName}));
}
if (isValidResRefName && validJndiName(jndiName, resName,descriptor)){
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addGoodDetails(smh.getLocalString
(getClass().getName() + ".passed",
"Proper jndi name [ {0} ] defined in the war file.",
new Object[] {jndiName}));
} else {
if (!oneFailed)
oneFailed = true;
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addErrorDetails(smh.getLocalString
(getClass().getName() + ".failed",
"Error: Jndi name [ {0} ] is not valid, either empty or not starts with \"jms/\".",
new Object[] {resName}));
}
}
} else {
//System.out.println("There are no resource env references defined within the ias-web archive");
notApp = true;
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable",
"There is no resource env reference element present in this web archive [ {0} ].",
new Object[] {descriptor.getName()}));
}
if (oneFailed) {
result.setStatus(Result.FAILED);
} else if(notApp) {
result.setStatus(Result.NOT_APPLICABLE);
}else {
result.setStatus(Result.PASSED);
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.passed
(smh.getLocalString
(getClass().getName() + ".passed",
"All resource env reference elements are valid within the web archive [ {0} ].",
new Object[] {descriptor.getName()} ));
}
return result;