String resrefName;
Result result = getInitializedResult();
WebComponentNameConstructor compName = new WebComponentNameConstructor(descriptor);
//Start Bugid:4703107
DefaultResourcePrincipal defPrincipal;
boolean oneWarning = false;
//End Bugid:4703107
String jndiName;
boolean oneFailed = false;
boolean notApp = false;
ResourceRef[] resRefs = descriptor.getIasWebApp().getResourceRef();
//System.out.println(">>>>>>>>>>>>checking for res " +resRefs);
if (resRefs.length > 0) {
boolean isValidResRefName;
for (int rep=0; rep<resRefs.length; rep++ ) {
isValidResRefName=false;
resrefName = resRefs[rep].getResRefName();
jndiName = resRefs[rep].getJndiName();
//Start Bugid:4703107
defPrincipal = resRefs[rep].getDefaultResourcePrincipal();
//End Bugid:4703107
//System.out.println("checking for res ref : "+ resrefName+" jndiname : "+ jndiName);
if (validResRefName(resrefName,descriptor)) {
isValidResRefName=true;
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 {
if (!oneFailed)
oneFailed = true;
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}));
}
if (isValidResRefName && validJndiName(jndiName, resrefName,descriptor)){
result.passed(smh.getLocalString
(getClass().getName() + ".passed1",
"PASSED [AS-WEB resource-ref] jndi-name [ {0} ] properly defined in the war file.",
new Object[] {jndiName}));
} else {
if (!oneFailed)
oneFailed = true;
result.failed(smh.getLocalString
(getClass().getName() + ".failed1",
"FAILED [AS-WEB resource-ref] jndi-name [ {0} ] is not valid, either empty or not starts according to its resource ref type entry defined in web.xml.",
new Object[] {jndiName}));
}
//Start Bugid:4703107
if(isValidResRefName){
if(defPrincipal != null){
String defaultname;
String defaultpassword;
boolean defResourcePrincipalValid = true;
defaultname = defPrincipal.getName();
defaultpassword = defPrincipal.getPassword();
if((defaultname == null)||(defaultname.length() == 0)){
oneWarning = true;
defResourcePrincipalValid = false;
result.warning(smh.getLocalString
(getClass().getName() + ".warning1",
"WARNING [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)){
oneWarning = true;
defResourcePrincipalValid = false;
result.warning(smh.getLocalString
(getClass().getName() + ".warning2",
"WARNING [AS-WEB resource-ref] password field in DefaultResourcePrincipal of ResourceRef [ {0} ] is not specified or is an empty string.",
new Object[] {resrefName}));
}
if(defResourcePrincipalValid){
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 {
//System.out.println("There are no resource references defined within the ias-web archive");
notApp = true;
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);
//Start Bugid:4703107
} else if(oneWarning) {
result.setStatus(Result.WARNING);
//End Bugid:4703107
} else if(notApp) {
result.setStatus(Result.NOT_APPLICABLE);
}else {
result.setStatus(Result.PASSED);
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()} ));
}
return result;