/** * Set the display-name element in the web.xml document. * * @param displayName (required) * @param document the web.xml document (required) * @param comment (optional) */ public static void setDisplayName(final String displayName, final Document document, final String comment) { Validate.notBlank(displayName, "display name required"); Validate.notNull(document, "Web XML document required"); Element displayNameElement = XmlUtils.findFirstElement(WEB_APP_XPATH + "display-name", document.getDocumentElement()); if (displayNameElement == null) { displayNameElement = document.createElement("display-name"); insertBetween(displayNameElement, "the-start", "description", document); if (StringUtils.isNotBlank(comment)) { addCommentBefore(displayNameElement, comment, document); } } displayNameElement.setTextContent(displayName); }
/** * Set the description element in the web.xml document. * * @param description (required) * @param document the web.xml document (required) * @param comment (optional) */ public static void setDescription(final String description, final Document document, final String comment) { Validate.notNull(document, "Web XML document required"); Validate.notBlank(description, "Description required"); Element descriptionElement = XmlUtils.findFirstElement(WEB_APP_XPATH + "description", document.getDocumentElement()); if (descriptionElement == null) { descriptionElement = document.createElement("description"); insertBetween(descriptionElement, "display-name[last()]", "context-param", document); if (StringUtils.isNotBlank(comment)) { addCommentBefore(descriptionElement, comment, document); } } descriptionElement.setTextContent(description); }
/** * Set session timeout in web.xml document * * @param timeout * @param document (required) * @param comment (optional) */ public static void setSessionTimeout(final int timeout, final Document document, final String comment) { Validate.notNull(document, "Web XML document required"); Validate.notNull(timeout, "Timeout required"); Element sessionConfigElement = XmlUtils.findFirstElement(WEB_APP_XPATH + "session-config", document.getDocumentElement()); if (sessionConfigElement == null) { sessionConfigElement = document.createElement("session-config"); insertBetween(sessionConfigElement, "servlet-mapping[last()]", "welcome-file-list", document); if (StringUtils.isNotBlank(comment)) { addCommentBefore(sessionConfigElement, comment, document); } } appendChildIfNotPresent(sessionConfigElement, new XmlElementBuilder("session-timeout", document).setText(String.valueOf(timeout)).build()); }
/** * Add a welcome file definition to web.xml document * * @param path (required) * @param document (required) * @param comment (optional) */ public static void addWelcomeFile(final String path, final Document document, final String comment) { Validate.notNull(document, "Web XML document required"); Validate.notBlank("Path required"); Element welcomeFileElement = XmlUtils.findFirstElement(WEB_APP_XPATH + "welcome-file-list", document.getDocumentElement()); if (welcomeFileElement == null) { welcomeFileElement = document.createElement("welcome-file-list"); insertBetween(welcomeFileElement, "session-config[last()]", "error-page", document); if (StringUtils.isNotBlank(comment)) { addCommentBefore(welcomeFileElement, comment, document); } } appendChildIfNotPresent(welcomeFileElement, new XmlElementBuilder("welcome-file", document) .setText(path).build()); }
/** * Add listener element to web.xml document * * @param className the fully qualified name of the listener type (required) * @param document (required) * @param comment (optional) */ public static void addListener(final String className, final Document document, final String comment) { Validate.notNull(document, "Web XML document required"); Validate.notBlank(className, "Class name required"); Element listenerElement = XmlUtils.findFirstElement(WEB_APP_XPATH + "listener[listener-class = '" + className + "']", document.getDocumentElement()); if (listenerElement == null) { listenerElement = new XmlElementBuilder("listener", document).addChild( new XmlElementBuilder("listener-class", document).setText(className).build()).build(); insertBetween(listenerElement, "filter-mapping[last()]", "servlet", document); if (StringUtils.isNotBlank(comment)) { addCommentBefore(listenerElement, comment, document); } } }
/** * Add error code to web.xml document * * @param errorCode (required) * @param location (required) * @param document (required) * @param comment (optional) */ public static void addErrorCode(final Integer errorCode, final String location, final Document document, final String comment) { Validate.notNull(document, "Web XML document required"); Validate.notNull(errorCode, "Error code required"); Validate.notBlank(location, "Location required"); Element errorPageElement = XmlUtils.findFirstElement( WEB_APP_XPATH + "error-page[error-code = '" + errorCode.toString() + "']", document.getDocumentElement()); if (errorPageElement == null) { errorPageElement = new XmlElementBuilder("error-page", document).addChild( new XmlElementBuilder("error-code", document).setText(errorCode.toString()).build()) .build(); insertBetween(errorPageElement, "welcome-file-list[last()]", "the-end", document); if (StringUtils.isNotBlank(comment)) { addCommentBefore(errorPageElement, comment, document); } } appendChildIfNotPresent(errorPageElement, new XmlElementBuilder("location", document).setText(location).build()); }
/** * Add exception type to web.xml document * * @param exceptionType fully qualified exception type name (required) * @param location (required) * @param document (required) * @param comment (optional) */ public static void addExceptionType(final String exceptionType, final String location, final Document document, final String comment) { Validate.notNull(document, "Web XML document required"); Validate.notBlank(exceptionType, "Fully qualified exception type name required"); Validate.notBlank(location, "location required"); Element errorPageElement = XmlUtils.findFirstElement(WEB_APP_XPATH + "error-page[exception-type = '" + exceptionType + "']", document.getDocumentElement()); if (errorPageElement == null) { errorPageElement = new XmlElementBuilder("error-page", document).addChild( new XmlElementBuilder("exception-type", document).setText(exceptionType).build()) .build(); insertBetween(errorPageElement, "welcome-file-list[last()]", "the-end", document); if (StringUtils.isNotBlank(comment)) { addCommentBefore(errorPageElement, comment, document); } } appendChildIfNotPresent(errorPageElement, new XmlElementBuilder("location", document).setText(location).build()); }
/** * Add a context param to the web.xml document * * @param contextParam (required) * @param document the web.xml document (required) * @param comment (optional) */ public static void addContextParam(final WebXmlParam contextParam, final Document document, final String comment) { Validate.notNull(document, "Web XML document required"); Validate.notNull(contextParam, "Context param required"); Element contextParamElement = XmlUtils.findFirstElement( WEB_APP_XPATH + "context-param[param-name = '" + contextParam.getName() + "']", document.getDocumentElement()); if (contextParamElement == null) { contextParamElement = new XmlElementBuilder("context-param", document) .addChild( new XmlElementBuilder("param-name", document).setText(contextParam.getName()) .build()).build(); insertBetween(contextParamElement, "description[last()]", "filter", document); if (StringUtils.isNotBlank(comment)) { addCommentBefore(contextParamElement, comment, document); } } appendChildIfNotPresent(contextParamElement, new XmlElementBuilder("param-value", document) .setText(contextParam.getValue()).build()); }
new XmlElementBuilder("filter-name", document).setText(filterName).build()).build(); if (filterPosition.equals(FilterPosition.FIRST)) { insertBetween(filterElement, "context-param", "filter", document); } else if (filterPosition.equals(FilterPosition.BEFORE)) { Validate.notBlank(beforeFilterName, Validate.notBlank(afterFilterName, "The 'after' filter name is required when using FilterPosition.BETWEEN"); insertBetween(filterElement, "filter[filter-name = '" + afterFilterName + "']", "filter[filter-name = '" + beforeFilterName + "']", document); } else { insertBetween(filterElement, "context-param[last()]", "filter-mapping", document); new XmlElementBuilder("filter-name", document).setText(filterName).build()).build(); if (filterPosition.equals(FilterPosition.FIRST)) { insertBetween(filterMappingElement, "filter", "filter-mapping", document); } else if (filterPosition.equals(FilterPosition.BEFORE)) { insertBefore(filterMappingElement, "filter-mapping[filter-name = '" + beforeFilterName + "']", document); } else if (filterPosition.equals(FilterPosition.BETWEEN)) { insertBetween(filterMappingElement, "filter-mapping[filter-name = '" + afterFilterName + "']", "filter-mapping[filter-name = '" + beforeFilterName + "']", document); } else { insertBetween(filterMappingElement, "filter-mapping[last()]", "listener", document);
new XmlElementBuilder("servlet", document).addChild( new XmlElementBuilder("servlet-name", document).setText(servletName).build()).build(); insertBetween(servletElement, "listener[last()]", "servlet-mapping", document); if (comment != null && comment.length() > 0) { addCommentBefore(servletElement, comment, document); new XmlElementBuilder("servlet-mapping", document).addChild( new XmlElementBuilder("servlet-name", document).setText(servletName).build()).build(); insertBetween(servletMappingElement, "servlet[last()]", "session-config", document);