From 76b02ff56a91c8d947ed95f5b7917e50e5cead9c Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 20 Apr 2022 21:42:09 +1200 Subject: [PATCH] Tidy internals, use cls.getDeclaredConstructor().newInstance(); --- ebean-api/src/main/java/io/ebean/event/ClassUtil.java | 6 +----- .../io/ebeaninternal/server/core/bootup/BootupClasses.java | 2 +- .../server/deploy/BeanDescriptorElementEmbedded.java | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/event/ClassUtil.java b/ebean-api/src/main/java/io/ebean/event/ClassUtil.java index 6f8173d21..72cea3955 100644 --- a/ebean-api/src/main/java/io/ebean/event/ClassUtil.java +++ b/ebean-api/src/main/java/io/ebean/event/ClassUtil.java @@ -10,10 +10,9 @@ class ClassUtil { * Return a new instance of the class using the default constructor. */ static Object newInstance(String className) { - try { Class cls = forName(className); - return cls.newInstance(); + return cls.getDeclaredConstructor().newInstance(); } catch (Exception e) { String msg = "Error constructing " + className; throw new IllegalArgumentException(msg, e); @@ -27,7 +26,6 @@ class ClassUtil { return new ClassLoadContext().forName(name); } - /** * Helper to wrap the context and caller classLoaders (to use/try both). */ @@ -48,7 +46,6 @@ class ClassUtil { } public Class forName(String name) throws ClassNotFoundException { - try { return Class.forName(name, true, contextLoader); } catch (ClassNotFoundException e) { @@ -59,7 +56,6 @@ class ClassUtil { } } } - } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java index 491739c13..3fc4bbb95 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java @@ -91,7 +91,7 @@ public class BootupClasses implements Predicate> { public void runServerConfigStartup(DatabaseConfig config) { for (Class cls : serverConfigStartupCandidates) { try { - ServerConfigStartup newInstance = (ServerConfigStartup) cls.newInstance(); + ServerConfigStartup newInstance = (ServerConfigStartup) cls.getDeclaredConstructor().newInstance(); newInstance.onStart(config); } catch (Exception e) { // assume that the desired behavior is to fail - add your own try catch if needed diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementEmbedded.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementEmbedded.java index 70f6eb85c..71d79b9dc 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementEmbedded.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementEmbedded.java @@ -22,7 +22,7 @@ class BeanDescriptorElementEmbedded extends BeanDescriptorElement { BeanDescriptorElementEmbedded(BeanDescriptorMap owner, DeployBeanDescriptor deploy, ElementHelp elementHelp) { super(owner, deploy, elementHelp); try { - this.prototype = (EntityBean) beanType.newInstance(); + this.prototype = (EntityBean) beanType.getDeclaredConstructor().newInstance(); } catch (Exception e) { throw new IllegalStateException("Unable to create entity bean prototype for "+beanType); }