This is an automated email from the ASF dual-hosted git repository. mbien pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/roller.git
commit 2191f796c648a9422fd355bcdcaf0ae84d1318b0 Author: Michael Bien <[email protected]> AuthorDate: Sat Jul 10 10:22:35 2021 +0200 Class.newInstance() deprecation. --- .../weblogger/business/GuiceWebloggerProvider.java | 27 +++------- .../weblogger/business/WebloggerFactory.java | 5 +- .../business/plugins/PluginManagerImpl.java | 63 +++++++++------------- .../weblogger/business/runnable/TaskRunner.java | 3 +- .../business/runnable/ThreadManagerImpl.java | 5 +- .../roller/weblogger/ui/core/RollerContext.java | 16 +++--- .../ui/core/plugins/UIPluginManagerImpl.java | 4 +- .../weblogger/ui/rendering/RendererManager.java | 14 +++-- .../ui/rendering/filters/RequestMappingFilter.java | 12 ++--- .../weblogger/ui/rendering/model/ModelLoader.java | 18 ++----- .../plugins/comments/CommentValidationManager.java | 18 +++---- .../servlets/CommentAuthenticatorServlet.java | 15 +++--- .../ui/rendering/servlets/CommentServlet.java | 13 ++--- .../roller/weblogger/util/cache/CacheManager.java | 23 ++++---- 14 files changed, 92 insertions(+), 144 deletions(-) diff --git a/app/src/main/java/org/apache/roller/weblogger/business/GuiceWebloggerProvider.java b/app/src/main/java/org/apache/roller/weblogger/business/GuiceWebloggerProvider.java index 63290ba..021ccfb 100644 --- a/app/src/main/java/org/apache/roller/weblogger/business/GuiceWebloggerProvider.java +++ b/app/src/main/java/org/apache/roller/weblogger/business/GuiceWebloggerProvider.java @@ -21,6 +21,7 @@ package org.apache.roller.weblogger.business; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Module; +import java.util.Objects; import org.apache.roller.weblogger.config.WebloggerConfig; @@ -41,22 +42,9 @@ public class GuiceWebloggerProvider implements WebloggerProvider { * configured in WebloggerConfig via 'guice.backend.module' property. */ public GuiceWebloggerProvider() { - - String moduleClassname = WebloggerConfig.getProperty("guice.backend.module"); - if(moduleClassname == null) { - throw new NullPointerException("unable to lookup default guice module via property 'guice.backend.module'"); - } - - try { - Class moduleClass = Class.forName(moduleClassname); - Module module = (Module)moduleClass.newInstance(); - injector = Guice.createInjector(module); - } catch (ThreadDeath t) { - throw t; - } catch (Throwable e) { - // Fatal misconfiguration, cannot recover - throw new RuntimeException("Error instantiating backend module " + moduleClassname + "; exception message: " + e.getMessage(), e); - } + this(Objects.requireNonNull( + WebloggerConfig.getProperty("guice.backend.module"), + "unable to lookup default guice module via property 'guice.backend.module'")); } @@ -67,13 +55,10 @@ public class GuiceWebloggerProvider implements WebloggerProvider { */ public GuiceWebloggerProvider(String moduleClassname) { - if(moduleClassname == null) { - throw new NullPointerException("moduleClassname cannot be null"); - } + Objects.requireNonNull(moduleClassname, "moduleClassname cannot be null"); try { - Class moduleClass = Class.forName(moduleClassname); - Module module = (Module)moduleClass.newInstance(); + Module module = (Module) Class.forName(moduleClassname).getDeclaredConstructor().newInstance(); injector = Guice.createInjector(module); } catch (ThreadDeath t) { throw t; diff --git a/app/src/main/java/org/apache/roller/weblogger/business/WebloggerFactory.java b/app/src/main/java/org/apache/roller/weblogger/business/WebloggerFactory.java index a287b02..12303fe 100644 --- a/app/src/main/java/org/apache/roller/weblogger/business/WebloggerFactory.java +++ b/app/src/main/java/org/apache/roller/weblogger/business/WebloggerFactory.java @@ -84,9 +84,8 @@ public final class WebloggerFactory { String providerClassname = WebloggerConfig.getProperty("weblogger.provider.class"); if(providerClassname != null) { try { - Class providerClass = Class.forName(providerClassname); - defaultProvider = (WebloggerProvider) providerClass.newInstance(); - } catch (Exception ex) { + defaultProvider = (WebloggerProvider) Class.forName(providerClassname).getDeclaredConstructor().newInstance(); + } catch (ReflectiveOperationException ex) { throw new BootstrapException("Error instantiating default provider: " + providerClassname + "; exception message: " + ex.getMessage(), ex); } } else { diff --git a/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java index 37ac7db..2ac1a24 100644 --- a/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java +++ b/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java @@ -29,6 +29,7 @@ import org.apache.roller.weblogger.config.WebloggerConfig; import org.apache.roller.weblogger.pojos.WeblogEntry; import org.apache.roller.weblogger.pojos.Weblog; import org.apache.commons.lang3.StringUtils; +import org.apache.roller.weblogger.WebloggerException; import org.apache.roller.weblogger.business.plugins.comment.WeblogEntryCommentPlugin; import org.apache.roller.weblogger.pojos.WeblogEntryComment; import org.apache.roller.weblogger.util.HTMLSanitizer; @@ -39,13 +40,13 @@ import org.apache.roller.weblogger.util.HTMLSanitizer; */ public class PluginManagerImpl implements PluginManager { - private static Log log = LogFactory.getLog(PluginManagerImpl.class); + private static final Log log = LogFactory.getLog(PluginManagerImpl.class); // Plugin classes keyed by plugin name - static Map<String, Class> mPagePlugins = new LinkedHashMap<>(); + static Map<String, Class<? extends WeblogEntryPlugin>> mPagePlugins = new LinkedHashMap<>(); // Comment plugins - private List<WeblogEntryCommentPlugin> commentPlugins = new ArrayList<>(); + private final List<WeblogEntryCommentPlugin> commentPlugins = new ArrayList<>(); /** @@ -72,13 +73,15 @@ public class PluginManagerImpl implements PluginManager { */ @Override public Map<String, WeblogEntryPlugin> getWeblogEntryPlugins(Weblog website) { + Map<String, WeblogEntryPlugin> ret = new LinkedHashMap<>(); - for (Class pluginClass : PluginManagerImpl.mPagePlugins.values()) { + + for (Class<? extends WeblogEntryPlugin> pluginClass : mPagePlugins.values()) { try { - WeblogEntryPlugin plugin = (WeblogEntryPlugin)pluginClass.newInstance(); + WeblogEntryPlugin plugin = pluginClass.getDeclaredConstructor().newInstance(); plugin.init(website); ret.put(plugin.getName(), plugin); - } catch (Exception e) { + } catch (ReflectiveOperationException | WebloggerException e) { log.error("Unable to init() PagePlugin: ", e); } } @@ -163,19 +166,18 @@ public class PluginManagerImpl implements PluginManager { log.debug("try " + plugin); } try { - Class pluginClass = Class.forName(plugin); - if (isPagePlugin(pluginClass)) { - WeblogEntryPlugin weblogEntryPlugin = (WeblogEntryPlugin)pluginClass.newInstance(); + Class<?> clazz = Class.forName(plugin); + + if (isPagePlugin(clazz)) { + @SuppressWarnings("unchecked") + Class<? extends WeblogEntryPlugin> pluginClass = (Class<? extends WeblogEntryPlugin>)clazz; + WeblogEntryPlugin weblogEntryPlugin = pluginClass.getDeclaredConstructor().newInstance(); mPagePlugins.put(weblogEntryPlugin.getName(), pluginClass); } else { - log.warn(pluginClass + " is not a PagePlugin"); + log.warn(clazz + " is not a PagePlugin"); } - } catch (ClassNotFoundException e) { - log.error("ClassNotFoundException for " + plugin); - } catch (InstantiationException e) { - log.error("InstantiationException for " + plugin); - } catch (IllegalAccessException e) { - log.error("IllegalAccessException for " + plugin); + } catch (ReflectiveOperationException e) { + log.error("unable to create " + plugin); } } } @@ -196,43 +198,28 @@ public class PluginManagerImpl implements PluginManager { log.debug("trying " + plugins[i]); try { - Class pluginClass = Class.forName(plugins[i]); - WeblogEntryCommentPlugin plugin = - (WeblogEntryCommentPlugin) pluginClass.newInstance(); + WeblogEntryCommentPlugin plugin = (WeblogEntryCommentPlugin) Class.forName(plugins[i]).getDeclaredConstructor().newInstance(); // make sure and maintain ordering commentPlugins.add(i, plugin); log.debug("Configured comment plugin: "+plugins[i]); - } catch (ClassCastException e) { - log.error("ClassCastException for " + plugins[i]); - } catch (ClassNotFoundException e) { - log.error("ClassNotFoundException for " + plugins[i]); - } catch (InstantiationException e) { - log.error("InstantiationException for " + plugins[i]); - } catch (IllegalAccessException e) { - log.error("IllegalAccessException for " + plugins[i]); + } catch (ReflectiveOperationException e) { + log.error("unable to create " + plugins[i]); } } } } - - private static boolean isPagePlugin(Class pluginClass) { - Class[] interfaces = pluginClass.getInterfaces(); - if (interfaces != null) { - for (Class clazz : interfaces) { - if (clazz.equals(WeblogEntryPlugin.class)) { - return true; - } - } - } + private static boolean isPagePlugin(Class<?> clazz) { + for (Class<?> inter : clazz.getInterfaces()) + if (inter.equals(WeblogEntryPlugin.class)) + return true; return false; } - @Override public void release() { // no op diff --git a/app/src/main/java/org/apache/roller/weblogger/business/runnable/TaskRunner.java b/app/src/main/java/org/apache/roller/weblogger/business/runnable/TaskRunner.java index f4dd66b..8cd3494 100644 --- a/app/src/main/java/org/apache/roller/weblogger/business/runnable/TaskRunner.java +++ b/app/src/main/java/org/apache/roller/weblogger/business/runnable/TaskRunner.java @@ -57,8 +57,7 @@ public class TaskRunner { Thread.currentThread().setContextClassLoader(cl); // Go! - Class taskClass = cl.loadClass(taskClassName); - Runnable task = (Runnable)taskClass.newInstance(); + Runnable task = (Runnable)Class.forName(taskClassName).getDeclaredConstructor().newInstance(); task.run(); } } diff --git a/app/src/main/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java index 6f3d98b..a0280c1 100644 --- a/app/src/main/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java +++ b/app/src/main/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java @@ -75,8 +75,7 @@ public abstract class ThreadManagerImpl implements ThreadManager { LOG.info("Initializing task: " + taskName); try { - Class taskClass = Class.forName(taskClassName); - RollerTask task = (RollerTask) taskClass.newInstance(); + RollerTask task = (RollerTask) Class.forName(taskClassName).getDeclaredConstructor().newInstance(); task.init(taskName); // make sure there is a tasklock record in the db @@ -102,7 +101,7 @@ public abstract class ThreadManagerImpl implements ThreadManager { LOG.warn("Task does not extend RollerTask class", ex); } catch (WebloggerException ex) { LOG.error("Error scheduling task", ex); - } catch (Exception ex) { + } catch (ReflectiveOperationException ex) { LOG.error("Error instantiating task", ex); } } diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java b/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java index fb5ec25..cc0f749 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java @@ -63,7 +63,7 @@ import org.springframework.web.context.support.WebApplicationContextUtils; public class RollerContext extends ContextLoaderListener implements ServletContextListener { - private static Log log = LogFactory.getLog(RollerContext.class); + private static final Log log = LogFactory.getLog(RollerContext.class); private static ServletContext servletContext = null; private static DelegatingPasswordEncoder encoder; @@ -357,7 +357,7 @@ public class RollerContext extends ContextLoaderListener return null; } - Class clazz; + Class<?> clazz; try { clazz = Class.forName(clazzName); } catch (ClassNotFoundException e) { @@ -365,15 +365,13 @@ public class RollerContext extends ContextLoaderListener return null; } - Class[] interfaces = clazz.getInterfaces(); - for (Class clazz2 : interfaces) { + Class<?>[] interfaces = clazz.getInterfaces(); + for (Class<?> clazz2 : interfaces) { if (clazz2.equals(AutoProvision.class)) { try { - return (AutoProvision) clazz.newInstance(); - } catch (InstantiationException e) { - log.warn("InstantiationException while creating: " + clazzName, e); - } catch (IllegalAccessException e) { - log.warn("IllegalAccessException while creating: " + clazzName, e); + return (AutoProvision) clazz.getDeclaredConstructor().newInstance(); + } catch (ReflectiveOperationException e) { + log.warn("ReflectiveOperationException while creating: " + clazzName, e); } } } diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManagerImpl.java index ffc4f8f..cc5f6cd 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManagerImpl.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManagerImpl.java @@ -100,8 +100,8 @@ public final class UIPluginManagerImpl implements UIPluginManager { log.debug("trying editor " + editorList[i]); try { - Class editorClass = Class.forName(editorList[i]); - WeblogEntryEditor editor = (WeblogEntryEditor) editorClass.newInstance(); + WeblogEntryEditor editor = (WeblogEntryEditor) Class.forName(editorList[i]) + .getDeclaredConstructor().newInstance(); // looks okay, add it to the map this.editors.put(editor.getId(), editor); diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/RendererManager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/RendererManager.java index a86f9d4..4a1defc 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/RendererManager.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/RendererManager.java @@ -36,9 +36,9 @@ import org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository; */ public final class RendererManager { - private static Log log = LogFactory.getLog(RendererManager.class); + private static final Log log = LogFactory.getLog(RendererManager.class); // a set of all renderer factories we are consulting - private static Set<RendererFactory> rendererFactories = new HashSet<>(); + private static final Set<RendererFactory> rendererFactories = new HashSet<>(); static { // lookup set of renderer factories we are going to use @@ -52,13 +52,12 @@ public final class RendererManager { String[] uFactories = userFactories.split(","); for (String uFactory :uFactories) { try { - Class factoryClass = Class.forName(uFactory); - rendererFactory = (RendererFactory) factoryClass.newInstance(); + rendererFactory = (RendererFactory) Class.forName(uFactory).getDeclaredConstructor().newInstance(); rendererFactories.add(rendererFactory); } catch (ClassCastException cce) { log.error("It appears that your factory does not implement " + "the RendererFactory interface", cce); - } catch (Exception e) { + } catch (ReflectiveOperationException e) { log.error("Unable to instantiate renderer factory [" + uFactory + "]", e); } } @@ -71,13 +70,12 @@ public final class RendererManager { String[] rFactories = rollerFactories.split(","); for (String rFactory : rFactories) { try { - Class factoryClass = Class.forName(rFactory); - rendererFactory = (RendererFactory) factoryClass.newInstance(); + rendererFactory = (RendererFactory) Class.forName(rFactory).getDeclaredConstructor().newInstance(); rendererFactories.add(rendererFactory); } catch (ClassCastException cce) { log.error("It appears that your factory does not implement " + "the RendererFactory interface", cce); - } catch (Exception e) { + } catch (ReflectiveOperationException e) { log.error("Unable to instantiate renderer factory [" + rFactory + "]", e); } } diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/filters/RequestMappingFilter.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/filters/RequestMappingFilter.java index fc64b5a..46d828c 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/filters/RequestMappingFilter.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/filters/RequestMappingFilter.java @@ -44,7 +44,7 @@ import org.apache.roller.weblogger.ui.rendering.RequestMapper; */ public class RequestMappingFilter implements Filter { - private static Log log = LogFactory.getLog(RequestMappingFilter.class); + private static final Log log = LogFactory.getLog(RequestMappingFilter.class); // list of RequestMappers that want to inspect the request private final List<RequestMapper> requestMappers = new ArrayList<>(); @@ -62,13 +62,12 @@ public class RequestMappingFilter implements Filter { String[] uMappers = userMappers.split(","); for (String uMapper : uMappers) { try { - Class mapperClass = Class.forName(uMapper); - requestMapper = (RequestMapper) mapperClass.newInstance(); + requestMapper = (RequestMapper) Class.forName(uMapper).getDeclaredConstructor().newInstance(); requestMappers.add(requestMapper); } catch(ClassCastException cce) { log.error("It appears that your mapper does not implement "+ "the RequestMapper interface", cce); - } catch(Exception e) { + } catch(ReflectiveOperationException e) { log.error("Unable to instantiate request mapper ["+uMapper+"]", e); } } @@ -80,13 +79,12 @@ public class RequestMappingFilter implements Filter { String[] rMappers = rollerMappers.split(","); for (String rMapper : rMappers) { try { - Class mapperClass = Class.forName(rMapper); - requestMapper = (RequestMapper) mapperClass.newInstance(); + requestMapper = (RequestMapper) Class.forName(rMapper).getDeclaredConstructor().newInstance(); requestMappers.add(requestMapper); } catch(ClassCastException cce) { log.error("It appears that your mapper does not implement "+ "the RequestMapper interface", cce); - } catch(Exception e) { + } catch(ReflectiveOperationException e) { log.error("Unable to instantiate request mapper ["+rMapper+"]", e); } } diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ModelLoader.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ModelLoader.java index 672ba5d..330d133 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ModelLoader.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ModelLoader.java @@ -30,7 +30,7 @@ import org.apache.roller.weblogger.util.Utilities; */ public class ModelLoader { - private static Log log = LogFactory.getLog(ModelLoader.class); + private static final Log log = LogFactory.getLog(ModelLoader.class); /** * Convenience method to load a comma-separated list of page models. @@ -39,15 +39,13 @@ public class ModelLoader { * the Model instances. */ public static void loadModels(String modelsString, Map<String, Object> modelMap, - Map initData, boolean fail) - throws WebloggerException { + Map initData, boolean fail) throws WebloggerException { String[] models = Utilities.stringToStringArray(modelsString, ","); if (models != null) { for (String model : models) { try { - Class modelClass = Class.forName(model); - Model pageModel = (Model) modelClass.newInstance(); + Model pageModel = (Model) Class.forName(model).getDeclaredConstructor().newInstance(); pageModel.init(initData); modelMap.put(pageModel.getModelName(), pageModel); } catch (WebloggerException re) { @@ -62,18 +60,12 @@ public class ModelLoader { } else { log.warn("Error finding model: " + model); } - } catch (InstantiationException ie) { + } catch (ReflectiveOperationException ex) { if(fail) { - throw new WebloggerException("Error instantiating model: " + model, ie); + throw new WebloggerException("Error instantiating model: " + model, ex); } else { log.warn("Error instantiating model: " + model); } - } catch (IllegalAccessException iae) { - if(fail) { - throw new WebloggerException("Error accessing model: " + model, iae); - } else { - log.warn("Error accessing model: " + model); - } } } } diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentValidationManager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentValidationManager.java index 043801f..162d615 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentValidationManager.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentValidationManager.java @@ -32,8 +32,9 @@ import org.apache.roller.weblogger.util.Utilities; * Responsible for loading validators and using them to validate comments. */ public class CommentValidationManager { - private static Log log = LogFactory.getLog(CommentValidationManager.class); - private List<CommentValidator> validators = new ArrayList<>(); + + private static final Log log = LogFactory.getLog(CommentValidationManager.class); + private final List<CommentValidator> validators = new ArrayList<>(); public CommentValidationManager() { @@ -43,16 +44,11 @@ public class CommentValidationManager { String[] valsarray = Utilities.stringToStringArray(vals, ","); for (String arrayVal : valsarray) { try { - Class valClass = Class.forName(arrayVal); - CommentValidator val = (CommentValidator) valClass.newInstance(); + CommentValidator val = (CommentValidator) Class.forName(arrayVal).getDeclaredConstructor().newInstance(); validators.add(val); - log.info("Configured CommentValidator: " + val.getName() + " / " + valClass.getName()); - } catch (ClassNotFoundException cnfe) { - log.warn("Error finding comment validator: " + arrayVal); - } catch (InstantiationException ie) { - log.warn("Error insantiating comment validator: " + arrayVal); - } catch (IllegalAccessException iae) { - log.warn("Error accessing comment validator: " + arrayVal); + log.info("Configured CommentValidator: " + val.getName() + " / " + val.getClass().getName()); + } catch (ReflectiveOperationException ex) { + log.warn("Error creating comment validator: " + arrayVal, ex); } } diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java index b54836a..860fc93 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java @@ -40,8 +40,7 @@ import org.apache.roller.weblogger.ui.rendering.plugins.comments.DefaultCommentA */ public class CommentAuthenticatorServlet extends HttpServlet { - private static Log mLogger = - LogFactory.getLog(CommentAuthenticatorServlet.class); + private static final Log mLogger = LogFactory.getLog(CommentAuthenticatorServlet.class); private CommentAuthenticator authenticator = null; @@ -78,14 +77,16 @@ public class CommentAuthenticatorServlet extends HttpServlet { // lookup the authenticator we are going to use and instantiate it try { String name = WebloggerConfig.getProperty("comment.authenticator.classname"); + this.authenticator = (CommentAuthenticator) Class.forName(name).getDeclaredConstructor().newInstance(); - Class clazz = Class.forName(name); - this.authenticator = (CommentAuthenticator) clazz.newInstance(); - - } catch(Exception e) { + } catch(ReflectiveOperationException e) { mLogger.error(e); - this.authenticator = new DefaultCommentAuthenticator(); + } finally { + if(authenticator == null) { + this.authenticator = new DefaultCommentAuthenticator(); + } } + } diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java index da50356..8be89ad 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java @@ -91,13 +91,14 @@ public class CommentServlet extends HttpServlet { // lookup the authenticator we are going to use and instantiate it try { - String name = WebloggerConfig - .getProperty("comment.authenticator.classname"); - Class clazz = Class.forName(name); - this.authenticator = (CommentAuthenticator) clazz.newInstance(); - } catch (Exception e) { + String name = WebloggerConfig.getProperty("comment.authenticator.classname"); + this.authenticator = (CommentAuthenticator) Class.forName(name).getDeclaredConstructor().newInstance(); + } catch (ReflectiveOperationException e) { log.error(e); - this.authenticator = new DefaultCommentAuthenticator(); + } finally { + if(this.authenticator == null) { + this.authenticator = new DefaultCommentAuthenticator(); + } } // instantiate a comment validation manager for comment spam checking diff --git a/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java b/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java index 15a7490..23b4d1b 100644 --- a/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java +++ b/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java @@ -50,7 +50,7 @@ import org.apache.roller.weblogger.pojos.Weblog; */ public final class CacheManager { - private static Log log = LogFactory.getLog(CacheManager.class); + private final static Log log = LogFactory.getLog(CacheManager.class); private static final String DEFAULT_FACTORY = "org.apache.roller.weblogger.util.cache.ExpiringLRUCacheFactoryImpl"; @@ -71,12 +71,11 @@ public final class CacheManager { // use reflection to instantiate our factory class try { - Class factoryClass = Class.forName(classname); - cacheFactory = (CacheFactory) factoryClass.newInstance(); + cacheFactory = (CacheFactory) Class.forName(classname).getDeclaredConstructor().newInstance(); } catch(ClassCastException cce) { log.error("It appears that your factory does not implement "+ "the CacheFactory interface",cce); - } catch(Exception e) { + } catch(ReflectiveOperationException e) { log.error("Unable to instantiate cache factory ["+classname+"]"+ " falling back on default", e); } @@ -85,9 +84,8 @@ public final class CacheManager { try { // hmm ... failed to load the specified cache factory // lets try our default - Class factoryClass = Class.forName(DEFAULT_FACTORY); - cacheFactory = (CacheFactory) factoryClass.newInstance(); - } catch(Exception e) { + cacheFactory = (CacheFactory) Class.forName(DEFAULT_FACTORY).getDeclaredConstructor().newInstance(); + } catch(ReflectiveOperationException e) { log.fatal("Failed to instantiate a cache factory", e); throw new RuntimeException(e); } @@ -105,15 +103,13 @@ public final class CacheManager { for (String cHandler : cHandlers) { // use reflection to instantiate the handler class try { - Class handlerClass = Class.forName(cHandler); - CacheHandler customHandler = - (CacheHandler) handlerClass.newInstance(); + CacheHandler customHandler = (CacheHandler) Class.forName(cHandler).getDeclaredConstructor().newInstance(); cacheHandlers.add(customHandler); } catch(ClassCastException cce) { log.error("It appears that your handler does not implement "+ "the CacheHandler interface",cce); - } catch(Exception e) { + } catch(ReflectiveOperationException e) { log.error("Unable to instantiate cache handler ["+cHandler+"]", e); } } @@ -155,15 +151,14 @@ public final class CacheManager { try { // use reflection to instantiate the factory class - Class factoryClass = Class.forName(classname); - CacheFactory factory = (CacheFactory) factoryClass.newInstance(); + CacheFactory factory = (CacheFactory) Class.forName(classname).getDeclaredConstructor().newInstance(); // now ask for a new cache cache = factory.constructCache(properties); } catch(ClassCastException cce) { log.error("It appears that your factory ["+classname+ "] does not implement the CacheFactory interface",cce); - } catch(Exception e) { + } catch(ReflectiveOperationException e) { log.error("Unable to instantiate cache factory ["+classname+ "] falling back on default", e); }
