@Override
public void merge(Servlet srcServlet, Servlet targetServlet, MergeContext mergeContext) throws DeploymentException {
String servletName = srcServlet.getServletName();
if (isServletLoadOnStartupConfiguredInWebXML(servletName, mergeContext)) {
return;
}
if (srcServlet.getLoadOnStartup() != null) {
Integer srcLoadOnStartupValue = srcServlet.getLoadOnStartup();
MergeItem existedLoadOnStartup = (MergeItem) mergeContext.getAttribute(createServletLoadOnStartupKey(servletName));
if (existedLoadOnStartup == null) {
targetServlet.setLoadOnStartup(srcLoadOnStartupValue);
mergeContext.setAttribute(createServletLoadOnStartupKey(servletName), new MergeItem(srcLoadOnStartupValue, mergeContext.getCurrentJarUrl(), ElementSource.WEB_XML));
} else if (!existedLoadOnStartup.getValue().equals(srcLoadOnStartupValue)) {
throw new DeploymentException(WebDeploymentMessageUtils.createDuplicateValueMessage("servlet " + servletName, "load-on-startup", existedLoadOnStartup.getValue().toString(),
existedLoadOnStartup.getBelongedURL(), srcLoadOnStartupValue.toString(), mergeContext.getCurrentJarUrl()));
}
}
}