ServletDefinitionListImpl servletDefinitions = new ServletDefinitionListImpl();
NodeList servletNL = webAppE.getElementsByTagName("servlet");
for (int i = 0; i < servletNL.getLength(); i++) {
Element servletE = (Element)servletNL.item(i);
ServletDefinitionImpl servletDefinition = new ServletDefinitionImpl();
servletDefinition.setIcon(getIcon(servletE));
servletDefinition.setServletName(XML.getChildElementText(servletE, "servlet-name"));
servletDefinition.setDisplayNames(getDisplayNames(servletE));
servletDefinition.setDescriptions(getDescriptions(servletE));
servletDefinition.setServletClass(XML.getChildElementText(servletE, "servlet-class"));
servletDefinition.setJspFile(XML.getChildElementText(servletE, "jsp-file"));
servletDefinition.setInitParameters(getParameters(servletE, "init-param"));
servletDefinition.setLoadOnStartup(XML.getChildElementText(servletE, "load-on-startup"));
// Add run as
NodeList runAsNL = servletE.getElementsByTagName("run-as");
if (runAsNL.getLength() > 0) {
Element runAsE = (Element)runAsNL.item(0);
RunAsImpl runAs = new RunAsImpl();
runAs.setRoleName(XML.getChildElementText(runAsE, "role-name"));
runAs.setDescriptions(getDescriptions(runAsE));
servletDefinition.setRunAs(runAs);
}
// Add servlet security role refs
SecurityRoleRefSetImpl securityRoleRefs = new SecurityRoleRefSetImpl();
NodeList securityRoleRefNL = servletE.getElementsByTagName("security-role-ref");
for (int m = 0; m < securityRoleRefNL.getLength(); m += 1) {
Element securityRoleRefE = (Element)securityRoleRefNL.item(m);
String roleName = XML.getChildElementText(securityRoleRefE, "role-name");
String roleLink = XML.getChildElementText(securityRoleRefE, "role-link");
String description = XML.getChildElementText(securityRoleRefE, "description");
SecurityRoleRefImpl securityRoleRef = new SecurityRoleRefImpl();
securityRoleRef.setDescription(description);
securityRoleRef.setRoleName(roleName);
securityRoleRef.setRoleLink(roleLink);
securityRoleRefs.add(securityRoleRef);
}
servletDefinition.setSecurityRoleRefs(securityRoleRefs);
// Add servlet mappings for this servlet
NodeList servletMappingNL = webAppE.getElementsByTagName("servlet-mapping");
for (int k = 0; k < servletMappingNL.getLength(); k += 1) {
Element servletMappingE = (Element)servletMappingNL.item(k);
String servletMappingName = XML.getChildElementText(servletMappingE, "servlet-name");
String servletMappingUrlPattern = XML.getChildElementText(servletMappingE, "url-pattern");
if (servletMappingName.equals(servletDefinition.getServletName())) {
servletDefinition.setServletMapping(servletMappingName, servletMappingUrlPattern);
break;
}
}
servletDefinition.setWebApplicationDefinition(webApplicationDefinition);
servletDefinitions.add(servletDefinition);
}
return servletDefinitions;
}