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

Reply via email to