![JAR search and dependency download from the Maven repository](/logo.png)
com.github.netty.protocol.servlet.ServletRegistration Maven / Gradle / Ivy
package com.github.netty.protocol.servlet;
import com.github.netty.protocol.servlet.util.UrlMapper;
import javax.servlet.MultipartConfigElement;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletSecurityElement;
import java.util.*;
/**
* The servlet supportPipeline
*
* @author wangzihao
* 2018/7/14/014
*/
public class ServletRegistration implements javax.servlet.ServletRegistration, javax.servlet.ServletRegistration.Dynamic {
private final Servlet servlet;
private final String servletName;
private final ServletConfig servletConfig;
private final ServletContext servletContext;
private final UrlMapper urlMapper;
private MultipartConfigElement multipartConfigElement;
private ServletSecurityElement servletSecurityElement;
private String roleName;
private boolean asyncSupported = true;
private int loadOnStartup = -1;
private Map initParameterMap = new LinkedHashMap<>();
private final Set mappingSet = new LinkedHashSet() {
@Override
public boolean add(String pattern) {
urlMapper.addMapping(pattern, ServletRegistration.this, servletName);
return super.add(pattern);
}
@Override
public boolean addAll(Collection c) {
for (Object o : c) {
add(o.toString());
}
return !c.isEmpty();
}
@Override
public void clear() {
urlMapper.clear();
super.clear();
}
};
private volatile boolean initServlet = false;
private final Set servletSecuritys = new LinkedHashSet<>();
public ServletRegistration(String servletName, Servlet servlet, ServletContext servletContext, UrlMapper urlMapper) {
this.servletName = servletName;
this.servlet = Objects.requireNonNull(servlet);
this.servletContext = servletContext;
this.urlMapper = urlMapper;
this.servletConfig = new ServletConfig() {
@Override
public String getServletName() {
return ServletRegistration.this.servletName;
}
@Override
public javax.servlet.ServletContext getServletContext() {
return ServletRegistration.this.servletContext;
}
@Override
public String getInitParameter(String name) {
return ServletRegistration.this.getInitParameter(name);
}
@Override
public Enumeration getInitParameterNames() {
return Collections.enumeration(ServletRegistration.this.getInitParameters().keySet());
}
};
}
public ServletSecurityElement getServletSecurityElement() {
return servletSecurityElement;
}
public MultipartConfigElement getMultipartConfigElement() {
return multipartConfigElement;
}
public ServletConfig getServletConfig() {
return servletConfig;
}
public Servlet getServlet() {
return servlet;
}
public Boolean isAsyncSupported() {
return asyncSupported;
}
public int getLoadOnStartup() {
return loadOnStartup;
}
@Override
public void setLoadOnStartup(int loadOnStartup) {
this.loadOnStartup = loadOnStartup;
}
public boolean isInitServlet() {
return initServlet;
}
public void setInitServlet(boolean initServlet) {
this.initServlet = initServlet;
}
@Override
public Set addMapping(String... urlPatterns) {
mappingSet.addAll(Arrays.asList(urlPatterns));
return mappingSet;
}
@Override
public Collection getMappings() {
return mappingSet;
}
@Override
public String getRunAsRole() {
return roleName;
}
@Override
public void setRunAsRole(String roleName) {
this.roleName = roleName;
}
@Override
public String getName() {
return servletName;
}
@Override
public String getClassName() {
return servlet.getClass().getName();
}
@Override
public boolean setInitParameter(String name, String value) {
return initParameterMap.put(name, value) != null;
}
@Override
public String getInitParameter(String name) {
return initParameterMap.get(name);
}
@Override
public Set setInitParameters(Map initParameters) {
this.initParameterMap = initParameters;
return initParameterMap.keySet();
}
@Override
public Map getInitParameters() {
return initParameterMap;
}
@Override
public Set setServletSecurity(ServletSecurityElement constraint) {
this.servletSecurityElement = constraint;
servletSecuritys.addAll(servletSecurityElement.getMethodNames());
return servletSecuritys;
}
@Override
public void setMultipartConfig(MultipartConfigElement multipartConfig) {
this.multipartConfigElement = multipartConfig;
}
@Override
public void setAsyncSupported(boolean isAsyncSupported) {
this.asyncSupported = isAsyncSupported;
}
@Override
public String toString() {
return getName();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy