You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2021/06/04 04:18:33 UTC

[activemq] branch main updated: [AMQ-8282] Migrate from deprecated .newInstance() calls to .getConstructors().newInstance

This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/main by this push:
     new 950a140  [AMQ-8282] Migrate from deprecated .newInstance() calls to .getConstructors().newInstance
     new ae777e9  Merge pull request #665 from mattrpav/AMQ-8282
950a140 is described below

commit 950a1404558d07d80b8eaef48b998b158d689212
Author: Matt Pavlovich <ma...@hyte.io>
AuthorDate: Wed Jun 2 08:30:36 2021 -0500

    [AMQ-8282] Migrate from deprecated .newInstance() calls to .getConstructors().newInstance
---
 .../src/main/java/org/apache/activemq/broker/BrokerService.java   | 2 +-
 .../org/apache/activemq/security/DefaultAuthorizationMap.java     | 2 +-
 .../src/main/java/org/apache/activemq/util/LogWriterFinder.java   | 7 ++++++-
 .../src/main/java/org/apache/activemq/util/osgi/Activator.java    | 8 +++++++-
 .../src/main/java/org/apache/activemq/TransportLoggerSupport.java | 2 +-
 .../main/java/org/apache/activemq/jndi/JNDIReferenceFactory.java  | 2 +-
 .../src/main/java/org/apache/activemq/util/FactoryFinder.java     | 8 +++++++-
 .../src/main/java/org/apache/activemq/console/Main.java           | 2 +-
 .../org/apache/activemq/console/command/AbstractAmqCommand.java   | 2 +-
 .../apache/activemq/console/filter/GroupPropertiesViewFilter.java | 2 +-
 .../org/apache/activemq/console/filter/PropertiesViewFilter.java  | 2 +-
 .../activemq/transport/discovery/http/HTTPDiscoveryAgent.java     | 2 +-
 .../org/apache/activemq/transport/http/HttpTransportServer.java   | 4 ++--
 .../activemq/store/kahadb/MultiKahaDBPersistenceAdapter.java      | 4 ++--
 .../apache/activemq/karaf/commands/ActiveMQCommandSupport.java    | 2 +-
 .../org/apache/activemq/plugin/PropertiesPlaceHolderUtil.java     | 2 +-
 .../java/org/apache/activemq/tool/AbstractJmsClientSystem.java    | 2 +-
 .../apache/activemq/tool/spi/ReflectionSPIConnectionFactory.java  | 2 +-
 18 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
index 741ec44..fd329fc 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
@@ -2477,7 +2477,7 @@ public class BrokerService implements Service {
             } else {
                 try {
                     String clazz = "org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter";
-                    PersistenceAdapter adaptor = (PersistenceAdapter)getClass().getClassLoader().loadClass(clazz).newInstance();
+                    PersistenceAdapter adaptor = (PersistenceAdapter)getClass().getClassLoader().loadClass(clazz).getConstructor().newInstance();
                     File dir = new File(getBrokerDataDirectory(),"KahaDB");
                     adaptor.setDirectory(dir);
                     return adaptor;
diff --git a/activemq-broker/src/main/java/org/apache/activemq/security/DefaultAuthorizationMap.java b/activemq-broker/src/main/java/org/apache/activemq/security/DefaultAuthorizationMap.java
index e27f8a7..290f6bc 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/security/DefaultAuthorizationMap.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/security/DefaultAuthorizationMap.java
@@ -246,7 +246,7 @@ public class DefaultAuthorizationMap extends DestinationMap implements Authoriza
         if (i < constructors.length) {
             instance = constructors[i].newInstance(param);
         } else {
-            instance = cls.newInstance();
+            instance = cls.getConstructor().newInstance();
             Method[] methods = cls.getMethods();
             i = 0;
             for (i = 0; i < methods.length; i++) {
diff --git a/activemq-broker/src/main/java/org/apache/activemq/util/LogWriterFinder.java b/activemq-broker/src/main/java/org/apache/activemq/util/LogWriterFinder.java
index fd2cecf..3a73577 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/util/LogWriterFinder.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/util/LogWriterFinder.java
@@ -19,6 +19,7 @@ package org.apache.activemq.util;
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
@@ -74,7 +75,11 @@ public class LogWriterFinder {
             clazz = newInstance(doFindLogWriterProperties(logWriterName));
             classMap.put(logWriterName, clazz);
         }
-        return (LogWriter)clazz.newInstance();
+        try {
+            return LogWriter.class.cast(clazz.getConstructor().newInstance());
+        } catch (InvocationTargetException | NoSuchMethodException e) {
+        	throw new InstantiationException(e.getMessage());
+        }
     }
 
     /**
diff --git a/activemq-broker/src/main/java/org/apache/activemq/util/osgi/Activator.java b/activemq-broker/src/main/java/org/apache/activemq/util/osgi/Activator.java
index b33c3a5..8f291d3 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/util/osgi/Activator.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/util/osgi/Activator.java
@@ -22,6 +22,7 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.lang.reflect.InvocationTargetException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -214,7 +215,12 @@ public class Activator implements BundleActivator, SynchronousBundleListener, Ob
                 throw new IOException(msg);
             }
         }
-        return clazz.newInstance();
+        
+        try {
+            return clazz.getConstructor().newInstance();
+        } catch (InvocationTargetException | NoSuchMethodException e) {
+        	throw new InstantiationException(e.getMessage());
+        }
     }
 
     // ================================================================
diff --git a/activemq-client/src/main/java/org/apache/activemq/TransportLoggerSupport.java b/activemq-client/src/main/java/org/apache/activemq/TransportLoggerSupport.java
index 80ad176..f8a3cff 100644
--- a/activemq-client/src/main/java/org/apache/activemq/TransportLoggerSupport.java
+++ b/activemq-client/src/main/java/org/apache/activemq/TransportLoggerSupport.java
@@ -42,7 +42,7 @@ public class TransportLoggerSupport {
     static {
         SPI temp;
         try {
-            temp = (SPI) TransportLoggerSupport.class.getClassLoader().loadClass("org.apache.activemq.transport.TransportLoggerFactorySPI").newInstance();
+            temp = (SPI) TransportLoggerSupport.class.getClassLoader().loadClass("org.apache.activemq.transport.TransportLoggerFactorySPI").getConstructor().newInstance();
         } catch (Throwable e) {
             temp = null;
         }
diff --git a/activemq-client/src/main/java/org/apache/activemq/jndi/JNDIReferenceFactory.java b/activemq-client/src/main/java/org/apache/activemq/jndi/JNDIReferenceFactory.java
index 1619a8e..f9d718b 100644
--- a/activemq-client/src/main/java/org/apache/activemq/jndi/JNDIReferenceFactory.java
+++ b/activemq-client/src/main/java/org/apache/activemq/jndi/JNDIReferenceFactory.java
@@ -62,7 +62,7 @@ public class JNDIReferenceFactory implements ObjectFactory {
             Class theClass = loadClass(this, reference.getClassName());
             if (JNDIStorableInterface.class.isAssignableFrom(theClass)) {
 
-                JNDIStorableInterface store = (JNDIStorableInterface)theClass.newInstance();
+                JNDIStorableInterface store = JNDIStorableInterface.class.cast(theClass.getConstructor().newInstance());
                 Properties properties = new Properties();
                 for (Enumeration iter = reference.getAll(); iter.hasMoreElements();) {
 
diff --git a/activemq-client/src/main/java/org/apache/activemq/util/FactoryFinder.java b/activemq-client/src/main/java/org/apache/activemq/util/FactoryFinder.java
index 3b2771e..596d15e 100644
--- a/activemq-client/src/main/java/org/apache/activemq/util/FactoryFinder.java
+++ b/activemq-client/src/main/java/org/apache/activemq/util/FactoryFinder.java
@@ -19,6 +19,7 @@ package org.apache.activemq.util;
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
@@ -60,7 +61,12 @@ public class FactoryFinder {
                 clazz = loadClass(loadProperties(path));
                 classMap.put(path, clazz);
             }
-            return clazz.newInstance();
+            
+            try {
+               return clazz.getConstructor().newInstance();
+            } catch (NoSuchMethodException | InvocationTargetException e) {
+               throw new InstantiationException(e.getMessage());
+            }
         }
 
         static public Class loadClass(Properties properties) throws ClassNotFoundException, IOException {
diff --git a/activemq-console/src/main/java/org/apache/activemq/console/Main.java b/activemq-console/src/main/java/org/apache/activemq/console/Main.java
index 4be67a1..4e2db4f 100644
--- a/activemq-console/src/main/java/org/apache/activemq/console/Main.java
+++ b/activemq-console/src/main/java/org/apache/activemq/console/Main.java
@@ -259,7 +259,7 @@ public class Main {
             Method runTask = task.getMethod("main", new Class[] {
                 String[].class, InputStream.class, PrintStream.class
             });
-            return (int)runTask.invoke(task.newInstance(), args, System.in, System.out);
+            return (int)runTask.invoke(task.getConstructor().newInstance(), args, System.in, System.out);
         } catch (InvocationTargetException e) {
             throw e.getCause();
         }
diff --git a/activemq-console/src/main/java/org/apache/activemq/console/command/AbstractAmqCommand.java b/activemq-console/src/main/java/org/apache/activemq/console/command/AbstractAmqCommand.java
index 42d0552..deeb59d 100644
--- a/activemq-console/src/main/java/org/apache/activemq/console/command/AbstractAmqCommand.java
+++ b/activemq-console/src/main/java/org/apache/activemq/console/command/AbstractAmqCommand.java
@@ -250,7 +250,7 @@ public abstract class AbstractAmqCommand extends AbstractCommand {
         if (passwordFactory == null && passwordFactoryClassString != null) {
             try {
                 Class klass = Class.forName(passwordFactoryClassString);
-                passwordFactory = (PasswordFactory) klass.newInstance();
+                passwordFactory = PasswordFactory.class.cast(klass.getConstructor().newInstance());
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }
diff --git a/activemq-console/src/main/java/org/apache/activemq/console/filter/GroupPropertiesViewFilter.java b/activemq-console/src/main/java/org/apache/activemq/console/filter/GroupPropertiesViewFilter.java
index adf8a89..b77bfb6 100644
--- a/activemq-console/src/main/java/org/apache/activemq/console/filter/GroupPropertiesViewFilter.java
+++ b/activemq-console/src/main/java/org/apache/activemq/console/filter/GroupPropertiesViewFilter.java
@@ -59,7 +59,7 @@ public class GroupPropertiesViewFilter extends PropertiesViewFilter {
         Map newData;
         try {
             // Lets try to use the same class as the original
-            newData = data.getClass().newInstance();
+            newData = data.getClass().getConstructor().newInstance();
         } catch (Exception e) {
             // Lets use a default HashMap
             newData = new HashMap();
diff --git a/activemq-console/src/main/java/org/apache/activemq/console/filter/PropertiesViewFilter.java b/activemq-console/src/main/java/org/apache/activemq/console/filter/PropertiesViewFilter.java
index 7c117a7..50e3b82 100644
--- a/activemq-console/src/main/java/org/apache/activemq/console/filter/PropertiesViewFilter.java
+++ b/activemq-console/src/main/java/org/apache/activemq/console/filter/PropertiesViewFilter.java
@@ -96,7 +96,7 @@ public class PropertiesViewFilter implements QueryFilter {
         Map<Object, Object> newData;
         try {
             // Lets try to use the same class as the original
-            newData = new LinkedHashMap(data.getClass().newInstance());
+            newData = new LinkedHashMap(data.getClass().getConstructor().newInstance());
         } catch (Exception e) {
             // Lets use a default HashMap
             newData = new LinkedHashMap<Object, Object>();
diff --git a/activemq-http/src/main/java/org/apache/activemq/transport/discovery/http/HTTPDiscoveryAgent.java b/activemq-http/src/main/java/org/apache/activemq/transport/discovery/http/HTTPDiscoveryAgent.java
index 15f4de6..7ccc492 100644
--- a/activemq-http/src/main/java/org/apache/activemq/transport/discovery/http/HTTPDiscoveryAgent.java
+++ b/activemq-http/src/main/java/org/apache/activemq/transport/discovery/http/HTTPDiscoveryAgent.java
@@ -276,7 +276,7 @@ public class HTTPDiscoveryAgent implements DiscoveryAgent, Suspendable {
      */
     private Service createEmbeddedJettyServer() throws Exception {
         Class<?> clazz = HTTPDiscoveryAgent.class.getClassLoader().loadClass("org.apache.activemq.transport.discovery.http.EmbeddedJettyServer");
-        return (Service) clazz.newInstance();
+        return Service.class.cast(clazz.getConstructor().newInstance());
     }
 
     private void update() {
diff --git a/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java b/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java
index f0ecefd..c25e4b9 100644
--- a/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java
+++ b/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java
@@ -137,9 +137,9 @@ public class HttpTransportServer extends WebTransportServerSupport {
     private void addGzipHandler(ServletContextHandler contextHandler) throws Exception {
         HandlerWrapper handler = null;
         try {
-            handler = (HandlerWrapper) forName("org.eclipse.jetty.servlets.gzip.GzipHandler").newInstance();
+            handler = (HandlerWrapper) forName("org.eclipse.jetty.servlets.gzip.GzipHandler").getConstructor().newInstance();
         } catch (Throwable t) {
-            handler = (HandlerWrapper) forName("org.eclipse.jetty.server.handler.gzip.GzipHandler").newInstance();
+            handler = (HandlerWrapper) forName("org.eclipse.jetty.server.handler.gzip.GzipHandler").getConstructor().newInstance();
         }
         contextHandler.insertHandler(handler);
     }
diff --git a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MultiKahaDBPersistenceAdapter.java b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MultiKahaDBPersistenceAdapter.java
index 0ddae6e..d852c15 100644
--- a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MultiKahaDBPersistenceAdapter.java
+++ b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MultiKahaDBPersistenceAdapter.java
@@ -440,7 +440,7 @@ public class MultiKahaDBPersistenceAdapter extends LockableServiceSupport implem
         File directory = null;
         File defaultDir = DEFAULT_DIRECTORY;
         try {
-            defaultDir = adapter.getClass().newInstance().getDirectory();
+            defaultDir = adapter.getClass().getConstructor().newInstance().getDirectory();
         } catch (Exception e) {
         }
         if (defaultDir.equals(adapter.getDirectory())) {
@@ -480,7 +480,7 @@ public class MultiKahaDBPersistenceAdapter extends LockableServiceSupport implem
         try {
             Map<String, Object> configuration = new HashMap<String, Object>();
             IntrospectionSupport.getProperties(template, configuration, null);
-            PersistenceAdapter adapter = template.getClass().newInstance();
+            PersistenceAdapter adapter = template.getClass().getConstructor().newInstance();
             IntrospectionSupport.setProperties(adapter, configuration);
             return adapter;
         } catch (Exception e) {
diff --git a/activemq-karaf/src/main/java/org/apache/activemq/karaf/commands/ActiveMQCommandSupport.java b/activemq-karaf/src/main/java/org/apache/activemq/karaf/commands/ActiveMQCommandSupport.java
index bc3a41c..12c280b 100644
--- a/activemq-karaf/src/main/java/org/apache/activemq/karaf/commands/ActiveMQCommandSupport.java
+++ b/activemq-karaf/src/main/java/org/apache/activemq/karaf/commands/ActiveMQCommandSupport.java
@@ -38,7 +38,7 @@ public class ActiveMQCommandSupport extends OsgiCommandSupport {
     protected Object doExecute() throws Exception {
         CommandContext context2 = new CommandContext();
         context2.setFormatter(new CommandShellOutputFormatter(System.out));
-        Command currentCommand = command.getClass().newInstance();
+        Command currentCommand = command.getClass().getConstructor().newInstance();
 
         try {
             currentCommand.setCommandContext(context2);
diff --git a/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/PropertiesPlaceHolderUtil.java b/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/PropertiesPlaceHolderUtil.java
index 16037c1..bf02f5f 100644
--- a/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/PropertiesPlaceHolderUtil.java
+++ b/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/PropertiesPlaceHolderUtil.java
@@ -137,7 +137,7 @@ public class PropertiesPlaceHolderUtil {
         }
         for (String value : propertiesClazzes) {
             try {
-                Object springBean = getClass().getClassLoader().loadClass(value).newInstance();
+                Object springBean = getClass().getClassLoader().loadClass(value).getConstructor().newInstance();
                 if (springBean instanceof FactoryBean) {
                     // can't access the factory or created properties from spring context so we got to recreate
                     initialProperties.putAll((Properties) FactoryBean.class.getMethod("getObject", (Class<?>[]) null).invoke(springBean));
diff --git a/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/AbstractJmsClientSystem.java b/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/AbstractJmsClientSystem.java
index 58efb99..c9f9058 100644
--- a/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/AbstractJmsClientSystem.java
+++ b/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/AbstractJmsClientSystem.java
@@ -237,7 +237,7 @@ public abstract class AbstractJmsClientSystem extends AbstractObjectProperties {
     protected ConnectionFactory loadJmsFactory(String spiClass, Properties factorySettings) throws JMSException {
         try {
             Class<?> spi = Class.forName(spiClass);
-            SPIConnectionFactory spiFactory = (SPIConnectionFactory)spi.newInstance();
+            SPIConnectionFactory spiFactory = SPIConnectionFactory.class.cast(spi.getConstructor().newInstance());
             ConnectionFactory jmsFactory = spiFactory.createConnectionFactory(factorySettings);
             LOG.info("Created: " + jmsFactory.getClass().getName() + " using SPIConnectionFactory: " + spiFactory.getClass().getName());
             return jmsFactory;
diff --git a/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/spi/ReflectionSPIConnectionFactory.java b/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/spi/ReflectionSPIConnectionFactory.java
index 47a32c4..6d86a20 100644
--- a/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/spi/ReflectionSPIConnectionFactory.java
+++ b/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/spi/ReflectionSPIConnectionFactory.java
@@ -26,7 +26,7 @@ public abstract class ReflectionSPIConnectionFactory extends ClassLoaderSPIConne
 
     public ConnectionFactory instantiateConnectionFactory(Properties settings) throws Exception {
         Class factoryClass = Thread.currentThread().getContextClassLoader().loadClass(getClassName());
-        ConnectionFactory factory = (ConnectionFactory)factoryClass.newInstance();
+        ConnectionFactory factory = ConnectionFactory.class.cast(factoryClass.getConstructor().newInstance());
         configureConnectionFactory(factory, settings);
         return factory;
     }