Author: markt Date: Fri Aug 16 11:51:28 2013 New Revision: 1514663 URL: http://svn.apache.org/r1514663 Log: Back-porting JSR-356 Add InstanceManager to Context interface. This is required by the Servlet 3.1 based upgrade mechanism.
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java tomcat/tc7.0.x/trunk/java/org/apache/tomcat/InstanceManager.java tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1459028 Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java?rev=1514663&r1=1514662&r2=1514663&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java Fri Aug 16 11:51:28 2013 @@ -40,6 +40,7 @@ import org.apache.catalina.deploy.LoginC import org.apache.catalina.deploy.NamingResources; import org.apache.catalina.deploy.SecurityConstraint; import org.apache.catalina.util.CharsetMapper; +import org.apache.tomcat.InstanceManager; import org.apache.tomcat.JarScanner; import org.apache.tomcat.util.http.mapper.Mapper; @@ -712,6 +713,16 @@ public interface Context extends Contain */ public boolean getLogEffectiveWebXml(); + /** + * Get the instance manager associated with this context. + */ + public InstanceManager getInstanceManager(); + + /** + * Set the instance manager associated with this context. + */ + public void setInstanceManager(InstanceManager instanceManager); + // --------------------------------------------------------- Public Methods Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java?rev=1514663&r1=1514662&r2=1514663&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java Fri Aug 16 11:51:28 2013 @@ -1357,7 +1357,7 @@ public class ApplicationContext try { @SuppressWarnings("unchecked") T listener = - (T) context.getInstanceManager().newInstance(c.getName()); + (T) context.getInstanceManager().newInstance(c); if (listener instanceof ServletContextListener || listener instanceof ServletContextAttributeListener || listener instanceof ServletRequestListener || @@ -1378,9 +1378,8 @@ public class ApplicationContext throw new ServletException(e); } catch (InstantiationException e) { throw new ServletException(e); - } catch (ClassNotFoundException e) { - throw new ServletException(e); - } } + } + } @Override Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java?rev=1514663&r1=1514662&r2=1514663&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Fri Aug 16 11:51:28 2013 @@ -133,6 +133,11 @@ public class DefaultInstanceManager impl } @Override + public Object newInstance(Class<?> clazz) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException { + return newInstance(clazz.newInstance(), clazz); + } + + @Override public Object newInstance(String className) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException { Class<?> clazz = loadClassMaybePrivileged(className, classLoader); return newInstance(clazz.newInstance(), clazz); Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java?rev=1514663&r1=1514662&r2=1514663&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java Fri Aug 16 11:51:28 2013 @@ -59,6 +59,7 @@ import org.apache.catalina.mbeans.MBeanU import org.apache.catalina.util.CharsetMapper; import org.apache.catalina.util.LifecycleMBeanBase; import org.apache.juli.logging.Log; +import org.apache.tomcat.InstanceManager; import org.apache.tomcat.JarScanner; import org.apache.tomcat.util.http.mapper.Mapper; import org.apache.tomcat.util.res.StringManager; @@ -685,4 +686,10 @@ public class FailedContext extends Lifec @Override public Map<String, String> findPreDestroyMethods() { return null; } + + @Override + public InstanceManager getInstanceManager() { return null; } + + @Override + public void setInstanceManager(InstanceManager instanceManager) { /* NO-OP */ } } \ No newline at end of file Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/InstanceManager.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/InstanceManager.java?rev=1514663&r1=1514662&r2=1514663&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/InstanceManager.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/InstanceManager.java Fri Aug 16 11:51:28 2013 @@ -25,6 +25,10 @@ import javax.naming.NamingException; */ public interface InstanceManager { + public Object newInstance(Class<?> clazz) + throws IllegalAccessException, InvocationTargetException, NamingException, + InstantiationException; + public Object newInstance(String className) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException; Modified: tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java?rev=1514663&r1=1514662&r2=1514663&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java Fri Aug 16 11:51:28 2013 @@ -58,6 +58,7 @@ import org.apache.catalina.deploy.Naming import org.apache.catalina.deploy.SecurityConstraint; import org.apache.catalina.util.CharsetMapper; import org.apache.juli.logging.Log; +import org.apache.tomcat.InstanceManager; import org.apache.tomcat.JarScanner; import org.apache.tomcat.util.http.mapper.Mapper; @@ -1182,4 +1183,14 @@ public class TesterContext implements Co ServletSecurityElement servletSecurityElement) { return null; } + + @Override + public InstanceManager getInstanceManager() { + return null; + } + + @Override + public void setInstanceManager(InstanceManager instanceManager) { + // NO-OP + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org