Author: markt Date: Tue Apr 11 22:36:01 2017 New Revision: 1791050 URL: http://svn.apache.org/viewvc?rev=1791050&view=rev Log: Refactoring in preparation for Java 9. Refactor to avoid using some methods that will be deprecated in Java 9 onwards.
Modified: tomcat/trunk/java/javax/el/ExpressionFactory.java tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java tomcat/trunk/java/javax/websocket/ContainerProvider.java tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java tomcat/trunk/java/org/apache/catalina/connector/Connector.java tomcat/trunk/java/org/apache/catalina/connector/Request.java tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java tomcat/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/trunk/java/org/apache/catalina/core/StandardHost.java tomcat/trunk/java/org/apache/tomcat/InstanceManager.java Modified: tomcat/trunk/java/javax/el/ExpressionFactory.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ExpressionFactory.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/ExpressionFactory.java (original) +++ tomcat/trunk/java/javax/el/ExpressionFactory.java Tue Apr 11 22:36:01 2017 @@ -169,13 +169,14 @@ public abstract class ExpressionFactory } } if (constructor == null) { - result = (ExpressionFactory) clazz.newInstance(); + result = (ExpressionFactory) clazz.getDeclaredConstructor().newInstance(); } else { result = (ExpressionFactory) constructor.newInstance(properties); } - } catch (InstantiationException | IllegalAccessException | IllegalArgumentException e) { + } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | + NoSuchMethodException e) { throw new ELException( "Unable to create ExpressionFactory of type: " + clazz.getName(), e); Modified: tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java (original) +++ tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java Tue Apr 11 22:36:01 2017 @@ -16,6 +16,7 @@ */ package javax.security.auth.message.config; +import java.lang.reflect.InvocationTargetException; import java.security.AccessController; import java.security.Permission; import java.security.PrivilegedAction; @@ -65,13 +66,14 @@ public abstract class AuthConfigFactory new PrivilegedExceptionAction<AuthConfigFactory>() { @Override public AuthConfigFactory run() throws ClassNotFoundException, - InstantiationException, IllegalAccessException { + InstantiationException, IllegalAccessException, IllegalArgumentException, + InvocationTargetException, NoSuchMethodException, SecurityException { // Load this class with the same class loader as used for // this class. Note that the Thread context class loader // should not be used since that would trigger a memory leak // in container environments. Class<?> clazz = Class.forName(className); - return (AuthConfigFactory) clazz.newInstance(); + return (AuthConfigFactory) clazz.getDeclaredConstructor().newInstance(); } }); } catch (PrivilegedActionException e) { Modified: tomcat/trunk/java/javax/websocket/ContainerProvider.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/ContainerProvider.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/javax/websocket/ContainerProvider.java (original) +++ tomcat/trunk/java/javax/websocket/ContainerProvider.java Tue Apr 11 22:36:01 2017 @@ -16,6 +16,7 @@ */ package javax.websocket; +import java.lang.reflect.InvocationTargetException; import java.util.Iterator; import java.util.ServiceLoader; @@ -50,9 +51,10 @@ public abstract class ContainerProvider Class<WebSocketContainer> clazz = (Class<WebSocketContainer>) Class.forName( DEFAULT_PROVIDER_CLASS_NAME); - result = clazz.newInstance(); - } catch (ClassNotFoundException | InstantiationException | - IllegalAccessException e) { + result = clazz.getDeclaredConstructor().newInstance(); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | + IllegalArgumentException | InvocationTargetException | NoSuchMethodException | + SecurityException e) { // No options left. Just return null. } } Modified: tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java (original) +++ tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java Tue Apr 11 22:36:01 2017 @@ -16,6 +16,7 @@ */ package javax.websocket.server; +import java.lang.reflect.InvocationTargetException; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -175,9 +176,10 @@ public interface ServerEndpointConfig ex Class<Configurator> clazz = (Class<Configurator>) Class.forName( DEFAULT_IMPL_CLASSNAME); - result = clazz.newInstance(); - } catch (ClassNotFoundException | InstantiationException | - IllegalAccessException e) { + result = clazz.getDeclaredConstructor().newInstance(); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | + IllegalArgumentException | InvocationTargetException | + NoSuchMethodException | SecurityException e) { // No options left. Just return null. } } Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java Tue Apr 11 22:36:01 2017 @@ -16,6 +16,7 @@ */ package org.apache.catalina.authenticator.jaspic; +import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -113,10 +114,14 @@ public class SimpleServerAuthConfig impl while (moduleClassName != null) { try { Class<?> clazz = Class.forName(moduleClassName); - ServerAuthModule module = (ServerAuthModule) clazz.newInstance(); + ServerAuthModule module = + (ServerAuthModule) clazz.getDeclaredConstructor().newInstance(); module.initialize(null, null, handler, mergedProperties); modules.add(module); - } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { + } catch (ClassNotFoundException | InstantiationException | + IllegalAccessException | IllegalArgumentException | + InvocationTargetException | NoSuchMethodException | + SecurityException e) { AuthException ae = new AuthException(); ae.initCause(e); throw ae; Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Connector.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/Connector.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Connector.java Tue Apr 11 22:36:01 2017 @@ -97,7 +97,7 @@ public class Connector extends Lifecycle ProtocolHandler p = null; try { Class<?> clazz = Class.forName(protocolHandlerClassName); - p = (ProtocolHandler) clazz.newInstance(); + p = (ProtocolHandler) clazz.getDeclaredConstructor().newInstance(); } catch (Exception e) { log.error(sm.getString( "coyoteConnector.protocolHandlerInstantiationFailed"), e); Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Tue Apr 11 22:36:01 2017 @@ -1959,14 +1959,17 @@ public class Request implements HttpServ T handler; InstanceManager instanceManager = null; try { - // Do not go through the instance manager for internal Tomcat classes since they don't need injection + // Do not go through the instance manager for internal Tomcat classes since they don't + // need injection if (InternalHttpUpgradeHandler.class.isAssignableFrom(httpUpgradeHandlerClass)) { - handler = httpUpgradeHandlerClass.newInstance(); + handler = httpUpgradeHandlerClass.getDeclaredConstructor().newInstance(); } else { instanceManager = getContext().getInstanceManager(); handler = (T) instanceManager.newInstance(httpUpgradeHandlerClass); } - } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NamingException e) { + } catch (InstantiationException | IllegalAccessException | InvocationTargetException | + NamingException | IllegalArgumentException | NoSuchMethodException | + SecurityException e) { throw new ServletException(e); } UpgradeToken upgradeToken = new UpgradeToken(handler, Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java Tue Apr 11 22:36:01 2017 @@ -812,7 +812,7 @@ public class ApplicationContext implemen ExceptionUtils.handleThrowable(e.getCause()); throw new ServletException(e); } catch (IllegalAccessException | NamingException | InstantiationException | - ClassNotFoundException e) { + ClassNotFoundException | NoSuchMethodException e) { throw new ServletException(e); } } @@ -946,7 +946,7 @@ public class ApplicationContext implemen ExceptionUtils.handleThrowable(e.getCause()); throw new ServletException(e); } catch (IllegalAccessException | NamingException | InstantiationException | - ClassNotFoundException e) { + ClassNotFoundException | NoSuchMethodException e) { throw new ServletException(e); } } @@ -1087,7 +1087,7 @@ public class ApplicationContext implemen "applicationContext.addListener.iae.cnfe", className), e); } catch (IllegalAccessException | NamingException | InstantiationException | - ClassNotFoundException e) { + ClassNotFoundException | NoSuchMethodException e) { throw new IllegalArgumentException(sm.getString( "applicationContext.addListener.iae.cnfe", className), e); @@ -1159,7 +1159,8 @@ public class ApplicationContext implemen } catch (InvocationTargetException e) { ExceptionUtils.handleThrowable(e.getCause()); throw new ServletException(e); - } catch (IllegalAccessException | NamingException | InstantiationException e) { + } catch (IllegalAccessException | NamingException | InstantiationException | + NoSuchMethodException e) { throw new ServletException(e); } } Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java Tue Apr 11 22:36:01 2017 @@ -90,11 +90,14 @@ public final class ApplicationFilterConf * @exception ServletException if thrown by the filter's init() method * @throws NamingException * @throws InvocationTargetException + * @throws SecurityException + * @throws NoSuchMethodException + * @throws IllegalArgumentException */ ApplicationFilterConfig(Context context, FilterDef filterDef) - throws ClassCastException, ClassNotFoundException, - IllegalAccessException, InstantiationException, - ServletException, InvocationTargetException, NamingException { + throws ClassCastException, ClassNotFoundException, IllegalAccessException, + InstantiationException, ServletException, InvocationTargetException, NamingException, + IllegalArgumentException, NoSuchMethodException, SecurityException { super(); @@ -244,10 +247,13 @@ public final class ApplicationFilterConf * @exception ServletException if thrown by the filter's init() method * @throws NamingException * @throws InvocationTargetException - */ - Filter getFilter() throws ClassCastException, ClassNotFoundException, - IllegalAccessException, InstantiationException, ServletException, - InvocationTargetException, NamingException { + * @throws SecurityException + * @throws NoSuchMethodException + * @throws IllegalArgumentException + */ + Filter getFilter() throws ClassCastException, ClassNotFoundException, IllegalAccessException, + InstantiationException, ServletException, InvocationTargetException, NamingException, + IllegalArgumentException, NoSuchMethodException, SecurityException { // Return the existing filter instance, if any if (this.filter != null) Modified: tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Tue Apr 11 22:36:01 2017 @@ -107,25 +107,26 @@ public class DefaultInstanceManager impl @Override public Object newInstance(Class<?> clazz) throws IllegalAccessException, - InvocationTargetException, NamingException, InstantiationException { - return newInstance(clazz.newInstance(), clazz); + InvocationTargetException, NamingException, InstantiationException, + IllegalArgumentException, NoSuchMethodException, SecurityException { + return newInstance(clazz.getDeclaredConstructor().newInstance(), clazz); } @Override public Object newInstance(String className) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, - ClassNotFoundException { + ClassNotFoundException, IllegalArgumentException, NoSuchMethodException, SecurityException { Class<?> clazz = loadClassMaybePrivileged(className, classLoader); - return newInstance(clazz.newInstance(), clazz); + return newInstance(clazz.getDeclaredConstructor().newInstance(), clazz); } @Override public Object newInstance(final String className, final ClassLoader classLoader) - throws IllegalAccessException, NamingException, - InvocationTargetException, InstantiationException, - ClassNotFoundException { + throws IllegalAccessException, NamingException, InvocationTargetException, + InstantiationException, ClassNotFoundException, IllegalArgumentException, + NoSuchMethodException, SecurityException { Class<?> clazz = classLoader.loadClass(className); - return newInstance(clazz.newInstance(), clazz); + return newInstance(clazz.getDeclaredConstructor().newInstance(), clazz); } @Override Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Tue Apr 11 22:36:01 2017 @@ -1351,7 +1351,7 @@ public class StandardContext extends Con if (this.charsetMapper == null) { try { Class<?> clazz = Class.forName(charsetMapperClass); - this.charsetMapper = (CharsetMapper) clazz.newInstance(); + this.charsetMapper = (CharsetMapper) clazz.getDeclaredConstructor().newInstance(); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); this.charsetMapper = new CharsetMapper(); @@ -3264,11 +3264,11 @@ public class StandardContext extends Con Wrapper wrapper = null; if (wrapperClass != null) { try { - wrapper = (Wrapper) wrapperClass.newInstance(); + wrapper = (Wrapper) wrapperClass.getDeclaredConstructor().newInstance(); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); log.error("createWrapper", t); - return (null); + return null; } } else { wrapper = new StandardWrapper(); @@ -3279,12 +3279,12 @@ public class StandardContext extends Con try { Class<?> clazz = Class.forName(wrapperLifecycles[i]); LifecycleListener listener = - (LifecycleListener) clazz.newInstance(); + (LifecycleListener) clazz.getDeclaredConstructor().newInstance(); wrapper.addLifecycleListener(listener); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); log.error("createWrapper", t); - return (null); + return null; } } } @@ -3294,18 +3294,17 @@ public class StandardContext extends Con try { Class<?> clazz = Class.forName(wrapperListeners[i]); ContainerListener listener = - (ContainerListener) clazz.newInstance(); + (ContainerListener) clazz.getDeclaredConstructor().newInstance(); wrapper.addContainerListener(listener); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); log.error("createWrapper", t); - return (null); + return null; } } } - return (wrapper); - + return wrapper; } Modified: tomcat/trunk/java/org/apache/catalina/core/StandardHost.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardHost.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardHost.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardHost.java Tue Apr 11 22:36:01 2017 @@ -859,7 +859,7 @@ public class StandardHost extends Contai } if(!found) { Valve valve = - (Valve) Class.forName(errorValve).newInstance(); + (Valve) Class.forName(errorValve).getDeclaredConstructor().newInstance(); getPipeline().addValve(valve); } } catch (Throwable t) { Modified: tomcat/trunk/java/org/apache/tomcat/InstanceManager.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/InstanceManager.java?rev=1791050&r1=1791049&r2=1791050&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/InstanceManager.java (original) +++ tomcat/trunk/java/org/apache/tomcat/InstanceManager.java Tue Apr 11 22:36:01 2017 @@ -22,30 +22,30 @@ 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; - - public Object newInstance(String fqcn, ClassLoader classLoader) - throws IllegalAccessException, InvocationTargetException, NamingException, - InstantiationException, ClassNotFoundException; + Object newInstance(Class<?> clazz) throws IllegalAccessException, InvocationTargetException, + NamingException, InstantiationException, IllegalArgumentException, + NoSuchMethodException, SecurityException; + + Object newInstance(String className) throws IllegalAccessException, InvocationTargetException, + NamingException, InstantiationException, ClassNotFoundException, + IllegalArgumentException, NoSuchMethodException, SecurityException; + + Object newInstance(String fqcn, ClassLoader classLoader) throws IllegalAccessException, + InvocationTargetException, NamingException, InstantiationException, + ClassNotFoundException, IllegalArgumentException, NoSuchMethodException, + SecurityException; - public void newInstance(Object o) - throws IllegalAccessException, InvocationTargetException, NamingException; + void newInstance(Object o) + throws IllegalAccessException, InvocationTargetException, NamingException; - public void destroyInstance(Object o) - throws IllegalAccessException, InvocationTargetException; + void destroyInstance(Object o) throws IllegalAccessException, InvocationTargetException; /** * Called by the component using the InstanceManager periodically to perform * any regular maintenance that might be required. By default, this method * is a NO-OP. */ - public default void backgroundProcess() { + default void backgroundProcess() { // NO-OP by default } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org