Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
//String[] servlets=null;//######
String servletName;
String prinName;
boolean oneFailed = false;
try{
Float runtimeSpecVersion = getRuntimeSpecVersion();
Servlet[] servlets = (descriptor.getSunDescriptor()).getServlet();
if (servlets !=null && servlets.length > 0){
for (int rep=0; rep<servlets.length; rep++ ){
servletName=servlets[rep].getServletName();//######
// <addition> srini@sun.com Bug : 4699658
//prinName=servlets[rep].getPrincipalName();//######
// prinName=servlets[rep].getPrincipalName().trim();//######
// </addition> Bug : 4699658
if(validServletName(servletName,descriptor)){
addGoodDetails(result, compName);
result.passed(smh.getLocalString
(getClass().getName() + ".passed",
"PASSED [AS-WEB servlet] servlet-name [ {0} ] properly defined in the war file.",
new Object[] {servletName}));
}else{
addErrorDetails(result, compName);
result.failed(smh.getLocalString
(getClass().getName() + ".failed",
"FAILED [AS-WEB servlet] servlet-name [ {0} ] is not a valid, either empty or not defined in web.xml.",
new Object[] {servletName}));
oneFailed = true;
}
prinName=servlets[rep].getPrincipalName();
if(prinName != null && ! "".equals(prinName)){
addGoodDetails(result, compName);
result.passed(smh.getLocalString
(getClass().getName() + ".passed1",
"PASSED [AS-WEB servlet] principal-name [ {0} ] properly defined in the war file.",
new Object[] {prinName}));
}else{
if (runtimeSpecVersion.compareTo(new Float("2.4")) <0 ){
result.failed(smh.getLocalString
(getClass().getName() + ".failed1",
"FAILED [AS-WEB servlet ] principal-name [ {0} ] cannot be an empty string.",
new Object[] {prinName}));
oneFailed = true;
}else{
addNaDetails(result, compName);
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable1",
"NOT APPLICABLE [AS-WEB servlet] principal-name not defined",
new Object[] {descriptor.getName()}));
}
}
}
}else{
addNaDetails(result, compName);
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable",
"NOT APPLICABLE [AS-WEB sun-web-app] servlet element(s) not defined in the web archive [ {0} ].",
new Object[] {descriptor.getName()}));
return result;
}
if (oneFailed)
{
result.setStatus(Result.FAILED);
} else {
addGoodDetails(result, compName);
result.passed
(smh.getLocalString
(getClass().getName() + ".passed2",
"PASSED [AS-WEB sun-web-app] servlet 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() + ".failed2",
"FAILED [AS-WEB sun-web-app] could not create the servlet object"));
}
return result;