/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.tomcat.util.descriptor.web; import java.io.Serializable; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.apache.tomcat.util.res.StringManager; /** * Representation of a servlet definition for a web application, as represented * in a <code><servlet></code> element in the deployment descriptor. */ public class ServletDef implements Serializable { private static final long serialVersionUID = 1L; private static final StringManager sm = StringManager.getManager(Constants.PACKAGE_NAME); // ------------------------------------------------------------- Properties /** * The description of this servlet. */ private String description = null; public String getDescription() { return this.description; } public void setDescription(String description) { this.description = description; } /** * The display name of this servlet. */ private String displayName = null; public String getDisplayName() { return this.displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } /** * The small icon associated with this servlet. */ private String smallIcon = null; public String getSmallIcon() { return this.smallIcon; } public void setSmallIcon(String smallIcon) { this.smallIcon = smallIcon; } /** * The large icon associated with this servlet. */ private String largeIcon = null; public String getLargeIcon() { return this.largeIcon; } public void setLargeIcon(String largeIcon) { this.largeIcon = largeIcon; } /** * The name of this servlet, which must be unique among the servlets * defined for a particular web application. */ private String servletName = null; public String getServletName() { return this.servletName; } public void setServletName(String servletName) { if (servletName == null || servletName.equals("")) { throw new IllegalArgumentException( sm.getString("servletDef.invalidServletName", servletName)); } this.servletName = servletName; } /** * The fully qualified name of the Java class that implements this servlet. */ private String servletClass = null; public String getServletClass() { return this.servletClass; } public void setServletClass(String servletClass) { this.servletClass = servletClass; } /** * The name of the JSP file to which this servlet definition applies */ private String jspFile = null; public String getJspFile() { return this.jspFile; } public void setJspFile(String jspFile) { this.jspFile = jspFile; } /** * The set of initialization parameters for this servlet, keyed by * parameter name. */ private final Map<String, String> parameters = new HashMap<>(); public Map<String, String> getParameterMap() { return this.parameters; } /** * Add an initialization parameter to the set of parameters associated * with this servlet. * * @param name The initialisation parameter name * @param value The initialisation parameter value */ public void addInitParameter(String name, String value) { if (parameters.containsKey(name)) { // The spec does not define this but the TCK expects the first // definition to take precedence return; } parameters.put(name, value); } /** * The load-on-startup order for this servlet */ private Integer loadOnStartup = null; public Integer getLoadOnStartup() { return this.loadOnStartup; } public void setLoadOnStartup(String loadOnStartup) { this.loadOnStartup = Integer.valueOf(loadOnStartup); } /** * The run-as configuration for this servlet */ private String runAs = null; public String getRunAs() { return this.runAs; } public void setRunAs(String runAs) { this.runAs = runAs; } /** * The set of security role references for this servlet */ private final Set<SecurityRoleRef> securityRoleRefs = new HashSet<>(); public Set<SecurityRoleRef> getSecurityRoleRefs() { return this.securityRoleRefs; } /** * Add a security-role-ref to the set of security-role-refs associated * with this servlet. * @param securityRoleRef The security role */ public void addSecurityRoleRef(SecurityRoleRef securityRoleRef) { securityRoleRefs.add(securityRoleRef); } /** * The multipart configuration, if any, for this servlet */ private MultipartDef multipartDef = null; public MultipartDef getMultipartDef() { return this.multipartDef; } public void setMultipartDef(MultipartDef multipartDef) { this.multipartDef = multipartDef; } /** * Does this servlet support async. */ private Boolean asyncSupported = null; public Boolean getAsyncSupported() { return this.asyncSupported; } public void setAsyncSupported(String asyncSupported) { this.asyncSupported = Boolean.valueOf(asyncSupported); } /** * Is this servlet enabled. */ private Boolean enabled = null; public Boolean getEnabled() { return this.enabled; } public void setEnabled(String enabled) { this.enabled = Boolean.valueOf(enabled); } /** * Can this ServletDef be overridden by an SCI? */ private boolean overridable = false; public boolean isOverridable() { return overridable; } public void setOverridable(boolean overridable) { this.overridable = overridable; } }