import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
* The exception pages for this web application, keyed by fully qualified
* class name of the Java exception.
*/
- private HashMap exceptionPages = new HashMap();
+ private HashMap<String, ErrorPage> exceptionPages =
+ new HashMap<String, ErrorPage>();
/**
* The set of filter configurations (and associated filter instances) we
* have initialized, keyed by filter name.
*/
- private HashMap filterConfigs = new HashMap();
+ private HashMap<String, ApplicationFilterConfig> filterConfigs =
+ new HashMap<String, ApplicationFilterConfig>();
/**
* The set of filter definitions for this application, keyed by
* filter name.
*/
- private HashMap filterDefs = new HashMap();
+ private HashMap<String, FilterDef> filterDefs =
+ new HashMap<String, FilterDef>();
/**
/**
* The message destinations for this web application.
*/
- private HashMap messageDestinations = new HashMap();
+ private HashMap<String, MessageDestination> messageDestinations =
+ new HashMap<String, MessageDestination>();
/**
* The MIME mappings for this web application, keyed by extension.
*/
- private HashMap mimeMappings = new HashMap();
+ private HashMap<String, String> mimeMappings =
+ new HashMap<String, String>();
/**
* The context initialization parameters for this web application,
* keyed by name.
*/
- private HashMap parameters = new HashMap();
+ private HashMap<String, String> parameters = new HashMap<String, String>();
/**
* The security role mappings for this application, keyed by role
* name (as used within the application).
*/
- private HashMap roleMappings = new HashMap();
+ private HashMap<String, String> roleMappings =
+ new HashMap<String, String>();
/**
* The servlet mappings for this web application, keyed by
* matching pattern.
*/
- private HashMap servletMappings = new HashMap();
+ private HashMap<String, String> servletMappings =
+ new HashMap<String, String>();
/**
* The status code error pages for this web application, keyed by
* HTTP status code (as an Integer).
*/
- private HashMap statusPages = new HashMap();
+ private HashMap<Integer, ErrorPage> statusPages =
+ new HashMap<Integer, ErrorPage>();
/**
/**
* The JSP tag libraries for this web application, keyed by URI
*/
- private HashMap taglibs = new HashMap();
+ private HashMap<String, String> taglibs = new HashMap<String, String>();
/**
* Java class name of the Wrapper class implementation we use.
*/
private String wrapperClassName = StandardWrapper.class.getName();
- private Class wrapperClass = null;
+ private Class<?> wrapperClass = null;
/**
// Create a mapper the first time it is requested
if (this.charsetMapper == null) {
try {
- Class clazz = Class.forName(charsetMapperClass);
- this.charsetMapper =
- (CharsetMapper) clazz.newInstance();
+ Class<?> clazz = Class.forName(charsetMapperClass);
+ this.charsetMapper = (CharsetMapper) clazz.newInstance();
} catch (Throwable t) {
this.charsetMapper = new CharsetMapper();
}
// Add this mapping to our registered set
synchronized (servletMappings) {
- String name2 = (String) servletMappings.get(pattern);
+ String name2 = servletMappings.get(pattern);
if (name2 != null) {
// Don't allow more than one servlet on the same pattern
Wrapper wrapper = (Wrapper) findChild(name2);
synchronized (instanceListeners) {
for (int i = 0; i < instanceListeners.length; i++) {
try {
- Class clazz = Class.forName(instanceListeners[i]);
+ Class<?> clazz = Class.forName(instanceListeners[i]);
InstanceListener listener =
(InstanceListener) clazz.newInstance();
wrapper.addInstanceListener(listener);
synchronized (wrapperLifecycles) {
for (int i = 0; i < wrapperLifecycles.length; i++) {
try {
- Class clazz = Class.forName(wrapperLifecycles[i]);
+ Class<?> clazz = Class.forName(wrapperLifecycles[i]);
LifecycleListener listener =
(LifecycleListener) clazz.newInstance();
if (wrapper instanceof Lifecycle)
synchronized (wrapperListeners) {
for (int i = 0; i < wrapperListeners.length; i++) {
try {
- Class clazz = Class.forName(wrapperListeners[i]);
+ Class<?> clazz = Class.forName(wrapperListeners[i]);
ContainerListener listener =
(ContainerListener) clazz.newInstance();
wrapper.addContainerListener(listener);
if (errorCode == 200) {
return (okErrorPage);
} else {
- return ((ErrorPage) statusPages.get(new Integer(errorCode)));
+ return (statusPages.get(new Integer(errorCode)));
}
}
public ErrorPage findErrorPage(String exceptionType) {
synchronized (exceptionPages) {
- return ((ErrorPage) exceptionPages.get(exceptionType));
+ return (exceptionPages.get(exceptionType));
}
}
synchronized(exceptionPages) {
synchronized(statusPages) {
ErrorPage results1[] = new ErrorPage[exceptionPages.size()];
- results1 =
- (ErrorPage[]) exceptionPages.values().toArray(results1);
+ results1 = exceptionPages.values().toArray(results1);
ErrorPage results2[] = new ErrorPage[statusPages.size()];
- results2 =
- (ErrorPage[]) statusPages.values().toArray(results2);
+ results2 = statusPages.values().toArray(results2);
ErrorPage results[] =
new ErrorPage[results1.length + results2.length];
for (int i = 0; i < results1.length; i++)
public FilterDef findFilterDef(String filterName) {
synchronized (filterDefs) {
- return ((FilterDef) filterDefs.get(filterName));
+ return (filterDefs.get(filterName));
}
}
synchronized (filterDefs) {
FilterDef results[] = new FilterDef[filterDefs.size()];
- return ((FilterDef[]) filterDefs.values().toArray(results));
+ return (filterDefs.values().toArray(results));
}
}
public MessageDestination findMessageDestination(String name) {
synchronized (messageDestinations) {
- return ((MessageDestination) messageDestinations.get(name));
+ return (messageDestinations.get(name));
}
}
synchronized (messageDestinations) {
MessageDestination results[] =
new MessageDestination[messageDestinations.size()];
- return ((MessageDestination[])
- messageDestinations.values().toArray(results));
+ return (messageDestinations.values().toArray(results));
}
}
*/
public String findMimeMapping(String extension) {
- return ((String) mimeMappings.get(extension));
+ return (mimeMappings.get(extension));
}
synchronized (mimeMappings) {
String results[] = new String[mimeMappings.size()];
return
- ((String[]) mimeMappings.keySet().toArray(results));
+ (mimeMappings.keySet().toArray(results));
}
}
public String findParameter(String name) {
synchronized (parameters) {
- return ((String) parameters.get(name));
+ return (parameters.get(name));
}
}
synchronized (parameters) {
String results[] = new String[parameters.size()];
- return ((String[]) parameters.keySet().toArray(results));
+ return (parameters.keySet().toArray(results));
}
}
String realRole = null;
synchronized (roleMappings) {
- realRole = (String) roleMappings.get(role);
+ realRole = roleMappings.get(role);
}
if (realRole != null)
return (realRole);
public String findServletMapping(String pattern) {
synchronized (servletMappings) {
- return ((String) servletMappings.get(pattern));
+ return (servletMappings.get(pattern));
}
}
synchronized (servletMappings) {
String results[] = new String[servletMappings.size()];
return
- ((String[]) servletMappings.keySet().toArray(results));
+ (servletMappings.keySet().toArray(results));
}
}
*/
public String findStatusPage(int status) {
- ErrorPage errorPage = (ErrorPage)statusPages.get(new Integer(status));
+ ErrorPage errorPage = statusPages.get(new Integer(status));
if (errorPage!=null) {
return errorPage.getLocation();
}
synchronized (statusPages) {
int results[] = new int[statusPages.size()];
- Iterator elements = statusPages.keySet().iterator();
+ Iterator<Integer> elements = statusPages.keySet().iterator();
int i = 0;
while (elements.hasNext())
- results[i++] = ((Integer) elements.next()).intValue();
+ results[i++] = elements.next().intValue();
return (results);
}
public String findTaglib(String uri) {
synchronized (taglibs) {
- return ((String) taglibs.get(uri));
+ return (taglibs.get(uri));
}
}
synchronized (taglibs) {
String results[] = new String[taglibs.size()];
- return ((String[]) taglibs.keySet().toArray(results));
+ return (taglibs.keySet().toArray(results));
}
}
String name = null;
synchronized (servletMappings) {
- name = (String) servletMappings.remove(pattern);
+ name = servletMappings.remove(pattern);
}
Wrapper wrapper = (Wrapper) findChild(name);
if( wrapper != null ) {
boolean ok = true;
synchronized (filterConfigs) {
filterConfigs.clear();
- Iterator names = filterDefs.keySet().iterator();
+ Iterator<String> names = filterDefs.keySet().iterator();
while (names.hasNext()) {
- String name = (String) names.next();
+ String name = names.next();
if (getLogger().isDebugEnabled())
getLogger().debug(" Starting filter '" + name + "'");
ApplicationFilterConfig filterConfig = null;
try {
- filterConfig = new ApplicationFilterConfig
- (this, (FilterDef) filterDefs.get(name));
+ filterConfig =
+ new ApplicationFilterConfig(this, filterDefs.get(name));
filterConfigs.put(name, filterConfig);
} catch (Throwable t) {
getLogger().error
// Release all Filter and FilterConfig instances
synchronized (filterConfigs) {
- Iterator names = filterConfigs.keySet().iterator();
+ Iterator<String> names = filterConfigs.keySet().iterator();
while (names.hasNext()) {
- String name = (String) names.next();
+ String name = names.next();
if (getLogger().isDebugEnabled())
getLogger().debug(" Stopping filter '" + name + "'");
- ApplicationFilterConfig filterConfig =
- (ApplicationFilterConfig) filterConfigs.get(name);
+ ApplicationFilterConfig filterConfig = filterConfigs.get(name);
filterConfig.release();
}
filterConfigs.clear();
*/
public FilterConfig findFilterConfig(String name) {
- return ((FilterConfig) filterConfigs.get(name));
+ return (filterConfigs.get(name));
}
}
// Sort listeners in two arrays
- ArrayList eventListeners = new ArrayList();
- ArrayList lifecycleListeners = new ArrayList();
+ ArrayList<Object> eventListeners = new ArrayList<Object>();
+ ArrayList<Object> lifecycleListeners = new ArrayList<Object>();
for (int i = 0; i < results.length; i++) {
if ((results[i] instanceof ServletContextAttributeListener)
|| (results[i] instanceof ServletRequestAttributeListener)
boolean ok = true;
- Hashtable env = new Hashtable();
+ Hashtable<String, String> env = new Hashtable<String, String>();
if (getParent() != null)
env.put(ProxyDirContext.HOST, getParent().getName());
env.put(ProxyDirContext.CONTEXT, getName());
public void loadOnStartup(Container children[]) {
// Collect "load on startup" servlets that need to be initialized
- TreeMap map = new TreeMap();
+ TreeMap<Integer, ArrayList<Wrapper>> map =
+ new TreeMap<Integer, ArrayList<Wrapper>>();
for (int i = 0; i < children.length; i++) {
Wrapper wrapper = (Wrapper) children[i];
int loadOnStartup = wrapper.getLoadOnStartup();
if (loadOnStartup < 0)
continue;
Integer key = new Integer(loadOnStartup);
- ArrayList list = (ArrayList) map.get(key);
+ ArrayList<Wrapper> list = map.get(key);
if (list == null) {
- list = new ArrayList();
+ list = new ArrayList<Wrapper>();
map.put(key, list);
}
list.add(wrapper);
}
// Load the collected "load on startup" servlets
- Iterator keys = map.keySet().iterator();
+ Iterator<Integer> keys = map.keySet().iterator();
while (keys.hasNext()) {
- Integer key = (Integer) keys.next();
- ArrayList list = (ArrayList) map.get(key);
- Iterator wrappers = list.iterator();
+ Integer key = keys.next();
+ ArrayList<Wrapper> list = map.get(key);
+ Iterator<Wrapper> wrappers = list.iterator();
while (wrappers.hasNext()) {
- Wrapper wrapper = (Wrapper) wrappers.next();
+ Wrapper wrapper = wrappers.next();
try {
wrapper.load();
} catch (ServletException e) {
}
}
- private void cacheContext() {
- try {
- File workDir=new File( getWorkPath() );
-
- File ctxSer=new File( workDir, "_tomcat_context.ser");
- FileOutputStream fos=new FileOutputStream( ctxSer );
- ObjectOutputStream oos=new ObjectOutputStream( fos );
- oos.writeObject(this);
- oos.close();
- fos.close();
- } catch( Throwable t ) {
- if(log.isInfoEnabled())
- log.info("Error saving context.ser ", t);
- }
- }
-
-
/**
* Stop this Context component.
*
private void resetContext() throws Exception, MBeanRegistrationException {
// Restore the original state ( pre reading web.xml in start )
// If you extend this - override this method and make sure to clean up
- children=new HashMap();
+ children = new HashMap<String, Container>();
startupTime = 0;
startTime = 0;
tldScanTime = 0;
/**
- * Copy a file.
- */
- private boolean copy(File src, File dest) {
- FileInputStream is = null;
- FileOutputStream os = null;
- try {
- is = new FileInputStream(src);
- os = new FileOutputStream(dest);
- byte[] buf = new byte[4096];
- while (true) {
- int len = is.read(buf);
- if (len < 0)
- break;
- os.write(buf, 0, len);
- }
- is.close();
- os.close();
- } catch (IOException e) {
- return false;
- } finally {
- try {
- if (is != null) {
- is.close();
- }
- } catch (Exception e) {
- // Ignore
- }
- try {
- if (os != null) {
- os.close();
- }
- } catch (Exception e) {
- // Ignore
- }
- }
- return true;
- }
-
-
- /**
* Get naming context full name.
*/
private String getNamingContextName() {
if (parent == null) {
namingContextName = getName();
} else {
- Stack stk = new Stack();
+ Stack<String> stk = new Stack<String>();
StringBuffer buff = new StringBuffer();
while (parent != null) {
stk.push(parent.getName());
/**
- * Post a copy of our web application resources as a servlet context
- * attribute.
- */
- private void postResources() {
-
- getServletContext().setAttribute
- (Globals.RESOURCES_ATTR, getResources());
-
- }
-
-
- /**
* Post a copy of our current list of welcome files as a servlet context
* attribute, so that the default servlet can find them.
*/
// Ignore, it's normal a host may not have this optional attribute
}
if (configClassName != null) {
- Class clazz = Class.forName(configClassName);
+ Class<?> clazz = Class.forName(configClassName);
config = (LifecycleListener) clazz.newInstance();
} else {
config = new ContextConfig();