String resrefName;
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
//Start Bugid:4703107
DefaultResourcePrincipal defPrincipal;
//End Bugid:4703107
boolean oneFailed = false;
boolean notApp = false;
try{
ResourceRef[] resRefs = (descriptor.getSunDescriptor()).getResourceRef();
if (resRefs != null && resRefs.length > 0) {
for (int rep=0; rep<resRefs.length; rep++ ) {
resrefName = resRefs[rep].getResRefName();
if (validResRefName(resrefName,descriptor)) {
addGoodDetails(result, compName);
result.passed(smh.getLocalString
(getClass().getName() + ".passed",
"PASSED [AS-WEB sun-web-app] resource-ref name [ {0} ] properly defined in the war file.",
new Object[] {resrefName}));
}
else {
oneFailed = true;
addErrorDetails(result, compName);
result.failed(smh.getLocalString
(getClass().getName() + ".failed",
"FAILED [AS-WEB sun-web-app] resource-ref name [ {0} ] is not valid, either empty or not defined in web.xml.",
new Object[] {resrefName}));
}
//Start Bugid:4703107
defPrincipal = resRefs[rep].getDefaultResourcePrincipal();
if(defPrincipal != null){
boolean defResourcePrincipalValid = true;
String defaultname = defPrincipal.getName();
String defaultpassword = defPrincipal.getPassword();
if((defaultname == null)||(defaultname.length() == 0)){
oneFailed=true;
defResourcePrincipalValid = false;
addErrorDetails(result, compName);
result.failed(smh.getLocalString
(getClass().getName() + ".failed2",
"FAILED [AS-WEB resource-ref] name field in DefaultResourcePrincipal of ResourceRef [ {0} ] is not specified or is an empty string.",
new Object[] {resrefName}));
}
if((defaultpassword == null)||(defaultpassword.length() == 0)){
oneFailed=true;
defResourcePrincipalValid = false;
addErrorDetails(result, compName);
result.failed(smh.getLocalString
(getClass().getName() + ".failed3",
"FAILED [AS-WEB resource-ref] password field in DefaultResourcePrincipal of ResourceRef [ {0} ] is not specified or is an empty string.",
new Object[] {resrefName}));
}
if(defResourcePrincipalValid){
addGoodDetails(result, compName);
result.passed(smh.getLocalString
(getClass().getName() + ".passed3",
"PASSED [AS-WEB resource-ref] DefaultResourcePrincipal of ResourceRef [ {0} ] properly defined",
new Object[] {resrefName}));
}
}
//End Bugid:4703107
}
} else {
notApp = true;
addNaDetails(result, compName);
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable",
"NOT APPLICABLE [AS-WEB sun-web-app] resource-ref element not defined in the 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);
addGoodDetails(result, compName);
result.passed
(smh.getLocalString
(getClass().getName() + ".passed2",
"PASSED [AS-WEB sun-web-app] resource-ref element(s) are valid within the web archive [ {0} ] .",
new Object[] {descriptor.getName()} ));
}
}catch(Exception ex){
oneFailed=true;
addErrorDetails(result, compName);
result.failed(smh.getLocalString
(getClass().getName() + ".failed4", "FAILED [AS-WEB resource-env-ref] Could not create the resource-ref"));
}
return result;