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: [email protected]
For additional commands, e-mail: [email protected]