You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by mb...@apache.org on 2021/08/08 21:50:37 UTC

[roller] branch master updated (e18726f -> 637cf3a)

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

mbien pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/roller.git.


    from e18726f  CSS fixes for media files and maintenance page.
     new 2191f79  Class.newInstance() deprecation.
     new a7237f9  struts2: refactored deprecated ParameterAware to HttpParametersAware.
     new 3faedb2  MethodOrderer.Alphanumeric is deprecated, use MethodOrder.MethodName instead.
     new 499b02f  UrlValidator package changed.
     new ef19603  removed unused commons collections dependency.
     new 6577ba2  ui package: compiler warning fixes combined with collection improvements.
     new 625a309  pojos: compiler warning fixes combined with collection improvements.
     new 97e8dd2  misc: compiler warning fixes combined with collection improvements.
     new 7a0c86f  Pojo wrapper stream refactoring + warning fixes.
     new 5fe8291  URLStrategy: better StringBuilder sizing, generics and collection improvements.
     new 7d07a84  Cache: type compiler warning fixes and collection improvements.
     new ba2a6ce  Pagers: type compiler warning fixes and collection improvements.
     new 5d0279b  Models: refactoring and compiler warning fixes.
     new 6753646  fixed remaining rawtype warnings in atomprotocol and xmlrpc packages.
     new 5a675ae  Extracted common reflection code into new Reflection util.
     new 4a41c06  close input stream + use InputStream.transferTo().
     new c4b405b  cleanup + unused code removal.
     new 1bc342c  final set of rawtype warning fixes.
     new 637cf3a  Dependency updates, roller runs now on JDK 17 (and 11).

The 19 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 app/pom.xml                                        |  21 ++--
 .../planet/business/fetcher/RomeFeedFetcher.java   |   2 +-
 .../planet/business/jpa/JPAPlanetManagerImpl.java  |   2 +-
 .../roller/planet/pojos/SubscriptionEntry.java     |   8 +-
 .../roller/planet/tasks/StaticPlanetModel.java     |   3 +-
 .../planet/util/rome/ContentModuleGenerator.java   |  18 +---
 .../roller/planet/util/rome/ContentModuleImpl.java |   2 +-
 .../org/apache/roller/util/PropertyExpander.java   |   4 +-
 .../weblogger/business/AbstractURLStrategy.java    |  49 ++++-----
 .../weblogger/business/GuiceWebloggerProvider.java |  28 ++---
 .../weblogger/business/MultiWeblogURLStrategy.java |  71 ++++++-------
 .../weblogger/business/PreviewURLStrategy.java     |  57 +++++-----
 .../weblogger/business/PropertiesManager.java      |   2 +-
 .../roller/weblogger/business/URLStrategy.java     |   6 +-
 .../weblogger/business/WeblogEntryManager.java     |   3 +-
 .../weblogger/business/WebloggerFactory.java       |   6 +-
 .../roller/weblogger/business/WebloggerImpl.java   |   5 +-
 .../business/jpa/JPAMediaFileManagerImpl.java      |   4 +-
 .../business/jpa/JPAPersistenceStrategy.java       |  11 +-
 .../business/jpa/JPAPropertiesManagerImpl.java     |   4 +-
 .../weblogger/business/jpa/JPAUserManagerImpl.java |   6 +-
 .../business/jpa/JPAWeblogEntryManagerImpl.java    |  30 +++---
 .../business/jpa/JPAWeblogManagerImpl.java         |   8 +-
 .../business/pings/WeblogUpdatePinger.java         |   6 +-
 .../weblogger/business/plugins/PluginManager.java  |   2 +-
 .../business/plugins/PluginManagerImpl.java        | 106 +++++++------------
 .../plugins/entry/ConvertLineBreaksPlugin.java     |   4 +-
 .../plugins/entry/ObfuscateEmailPlugin.java        |   2 +-
 .../business/plugins/entry/SmileysPlugin.java      |  14 +--
 .../business/runnable/ContinuousWorkerThread.java  |   2 +-
 .../weblogger/business/runnable/RollerTask.java    |   4 +-
 .../weblogger/business/runnable/TaskRunner.java    |   4 +-
 .../business/runnable/ThreadManagerImpl.java       |   8 +-
 .../business/themes/ThemeManagerImpl.java          |  15 +--
 .../roller/weblogger/config/WebloggerConfig.java   |   8 +-
 .../planet/business/WebloggerRomeFeedFetcher.java  |   3 +-
 .../roller/weblogger/planet/ui/PlanetConfig.java   |  20 ++--
 .../apache/roller/weblogger/pojos/MediaFile.java   |  14 +--
 .../org/apache/roller/weblogger/pojos/Weblog.java  |  34 +++---
 .../apache/roller/weblogger/pojos/WeblogEntry.java |  32 +++---
 .../pojos/WeblogEntryWrapperComparator.java        |   8 +-
 .../roller/weblogger/pojos/WeblogPermission.java   |   9 +-
 .../roller/weblogger/pojos/WeblogTemplate.java     |   9 +-
 .../pojos/wrapper/WeblogBookmarkFolderWrapper.java |  12 +--
 .../pojos/wrapper/WeblogCategoryWrapper.java       |  25 +----
 .../pojos/wrapper/WeblogEntryWrapper.java          | 115 +++++----------------
 .../weblogger/pojos/wrapper/WeblogWrapper.java     |  92 +++++------------
 .../roller/weblogger/ui/core/RollerContext.java    |  20 ++--
 .../weblogger/ui/core/plugins/UIPluginManager.java |   2 +-
 .../ui/core/plugins/UIPluginManagerImpl.java       |  51 ++++-----
 .../ui/core/security/CustomUserRegistry.java       |   2 +-
 .../core/tags/calendar/BigWeblogCalendarModel.java |   8 +-
 .../ui/core/tags/calendar/WeblogCalendarModel.java |  14 +--
 .../weblogger/ui/rendering/RendererManager.java    |  66 ++++--------
 .../ui/rendering/filters/RequestMappingFilter.java |  56 +++-------
 .../ui/rendering/model/CalendarModel.java          |   4 +-
 .../weblogger/ui/rendering/model/ConfigModel.java  |   2 +-
 .../weblogger/ui/rendering/model/FeedModel.java    |  39 +++----
 .../weblogger/ui/rendering/model/MenuModel.java    |   4 +-
 .../weblogger/ui/rendering/model/MessageModel.java |   4 +-
 .../roller/weblogger/ui/rendering/model/Model.java |   2 +-
 .../weblogger/ui/rendering/model/ModelLoader.java  |  19 ++--
 .../weblogger/ui/rendering/model/PageModel.java    |  17 +--
 .../weblogger/ui/rendering/model/PlanetModel.java  |  13 ++-
 .../ui/rendering/model/PreviewPageModel.java       |   2 +-
 .../ui/rendering/model/PreviewURLModel.java        |   2 +-
 .../ui/rendering/model/SearchResultsFeedModel.java |  15 +--
 .../ui/rendering/model/SearchResultsModel.java     |  15 ++-
 .../weblogger/ui/rendering/model/SiteModel.java    |  77 +++++++-------
 .../weblogger/ui/rendering/model/URLModel.java     |  12 +--
 .../ui/rendering/model/UtilitiesModel.java         |  47 +--------
 .../ui/rendering/pagers/AbstractPager.java         |  14 +--
 .../pagers/AbstractWeblogEntriesPager.java         |  51 ++++-----
 .../ui/rendering/pagers/CommentsPager.java         |   4 +-
 .../ui/rendering/pagers/MediaFilesPager.java       |   4 +-
 .../weblogger/ui/rendering/pagers/Pager.java       |   4 +-
 .../ui/rendering/pagers/PlanetEntriesPager.java    |   4 +-
 .../rendering/pagers/SearchResultsFeedPager.java   |  23 +++--
 .../ui/rendering/pagers/SearchResultsPager.java    |  28 ++---
 .../weblogger/ui/rendering/pagers/UsersPager.java  |  17 +--
 .../ui/rendering/pagers/WeblogEntriesDayPager.java |   4 +-
 .../rendering/pagers/WeblogEntriesLatestPager.java |   4 +-
 .../rendering/pagers/WeblogEntriesListPager.java   |   4 +-
 .../rendering/pagers/WeblogEntriesMonthPager.java  |   4 +-
 .../ui/rendering/pagers/WeblogEntriesPager.java    |   5 +-
 .../pagers/WeblogEntriesPermalinkPager.java        |  15 +--
 .../pagers/WeblogEntriesPreviewPager.java          |  12 +--
 .../ui/rendering/pagers/WeblogsPager.java          |  13 +--
 .../plugins/comments/CommentValidationManager.java |  33 ++----
 .../servlets/CommentAuthenticatorServlet.java      |  16 +--
 .../ui/rendering/servlets/CommentServlet.java      |  49 ++++-----
 .../rendering/servlets/PreviewResourceServlet.java |  24 ++---
 .../ui/rendering/servlets/PreviewServlet.java      |   6 +-
 .../ui/rendering/servlets/ResourceServlet.java     |  23 ++---
 .../ui/rendering/servlets/SearchServlet.java       |   4 +-
 .../ui/rendering/util/WeblogFeedRequest.java       |   6 +-
 .../ui/rendering/util/WeblogPageRequest.java       |  15 +--
 .../ui/rendering/util/cache/PlanetCache.java       |   6 +-
 .../ui/rendering/util/cache/SaltCache.java         |  12 +--
 .../ui/rendering/util/cache/SiteWideCache.java     |  21 ++--
 .../rendering/util/cache/WeblogCacheWarmupJob.java |   5 +-
 .../ui/rendering/util/cache/WeblogFeedCache.java   |  20 ++--
 .../ui/rendering/util/cache/WeblogPageCache.java   |  22 ++--
 .../rendering/velocity/WebappResourceLoader.java   |   5 +-
 .../weblogger/ui/struts2/admin/CacheInfo.java      |   9 +-
 .../ui/struts2/admin/GlobalCommentManagement.java  |   4 +-
 .../weblogger/ui/struts2/admin/GlobalConfig.java   |  25 ++---
 .../ui/struts2/ajax/ThemeDataServlet.java          |   4 +-
 .../weblogger/ui/struts2/core/CreateWeblog.java    |   5 +-
 .../weblogger/ui/struts2/editor/EntryEdit.java     |   8 +-
 .../weblogger/ui/struts2/editor/MediaFileAdd.java  |   9 +-
 .../weblogger/ui/struts2/editor/Members.java       |  24 ++---
 .../roller/weblogger/ui/struts2/editor/Pings.java  |   8 +-
 .../weblogger/ui/struts2/editor/WeblogConfig.java  |  33 +++---
 .../roller/weblogger/ui/struts2/util/UIAction.java |  56 +++++-----
 .../roller/weblogger/ui/struts2/util/UIUtils.java  |  27 ++---
 .../roller/weblogger/util/Bannedwordslist.java     |  15 ++-
 .../roller/weblogger/util/HTMLSanitizer.java       |  23 ++---
 .../apache/roller/weblogger/util/I18nMessages.java |  14 +--
 .../apache/roller/weblogger/util/LRUCache2.java    |   2 +-
 .../roller/weblogger/util/LinkbackExtractor.java   |   2 +-
 .../org/apache/roller/weblogger/util/MailUtil.java |  10 +-
 .../roller/weblogger/util/PasswordUtility.java     |   4 +-
 .../apache/roller/weblogger/util/Reflection.java   |  79 ++++++++++++++
 .../roller/weblogger/util/RollerMessages.java      |   8 +-
 .../util/StandaloneWebappClassLoader.java          |  18 +---
 .../apache/roller/weblogger/util/Trackback.java    |  10 +-
 .../apache/roller/weblogger/util/URLUtilities.java |   8 +-
 .../roller/weblogger/util/cache/CacheFactory.java  |   2 +-
 .../roller/weblogger/util/cache/CacheManager.java  |  57 ++++------
 .../weblogger/util/cache/ExpiringCacheEntry.java   |  13 +--
 .../util/cache/ExpiringLRUCacheFactoryImpl.java    |   8 +-
 .../weblogger/util/cache/LRUCacheFactoryImpl.java  |   6 +-
 .../roller/weblogger/util/cache/LRUCacheImpl.java  |   8 +-
 .../util/cache/LazyExpiringCacheEntry.java         |   4 +-
 .../atomprotocol/CommentCollection.java            |  49 ---------
 .../webservices/atomprotocol/EntryCollection.java  |   2 +-
 .../webservices/atomprotocol/MediaCollection.java  |  18 ++--
 .../atomprotocol/RollerAtomService.java            |   6 +-
 .../webservices/tagdata/TagDataServlet.java        |   4 +-
 .../webservices/xmlrpc/BloggerAPIHandler.java      |  10 +-
 .../webservices/xmlrpc/MetaWeblogAPIHandler.java   |  30 +++---
 .../roller/planet/business/PropertiesTest.java     |  10 +-
 .../business/SubscriptionFunctionalTests.java      |   2 +-
 .../weblogger/business/FileContentManagerTest.java |  36 +++----
 .../roller/weblogger/business/PingsTest.java       |   2 +-
 .../roller/weblogger/business/PropertiesTest.java  |  10 +-
 .../roller/weblogger/business/WeblogStatsTest.java |   2 +-
 pom.xml                                            |  11 +-
 149 files changed, 1063 insertions(+), 1500 deletions(-)
 create mode 100644 app/src/main/java/org/apache/roller/weblogger/util/Reflection.java
 delete mode 100644 app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/CommentCollection.java

[roller] 15/19: Extracted common reflection code into new Reflection util.

Posted by mb...@apache.org.
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 5a675ae518c1eb693e7198c6bded776a55369dc0
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Sat Jul 10 10:23:23 2021 +0200

    Extracted common reflection code into new Reflection util.
---
 .../weblogger/business/GuiceWebloggerProvider.java |  3 +-
 .../weblogger/business/WebloggerFactory.java       |  3 +-
 .../business/plugins/PluginManagerImpl.java        | 63 ++++++-----------
 .../weblogger/business/runnable/TaskRunner.java    |  3 +-
 .../business/runnable/ThreadManagerImpl.java       |  3 +-
 .../roller/weblogger/ui/core/RollerContext.java    | 14 ++--
 .../ui/core/plugins/UIPluginManagerImpl.java       | 32 +++------
 .../weblogger/ui/rendering/RendererManager.java    | 62 ++++++-----------
 .../ui/rendering/filters/RequestMappingFilter.java | 52 ++++----------
 .../weblogger/ui/rendering/model/ModelLoader.java  |  3 +-
 .../plugins/comments/CommentValidationManager.java | 23 ++-----
 .../servlets/CommentAuthenticatorServlet.java      |  3 +-
 .../ui/rendering/servlets/CommentServlet.java      |  3 +-
 .../apache/roller/weblogger/util/Reflection.java   | 79 ++++++++++++++++++++++
 .../roller/weblogger/util/cache/CacheManager.java  | 42 +++++-------
 15 files changed, 185 insertions(+), 203 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 021ccfb..f48f86a 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
@@ -23,6 +23,7 @@ import com.google.inject.Injector;
 import com.google.inject.Module;
 import java.util.Objects;
 import org.apache.roller.weblogger.config.WebloggerConfig;
+import org.apache.roller.weblogger.util.Reflection;
 
 
 /**
@@ -58,7 +59,7 @@ public class GuiceWebloggerProvider implements WebloggerProvider {
         Objects.requireNonNull(moduleClassname, "moduleClassname cannot be null");
         
         try {
-            Module module = (Module) Class.forName(moduleClassname).getDeclaredConstructor().newInstance();
+            Module module = (Module) Reflection.newInstance(moduleClassname);
             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 12303fe..6e1f4cb 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
@@ -22,6 +22,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.business.startup.WebloggerStartup;
 import org.apache.roller.weblogger.config.WebloggerConfig;
+import org.apache.roller.weblogger.util.Reflection;
 
 
 /**
@@ -84,7 +85,7 @@ public final class WebloggerFactory {
         String providerClassname = WebloggerConfig.getProperty("weblogger.provider.class");
         if(providerClassname != null) {
             try {
-                defaultProvider = (WebloggerProvider) Class.forName(providerClassname).getDeclaredConstructor().newInstance();
+                defaultProvider = (WebloggerProvider) Reflection.newInstance(providerClassname);
             } catch (ReflectiveOperationException ex) {
                 throw new BootstrapException("Error instantiating default provider: " + providerClassname + "; exception message: " + ex.getMessage(), ex);
             }
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 7f6dc2a..27c77e9 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
@@ -23,6 +23,7 @@ import org.apache.roller.weblogger.business.plugins.entry.WeblogEntryPlugin;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.config.WebloggerConfig;
@@ -33,6 +34,7 @@ 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;
+import org.apache.roller.weblogger.util.Reflection;
 
 
 /**
@@ -43,7 +45,7 @@ public class PluginManagerImpl implements PluginManager {
     private static final Log log = LogFactory.getLog(PluginManagerImpl.class);
     
     // Plugin classes keyed by plugin name
-    static Map<String, Class<? extends WeblogEntryPlugin>> mPagePlugins = new LinkedHashMap<>();
+    private static final Map<String, Class<? extends WeblogEntryPlugin>> mPagePlugins = new LinkedHashMap<>();
     
     // Comment plugins
     private final List<WeblogEntryCommentPlugin> commentPlugins = new ArrayList<>();
@@ -78,7 +80,7 @@ public class PluginManagerImpl implements PluginManager {
         
         for (Class<? extends WeblogEntryPlugin> pluginClass : mPagePlugins.values()) {
             try {
-                WeblogEntryPlugin plugin = pluginClass.getDeclaredConstructor().newInstance();
+                WeblogEntryPlugin plugin = Reflection.newInstance(pluginClass);
                 plugin.init(website);
                 ret.put(plugin.getName(), plugin);
             } catch (ReflectiveOperationException | WebloggerException e) {
@@ -92,17 +94,14 @@ public class PluginManagerImpl implements PluginManager {
     public String applyWeblogEntryPlugins(Map<String, WeblogEntryPlugin> pagePlugins, WeblogEntry entry, String str) {
 
         String ret = str;
-        WeblogEntry copy = new WeblogEntry(entry);
-        List<String> entryPlugins = copy.getPluginsList();
+        List<String> plugins = entry.getPluginsList();
 
-        if (entryPlugins != null) {
-            for (String key : entryPlugins) {
-                WeblogEntryPlugin pagePlugin = pagePlugins.get(key);
-                if (pagePlugin != null) {
-                    ret = pagePlugin.render(entry, ret);
-                } else {
-                    log.error("ERROR: plugin not found: " + key);
-                }
+        for (String key : plugins) {
+            WeblogEntryPlugin pagePlugin = pagePlugins.get(key);
+            if (pagePlugin != null) {
+                ret = pagePlugin.render(entry, ret);
+            } else {
+                log.warn("plugin not found: " + key);
             }
         }
 
@@ -159,8 +158,7 @@ public class PluginManagerImpl implements PluginManager {
             log.debug(pluginStr);
         }
         if (pluginStr != null) {
-            String[] plugins = StringUtils.stripAll(
-                    StringUtils.split(pluginStr, ",") );
+            String[] plugins = StringUtils.stripAll(StringUtils.split(pluginStr, ","));
             for (String plugin : plugins) {
                 if (log.isDebugEnabled()) {
                     log.debug("try " + plugin);
@@ -168,10 +166,10 @@ public class PluginManagerImpl implements PluginManager {
                 try {
                     Class<?> clazz = Class.forName(plugin);
                     
-                    if (isPagePlugin(clazz)) {
+                    if (Reflection.implementsInterface(clazz, WeblogEntryPlugin.class)) {
                         @SuppressWarnings("unchecked")
                         Class<? extends WeblogEntryPlugin> pluginClass = (Class<? extends WeblogEntryPlugin>)clazz;
-                        WeblogEntryPlugin weblogEntryPlugin = pluginClass.getDeclaredConstructor().newInstance();
+                        WeblogEntryPlugin weblogEntryPlugin = Reflection.newInstance(pluginClass);
                         mPagePlugins.put(weblogEntryPlugin.getName(), pluginClass);
                     } else {
                         log.warn(clazz + " is not a PagePlugin");
@@ -189,35 +187,14 @@ public class PluginManagerImpl implements PluginManager {
      */
     private void loadCommentPlugins() {
         
-        log.debug("Initializing comment plugins");
-        
-        String pluginStr = WebloggerConfig.getProperty("comment.formatter.classnames");
-        if (pluginStr != null) {
-            String[] plugins = StringUtils.stripAll(StringUtils.split(pluginStr, ","));
-            for (int i=0; i < plugins.length; i++) {
-                log.debug("trying " + plugins[i]);
-                
-                try {
-                    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 (ReflectiveOperationException e) {
-                    log.error("unable to create " + plugins[i]);
-                }
-            }
+        try {
+            commentPlugins.addAll(Reflection.newInstancesFromProperty("comment.formatter.classnames"));
+        } catch (ReflectiveOperationException e) {
+            log.error("unable to create comment plugins", e);
         }
         
-    }
-    
-    private static boolean isPagePlugin(Class<?> clazz) {
-        for (Class<?> inter : clazz.getInterfaces())
-            if (inter.equals(WeblogEntryPlugin.class))
-                return true;
-        return false;
+        log.info("Configured comment plugins");
+        log.info(commentPlugins.stream().map(t -> t.getClass().toString()).collect(Collectors.joining(",", "[", "]")));
     }
     
     @Override
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 8cd3494..27c614a 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
@@ -18,6 +18,7 @@
 package org.apache.roller.weblogger.business.runnable;
         
 import java.io.File;
+import org.apache.roller.weblogger.util.Reflection;
 import org.apache.roller.weblogger.util.StandaloneWebappClassLoader;
 
 /**
@@ -57,7 +58,7 @@ public class TaskRunner {
         Thread.currentThread().setContextClassLoader(cl);
 
         // Go!
-        Runnable task = (Runnable)Class.forName(taskClassName).getDeclaredConstructor().newInstance();
+        Runnable task = (Runnable) Reflection.newInstance(taskClassName);
         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 c515bed..15ec908 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
@@ -34,6 +34,7 @@ import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.InitializationException;
 import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.pojos.TaskLock;
+import org.apache.roller.weblogger.util.Reflection;
 
 import static org.apache.roller.util.RollerConstants.GRACEFUL_SHUTDOWN_WAIT_IN_MILLISECONDS;
 import static org.apache.roller.util.RollerConstants.GRACEFUL_SHUTDOWN_WAIT_IN_SECONDS;
@@ -75,7 +76,7 @@ public abstract class ThreadManagerImpl implements ThreadManager {
                 LOG.info("Initializing task: " + taskName);
                 
                 try {
-                    RollerTask task = (RollerTask) Class.forName(taskClassName).getDeclaredConstructor().newInstance();
+                    RollerTask task = (RollerTask) Reflection.newInstance(taskClassName);
                     task.init(taskName);
                     
                     // make sure there is a tasklock record in the db
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 cc0f749..2979fcf 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
@@ -45,6 +45,7 @@ import org.apache.roller.weblogger.business.startup.WebloggerStartup;
 import org.apache.roller.weblogger.ui.core.plugins.UIPluginManager;
 import org.apache.roller.weblogger.ui.core.plugins.UIPluginManagerImpl;
 import org.apache.roller.weblogger.ui.core.security.AutoProvision;
+import org.apache.roller.weblogger.util.Reflection;
 import org.apache.roller.weblogger.util.cache.CacheManager;
 import org.apache.velocity.runtime.RuntimeSingleton;
 import org.springframework.beans.factory.NoSuchBeanDefinitionException;
@@ -365,14 +366,11 @@ public class RollerContext extends ContextLoaderListener
             return null;
         }
 
-        Class<?>[] interfaces = clazz.getInterfaces();
-        for (Class<?> clazz2 : interfaces) {
-            if (clazz2.equals(AutoProvision.class)) {
-                try {
-                    return (AutoProvision) clazz.getDeclaredConstructor().newInstance();
-                } catch (ReflectiveOperationException e) {
-                    log.warn("ReflectiveOperationException while creating: " + clazzName, e);
-                }
+        if (Reflection.implementsInterface(clazz, AutoProvision.class)) {
+            try {
+                return (AutoProvision) Reflection.newInstance(clazz);
+            } catch (ReflectiveOperationException e) {
+                log.warn("ReflectiveOperationException while creating: " + clazzName, e);
             }
         }
         return null;
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 51f96c3..07fd5e2 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
@@ -25,7 +25,7 @@ import java.util.Map;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.config.WebloggerConfig;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.roller.weblogger.util.Reflection;
 
 
 /**
@@ -91,28 +91,14 @@ public final class UIPluginManagerImpl implements UIPluginManager {
         
         log.debug("Initializing entry editor plugins");
         
-        String editorStr = WebloggerConfig.getProperty("plugins.weblogEntryEditors");
-        if (editorStr != null) {
-            
-            String[] editorList = StringUtils.stripAll(StringUtils.split(editorStr, ","));
-            for (int i=0; i < editorList.length; i++) {
-                
-                log.debug("trying editor " + editorList[i]);
-                
-                try {
-                    WeblogEntryEditor editor = (WeblogEntryEditor) Class.forName(editorList[i])
-                            .getDeclaredConstructor().newInstance();
-                    
-                    // looks okay, add it to the map
-                    this.editors.put(editor.getId(), editor);
-                    
-                } catch(ClassCastException cce) {
-                    log.error("It appears that your editor does not implement "+
-                            "the WeblogEntryEditor interface", cce);
-                } catch(Exception e) {
-                    log.error("Unable to instantiate editor ["+editorList[i]+"]", e);
-                }
-            }
+        try {
+            Reflection.<WeblogEntryEditor>newInstancesFromProperty("plugins.weblogEntryEditors")
+                    .forEach(editor -> this.editors.put(editor.getId(), editor));
+        } catch(ClassCastException cce) {
+            log.error("It appears that your editor does not implement "+
+                    "the WeblogEntryEditor interface", cce);
+        } catch(Exception e) {
+            log.error("Unable to instantiate editors", e);
         }
         
         if(this.editors.isEmpty()) {
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 4a1defc..6769714 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
@@ -17,14 +17,15 @@
  */
 package org.apache.roller.weblogger.ui.rendering;
 
+import java.util.ArrayList;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.pojos.Template;
 
-import java.util.HashSet;
-import java.util.Set;
+import java.util.List;
+import java.util.stream.Collectors;
 import org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository;
+import org.apache.roller.weblogger.util.Reflection;
 
 /**
  * Returns Renderer for Template via configured RendererFactories.
@@ -37,48 +38,22 @@ import org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository;
 public final class RendererManager {
 
     private static final Log log = LogFactory.getLog(RendererManager.class);
+    
     // a set of all renderer factories we are consulting
-    private static final Set<RendererFactory> rendererFactories = new HashSet<>();
+    private static final List<RendererFactory> rendererFactories = new ArrayList<>();
 
     static {
+        
         // lookup set of renderer factories we are going to use
-        String rollerFactories = WebloggerConfig.getProperty("rendering.rollerRendererFactories");
-        String userFactories = WebloggerConfig.getProperty("rendering.userRendererFactories");
-
-        // instantiate user defined renderer factory classes
-        if (userFactories != null && !userFactories.isBlank()) {
-
-            RendererFactory rendererFactory;
-            String[] uFactories = userFactories.split(",");
-            for (String uFactory :uFactories) {
-                try {
-                    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 (ReflectiveOperationException e) {
-                    log.error("Unable to instantiate renderer factory [" + uFactory + "]", e);
-                }
-            }
+        try {
+            rendererFactories.addAll(Reflection.newInstancesFromProperty("rendering.userRendererFactories"));
+        } catch (ReflectiveOperationException ex) {
+            log.error("Unable to create user rendering factories", ex);
         }
-
-        // instantiate roller standard renderer factory classes
-        if (rollerFactories != null && !rollerFactories.isBlank()) {
-
-            RendererFactory rendererFactory;
-            String[] rFactories = rollerFactories.split(",");
-            for (String rFactory : rFactories) {
-                try {
-                    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 (ReflectiveOperationException e) {
-                    log.error("Unable to instantiate renderer factory [" + rFactory + "]", e);
-                }
-            }
+        try {
+            rendererFactories.addAll(Reflection.newInstancesFromProperty("rendering.rollerRendererFactories"));
+        } catch (ReflectiveOperationException ex) {
+            log.error("Unable to create roller rendering factories", ex);
         }
 
         if (rendererFactories.isEmpty()) {
@@ -87,7 +62,9 @@ public final class RendererManager {
                     + "Rendering probably won't function as you expect.");
         }
 
-        log.info("Renderer Manager Initialized.");
+        log.info("Renderer Manager Initialized, "+ rendererFactories.size()+" factories configured.");
+        log.info(rendererFactories.stream().map(t -> t.getClass().toString()).collect(Collectors.joining(",", "[", "]")));
+        
     }
 
     // this class is non-instantiable
@@ -115,7 +92,6 @@ public final class RendererManager {
             }
         }
 
-        throw new RenderingException("No renderer found for template "
-                + template.getId() + "!");
+        throw new RenderingException("No renderer found for template " + template.getId() + "!");
     }
 }
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 46d828c..4c56fb9 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
@@ -21,6 +21,7 @@ package org.apache.roller.weblogger.ui.rendering.filters;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
@@ -31,8 +32,8 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.ui.rendering.RequestMapper;
+import org.apache.roller.weblogger.util.Reflection;
 
 /**
  * Provides generalized request mapping capabilities.
@@ -52,42 +53,16 @@ public class RequestMappingFilter implements Filter {
     @Override
     public void init(FilterConfig filterConfig) {
         
-        // lookup set of request mappers we are going to use
-        String rollerMappers = WebloggerConfig.getProperty("rendering.rollerRequestMappers");
-        String userMappers = WebloggerConfig.getProperty("rendering.userRequestMappers");
-        
-        // instantiate user defined request mapper classes
-        if(userMappers != null && !userMappers.isBlank()) {
-            RequestMapper requestMapper;
-            String[] uMappers = userMappers.split(",");
-            for (String uMapper : uMappers) {
-                try {
-                    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(ReflectiveOperationException e) {
-                    log.error("Unable to instantiate request mapper ["+uMapper+"]", e);
-                }
-            }
+        // instantiate user defined and standard roller request mapper classes
+        try {
+            requestMappers.addAll(Reflection.newInstancesFromProperty("rendering.userRequestMappers"));
+        } catch (ReflectiveOperationException ex) {
+            log.error("Unable to load user request mappers", ex);
         }
-        
-        // instantiate roller standard request mapper classes
-        if(rollerMappers != null && !rollerMappers.isBlank()) {
-            RequestMapper requestMapper;
-            String[] rMappers = rollerMappers.split(",");
-            for (String rMapper : rMappers) {
-                try {
-                    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(ReflectiveOperationException e) {
-                    log.error("Unable to instantiate request mapper ["+rMapper+"]", e);
-                }
-            }
+        try {
+            requestMappers.addAll(Reflection.newInstancesFromProperty("rendering.rollerRequestMappers"));
+        } catch (ReflectiveOperationException ex) {
+            log.error("Unable to load roller request mappers", ex);
         }
         
         if(requestMappers.isEmpty()) {
@@ -96,8 +71,9 @@ public class RequestMappingFilter implements Filter {
                     "Weblog urls probably won't function as you expect.");
         }
         
-        log.info("Request mapping filter initialized, "+requestMappers.size()+
-                " mappers configured.");
+        log.info("Request mapping filter initialized, "+requestMappers.size()+" mappers configured.");
+        log.info(requestMappers.stream().map(t -> t.getClass().toString()).collect(Collectors.joining(",", "[", "]")));
+        
     }
     
     
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 1a2e9cf..01404fb 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
@@ -22,6 +22,7 @@ import java.util.Map;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.util.Reflection;
 import org.apache.roller.weblogger.util.Utilities;
 
 
@@ -45,7 +46,7 @@ public class ModelLoader {
         if (models != null) {
             for (String model : models) {
                 try {
-                    Model pageModel = (Model) Class.forName(model).getDeclaredConstructor().newInstance();
+                    Model pageModel = (Model) Reflection.newInstance(model);
                     pageModel.init(initData);
                     modelMap.put(pageModel.getModelName(), pageModel);
                 } catch (WebloggerException re) {
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 162d615..f09580b 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
@@ -20,13 +20,13 @@ package org.apache.roller.weblogger.ui.rendering.plugins.comments;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.util.RollerConstants;
-import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.pojos.WeblogEntryComment;
+import org.apache.roller.weblogger.util.Reflection;
 import org.apache.roller.weblogger.util.RollerMessages;
-import org.apache.roller.weblogger.util.Utilities;
 
 /**
  * Responsible for loading validators and using them to validate comments.
@@ -40,22 +40,13 @@ public class CommentValidationManager {
         
         // instantiate the validators that are configured
         try {
-            String vals = WebloggerConfig.getProperty("comment.validator.classnames");
-            String[] valsarray = Utilities.stringToStringArray(vals, ",");
-            for (String arrayVal : valsarray) {
-                try {
-                    CommentValidator val = (CommentValidator) Class.forName(arrayVal).getDeclaredConstructor().newInstance();
-                    validators.add(val);
-                    log.info("Configured CommentValidator: " + val.getName() + " / " + val.getClass().getName());
-                } catch (ReflectiveOperationException ex) {
-                    log.warn("Error creating comment validator: " + arrayVal, ex);
-                }
-            }
-                        
-        } catch (Exception e) {
-            log.error("Error instantiating comment validators");
+            validators.addAll(Reflection.newInstancesFromProperty("comment.validator.classnames"));
+        } catch (ReflectiveOperationException ex) {
+            log.error("Error instantiating comment validators", ex);
         }
+        
         log.info("Configured " + validators.size() + " CommentValidators");
+        log.info(validators.stream().map(t -> t.getClass().toString()).collect(Collectors.joining(",", "[", "]")));
     }
     
     /**
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 860fc93..b808050 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
@@ -30,6 +30,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.ui.rendering.plugins.comments.CommentAuthenticator;
 import org.apache.roller.weblogger.ui.rendering.plugins.comments.DefaultCommentAuthenticator;
+import org.apache.roller.weblogger.util.Reflection;
 
 
 /**
@@ -77,7 +78,7 @@ 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();
+            this.authenticator = (CommentAuthenticator) Reflection.newInstance(name);
             
         } catch(ReflectiveOperationException e) {
             mLogger.error(e);
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 fbb6263..ed27db1 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
@@ -53,6 +53,7 @@ import org.apache.roller.weblogger.util.GenericThrottle;
 import org.apache.roller.weblogger.util.IPBanList;
 import org.apache.roller.weblogger.util.MailUtil;
 import org.apache.roller.weblogger.util.I18nMessages;
+import org.apache.roller.weblogger.util.Reflection;
 import org.apache.roller.weblogger.util.RollerMessages;
 import org.apache.roller.weblogger.util.RollerMessages.RollerMessage;
 import org.apache.roller.weblogger.util.URLUtilities;
@@ -92,7 +93,7 @@ public class CommentServlet 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();
+            this.authenticator = (CommentAuthenticator) Reflection.newInstance(name);
         } catch (ReflectiveOperationException e) {
             log.error(e);
         } finally {
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/Reflection.java b/app/src/main/java/org/apache/roller/weblogger/util/Reflection.java
new file mode 100644
index 0000000..92b1364
--- /dev/null
+++ b/app/src/main/java/org/apache/roller/weblogger/util/Reflection.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.util;
+
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import org.apache.roller.weblogger.config.WebloggerConfig;
+
+/**
+ * Utility methods for common reflection tasks.
+ */
+public final class Reflection {
+
+    private Reflection() {}
+    
+        
+    public static Object newInstance(String className) throws ReflectiveOperationException {
+        return newInstance(Class.forName(className));
+    }
+    
+    public static <T> T newInstance(Class<T> clazz) throws ReflectiveOperationException {
+        Constructor<T> constructor = clazz.getDeclaredConstructor();
+        constructor.setAccessible(true);
+        return constructor.newInstance();
+    }
+        
+    public static <T> List<T> newInstances(String[] classList) throws ReflectiveOperationException {
+        
+        List<T> instances = new ArrayList<>();
+            
+        for (String klass : classList) {
+            @SuppressWarnings("unchecked")
+            T instance = (T) Reflection.newInstance(klass);  // throws CCE if instance dos not match T
+            instances.add(instance);
+        }
+        
+        return instances;
+    }
+    
+    public static <T> List<T> newInstancesFromProperty(String property) throws ReflectiveOperationException {
+        
+        String classList = WebloggerConfig.getProperty(property);
+        
+        if (classList != null && !classList.isBlank()) {
+            return newInstances(classList.split(","));
+        }
+        
+        return Collections.emptyList();
+    }
+    
+    /**
+     * Returns true if the given class directly implements the given interface.
+     */
+    public static boolean implementsInterface(Class<?> clazz, Class<?> interfaze) {
+        for (Class<?> inter : clazz.getInterfaces())
+            if (inter.equals(interfaze))
+                return true;
+        return false;
+    }
+    
+}
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 9b44a30..3b6c0a7 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
@@ -33,6 +33,7 @@ import org.apache.roller.weblogger.pojos.WeblogCategory;
 import org.apache.roller.weblogger.pojos.WeblogEntry;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
 import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.util.Reflection;
 
 
 /**
@@ -50,19 +51,19 @@ import org.apache.roller.weblogger.pojos.Weblog;
  */
 public final class CacheManager {
     
-    private final static Log log = LogFactory.getLog(CacheManager.class);
+    private static final Log log = LogFactory.getLog(CacheManager.class);
     
     private static final String DEFAULT_FACTORY = 
             "org.apache.roller.weblogger.util.cache.ExpiringLRUCacheFactoryImpl";
     
     // a reference to the cache factory in use
-    private static CacheFactory cacheFactory = null;
+    private static final CacheFactory cacheFactory;
     
     // a set of all registered cache handlers
-    private static Set<CacheHandler> cacheHandlers = new HashSet<>();
+    private static final Set<CacheHandler> cacheHandlers = new HashSet<>();
     
     // a map of all registered caches
-    private static Map<String, Cache> caches = new HashMap<>();
+    private static final Map<String, Cache> caches = new HashMap<>();
     
     
     static {
@@ -70,8 +71,9 @@ public final class CacheManager {
         String classname = WebloggerConfig.getProperty("cache.defaultFactory");
         
         // use reflection to instantiate our factory class
+        CacheFactory factory = null;
         try {
-            cacheFactory = (CacheFactory) Class.forName(classname).getDeclaredConstructor().newInstance();
+            factory = (CacheFactory) Reflection.newInstance(classname);
         } catch(ClassCastException cce) {
             log.error("It appears that your factory does not implement "+
                     "the CacheFactory interface",cce);
@@ -80,39 +82,29 @@ public final class CacheManager {
                     " falling back on default", e);
         }
         
-        if(cacheFactory == null) {
+        if(factory == null) {
             try {
                 // hmm ... failed to load the specified cache factory
                 // lets try our default
-                cacheFactory = (CacheFactory) Class.forName(DEFAULT_FACTORY).getDeclaredConstructor().newInstance();
+                factory = (CacheFactory) Reflection.newInstance(DEFAULT_FACTORY);
             } catch(ReflectiveOperationException e) {
                 log.fatal("Failed to instantiate a cache factory", e);
                 throw new RuntimeException(e);
             }
         }
+        cacheFactory = factory;
         
         log.info("Cache Manager Initialized.");
         log.info("Cache Factory = "+cacheFactory.getClass().getName());
         
         
         // add custom handlers
-        String customHandlers = WebloggerConfig.getProperty("cache.customHandlers");
-        if(customHandlers != null && !customHandlers.isBlank()) {
-            
-            String[] cHandlers = customHandlers.split(",");
-            for (String cHandler : cHandlers) {
-                // use reflection to instantiate the handler class
-                try {
-                    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(ReflectiveOperationException e) {
-                    log.error("Unable to instantiate cache handler ["+cHandler+"]", e);
-                }
-            }
+        try {
+            cacheHandlers.addAll(Reflection.newInstancesFromProperty("cache.customHandlers"));
+        } catch(ClassCastException cce) {
+            log.error("It appears that at least one custom handler does not implement the CacheHandler interface", cce);
+        } catch(ReflectiveOperationException e) {
+            log.error("Unable to instantiate custom cache handlers", e);
         }
     }
     
@@ -151,7 +143,7 @@ public final class CacheManager {
             
             try {
                 // use reflection to instantiate the factory class
-                CacheFactory factory = (CacheFactory) Class.forName(classname).getDeclaredConstructor().newInstance();
+                CacheFactory factory = (CacheFactory) Reflection.newInstance(classname);
                 
                 // now ask for a new cache
                 cache = factory.constructCache(properties);

[roller] 17/19: cleanup + unused code removal.

Posted by mb...@apache.org.
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 c4b405bd5ee44bbfdba1acea8bf3327193e04ffe
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 03:42:52 2021 +0200

    cleanup + unused code removal.
---
 .../roller/weblogger/business/WebloggerImpl.java   |  5 +--
 .../plugins/entry/ConvertLineBreaksPlugin.java     |  4 +-
 .../plugins/entry/ObfuscateEmailPlugin.java        |  2 +-
 .../business/plugins/entry/SmileysPlugin.java      | 14 +++----
 .../ui/rendering/model/UtilitiesModel.java         | 43 -------------------
 .../util/StandaloneWebappClassLoader.java          | 12 +-----
 .../atomprotocol/CommentCollection.java            | 49 ----------------------
 7 files changed, 13 insertions(+), 116 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/business/WebloggerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/WebloggerImpl.java
index de70600..4dcb1b5 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/WebloggerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/WebloggerImpl.java
@@ -31,10 +31,7 @@ import org.apache.roller.weblogger.business.runnable.ThreadManager;
 import org.apache.roller.weblogger.business.search.IndexManager;
 import org.apache.roller.weblogger.business.themes.ThemeManager;
 import org.apache.roller.weblogger.config.PingConfig;
-import org.apache.roller.weblogger.config.WebloggerConfig;
-import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
 import org.apache.xmlrpc.util.SAXParsers;
-import org.springframework.security.access.method.P;
 import org.xml.sax.SAXNotRecognizedException;
 import org.xml.sax.SAXNotSupportedException;
 
@@ -54,7 +51,7 @@ import java.util.Properties;
 @com.google.inject.Singleton
 public abstract class WebloggerImpl implements Weblogger {
     
-    private static Log log = LogFactory.getLog(WebloggerImpl.class);
+    private static final Log log = LogFactory.getLog(WebloggerImpl.class);
     
     // managers
     private final AutoPingManager      autoPingManager;
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ConvertLineBreaksPlugin.java b/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ConvertLineBreaksPlugin.java
index b592309..eed268a 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ConvertLineBreaksPlugin.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ConvertLineBreaksPlugin.java
@@ -43,7 +43,7 @@ import org.apache.roller.weblogger.pojos.Weblog;
  */
 public class ConvertLineBreaksPlugin implements WeblogEntryPlugin {
     
-    private static Log mLogger = LogFactory.getLog(ConvertLineBreaksPlugin.class);
+    private static final Log mLogger = LogFactory.getLog(ConvertLineBreaksPlugin.class);
     
     private static final String NAME = "Convert Line Breaks";
     private static final String DESCRIPTION = "Convert plain text paragraphs to html by adding p and br tags";
@@ -96,7 +96,7 @@ public class ConvertLineBreaksPlugin implements WeblogEntryPlugin {
         try {
             BufferedReader br = new BufferedReader(new StringReader(str));
             
-            String line = null;
+            String line;
             boolean insidePara = false;
             while((line = br.readLine()) != null) {
                 
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java b/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java
index a674de7..9b5195e 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java
@@ -32,7 +32,7 @@ import org.apache.roller.util.RegexUtil;
  */
 public class ObfuscateEmailPlugin implements WeblogEntryPlugin {
     
-    private static Log mLogger = LogFactory.getLog(ObfuscateEmailPlugin.class);
+    private static final Log mLogger = LogFactory.getLog(ObfuscateEmailPlugin.class);
     
     protected String name = "Email Scrambler";
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java b/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java
index 97bb5b8..2b4acd2 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java
@@ -35,15 +35,15 @@ import org.apache.roller.weblogger.pojos.Weblog;
  */
 public class SmileysPlugin implements WeblogEntryPlugin {
     
-    private static Log log = LogFactory.getLog(SmileysPlugin.class);
+    private static final Log log = LogFactory.getLog(SmileysPlugin.class);
 
     // public for tests
     public static Pattern[] smileyPatterns = new Pattern[0];
     static String[] imageTags = new String[0];
-    private static Properties smileyDefs = new Properties();
+    private static final Properties smileyDefs = new Properties();
     
-    private String name = "Emoticons";
-    private String description = "Change ASCII emoticons to graphics.  " +
+    private final String name = "Emoticons";
+    private final String description = "Change ASCII emoticons to graphics.  " +
             ":-) becomes <img src='./images/smileys/smile.gif'>";
     
     
@@ -88,7 +88,7 @@ public class SmileysPlugin implements WeblogEntryPlugin {
             String[] tempS = new String[SmileysPlugin.smileyDefs.size()];
             log.debug("# smileys: " + smileyDefs.size());
             int count = 0;
-            Enumeration enum1 = SmileysPlugin.smileyDefs.propertyNames();
+            Enumeration<?> enum1 = SmileysPlugin.smileyDefs.propertyNames();
             while(enum1.hasMoreElements()) {
                 String smiley = (String)enum1.nextElement();
                 String smileyAlt = htmlEscape(smiley);
@@ -113,7 +113,7 @@ public class SmileysPlugin implements WeblogEntryPlugin {
      */
     @Override
     public String render(WeblogEntry entry, String text) {
-        Matcher matcher = null;
+        Matcher matcher;
         for (int i=0; i<smileyPatterns.length; i++) {
             matcher = smileyPatterns[i].matcher(text);
             text = matcher.replaceAll(imageTags[i]);
@@ -150,7 +150,7 @@ public class SmileysPlugin implements WeblogEntryPlugin {
      * @param smiley
      * @return
      */
-    private static char[] escape_regex = new char[]
+    private static final char[] escape_regex = new char[]
     {'-', '(', ')', '\\', '|', ':', '^', '$', '*', '+', '?',
      '{', '}', '!', '=', '<', '>', '&', '[', ']' };
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
index 3c3af9a..a27a4a3 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
@@ -47,49 +47,6 @@ public class UtilitiesModel implements Model {
     
     private static final Log log = LogFactory.getLog(UtilitiesModel.class);
     
-    private static Pattern mLinkPattern =
-            Pattern.compile("<a href=.*?>", Pattern.CASE_INSENSITIVE);    
-    private static final Pattern OPENING_B_TAG_PATTERN = 
-            Pattern.compile("&lt;b&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern CLOSING_B_TAG_PATTERN = 
-            Pattern.compile("&lt;/b&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern OPENING_I_TAG_PATTERN = 
-            Pattern.compile("&lt;i&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern CLOSING_I_TAG_PATTERN = 
-            Pattern.compile("&lt;/i&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern OPENING_BLOCKQUOTE_TAG_PATTERN = 
-            Pattern.compile("&lt;blockquote&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern CLOSING_BLOCKQUOTE_TAG_PATTERN = 
-            Pattern.compile("&lt;/blockquote&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern BR_TAG_PATTERN = 
-            Pattern.compile("&lt;br */*&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern OPENING_P_TAG_PATTERN = 
-            Pattern.compile("&lt;p&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern CLOSING_P_TAG_PATTERN = 
-            Pattern.compile("&lt;/p&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern OPENING_PRE_TAG_PATTERN = 
-            Pattern.compile("&lt;pre&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern CLOSING_PRE_TAG_PATTERN = 
-            Pattern.compile("&lt;/pre&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern OPENING_UL_TAG_PATTERN = 
-            Pattern.compile("&lt;ul&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern CLOSING_UL_TAG_PATTERN = 
-            Pattern.compile("&lt;/ul&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern OPENING_OL_TAG_PATTERN = 
-            Pattern.compile("&lt;ol&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern CLOSING_OL_TAG_PATTERN = 
-            Pattern.compile("&lt;/ol&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern OPENING_LI_TAG_PATTERN = 
-            Pattern.compile("&lt;li&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern CLOSING_LI_TAG_PATTERN = 
-            Pattern.compile("&lt;/li&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern CLOSING_A_TAG_PATTERN = 
-            Pattern.compile("&lt;/a&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern OPENING_A_TAG_PATTERN = 
-            Pattern.compile("&lt;a href=.*?&gt;", Pattern.CASE_INSENSITIVE);
-    private static final Pattern QUOTE_PATTERN = 
-            Pattern.compile("&quot;", Pattern.CASE_INSENSITIVE);
-    
     private ParsedRequest parsedRequest = null;
     private Weblog weblog = null;
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/StandaloneWebappClassLoader.java b/app/src/main/java/org/apache/roller/weblogger/util/StandaloneWebappClassLoader.java
index cb6004f..008ca12 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/StandaloneWebappClassLoader.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/StandaloneWebappClassLoader.java
@@ -22,7 +22,6 @@
 package org.apache.roller.weblogger.util;
 
 import java.io.File;
-import java.io.FilenameFilter;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
@@ -66,15 +65,8 @@ public class StandaloneWebappClassLoader extends URLClassLoader {
     
     private static void addURLs(String dirPath, List<URL> urlList) throws Exception {
         File libDir = new File(dirPath);
-        String[] libJarNames = libDir.list(new FilenameFilter() {
-            @Override
-            public boolean accept(File dir, String pathname) {
-                if (pathname.endsWith(".jar")) {
-                    return true;
-                }
-                return false;
-            }
-        });       
+        String[] libJarNames = libDir.list((File dir, String pathname) -> pathname.endsWith(".jar") );
+        
         for (int i=0; i<libJarNames.length; i++) {
             String url = "file://" + dirPath + FS + libJarNames[i];
             urlList.add(new URL(url));
diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/CommentCollection.java b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/CommentCollection.java
deleted file mode 100644
index 3d2f597..0000000
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/CommentCollection.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- *  Use is subject to license terms.
- * 
- *  Licensed under the Apache License, Version 2.0 (the "License"); you
- *  may not use this file except in compliance with the License. You may
- *  obtain a copy of the License at
- * 
- *       http://www.apache.org/licenses/LICENSE-2.0
- * 
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-package org.apache.roller.weblogger.webservices.atomprotocol;
-
-import com.rometools.propono.atom.server.AtomException;
-import com.rometools.propono.atom.server.AtomRequest;
-import com.rometools.rome.feed.atom.Feed;
-import java.util.Map.Entry;
-
-
-/**
- * Collection of weblog entry comments.
- * @author davidm.johnson@sun.com
- */
-public class CommentCollection {
-    
-    public String postEntry(AtomRequest areq, Entry entry) throws AtomException {
-        return null;
-    }
-    
-    public Entry getEntry(AtomRequest areq) throws AtomException {
-        return null;
-    }
-    
-    public Feed getCollection(AtomRequest areg) throws AtomException {
-        return null;
-    }
-    
-    public void putEntry(AtomRequest areq, Entry entry) throws AtomException {
-    }
-    
-    public void deleteEntry(AtomRequest areq) throws AtomException {
-    }
-}
\ No newline at end of file

[roller] 13/19: Models: refactoring and compiler warning fixes.

Posted by mb...@apache.org.
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 5d0279b5bb63955923953cb9a70dda81f9f3a3ae
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 03:52:32 2021 +0200

    Models: refactoring and compiler warning fixes.
---
 .../ui/rendering/model/CalendarModel.java          |  4 +-
 .../weblogger/ui/rendering/model/ConfigModel.java  |  2 +-
 .../weblogger/ui/rendering/model/FeedModel.java    | 39 ++++++-----
 .../weblogger/ui/rendering/model/MenuModel.java    |  4 +-
 .../weblogger/ui/rendering/model/MessageModel.java |  4 +-
 .../roller/weblogger/ui/rendering/model/Model.java |  2 +-
 .../weblogger/ui/rendering/model/ModelLoader.java  |  2 +-
 .../weblogger/ui/rendering/model/PageModel.java    | 17 ++---
 .../weblogger/ui/rendering/model/PlanetModel.java  | 13 ++--
 .../ui/rendering/model/PreviewPageModel.java       |  2 +-
 .../ui/rendering/model/PreviewURLModel.java        |  2 +-
 .../ui/rendering/model/SearchResultsFeedModel.java | 15 +++--
 .../ui/rendering/model/SearchResultsModel.java     | 15 ++---
 .../weblogger/ui/rendering/model/SiteModel.java    | 77 ++++++++++------------
 .../weblogger/ui/rendering/model/URLModel.java     | 12 ++--
 .../ui/rendering/model/UtilitiesModel.java         |  4 +-
 .../apache/roller/weblogger/util/I18nMessages.java | 14 ++--
 17 files changed, 113 insertions(+), 115 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/CalendarModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/CalendarModel.java
index 67746cb..dfb778e 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/CalendarModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/CalendarModel.java
@@ -38,7 +38,7 @@ import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
  */
 public class CalendarModel implements Model {
     
-    private static Log log = LogFactory.getLog(CalendarModel.class);
+    private static final Log log = LogFactory.getLog(CalendarModel.class);
     
     private PageContext pageContext = null;
     private WeblogPageRequest pageRequest = null;
@@ -53,7 +53,7 @@ public class CalendarModel implements Model {
     
     /** Init page model based on request */
     @Override
-    public void init(Map initData) throws WebloggerException {
+    public void init(Map<String, Object> initData) throws WebloggerException {
         
         // extract page context
         this.pageContext = (PageContext) initData.get("pageContext");
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ConfigModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ConfigModel.java
index 0c1e946..fb86421 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ConfigModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ConfigModel.java
@@ -38,7 +38,7 @@ public class ConfigModel implements Model {
     
     /** Init model */
     @Override
-    public void init(Map map) throws WebloggerException {
+    public void init(Map<String, Object> map) throws WebloggerException {
         // no-op
     }
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/FeedModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/FeedModel.java
index ec9abda..aa179fc 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/FeedModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/FeedModel.java
@@ -25,7 +25,10 @@ import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.URLStrategy;
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
+import org.apache.roller.weblogger.pojos.MediaFile;
 import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryCommentWrapper;
+import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
 import org.apache.roller.weblogger.pojos.wrapper.WeblogWrapper;
 import org.apache.roller.weblogger.ui.rendering.pagers.CommentsPager;
 import org.apache.roller.weblogger.ui.rendering.pagers.MediaFilesPager;
@@ -41,7 +44,7 @@ import org.apache.roller.weblogger.util.URLUtilities;
  */
 public class FeedModel implements Model {
     
-    private static int DEFAULT_ENTRIES = WebloggerRuntimeConfig.getIntProperty("site.newsfeeds.defaultEntries");
+    private static final int DEFAULT_ENTRIES = WebloggerRuntimeConfig.getIntProperty("site.newsfeeds.defaultEntries");
     
     private WeblogFeedRequest feedRequest = null;
     private URLStrategy urlStrategy = null;
@@ -49,7 +52,7 @@ public class FeedModel implements Model {
     
     
     @Override
-    public void init(Map initData) throws WebloggerException {
+    public void init(Map<String, Object> initData) throws WebloggerException {
         
         // we expect the init data to contain a weblogRequest object
         WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
@@ -119,7 +122,7 @@ public class FeedModel implements Model {
      * Gets most recent entries limited by: weblog and category specified in 
      * request plus the weblog.entryDisplayCount.
      */
-    public Pager getWeblogEntriesPager() {
+    public Pager<WeblogEntryWrapper> getWeblogEntriesPager() {
         return new FeedEntriesPager(feedRequest);        
     }
     
@@ -128,7 +131,7 @@ public class FeedModel implements Model {
      * Gets most recent comments limited by: weblog specified in request and 
      * the weblog.entryDisplayCount.
      */
-    public Pager getCommentsPager() {
+    public Pager<WeblogEntryCommentWrapper> getCommentsPager() {
         return new FeedCommentsPager(feedRequest);
     }    
         
@@ -136,7 +139,7 @@ public class FeedModel implements Model {
      * Gets most recently uploaded media files limited by: weblog specified 
      * in request and the weblog.entryDisplayCount.
      */
-    public Pager getMediaFilesPager() {
+    public Pager<MediaFile> getMediaFilesPager() {
         return new FeedFilesPager(feedRequest);
     }    
         
@@ -144,13 +147,13 @@ public class FeedModel implements Model {
      * Returns the list of tags specified in the request /?tags=foo+bar
      * @return
      */
-    public List getTags() {
+    public List<String> getTags() {
         return feedRequest.getTags();
     }    
 
     public class FeedEntriesPager extends WeblogEntriesListPager {
         
-        private WeblogFeedRequest feedRequest;
+        private final WeblogFeedRequest feedRequest;
         
         public FeedEntriesPager(WeblogFeedRequest feedRequest) {
             super(urlStrategy, urlStrategy.getWeblogFeedURL(feedRequest.getWeblog(), 
@@ -162,8 +165,8 @@ public class FeedModel implements Model {
         }
         
         @Override
-        protected String createURL(String url, Map params) {
-            List tags = feedRequest.getTags();
+        protected String createURL(String url, Map<String, String> params) {
+            List<String> tags = feedRequest.getTags();
             if(tags != null && !tags.isEmpty()) {
                 params.put("tags", URLUtilities.getEncodedTagsString(tags));
             }
@@ -179,13 +182,13 @@ public class FeedModel implements Model {
         
         @Override
         public String getUrl() {
-            return createURL(super.getUrl(), new HashMap());
+            return createURL(super.getUrl(), new HashMap<>());
         }
     }
     
     public class FeedCommentsPager extends CommentsPager {
         
-        private WeblogFeedRequest feedRequest;
+        private final WeblogFeedRequest feedRequest;
         
         public FeedCommentsPager(WeblogFeedRequest feedRequest) {            
             super(urlStrategy, urlStrategy.getWeblogFeedURL(feedRequest.getWeblog(), 
@@ -196,8 +199,8 @@ public class FeedModel implements Model {
         }
         
         @Override
-        protected String createURL(String url, Map params) {
-            List tags = feedRequest.getTags();
+        protected String createURL(String url, Map<String, String> params) {
+            List<String> tags = feedRequest.getTags();
             if(tags != null && !tags.isEmpty()) {
                 params.put("tags", URLUtilities.getEncodedTagsString(tags));
             }
@@ -213,13 +216,13 @@ public class FeedModel implements Model {
         
         @Override
         public String getUrl() {
-            return createURL(super.getUrl(), new HashMap());
+            return createURL(super.getUrl(), new HashMap<>());
         }
     }      
 
     public class FeedFilesPager extends MediaFilesPager {
         
-        private WeblogFeedRequest feedRequest;
+        private final WeblogFeedRequest feedRequest;
         
         public FeedFilesPager(WeblogFeedRequest feedRequest) {            
             super(urlStrategy, urlStrategy.getWeblogFeedURL(feedRequest.getWeblog(), 
@@ -230,8 +233,8 @@ public class FeedModel implements Model {
         }
         
         @Override
-        protected String createURL(String url, Map params) {
-            List tags = feedRequest.getTags();
+        protected String createURL(String url, Map<String, String> params) {
+            List<String> tags = feedRequest.getTags();
             if(tags != null && !tags.isEmpty()) {
                 params.put("tags", URLUtilities.getEncodedTagsString(tags));
             }
@@ -247,7 +250,7 @@ public class FeedModel implements Model {
         
         @Override
         public String getUrl() {
-            return createURL(super.getUrl(), new HashMap());
+            return createURL(super.getUrl(), new HashMap<>());
         }
     }      
 }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/MenuModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/MenuModel.java
index 81b383f..4867135 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/MenuModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/MenuModel.java
@@ -38,7 +38,7 @@ import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
  */
 public class MenuModel implements Model {
     
-    private static Log logger = LogFactory.getLog(MenuModel.class);
+    private static final Log logger = LogFactory.getLog(MenuModel.class);
     
     private WeblogPageRequest pageRequest = null;
     
@@ -52,7 +52,7 @@ public class MenuModel implements Model {
     
     /** Init page model based on request */
     @Override
-    public void init(Map initData) throws WebloggerException {
+    public void init(Map<String, Object> initData) throws WebloggerException {
         
         // we expect the init data to contain a weblogRequest object
         WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/MessageModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/MessageModel.java
index 2899c32..5936301 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/MessageModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/MessageModel.java
@@ -43,7 +43,7 @@ public class MessageModel implements Model {
     
     /** Init page model based on request */
     @Override
-    public void init(Map initData) throws WebloggerException {
+    public void init(Map<String, Object> initData) throws WebloggerException {
         
         // we expect the init data to contain a weblogRequest object
         WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
@@ -63,7 +63,7 @@ public class MessageModel implements Model {
     
     
     /** Return parameterized message string */
-    public String get(String key, List args) {
+    public String get(String key, List<Object> args) {
         return messages.getString(key, args);
     }
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/Model.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/Model.java
index 01d8d60..dc90c96 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/Model.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/Model.java
@@ -36,6 +36,6 @@ public interface Model {
     /**
      * Initialize.
      */
-    void init(Map params) throws WebloggerException;
+    void init(Map<String, Object> params) throws WebloggerException;
     
 }
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 330d133..1a2e9cf 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
@@ -39,7 +39,7 @@ public class ModelLoader {
      * the Model instances.
      */
     public static void loadModels(String modelsString, Map<String, Object> modelMap,
-            Map initData, boolean fail) throws WebloggerException {
+            Map<String, Object> initData, boolean fail) throws WebloggerException {
         
         String[] models = Utilities.stringToStringArray(modelsString, ",");
         if (models != null) {
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java
index 5df4c71..77100e1 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java
@@ -48,12 +48,12 @@ import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
  */
 public class PageModel implements Model {
     
-    private static Log log = LogFactory.getLog(PageModel.class);
+    private static final Log log = LogFactory.getLog(PageModel.class);
     
     private WeblogPageRequest pageRequest = null;
     private URLStrategy urlStrategy = null;
     private WeblogEntryCommentForm commentForm = null;
-    private Map requestParameters = null;
+    private Map<String, String[]> requestParameters = null;
     private Weblog weblog = null;
     private DeviceType deviceType = null;
     
@@ -79,7 +79,8 @@ public class PageModel implements Model {
      * Init page model based on request. 
      */
     @Override
-    public void init(Map initData) throws WebloggerException {
+    @SuppressWarnings("unchecked")
+    public void init(Map<String, Object> initData) throws WebloggerException {
         
         // we expect the init data to contain a weblogRequest object
         WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
@@ -100,7 +101,7 @@ public class PageModel implements Model {
         this.commentForm = (WeblogEntryCommentForm) initData.get("commentForm");
         
         // custom request parameters
-        this.requestParameters = (Map)initData.get("requestParameters");
+        this.requestParameters = (Map<String, String[]>) initData.get("requestParameters");
         
         // look for url strategy
         urlStrategy = (URLStrategy) initData.get("urlStrategy");
@@ -191,7 +192,7 @@ public class PageModel implements Model {
     /**
      * Returns the list of tags specified in the request /tags/foo+bar
      */
-    public List getTags() {
+    public List<String> getTags() {
         return pageRequest.getTags();
     }
     
@@ -245,9 +246,9 @@ public class PageModel implements Model {
             cat = catArgument;
         }
         
-        List tags = pageRequest.getTags();
+        List<String> tags = pageRequest.getTags();
         if (tagArgument != null && !StringUtils.isEmpty(tagArgument) && !"nil".equals(tagArgument)) {
-            tags = new ArrayList();
+            tags = new ArrayList<>();
             tags.add(tagArgument);
         }
         
@@ -321,7 +322,7 @@ public class PageModel implements Model {
      */
     public String getRequestParameter(String paramName) {
         if (requestParameters != null) {
-            String[] values = (String[])requestParameters.get(paramName);
+            String[] values = requestParameters.get(paramName);
             if (values != null && values.length > 0) {
                 return values[0];
             }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
index bd97ae1..cd3740c 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
@@ -34,7 +34,6 @@ import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
 import org.apache.roller.weblogger.pojos.Weblog;
-import org.apache.roller.weblogger.ui.rendering.pagers.Pager;
 import org.apache.roller.weblogger.ui.rendering.pagers.PlanetEntriesPager;
 import org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest;
 import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
@@ -46,7 +45,7 @@ public class PlanetModel implements Model {
     
     public static final String DEFAULT_PLANET_HANDLE = "default";   
     
-    private static Log log = LogFactory.getLog(PlanetModel.class);
+    private static final Log log = LogFactory.getLog(PlanetModel.class);
     
     private WeblogRequest  weblogRequest = null; 
     private String         pageLink = null;
@@ -63,7 +62,7 @@ public class PlanetModel implements Model {
     }
     
     @Override
-    public void init(Map initData) throws WebloggerException {
+    public void init(Map<String, Object> initData) throws WebloggerException {
 
         if (!WebloggerConfig.getBooleanProperty("planet.aggregator.enabled")) {
             return;
@@ -99,7 +98,7 @@ public class PlanetModel implements Model {
      * 'exernal' Planet groups. in reverse chrono order.
      * @param length      Max number of results to return
      */
-    public Pager getAggregationPager(int sinceDays, int length) {
+    public PlanetEntriesPager getAggregationPager(int sinceDays, int length) {
         
         String pagerUrl = urlStrategy.getWeblogPageURL(weblog, 
                 weblogRequest.getLocale(), pageLink, 
@@ -121,7 +120,7 @@ public class PlanetModel implements Model {
      * Planet groups in reverse chrono order.
      * @param length      Max number of results to return
      */
-    public Pager getAggregationPager(String groupHandle, int sinceDays, int length) {
+    public PlanetEntriesPager getAggregationPager(String groupHandle, int sinceDays, int length) {
         
         String pagerUrl = urlStrategy.getWeblogPageURL(weblog, 
                 weblogRequest.getLocale(), pageLink, 
@@ -143,7 +142,7 @@ public class PlanetModel implements Model {
      * Planet feed in reverse chrono order.
      * @param length      Max number of results to return
      */
-    public Pager getFeedPager(String feedURL, int length) {
+    public PlanetEntriesPager getFeedPager(String feedURL, int length) {
         
         String pagerUrl = urlStrategy.getWeblogPageURL(weblog, 
                 weblogRequest.getLocale(), pageLink, 
@@ -199,7 +198,7 @@ public class PlanetModel implements Model {
      * @return List of Planet groups defined.
      */
     public List<PlanetGroup> getGroups() {
-        List list = new ArrayList<PlanetGroup>();
+        List<PlanetGroup> list = new ArrayList<>();
         try {
             PlanetManager planetManager = WebloggerFactory.getWeblogger().getPlanetManager();
             Planet defaultPlanet = planetManager.getWeblogger(DEFAULT_PLANET_HANDLE);
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PreviewPageModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PreviewPageModel.java
index f9873db..8c39b9c 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PreviewPageModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PreviewPageModel.java
@@ -43,7 +43,7 @@ public class PreviewPageModel extends PageModel {
      * Init model.
      */
     @Override
-    public void init(Map initData) throws WebloggerException {
+    public void init(Map<String, Object> initData) throws WebloggerException {
         
         // we expect the init data to contain a weblogRequest object
         WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel.java
index f2392b6..0130ddc 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel.java
@@ -38,7 +38,7 @@ public class PreviewURLModel extends URLModel {
     
     
     @Override
-    public void init(Map initData) throws WebloggerException {
+    public void init(Map<String, Object> initData) throws WebloggerException {
         
         // need a weblog request so that we can know the weblog and locale
         WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsFeedModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsFeedModel.java
index d37147e..ce6f9be 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsFeedModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsFeedModel.java
@@ -20,8 +20,9 @@ package org.apache.roller.weblogger.ui.rendering.model;
 
 import java.io.IOException;
 import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -67,9 +68,9 @@ public class SearchResultsFeedModel implements Model {
 	// the pager used by the 3.0+ rendering system
 	private SearchResultsFeedPager pager = null;
 
-	private List<WeblogEntryWrapper> results = new LinkedList<>();
+	private final List<WeblogEntryWrapper> results = new ArrayList<>();
 
-	private Set categories = new TreeSet();
+	private Set<String> categories = Collections.emptySet();
 
 	private boolean websiteSpecificSearch = true;
 
@@ -85,7 +86,7 @@ public class SearchResultsFeedModel implements Model {
 	}
 
     @Override
-	public void init(Map initData) throws WebloggerException {
+	public void init(Map<String, Object> initData) throws WebloggerException {
 
 		// we expect the init data to contain a weblogRequest object
 		WeblogRequest weblogRequest = (WeblogRequest) initData
@@ -165,7 +166,7 @@ public class SearchResultsFeedModel implements Model {
 				(hits > (offset + limit)));
 	}
 
-	public Pager getSearchResultsPager() {
+	public Pager<WeblogEntryWrapper> getSearchResultsPager() {
 		return pager;
 	}
 
@@ -261,11 +262,11 @@ public class SearchResultsFeedModel implements Model {
 		return limit;
 	}
 
-	public List getResults() {
+	public List<WeblogEntryWrapper> getResults() {
 		return results;
 	}
 
-	public Set getCategories() {
+	public Set<String> getCategories() {
 		return categories;
 	}
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel.java
index e897ecf..9f7ebb2 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel.java
@@ -65,8 +65,7 @@ public class SearchResultsModel extends PageModel {
 	private URLStrategy urlStrategy = null;
 
 	// the actual search results mapped by Day -> Set of entries
-    private Map<Date, TreeSet<WeblogEntryWrapper>> results
-            = new TreeMap<>(Collections.reverseOrder());
+    private final Map<Date, Set<WeblogEntryWrapper>> results = new TreeMap<>(Collections.reverseOrder());
 
 	// the pager used by the 3.0+ rendering system
 	private SearchResultsPager pager = null;
@@ -74,12 +73,12 @@ public class SearchResultsModel extends PageModel {
 	private int hits = 0;
 	private int offset = 0;
 	private int limit = 0;
-	private Set categories = new TreeSet();
+	private Set<String> categories = new TreeSet<String>();
 	private boolean websiteSpecificSearch = true;
 	private String errorMessage = null;
 
 	@Override
-	public void init(Map initData) throws WebloggerException {
+	public void init(Map<String, Object> initData) throws WebloggerException {
 
 		// we expect the init data to contain a searchRequest object
 		searchRequest = (WeblogSearchRequest) initData.get("searchRequest");
@@ -196,7 +195,7 @@ public class SearchResultsModel extends PageModel {
 		}
 
 		try {
-			TreeSet<String> categorySet = new TreeSet<>();
+			Set<String> categorySet = new TreeSet<>();
 			Weblogger roller = WebloggerFactory.getWeblogger();
 			WeblogEntryManager weblogMgr = roller.getWeblogEntryManager();
 
@@ -241,7 +240,7 @@ public class SearchResultsModel extends PageModel {
 
 		// ensure we do not get duplicates from Lucene by
 		// using a Set Collection. Entries sorted by pubTime.
-		TreeSet<WeblogEntryWrapper> set = this.results.get(midnight);
+		Set<WeblogEntryWrapper> set = this.results.get(midnight);
 		if (set == null) {
 			// date is not mapped yet, so we need a new Set
 			set = new TreeSet<>(new WeblogEntryWrapperComparator());
@@ -273,11 +272,11 @@ public class SearchResultsModel extends PageModel {
 		return limit;
 	}
 
-	public Map getResults() {
+	public Map<Date, Set<WeblogEntryWrapper>> getResults() {
 		return results;
 	}
 
-	public Set getCategories() {
+	public Set<String> getCategories() {
 		return categories;
 	}
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java
index 96b0862..c978b0e 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java
@@ -20,8 +20,8 @@ package org.apache.roller.weblogger.ui.rendering.model;
 
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Collections;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.lang3.StringUtils;
@@ -43,6 +43,7 @@ import org.apache.roller.weblogger.pojos.WeblogEntry;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
 import org.apache.roller.weblogger.pojos.wrapper.UserWrapper;
+import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryCommentWrapper;
 import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
 import org.apache.roller.weblogger.pojos.wrapper.WeblogWrapper;
 import org.apache.roller.weblogger.ui.rendering.pagers.CommentsPager;
@@ -60,12 +61,12 @@ import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
  */
 public class SiteModel implements Model {
     
-    private static Log log = LogFactory.getLog(SiteModel.class);   
+    private static final Log log = LogFactory.getLog(SiteModel.class);   
     
     private Weblog weblog = null;
     private WeblogRequest weblogRequest = null;
     private WeblogFeedRequest feedRequest = null;
-    private List tags = new ArrayList();
+    private List<String> tags = Collections.emptyList();
     private String pageLink = null;
     private int pageNum = 0;
     
@@ -78,7 +79,7 @@ public class SiteModel implements Model {
     }
     
     @Override
-    public void init(Map initData) throws WebloggerException {
+    public void init(Map<String, Object> initData) throws WebloggerException {
         
         // we expect the init data to contain a weblogRequest object
         this.weblogRequest = (WeblogRequest) initData.get("parsedRequest");
@@ -114,7 +115,7 @@ public class SiteModel implements Model {
      * @param sinceDays Limit to past X days in past (or -1 for no limit)
      * @param length    Max number of results to return
      */
-    public Pager getWeblogEntriesPager(int sinceDays, int length) {
+    public Pager<WeblogEntryWrapper> getWeblogEntriesPager(int sinceDays, int length) {
         
         String pagerUrl;
         
@@ -147,7 +148,7 @@ public class SiteModel implements Model {
      * @param sinceDays   Limit to past X days in past (or -1 for no limit)
      * @param length      Max number of results to return
      */   
-    public Pager getWeblogEntriesPager(WeblogWrapper queryWeblog, int sinceDays, int length) {
+    public Pager<WeblogEntryWrapper> getWeblogEntriesPager(WeblogWrapper queryWeblog, int sinceDays, int length) {
         return getWeblogEntriesPager(queryWeblog, null, null, sinceDays, length);
     }
 
@@ -159,7 +160,7 @@ public class SiteModel implements Model {
      * @param sinceDays   Limit to past X days in past (or -1 for no limit)
      * @param length      Max number of results to return
      */   
-    public Pager getWeblogEntriesPager(WeblogWrapper queryWeblog, User user, int sinceDays, int length) {
+    public Pager<WeblogEntryWrapper> getWeblogEntriesPager(WeblogWrapper queryWeblog, User user, int sinceDays, int length) {
         return getWeblogEntriesPager(queryWeblog, user, null, sinceDays, length);
     }
 
@@ -172,7 +173,7 @@ public class SiteModel implements Model {
      * @param sinceDays   Limit to past X days in past (or -1 for no limit)
      * @param length      Max number of results to return
      */   
-    public Pager getWeblogEntriesPager(WeblogWrapper queryWeblog, User user, String cat, int sinceDays, int length) {
+    public Pager<WeblogEntryWrapper> getWeblogEntriesPager(WeblogWrapper queryWeblog, User user, String cat, int sinceDays, int length) {
         
         String pagerUrl;
         if (feedRequest != null) {
@@ -203,7 +204,7 @@ public class SiteModel implements Model {
      * @param offset   Offset into results (for paging)
      * @param len      Max number of results to return
      */
-    public Pager getCommentsPager(int sinceDays, int length) {
+    public Pager<WeblogEntryCommentWrapper> getCommentsPager(int sinceDays, int length) {
         
         String pagerUrl;
         if (feedRequest != null) {
@@ -228,7 +229,7 @@ public class SiteModel implements Model {
     
     
     /* Get pager of users whose names begin with specified letter */
-    public Pager getUsersByLetterPager(String letter, int sinceDays, int length) {
+    public Pager<UserWrapper> getUsersByLetterPager(String letter, int sinceDays, int length) {
         
         String pagerUrl;
         if (feedRequest != null) {
@@ -257,7 +258,7 @@ public class SiteModel implements Model {
     
     
     /** Get pager of weblogs whose handles begin with specified letter */
-    public Pager getWeblogsByLetterPager(String letter, int sinceDays, int length) {
+    public Pager<WeblogWrapper> getWeblogsByLetterPager(String letter, int sinceDays, int length) {
         
         String pagerUrl = urlStrategy.getWeblogPageURL(weblog, 
                 weblogRequest.getLocale(), pageLink, 
@@ -284,16 +285,15 @@ public class SiteModel implements Model {
      * containing integers reflecting the number of users whose
      * names start with each letter.
      */
-    public Map getUserNameLetterMap() {
-        Map results = new HashMap();
-        try {            
+    public Map<String, Long> getUserNameLetterMap() {
+        try {
             Weblogger roller = WebloggerFactory.getWeblogger();
             UserManager umgr = roller.getUserManager();
-            results = umgr.getUserNameLetterMap();
+            return umgr.getUserNameLetterMap();
         } catch (Exception e) {
             log.error("ERROR: fetching username letter map", e);
         }
-        return results;
+        return Collections.emptyMap();
     }
     
     
@@ -302,23 +302,22 @@ public class SiteModel implements Model {
      * containing integers reflecting the number of weblogs whose
      * names start with each letter.
      */
-    public Map getWeblogHandleLetterMap() {
-        Map results = new HashMap();
-        try {            
-            results = WebloggerFactory.getWeblogger().getWeblogManager().getWeblogHandleLetterMap();
+    public Map<String, Long> getWeblogHandleLetterMap() {
+        try {
+            return WebloggerFactory.getWeblogger().getWeblogManager().getWeblogHandleLetterMap();
         } catch (Exception e) {
             log.error("ERROR: fetching weblog handle letter map", e);
         }
-        return results;
+        return Collections.emptyMap();
     }
     
 
     /** 
      * Return list of weblogs that user belongs to.
      */
-    public List getUsersWeblogs(String userName) {
-        List results = new ArrayList();
-        try {            
+    public List<WeblogWrapper> getUsersWeblogs(String userName) {
+        List<WeblogWrapper> results = new ArrayList<>();
+        try {
             Weblogger roller = WebloggerFactory.getWeblogger();
             UserManager umgr = roller.getUserManager();
             User user = umgr.getUserByUserName(userName);
@@ -336,9 +335,9 @@ public class SiteModel implements Model {
     /** 
      * Return list of users that belong to website.
      */
-    public List getWeblogsUsers(String handle) {
-        List results = new ArrayList();
-        try {            
+    public List<UserWrapper> getWeblogsUsers(String handle) {
+        List<UserWrapper> results = new ArrayList<>();
+        try {
             Weblogger roller = WebloggerFactory.getWeblogger();
             UserManager umgr = roller.getUserManager();
             Weblog website = WebloggerFactory.getWeblogger().getWeblogManager().getWeblogByHandle(handle);
@@ -464,16 +463,15 @@ public class SiteModel implements Model {
      * @param sinceDays Only consider weblogs updated in the last sinceDays
      * @param length   Max number of results to return
      */
-    public List getMostCommentedWeblogs(int sinceDays , int length) {
-        List results = new ArrayList();
+    public List<StatCount> getMostCommentedWeblogs(int sinceDays , int length) {
         Date startDate = JPAWeblogEntryManagerImpl.getStartDateNow(sinceDays);
-        try {            
-            results = WebloggerFactory.getWeblogger().getWeblogManager().getMostCommentedWeblogs(
+        try {
+            return WebloggerFactory.getWeblogger().getWeblogManager().getMostCommentedWeblogs(
                     startDate, new Date(), 0, length);
         } catch (Exception e) {
             log.error("ERROR: fetching commented weblog list", e);
         }
-        return results;
+        return Collections.emptyList();
     }
     
     
@@ -484,19 +482,17 @@ public class SiteModel implements Model {
      * @param cats     To limit results to list of category names
      * @param length      Max number of results to return
      */
-    public List getMostCommentedWeblogEntries(
-            List cats, int sinceDays, int length) {
-        List results = new ArrayList();
+    public List<StatCount> getMostCommentedWeblogEntries(List cats, int sinceDays, int length) {
         Date startDate = JPAWeblogEntryManagerImpl.getStartDateNow(sinceDays);
-        try {            
+        try {
             Weblogger roller = WebloggerFactory.getWeblogger();
             WeblogEntryManager wmgr = roller.getWeblogEntryManager();
-            results = wmgr.getMostCommentedWeblogEntries(
+            return wmgr.getMostCommentedWeblogEntries(
                     null, startDate, new Date(), 0, length);
         } catch (Exception e) {
             log.error("ERROR: fetching commented weblog entries list", e);
         }
-        return results;
+        return Collections.emptyList();
     }
     
     /**
@@ -525,7 +521,6 @@ public class SiteModel implements Model {
      * @return
      */
     public List<TagStat> getPopularTags(int sinceDays, int length) {
-        List results = new ArrayList();
         Date startDate = null;
         if(sinceDays > 0) {
             Calendar cal = Calendar.getInstance();
@@ -537,11 +532,11 @@ public class SiteModel implements Model {
         try {            
             Weblogger roller = WebloggerFactory.getWeblogger();
             WeblogEntryManager wmgr = roller.getWeblogEntryManager();
-            results = wmgr.getPopularTags(null, startDate, 0, length);
+            return wmgr.getPopularTags(null, startDate, 0, length);
         } catch (Exception e) {
             log.error("ERROR: fetching site tags list", e);
         }
-        return results;
+        return Collections.emptyList();
     }   
     
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/URLModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/URLModel.java
index fb925d9..7ca561a 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/URLModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/URLModel.java
@@ -49,7 +49,7 @@ import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
  */
 public class URLModel implements Model {
     
-    private static Log log = LogFactory.getLog(URLModel.class);
+    private static final Log log = LogFactory.getLog(URLModel.class);
     
     protected Weblog weblog = null;
     protected String locale = null;
@@ -65,7 +65,7 @@ public class URLModel implements Model {
     }
     
     @Override
-    public void init(Map initData) throws WebloggerException {
+    public void init(Map<String, Object> initData) throws WebloggerException {
         
         // need a weblog request so that we can know the weblog and locale
         WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
@@ -219,12 +219,12 @@ public class URLModel implements Model {
     }    
     
     
-    public String tags(List tags) {
+    public String tags(List<String> tags) {
         return urlStrategy.getWeblogCollectionURL(weblog, locale, null, null, tags , -1, true);
     }
     
     
-    public String tags(List tags, int pageNum) {
+    public String tags(List<String> tags, int pageNum) {
         return urlStrategy.getWeblogCollectionURL(weblog, locale, null, null, tags, -1, true);
     }
     
@@ -344,7 +344,7 @@ public class URLModel implements Model {
             return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "rss", catName, null, null, excerpts, true);
         }
         
-        public String rssByTags(List tags, boolean excerpts) {
+        public String rssByTags(List<String> tags, boolean excerpts) {
             return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "rss", null, null, tags, excerpts, true);
         }
         
@@ -360,7 +360,7 @@ public class URLModel implements Model {
             return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "atom", catName, term, null, false, true);
         }        
         
-        public String atomByTags(List tags, boolean excerpts) {
+        public String atomByTags(List<String> tags, boolean excerpts) {
             return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "atom", null, null, tags, excerpts, true);
         }
     }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
index 8aaf129..3c3af9a 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
@@ -45,7 +45,7 @@ import org.apache.roller.weblogger.util.Utilities;
  */
 public class UtilitiesModel implements Model {
     
-    private static Log log = LogFactory.getLog(UtilitiesModel.class); 
+    private static final Log log = LogFactory.getLog(UtilitiesModel.class);
     
     private static Pattern mLinkPattern =
             Pattern.compile("<a href=.*?>", Pattern.CASE_INSENSITIVE);    
@@ -103,7 +103,7 @@ public class UtilitiesModel implements Model {
     
     /** Init page model based on request */
     @Override
-    public void init(Map initData) throws WebloggerException {      
+    public void init(Map<String, Object> initData) throws WebloggerException {      
         
         // we expect the init data to contain a parsedRequest object
         parsedRequest = (ParsedRequest) initData.get("parsedRequest");
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/I18nMessages.java b/app/src/main/java/org/apache/roller/weblogger/util/I18nMessages.java
index 074a722..c6de4c3 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/I18nMessages.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/I18nMessages.java
@@ -45,7 +45,7 @@ public final class I18nMessages {
     
     // a map of cached messages instances, keyed by locale
     private static Map<Locale, I18nMessages> messagesMap = 
-            Collections.synchronizedMap(new HashMap());
+            Collections.synchronizedMap(new HashMap<>());
     
     
     private I18nMessages(String locale) {
@@ -131,7 +131,7 @@ public final class I18nMessages {
      * Get a message from the bundle and substitute the given args into
      * the message contents.
      */
-    public String getString(String key, List args) {
+    public String getString(String key, List<?> args) {
         
         try {
             String msg = bundle.getString(key);
@@ -170,12 +170,12 @@ public final class I18nMessages {
 
 		try {
 
-			Class type = ResourceBundle.class;
+			Class<?> type = ResourceBundle.class;
 			Field cacheList = type.getDeclaredField("cacheList");
 
 			synchronized (cacheList) {
 				cacheList.setAccessible(true);
-				((Map) cacheList.get(ResourceBundle.class)).clear();
+				((Map<?, ?>) cacheList.get(ResourceBundle.class)).clear();
 			}
 
 			clearTomcatCache();
@@ -198,7 +198,7 @@ public final class I18nMessages {
 
 		ClassLoader loader = Thread.currentThread().getContextClassLoader();
 		// no need for compilation here.
-		Class cl = loader.getClass();
+		Class<?> cl = loader.getClass();
 
 		try {
 			if ("org.apache.catalina.loader.WebappClassLoader".equals(cl
@@ -215,7 +215,7 @@ public final class I18nMessages {
 		}
 	}
 
-	private static void clearMap(Class cl, Object obj, String name)
+	private static void clearMap(Class<?> cl, Object obj, String name)
 			throws NoSuchFieldException, IllegalAccessException,
 			NoSuchMethodException, InvocationTargetException {
 		Field field = cl.getDeclaredField(name);
@@ -224,7 +224,7 @@ public final class I18nMessages {
 		Object cache = field.get(obj);
 
 		synchronized (cache) {
-			Class ccl = cache.getClass();
+			Class<?> ccl = cache.getClass();
 			Method clearMethod = ccl.getMethod("clear");
 			clearMethod.invoke(cache);
 		}

[roller] 08/19: misc: compiler warning fixes combined with collection improvements.

Posted by mb...@apache.org.
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 97e8dd20992415a09915770ccab07bf882c73216
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Fri Jul 9 05:11:23 2021 +0200

    misc: compiler warning fixes combined with collection improvements.
---
 .../planet/util/rome/ContentModuleGenerator.java       | 18 +++++-------------
 .../roller/planet/util/rome/ContentModuleImpl.java     |  2 +-
 .../java/org/apache/roller/util/PropertyExpander.java  |  4 ++--
 .../weblogger/business/jpa/JPAPersistenceStrategy.java | 11 +++++------
 .../weblogger/business/pings/WeblogUpdatePinger.java   |  6 +++---
 .../weblogger/business/plugins/PluginManager.java      |  2 +-
 .../weblogger/business/plugins/PluginManagerImpl.java  |  4 ++--
 .../weblogger/business/runnable/ThreadManagerImpl.java |  2 +-
 .../roller/weblogger/config/WebloggerConfig.java       |  8 ++++----
 .../planet/business/WebloggerRomeFeedFetcher.java      |  3 ++-
 .../apache/roller/weblogger/util/Bannedwordslist.java  | 15 ++++++---------
 .../apache/roller/weblogger/util/RollerMessages.java   |  8 ++++----
 .../weblogger/util/StandaloneWebappClassLoader.java    |  6 +++---
 .../org/apache/roller/weblogger/util/Trackback.java    | 10 ++++------
 .../org/apache/roller/weblogger/util/URLUtilities.java |  8 ++++----
 .../apache/roller/weblogger/business/PingsTest.java    |  2 +-
 16 files changed, 48 insertions(+), 61 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/planet/util/rome/ContentModuleGenerator.java b/app/src/main/java/org/apache/roller/planet/util/rome/ContentModuleGenerator.java
index c88a786..d72ea06 100644
--- a/app/src/main/java/org/apache/roller/planet/util/rome/ContentModuleGenerator.java
+++ b/app/src/main/java/org/apache/roller/planet/util/rome/ContentModuleGenerator.java
@@ -16,8 +16,6 @@
  */
 package org.apache.roller.planet.util.rome;
 
-import java.util.Collections;
-import java.util.HashSet;
 import java.util.Set;
 
 import org.jdom2.Element;
@@ -27,24 +25,18 @@ import com.rometools.rome.feed.module.Module;
 import com.rometools.rome.io.ModuleGenerator;
 
 public class ContentModuleGenerator implements ModuleGenerator {
-    private static final Namespace CONTENT_NS  = 
-        Namespace.getNamespace(ContentModule.URI);
+    
+    private static final Namespace CONTENT_NS = Namespace.getNamespace(ContentModule.URI);
+
+    private static final Set<Namespace> NAMESPACES = Set.of(CONTENT_NS);
 
     @Override
     public String getNamespaceUri() {
         return ContentModule.URI;
     }
 
-    private static final Set NAMESPACES;
-
-    static {
-        Set nss = new HashSet();
-        nss.add(CONTENT_NS);
-        NAMESPACES = Collections.unmodifiableSet(nss);
-    }
-
     @Override
-    public Set getNamespaces() {
+    public Set<Namespace> getNamespaces() {
         return NAMESPACES;
     }
 
diff --git a/app/src/main/java/org/apache/roller/planet/util/rome/ContentModuleImpl.java b/app/src/main/java/org/apache/roller/planet/util/rome/ContentModuleImpl.java
index 65e7fb3..e79f553 100644
--- a/app/src/main/java/org/apache/roller/planet/util/rome/ContentModuleImpl.java
+++ b/app/src/main/java/org/apache/roller/planet/util/rome/ContentModuleImpl.java
@@ -34,7 +34,7 @@ public class ContentModuleImpl extends ModuleImpl implements ContentModule {
         this.encoded = encoded;
     }
 	@Override
-    public Class getInterface() {
+    public Class<? extends CopyFrom> getInterface() {
         return ContentModule.class;
     }
 
diff --git a/app/src/main/java/org/apache/roller/util/PropertyExpander.java b/app/src/main/java/org/apache/roller/util/PropertyExpander.java
index 3b767e9..c53c635 100644
--- a/app/src/main/java/org/apache/roller/util/PropertyExpander.java
+++ b/app/src/main/java/org/apache/roller/util/PropertyExpander.java
@@ -56,7 +56,7 @@ public final class PropertyExpander {
      * @return the result of replacing property expressions with the values of the corresponding properties from the
      *         supplied property map, null if the input string is null.
      */
-    public static String expandProperties(String input, Map props) {
+    public static String expandProperties(String input, Map<?, ?> props) {
         
         if (input == null) {
             return null;
@@ -64,7 +64,7 @@ public final class PropertyExpander {
         
         Matcher matcher = EXPANSION_PATTERN.matcher(input);
 
-        StringBuffer expanded = new StringBuffer(input.length());
+        StringBuilder expanded = new StringBuilder(input.length());
         while (matcher.find()) {
             String propName = matcher.group(2);
             String value = (String) props.get(propName);
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java
index 3e0bca7..85b170a 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java
@@ -44,7 +44,7 @@ import org.apache.roller.weblogger.business.DatabaseProvider;
 @com.google.inject.Singleton
 public class JPAPersistenceStrategy {
     
-    private static Log logger = 
+    private static final Log logger = 
         LogFactory.getFactory().getInstance(JPAPersistenceStrategy.class);
     
     /**
@@ -78,7 +78,7 @@ public class JPAPersistenceStrategy {
 
             // Add all JPA, OpenJPA, HibernateJPA, etc. properties found
             Properties emfProps = new Properties();
-            Enumeration keys = WebloggerConfig.keys();
+            Enumeration<Object> keys = WebloggerConfig.keys();
             while (keys.hasMoreElements()) {
                 String key = (String) keys.nextElement();
                 if (       key.startsWith("javax.persistence.") 
@@ -183,7 +183,7 @@ public class JPAPersistenceStrategy {
      * @param id the id of the object to remove
      * @throws WebloggerException on any error deleting object
      */
-    public void remove(Class clazz, String id) throws WebloggerException {
+    public void remove(Class<?> clazz, String id) throws WebloggerException {
         EntityManager em = getEntityManager(true);
         Object po = em.find(clazz, id);
         em.remove(po);
@@ -204,7 +204,7 @@ public class JPAPersistenceStrategy {
      * @param pos the persistent objects to remove
      * @throws org.apache.roller.weblogger.WebloggerException on any error
      */
-    public void removeAll(Collection pos) throws WebloggerException {
+    public void removeAll(Collection<?> pos) throws WebloggerException {
         EntityManager em = getEntityManager(true);
         for (Object obj : pos) {
             em.remove(obj);
@@ -218,8 +218,7 @@ public class JPAPersistenceStrategy {
      * @return the object retrieved
      * @throws WebloggerException on any error retrieving object
      */
-    public Object load(Class clazz, String id)
-    throws WebloggerException {
+    public Object load(Class<?> clazz, String id) throws WebloggerException {
         EntityManager em = getEntityManager(false);
         return em.find(clazz, id);
     }
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java b/app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java
index 29e66c4..49d0e22 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java
@@ -101,10 +101,10 @@ public final class WeblogUpdatePinger {
     public static PingResult sendPing(PingTarget pingTarget, Weblog website) throws IOException, XmlRpcException {
         String websiteUrl = website.getAbsoluteURL();
         String pingTargetUrl = pingTarget.getPingUrl();
-        Set variantOptions = PingConfig.getVariantOptions(pingTargetUrl);
+        Set<String> variantOptions = PingConfig.getVariantOptions(pingTargetUrl);
 
         // Set up the ping parameters.
-        List params = new ArrayList();
+        List<String> params = new ArrayList<>();
         if (!variantOptions.contains("noname")) {
             // ping variant for icerocket and anyone with similar bug, where we must omit the blog name.
             params.add(website.getName());
@@ -134,7 +134,7 @@ public final class WeblogUpdatePinger {
         }
         try {
             // normal case: response is a struct (represented as a Map) with Boolean flerror and String fields.
-            Map result = (Map) obj;
+            Map<?, ?> result = (Map<?, ?>) obj;
             return new PingResult((Boolean) result.get("flerror"), (String) result.get("message"));
         } catch (Exception ex) {
             // exception case:  The caller responded with an unexpected type, though parsed at the basic XML RPC level.
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManager.java b/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManager.java
index 2a0f10c..9f51632 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManager.java
@@ -56,7 +56,7 @@ public interface PluginManager {
      * @param str         String to which to apply plugins
      * @return        the transformed text
      */
-    String applyWeblogEntryPlugins(Map pagePlugins,WeblogEntry entry, String str);
+    String applyWeblogEntryPlugins(Map<String, WeblogEntryPlugin> pagePlugins, WeblogEntry entry, String str);
     
     
     /**
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 2ac1a24..7f6dc2a 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
@@ -89,7 +89,7 @@ public class PluginManagerImpl implements PluginManager {
     }
     
     @Override
-    public String applyWeblogEntryPlugins(Map pagePlugins, WeblogEntry entry, String str) {
+    public String applyWeblogEntryPlugins(Map<String, WeblogEntryPlugin> pagePlugins, WeblogEntry entry, String str) {
 
         String ret = str;
         WeblogEntry copy = new WeblogEntry(entry);
@@ -97,7 +97,7 @@ public class PluginManagerImpl implements PluginManager {
 
         if (entryPlugins != null) {
             for (String key : entryPlugins) {
-                WeblogEntryPlugin pagePlugin = (WeblogEntryPlugin) pagePlugins.get(key);
+                WeblogEntryPlugin pagePlugin = pagePlugins.get(key);
                 if (pagePlugin != null) {
                     ret = pagePlugin.render(entry, ret);
                 } else {
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 a0280c1..c515bed 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
@@ -131,7 +131,7 @@ public abstract class ThreadManagerImpl implements ThreadManager {
     @Override
     public void executeInForeground(Runnable runnable)
             throws InterruptedException {
-        Future task = serviceScheduler.submit(runnable);
+        Future<?> task = serviceScheduler.submit(runnable);
         
         // since this task is really meant to be executed within this calling 
         // thread, here we can add a little code here to loop until it realizes 
diff --git a/app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java b/app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java
index c652c59..1e655e0 100644
--- a/app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java
+++ b/app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java
@@ -53,7 +53,7 @@ public final class WebloggerConfig {
 
         try {
             // we'll need this to get at our properties files in the classpath
-            Class configClass = Class.forName("org.apache.roller.weblogger.config.WebloggerConfig");
+            Class<?> configClass = Class.forName("org.apache.roller.weblogger.config.WebloggerConfig");
 
             // first, lets load our default properties
             try (InputStream is = configClass.getResourceAsStream(default_config)) {
@@ -116,7 +116,7 @@ public final class WebloggerConfig {
                     String initialValue = (String) config.get(propName);
                     if (initialValue != null) {
                         String expandedValue = PropertyExpander.expandSystemProperties(initialValue);
-                        config.put(propName,expandedValue);
+                        config.setProperty(propName, expandedValue);
                     }
                 }
             }
@@ -145,7 +145,7 @@ public final class WebloggerConfig {
             log.debug("WebloggerConfig looks like this ...");
 
             String key;
-            Enumeration keys = config.keys();
+            Enumeration<Object> keys = config.keys();
             while(keys.hasMoreElements()) {
                 key = (String) keys.nextElement();
                 log.debug(key+"="+config.getProperty(key));
@@ -239,7 +239,7 @@ public final class WebloggerConfig {
      * Retrieve all property keys
      * @return Enumeration A list of all keys
      **/
-    public static Enumeration keys() {
+    public static Enumeration<Object> keys() {
         return config.keys();
     } 
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java b/app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java
index b69e6b8..076ad46 100644
--- a/app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java
+++ b/app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java
@@ -32,6 +32,7 @@ import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.plugins.PluginManager;
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.business.WeblogEntryManager;
+import org.apache.roller.weblogger.business.plugins.entry.WeblogEntryPlugin;
 import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
 import org.apache.roller.weblogger.pojos.WeblogEntry;
 import org.apache.roller.weblogger.pojos.WeblogEntry.PubStatus;
@@ -132,7 +133,7 @@ public class WebloggerRomeFeedFetcher extends RomeFeedFetcher {
 
             // Populate subscription object with new entries
             PluginManager ppmgr = WebloggerFactory.getWeblogger().getPluginManager();
-            Map pagePlugins = ppmgr.getWeblogEntryPlugins(localWeblog);
+            Map<String, WeblogEntryPlugin> pagePlugins = ppmgr.getWeblogEntryPlugins(localWeblog);
             for ( WeblogEntry rollerEntry : entries ) {
                 SubscriptionEntry entry = new SubscriptionEntry();
                 String content;
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java b/app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java
index 4ad3b9c..faeb925 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java
@@ -33,7 +33,6 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.StringTokenizer;
 import java.util.regex.Matcher;
@@ -64,9 +63,9 @@ import org.apache.roller.util.DateUtil;
  */
 public final class Bannedwordslist {
     
-    private static Log mLogger = LogFactory.getLog(Bannedwordslist.class);
+    private static final Log mLogger = LogFactory.getLog(Bannedwordslist.class);
     
-    private static Bannedwordslist bannedwordslist;
+    private static final Bannedwordslist bannedwordslist;
     private static final String BANNEDWORDSLIST_FILE = "bannedwordslist.txt";
     private static final String LAST_UPDATE_STR = "Last update:";
 
@@ -74,8 +73,8 @@ public final class Bannedwordslist {
     private static final String BANNEDWORDSLIST_URL = null;
 
     private Date lastModified = null;
-    private List<String> bannedwordslistStr = new LinkedList<>();
-    private List<Pattern> bannedwordslistRegex = new LinkedList<>();
+    private final List<String> bannedwordslistStr = new ArrayList<>();
+    private final List<Pattern> bannedwordslistRegex = new ArrayList<>();
     
     // setup our singleton at class loading time
     static {
@@ -388,12 +387,10 @@ public final class Bannedwordslist {
      *
      * @return true if a match was found, otherwise false
      */
-    private static boolean testStringRules(String source, List rules) {
+    private static boolean testStringRules(String source, List<String> rules) {
         boolean matches = false;
         
-        for (Object ruleObj : rules) {
-            String rule;
-            rule = (String) ruleObj;
+        for (String rule : rules) {
 
             try {
                 StringBuilder patternBuilder;
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/RollerMessages.java b/app/src/main/java/org/apache/roller/weblogger/util/RollerMessages.java
index 7c40423..be91b80 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/RollerMessages.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/RollerMessages.java
@@ -27,8 +27,8 @@ import java.util.List;
  */
 public class RollerMessages
 {
-    private List<RollerMessage> mErrors = new ArrayList<>();
-    private List<RollerMessage> mMessages = new ArrayList<>();
+    private final List<RollerMessage> mErrors = new ArrayList<>();
+    private final List<RollerMessage> mMessages = new ArrayList<>();
     
     public RollerMessages() 
     {
@@ -57,11 +57,11 @@ public class RollerMessages
     {
         mMessages.add(new RollerMessage(key, args));
     }
-    public Iterator getErrors()
+    public Iterator<RollerMessage> getErrors()
     {
         return mErrors.iterator();
     }
-    public Iterator getMessages()
+    public Iterator<RollerMessage> getMessages()
     {
         return mMessages.iterator();
     }
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/StandaloneWebappClassLoader.java b/app/src/main/java/org/apache/roller/weblogger/util/StandaloneWebappClassLoader.java
index 227e350..cb6004f 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/StandaloneWebappClassLoader.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/StandaloneWebappClassLoader.java
@@ -48,7 +48,7 @@ public class StandaloneWebappClassLoader extends URLClassLoader {
     
     private static URL[] buildURLsArray(String webappDir, String jarsDir) throws Exception {
         // Create collection of URLs needed for classloader
-        List urlList = new ArrayList();
+        List<URL> urlList = new ArrayList<>();
 
         // Add WEB-INF/lib jars
         String libPath = webappDir + FS + "WEB-INF" + FS + "lib";
@@ -61,10 +61,10 @@ public class StandaloneWebappClassLoader extends URLClassLoader {
         // Add additional jars
         addURLs(jarsDir, urlList);
                 
-        return (URL[])urlList.toArray(new URL[urlList.size()]);  
+        return urlList.toArray(new URL[0]);  
     }
     
-    private static void addURLs(String dirPath, List urlList) throws Exception {
+    private static void addURLs(String dirPath, List<URL> urlList) throws Exception {
         File libDir = new File(dirPath);
         String[] libJarNames = libDir.list(new FilenameFilter() {
             @Override
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/Trackback.java b/app/src/main/java/org/apache/roller/weblogger/util/Trackback.java
index 38e81b4..626f38d 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/Trackback.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/Trackback.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.io.StringReader;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.HashMap;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -111,11 +110,10 @@ public class Trackback {
         String blog_name = entry.getWebsite().getName();
         
         // build trackback post parameters as query string
-        Map params = new HashMap();
-        params.put("title", URLUtilities.encode(title));
-        params.put("excerpt", URLUtilities.encode(excerpt));
-        params.put("url", URLUtilities.encode(url));
-        params.put("blog_name", URLUtilities.encode(blog_name));
+        Map<String, String> params = Map.of("title", URLUtilities.encode(title),
+                                            "excerpt", URLUtilities.encode(excerpt),
+                                            "url", URLUtilities.encode(url),
+                                            "blog_name", URLUtilities.encode(blog_name));
         String queryString = URLUtilities.getQueryString(params);
         
         LOG.debug("query string - " + queryString);
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java b/app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java
index 06cb789..716e2d2 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java
@@ -90,19 +90,19 @@ public final class URLUtilities {
     }
     
     
-    public static String getEncodedTagsString(List tags) {
+    public static String getEncodedTagsString(List<String> tags) {
         StringBuilder tagsString = new StringBuilder();
         if(tags != null && !tags.isEmpty()) {
             String tag;
-            Iterator tagsIT = tags.iterator();
+            Iterator<String> tagsIT = tags.iterator();
             
             // do first tag
-            tag = (String) tagsIT.next();
+            tag = tagsIT.next();
             tagsString.append(encode(tag));
             
             // do rest of tags, joining them with a '+'
             while(tagsIT.hasNext()) {
-                tag = (String) tagsIT.next();
+                tag = tagsIT.next();
                 tagsString.append("+");
                 tagsString.append(encode(tag));
             }
diff --git a/app/src/test/java/org/apache/roller/weblogger/business/PingsTest.java b/app/src/test/java/org/apache/roller/weblogger/business/PingsTest.java
index 62364b1..557b097 100644
--- a/app/src/test/java/org/apache/roller/weblogger/business/PingsTest.java
+++ b/app/src/test/java/org/apache/roller/weblogger/business/PingsTest.java
@@ -262,7 +262,7 @@ public class PingsTest  {
             assertNull(testAutoPing);
 
             // remove a collection
-            List autoPings = new ArrayList();
+            List<AutoPing> autoPings = new ArrayList<>();
             autoPing2 = mgr.getAutoPing(autoPing2.getId()); //Get managed version of autoPing2
             autoPings.add(autoPing2);
             autoPing3 = mgr.getAutoPing(autoPing3.getId()); //Get managed version of autoPing2

[roller] 16/19: close input stream + use InputStream.transferTo().

Posted by mb...@apache.org.
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 4a41c06cae2a8d8deba4fd3c22b8c24d8c87de85
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Sat May 22 07:05:43 2021 +0200

    close input stream + use InputStream.transferTo().
---
 .../rendering/servlets/PreviewResourceServlet.java | 24 ++++++++--------------
 .../ui/rendering/servlets/ResourceServlet.java     | 23 ++++++++-------------
 2 files changed, 18 insertions(+), 29 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java
index d0f6a8f..7103bea 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java
@@ -20,7 +20,6 @@ package org.apache.roller.weblogger.ui.rendering.servlets;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
@@ -30,7 +29,6 @@ import javax.servlet.http.HttpServletResponse;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.util.RollerConstants;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.MediaFileManager;
 import org.apache.roller.weblogger.business.WebloggerFactory;
@@ -50,7 +48,7 @@ import org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewResourceReques
  */
 public class PreviewResourceServlet extends HttpServlet {
 
-    private static Log log = LogFactory.getLog(PreviewResourceServlet.class);
+    private static final Log log = LogFactory.getLog(PreviewResourceServlet.class);
 
     private ServletContext context = null;
 
@@ -123,6 +121,9 @@ public class PreviewResourceServlet extends HttpServlet {
             } catch (Exception ex) {
                 // hmmm, some kind of error getting theme. that's an error.
                 response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                if(resourceStream != null) {
+                    resourceStream.close();
+                }
                 return;
             }
         }
@@ -141,6 +142,9 @@ public class PreviewResourceServlet extends HttpServlet {
                 // still not found? then we don't have it, 404.
                 log.debug("Unable to get resource", ex);
                 response.sendError(HttpServletResponse.SC_NOT_FOUND);
+                if(resourceStream != null) {
+                    resourceStream.close();
+                }
                 return;
             }
         }
@@ -159,21 +163,11 @@ public class PreviewResourceServlet extends HttpServlet {
         response.setContentType(this.context.getMimeType(resourceRequest
                 .getResourcePath()));
 
-        OutputStream out;
         try {
             // ok, lets serve up the file
-            byte[] buf = new byte[RollerConstants.EIGHT_KB_IN_BYTES];
-            int length;
-            out = response.getOutputStream();
-            while ((length = resourceStream.read(buf)) > 0) {
-                out.write(buf, 0, length);
-            }
-
-            // cleanup
-            out.close();
-            resourceStream.close();
+            resourceStream.transferTo(response.getOutputStream());
 
-        } catch (Exception ex) {
+        } catch (IOException ex) {
             log.error("Error writing resource file", ex);
             if (!response.isCommitted()) {
                 response.reset();
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java
index e4f1f38..8dbd5db 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java
@@ -20,7 +20,6 @@ package org.apache.roller.weblogger.ui.rendering.servlets;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
@@ -31,7 +30,6 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.util.RollerConstants;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.MediaFileManager;
 import org.apache.roller.weblogger.business.WebloggerFactory;
@@ -50,7 +48,7 @@ public class ResourceServlet extends HttpServlet {
 
     private static final long serialVersionUID = 1350679411381917714L;
 
-    private static Log log = LogFactory.getLog(ResourceServlet.class);
+    private static final Log log = LogFactory.getLog(ResourceServlet.class);
 
     private ServletContext context = null;
 
@@ -120,6 +118,9 @@ public class ResourceServlet extends HttpServlet {
                 response.reset();
             }
             response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            if(resourceStream != null) {
+                resourceStream.close();
+            }
             return;
         }
 
@@ -140,6 +141,9 @@ public class ResourceServlet extends HttpServlet {
                 }
                 log.debug("Unable to get resource", ex);
                 response.sendError(HttpServletResponse.SC_NOT_FOUND);
+                if(resourceStream != null) {
+                    resourceStream.close();
+                }
                 return;
             }
         }
@@ -158,20 +162,11 @@ public class ResourceServlet extends HttpServlet {
         response.setContentType(this.context.getMimeType(resourceRequest
                 .getResourcePath()));
 
-        OutputStream out;
         try {
             // ok, lets serve up the file
-            byte[] buf = new byte[RollerConstants.EIGHT_KB_IN_BYTES];
-            int length;
-            out = response.getOutputStream();
-            while ((length = resourceStream.read(buf)) > 0) {
-                out.write(buf, 0, length);
-            }
+            resourceStream.transferTo(response.getOutputStream());
 
-            // close output stream
-            out.close();
-
-        } catch (Exception ex) {
+        } catch (IOException ex) {
             if (!response.isCommitted()) {
                 response.reset();
             }

[roller] 05/19: removed unused commons collections dependency.

Posted by mb...@apache.org.
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 ef196034ea7ecb5f2900e505cbc8f43326b9b3da
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 08:41:21 2021 +0200

    removed unused commons collections dependency.
---
 .../roller/weblogger/ui/rendering/velocity/WebappResourceLoader.java | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/WebappResourceLoader.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/WebappResourceLoader.java
index 882a7d0..f21555b 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/WebappResourceLoader.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/WebappResourceLoader.java
@@ -27,7 +27,6 @@ import java.util.Map;
 
 import javax.servlet.ServletContext;
 
-import org.apache.commons.collections.ExtendedProperties;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.ui.core.RollerContext;
@@ -62,7 +61,7 @@ import org.apache.velocity.util.ExtProperties;
  */
 public class WebappResourceLoader extends ResourceLoader {
 
-	private static Log log = LogFactory.getLog(WebappResourceLoader.class);
+	private static final Log log = LogFactory.getLog(WebappResourceLoader.class);
 
 	// The root paths for templates (relative to webapp's root).
 	protected String[] paths = null;
@@ -76,7 +75,7 @@ public class WebappResourceLoader extends ResourceLoader {
 	 * "javax.servlet.ServletContext").
 	 * 
 	 * @param configuration
-	 *            the {@link ExtendedProperties} associated with this resource
+	 *            the {@link ExtProperties} associated with this resource
 	 *            loader.
 	 */
     @Override

[roller] 14/19: fixed remaining rawtype warnings in atomprotocol and xmlrpc packages.

Posted by mb...@apache.org.
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 675364602034c0b69b308f78126aeca9fa0d6b82
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Sat Jul 10 11:02:29 2021 +0200

    fixed remaining rawtype warnings in atomprotocol and xmlrpc packages.
---
 .../webservices/atomprotocol/MediaCollection.java        | 14 +++++++-------
 .../webservices/atomprotocol/RollerAtomService.java      |  2 +-
 .../weblogger/webservices/xmlrpc/BloggerAPIHandler.java  | 10 +++++-----
 .../webservices/xmlrpc/MetaWeblogAPIHandler.java         | 16 ++++++++--------
 4 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java
index 6a589dd..9603d77 100644
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java
+++ b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java
@@ -289,7 +289,7 @@ public class MediaCollection {
             }
             Set<MediaFile> files = dir.getMediaFiles();
 
-            SortedSet sortedSet = new TreeSet(new Comparator() {
+            SortedSet<MediaFile> sortedSet = new TreeSet<>(new Comparator<Object>() {
                 @Override
                 public int compare(Object o1, Object o2) {
                     MediaFile f1 = (MediaFile)o1;
@@ -313,7 +313,7 @@ public class MediaCollection {
                 int count = 0;
                 MediaFile[] sortedResources =
                    (MediaFile[])sortedSet.toArray(new MediaFile[sortedSet.size()]);
-                List atomEntries = new ArrayList();
+                List<Entry> atomEntries = new ArrayList<>();
                 for (int i=start; i<(start + max) && i<(sortedResources.length); i++) {
                     Entry entry = createAtomResourceEntry(website, sortedResources[i]);
                     atomEntries.add(entry);
@@ -324,7 +324,7 @@ public class MediaCollection {
                     count++;
                 }
 
-                List otherLinks = new ArrayList();
+                List<Link> otherLinks = new ArrayList<>();
                 if (start + count < files.size()) {
                     // add next link
                     int nextOffset = start + max;
@@ -500,11 +500,11 @@ public class MediaCollection {
         Link altlink = new Link();
         altlink.setRel("alternate");
         altlink.setHref(file.getPermalink());
-        List altlinks = new ArrayList();
+        List<Link> altlinks = new ArrayList<>();
         altlinks.add(altlink);
         entry.setAlternateLinks(altlinks);
 
-        List otherlinks = new ArrayList();
+        List<Link> otherlinks = new ArrayList<>();
         entry.setOtherLinks(otherlinks);
         Link editlink = new Link();
             editlink.setRel("edit");
@@ -518,11 +518,11 @@ public class MediaCollection {
         Content content = new Content();
         content.setSrc(file.getPermalink());
         content.setType(contentType);
-        List contents = new ArrayList();
+        List<Content> contents = new ArrayList<>();
         contents.add(content);
         entry.setContents(contents);
         
-        List modules = new ArrayList();
+        List<com.rometools.rome.feed.module.Module> modules = new ArrayList<>();
         AppModule app = new AppModuleImpl();
         app.setDraft(false);
         app.setEdited(entry.getUpdated());
diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
index ee50a27..92e9b11 100644
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
+++ b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
@@ -65,7 +65,7 @@ public class RollerAtomService extends AtomService {
         } catch (WebloggerException re) {
             throw new AtomException("Getting user's weblogs", re);
         }
-        List uploadAccepts;
+        List<String> uploadAccepts;
         try {
             uploadAccepts = getAcceptedContentTypeRange();
         } catch (WebloggerException re) {
diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java b/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java
index f2fa7d4..ee7d40a 100644
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java
+++ b/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java
@@ -247,7 +247,7 @@ public class BloggerAPIHandler extends BaseAPIHandler {
 
             // TODO: Should screen name be renamed nickname and used here?
             // populates user information to return as a result
-            Hashtable result = new Hashtable();
+            Hashtable<String, String> result = new Hashtable<>();
             result.put("nickname", user.getUserName());
             result.put("userid", user.getUserName());
             result.put("email", "");
@@ -279,7 +279,7 @@ public class BloggerAPIHandler extends BaseAPIHandler {
         mLogger.debug("     Appkey: " + appkey);
         mLogger.debug("     UserId: " + userid);
         
-        Vector result = new Vector();
+        Vector<Object> result = new Vector<>();
         if (validateUser(userid, password)) {
             try {
                 UserManager umgr = WebloggerFactory.getWeblogger().getUserManager();
@@ -290,7 +290,7 @@ public class BloggerAPIHandler extends BaseAPIHandler {
                 for (Weblog website : websites) {
                     // only include weblog's that have client API support enabled
                     if (Boolean.TRUE.equals(website.getEnableBloggerApi())) {
-                        Hashtable blog = new Hashtable(3);
+                        Hashtable<String, String> blog = new Hashtable<>(3);
                         blog.put("url", website.getURL());
                         blog.put("blogid", website.getHandle());
                         blog.put("blogName", website.getName());
@@ -466,7 +466,7 @@ public class BloggerAPIHandler extends BaseAPIHandler {
         Weblog weblog = validate(blogid, userid,password);
         
         try {
-            Vector results = new Vector();
+            Vector<Object> results = new Vector<>();
             
             Weblogger roller = WebloggerFactory.getWeblogger();
             WeblogEntryManager weblogMgr = roller.getWeblogEntryManager();
@@ -478,7 +478,7 @@ public class BloggerAPIHandler extends BaseAPIHandler {
 
                 for (List<WeblogEntry> weList : entries.values()) {
                     for (WeblogEntry entry : weList) {
-                        Hashtable result = new Hashtable();
+                        Hashtable<String, Object> result = new Hashtable<>();
                         if (entry.getPubTime() != null) {
                             result.put("dateCreated", entry.getPubTime());
                         }
diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java b/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java
index 91f1cda..7b5d234 100644
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java
+++ b/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java
@@ -85,7 +85,7 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
         Weblog website = validate(blogid, userid,password);
         Weblogger roller = WebloggerFactory.getWeblogger();
         try {
-            Hashtable result = new Hashtable();
+            Hashtable<String, Object> result = new Hashtable<>();
             WeblogEntryManager weblogMgr = roller.getWeblogEntryManager();
             List<WeblogCategory> cats = weblogMgr.getWeblogCategories(website);
             for (WeblogCategory category : cats) {
@@ -395,7 +395,7 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
 
             roller.flush();
             
-            Hashtable returnStruct = new Hashtable(1);
+            Hashtable<String, String> returnStruct = new Hashtable<>(1);
             returnStruct.put("url", fileLink);
             return returnStruct;
             
@@ -428,7 +428,7 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
         Weblog website = validate(blogid, userid,password);
         
         try {
-            Vector results = new Vector();
+            Vector<Object> results = new Vector<>();
             
             Weblogger roller = WebloggerFactory.getWeblogger();
             WeblogEntryManager weblogMgr = roller.getWeblogEntryManager();
@@ -453,12 +453,12 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
     }
     
     
-    private Hashtable createPostStruct(WeblogEntry entry, String userid) {
+    private Hashtable<String, Object> createPostStruct(WeblogEntry entry, String userid) {
         
         String permalink =
             WebloggerRuntimeConfig.getAbsoluteContextURL() + entry.getPermaLink();
         
-        Hashtable struct = new Hashtable();
+        Hashtable<String, Object> struct = new Hashtable<>();
         struct.put("title", entry.getTitle());
         if (entry.getLink() != null) {
             struct.put("link", Utilities.escapeHTML(entry.getLink()));
@@ -476,7 +476,7 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
         struct.put("author", entry.getCreator().getEmailAddress());
        
         if ( entry.getCategory() != null ) {
-            Vector catArray = new Vector();
+            Vector<Object> catArray = new Vector<>();
             catArray.addElement(entry.getCategory().getName());
             struct.put("categories", catArray);
 
@@ -488,9 +488,9 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
     }
     
     
-    private Hashtable createCategoryStruct(WeblogCategory category, String userid) {
+    private Hashtable<String, String> createCategoryStruct(WeblogCategory category, String userid) {
         
-        Hashtable struct = new Hashtable();
+        Hashtable<String, String> struct = new Hashtable<>();
         struct.put("title", category.getName());
         struct.put("description", category.getName());
         

[roller] 09/19: Pojo wrapper stream refactoring + warning fixes.

Posted by mb...@apache.org.
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 7a0c86f66355505450016b613928f8f35928d14d
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 07:51:17 2021 +0200

    Pojo wrapper stream refactoring + warning fixes.
---
 .../pojos/WeblogEntryWrapperComparator.java        |   8 +-
 .../pojos/wrapper/WeblogBookmarkFolderWrapper.java |  12 +--
 .../pojos/wrapper/WeblogCategoryWrapper.java       |  25 +----
 .../pojos/wrapper/WeblogEntryWrapper.java          | 115 +++++----------------
 .../weblogger/pojos/wrapper/WeblogWrapper.java     |  92 +++++------------
 5 files changed, 66 insertions(+), 186 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntryWrapperComparator.java b/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntryWrapperComparator.java
index f12dad9..d61fa8c 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntryWrapperComparator.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntryWrapperComparator.java
@@ -29,14 +29,12 @@ import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
  * 
  * @author lance.lavandowska
  */
-public class WeblogEntryWrapperComparator implements Comparator, Serializable
-{
+public class WeblogEntryWrapperComparator implements Comparator<WeblogEntryWrapper>, Serializable {
+    
     static final long serialVersionUID = -9067148992322255150L;
     
     @Override
-    public int compare(Object val1, Object val2) {
-        WeblogEntryWrapper entry1 = (WeblogEntryWrapper)val1;
-        WeblogEntryWrapper entry2 = (WeblogEntryWrapper)val2;
+    public int compare(WeblogEntryWrapper entry1, WeblogEntryWrapper entry2) {
         long pubTime1 = entry1.getPubTime().getTime();
         long pubTime2 = entry2.getPubTime().getTime();
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogBookmarkFolderWrapper.java b/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogBookmarkFolderWrapper.java
index ff20656..affa64c 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogBookmarkFolderWrapper.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogBookmarkFolderWrapper.java
@@ -18,9 +18,8 @@
 
 package org.apache.roller.weblogger.pojos.wrapper;
 
-import java.util.ArrayList;
 import java.util.List;
-import org.apache.roller.weblogger.pojos.WeblogBookmark;
+import java.util.stream.Collectors;
 import org.apache.roller.weblogger.pojos.WeblogBookmarkFolder;
 
 
@@ -54,12 +53,9 @@ public final class WeblogBookmarkFolderWrapper {
     }
 
     public List<WeblogBookmarkWrapper> getBookmarks() {
-        // iterate through and wrap
-        List<WeblogBookmarkWrapper> wrappedCollection = new ArrayList<>(this.pojo.getBookmarks().size());
-        for (WeblogBookmark bookmark : this.pojo.getBookmarks()) {
-            wrappedCollection.add(WeblogBookmarkWrapper.wrap(bookmark));
-        }
-        return wrappedCollection;
+        return this.pojo.getBookmarks().stream()
+                .map(WeblogBookmarkWrapper::wrap)
+                .collect(Collectors.toList());
     }    
 
 }
diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper.java b/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper.java
index 5408ead..4f99ad5 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper.java
@@ -18,13 +18,11 @@
 
 package org.apache.roller.weblogger.pojos.wrapper;
 
-import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
+import java.util.stream.Collectors;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.URLStrategy;
 import org.apache.roller.weblogger.pojos.WeblogCategory;
-import org.apache.roller.weblogger.pojos.WeblogEntry;
 
 
 /**
@@ -79,23 +77,10 @@ public final class WeblogCategoryWrapper {
         return WeblogWrapper.wrap(this.pojo.getWeblog(), urlStrategy);
     }
 
-    public List retrieveWeblogEntries(boolean publishedOnly)
-            throws WebloggerException {
-        
-        List initialCollection = this.pojo.retrieveWeblogEntries(publishedOnly);
-        
-        // iterate through and wrap
-        // we force the use of an ArrayList because it should be good enough to cover
-        // for any Collection type we encounter.
-        ArrayList wrappedCollection = new ArrayList(initialCollection.size());
-        Iterator it = initialCollection.iterator();
-        int i = 0;
-        while(it.hasNext()) {
-            wrappedCollection.add(i,WeblogEntryWrapper.wrap((WeblogEntry) it.next(), urlStrategy));
-            i++;
-        }
-        
-        return wrappedCollection;
+    public List<WeblogEntryWrapper> retrieveWeblogEntries(boolean publishedOnly) throws WebloggerException {
+        return this.pojo.retrieveWeblogEntries(publishedOnly).stream()
+                .map(entry -> WeblogEntryWrapper.wrap(entry, urlStrategy))
+                .collect(Collectors.toList());
     }
     
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.java b/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.java
index 3b948f2..1dc6a54 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.java
@@ -19,19 +19,12 @@
 package org.apache.roller.weblogger.pojos.wrapper;
 
 import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
+import java.util.stream.Collectors;
 
 import org.apache.roller.weblogger.business.URLStrategy;
-import org.apache.roller.weblogger.pojos.WeblogCategory;
 import org.apache.roller.weblogger.pojos.WeblogEntry;
 import org.apache.roller.weblogger.pojos.WeblogEntry.PubStatus;
-import org.apache.roller.weblogger.pojos.WeblogEntryAttribute;
-import org.apache.roller.weblogger.pojos.WeblogEntryComment;
-import org.apache.roller.weblogger.pojos.WeblogEntryTag;
 import org.apache.roller.weblogger.pojos.WeblogEntryTagComparator;
 import org.apache.roller.weblogger.util.HTMLSanitizer;
 
@@ -74,21 +67,10 @@ public final class WeblogEntryWrapper {
     }
     
     
-    public List getCategories() {
-        List initialCollection = this.pojo.getCategories();
-        
-        // iterate through and wrap
-        // we force the use of an ArrayList because it should be good enough to cover
-        // for any Collection type we encounter.
-        ArrayList wrappedCollection = new ArrayList(initialCollection.size());
-        Iterator it = initialCollection.iterator();
-        int i = 0;
-        while(it.hasNext()) {
-            wrappedCollection.add(i,WeblogCategoryWrapper.wrap((WeblogCategory) it.next(), urlStrategy));
-            i++;
-        }
-        
-        return wrappedCollection;
+    public List<WeblogCategoryWrapper> getCategories() {      
+        return this.pojo.getCategories().stream()
+                .map(cat -> WeblogCategoryWrapper.wrap(cat, urlStrategy))
+                .collect(Collectors.toList());
     }
     
     
@@ -134,21 +116,10 @@ public final class WeblogEntryWrapper {
     }
     
     
-    public List getEntryAttributes() {
-        Set initialCollection = this.pojo.getEntryAttributes();
-        
-        // iterate through and wrap
-        // we force the use of an ArrayList because it should be good enough to cover
-        // for any Collection type we encounter.
-        ArrayList wrappedCollection = new ArrayList(initialCollection.size());
-        Iterator it = initialCollection.iterator();
-        int i = 0;
-        while(it.hasNext()) {
-            wrappedCollection.add(i,WeblogEntryAttributeWrapper.wrap((WeblogEntryAttribute) it.next()));
-            i++;
-        }
-        
-        return wrappedCollection;
+    public List<WeblogEntryAttributeWrapper> getEntryAttributes() {
+        return this.pojo.getEntryAttributes().stream()
+                .map(WeblogEntryAttributeWrapper::wrap)
+                .collect(Collectors.toList());
     }
     
     
@@ -207,23 +178,11 @@ public final class WeblogEntryWrapper {
     }
     
     
-    public List getTags() {
-        // Sort by name
-        Set<WeblogEntryTag> initialCollection = new TreeSet<>(new WeblogEntryTagComparator());
-        initialCollection.addAll(this.pojo.getTags());
-        
-        // iterate through and wrap
-        // we force the use of an ArrayList because it should be good enough to cover
-        // for any Collection type we encounter.
-        ArrayList wrappedCollection = new ArrayList(initialCollection.size());
-        Iterator it = initialCollection.iterator();
-        int i = 0;
-        while(it.hasNext()) {
-            wrappedCollection.add(i,WeblogEntryTagWrapper.wrap((WeblogEntryTag) it.next()));
-            i++;
-        }
-        
-        return wrappedCollection;
+    public List<WeblogEntryTagWrapper> getTags() {
+        return this.pojo.getTags().stream()
+                .sorted(new WeblogEntryTagComparator()) // by name
+                .map(WeblogEntryTagWrapper::wrap)
+                .collect(Collectors.toList());
     }
     
     
@@ -247,39 +206,17 @@ public final class WeblogEntryWrapper {
     }
     
     
-    public List getComments() {
-        List initialCollection = this.pojo.getComments();
-        
-        // iterate through and wrap
-        // we force the use of an ArrayList because it should be good enough to cover
-        // for any Collection type we encounter.
-        ArrayList wrappedCollection = new ArrayList(initialCollection.size());
-        Iterator it = initialCollection.iterator();
-        int i = 0;
-        while(it.hasNext()) {
-            wrappedCollection.add(i,WeblogEntryCommentWrapper.wrap((WeblogEntryComment) it.next(), urlStrategy));
-            i++;
-        }
-        
-        return wrappedCollection;
-    }
-    
-    
-    public List getComments(boolean ignoreSpam,boolean approvedOnly) {
-        List initialCollection = this.pojo.getComments(ignoreSpam,approvedOnly);
-        
-        // iterate through and wrap
-        // we force the use of an ArrayList because it should be good enough to cover
-        // for any Collection type we encounter.
-        ArrayList wrappedCollection = new ArrayList(initialCollection.size());
-        Iterator it = initialCollection.iterator();
-        int i = 0;
-        while(it.hasNext()) {
-            wrappedCollection.add(i,WeblogEntryCommentWrapper.wrap((WeblogEntryComment) it.next(), urlStrategy));
-            i++;
-        }
-        
-        return wrappedCollection;
+    public List<WeblogEntryCommentWrapper> getComments() {
+        return this.pojo.getComments().stream()
+                .map(comment -> WeblogEntryCommentWrapper.wrap(comment, urlStrategy))
+                .collect(Collectors.toList());
+    }
+    
+    
+    public List<WeblogEntryCommentWrapper> getComments(boolean ignoreSpam, boolean approvedOnly) {
+        return this.pojo.getComments(ignoreSpam, approvedOnly).stream()
+                .map(comment -> WeblogEntryCommentWrapper.wrap(comment, urlStrategy))
+                .collect(Collectors.toList());
     }
     
     
@@ -319,7 +256,7 @@ public final class WeblogEntryWrapper {
     
     
     // TODO: check this method for safety
-    public List getPluginsList() {
+    public List<String> getPluginsList() {
         return this.pojo.getPluginsList();
     }
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java b/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
index 703846c..afc297a 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
@@ -18,19 +18,19 @@
 
 package org.apache.roller.weblogger.pojos.wrapper;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+import java.util.TimeZone;
 import org.apache.commons.text.StringEscapeUtils;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.URLStrategy;
 import org.apache.roller.weblogger.pojos.TagStat;
 import org.apache.roller.weblogger.util.HTMLSanitizer;
 
-import java.util.*;
-import org.apache.roller.weblogger.pojos.ThemeTemplate;
+import java.util.stream.Collectors;
 import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.Weblog;
-import org.apache.roller.weblogger.pojos.WeblogCategory;
-import org.apache.roller.weblogger.pojos.WeblogEntry;
-import org.apache.roller.weblogger.pojos.WeblogEntryComment;
 
 
 /**
@@ -60,37 +60,25 @@ public final class WeblogWrapper {
     }
 
 
-    public ThemeTemplateWrapper getTemplateByAction(ComponentType action)
-            throws WebloggerException {
-        ThemeTemplate templateToWrap = this.pojo.getTheme().getTemplateByAction(action);
-        return ThemeTemplateWrapper.wrap(templateToWrap);
+    public ThemeTemplateWrapper getTemplateByAction(ComponentType action) throws WebloggerException {
+        return ThemeTemplateWrapper.wrap(this.pojo.getTheme().getTemplateByAction(action));
     }
     
     
-    public ThemeTemplateWrapper getTemplateByName(String name)
-            throws WebloggerException {
-       ThemeTemplate templateToWrap = this.pojo.getTheme().getTemplateByName(name);
-        return ThemeTemplateWrapper.wrap(templateToWrap);
+    public ThemeTemplateWrapper getTemplateByName(String name) throws WebloggerException {
+        return ThemeTemplateWrapper.wrap(this.pojo.getTheme().getTemplateByName(name));
     }
     
     
-    public ThemeTemplateWrapper getTemplateByLink(String link)
-            throws WebloggerException {
-        ThemeTemplate templateToWrap = this.pojo.getTheme().getTemplateByLink(link);
-        return ThemeTemplateWrapper.wrap(templateToWrap);
+    public ThemeTemplateWrapper getTemplateByLink(String link) throws WebloggerException {
+        return ThemeTemplateWrapper.wrap(this.pojo.getTheme().getTemplateByLink(link));
     }
     
     
     public List<ThemeTemplateWrapper> getTemplates() throws WebloggerException {
-        List<? extends ThemeTemplate> unwrapped = this.pojo.getTheme().getTemplates();
-        List<ThemeTemplateWrapper> wrapped = new ArrayList<>(unwrapped.size());
-
-        int i = 0;
-        for (ThemeTemplate template : unwrapped) {
-            wrapped.add(i,ThemeTemplateWrapper.wrap(template));
-            i++;
-        }
-        return wrapped;
+        return this.pojo.getTheme().getTemplates().stream()
+                .map(ThemeTemplateWrapper::wrap)
+                .collect(Collectors.toList());
     }
     
     
@@ -292,15 +280,9 @@ public final class WeblogWrapper {
 
 
     public List<WeblogCategoryWrapper> getWeblogCategories() {
-        List<WeblogCategory> unwrapped = this.pojo.getWeblogCategories();
-        List<WeblogCategoryWrapper> wrapped = new ArrayList<>(unwrapped.size());
-
-        int i = 0;
-        for (WeblogCategory category : unwrapped) {
-            wrapped.add(i,WeblogCategoryWrapper.wrap(category, urlStrategy));
-            i++;
-        }
-        return wrapped;
+        return this.pojo.getWeblogCategories().stream()
+                .map(cat -> WeblogCategoryWrapper.wrap(cat, urlStrategy))
+                .collect(Collectors.toList());
     }
 
     public WeblogCategoryWrapper getWeblogCategory(String categoryName) {
@@ -308,42 +290,24 @@ public final class WeblogWrapper {
     }
 
     
-    public List<WeblogEntryWrapper> getRecentWeblogEntries(String cat,int length) {
-        List<WeblogEntry> unwrapped = this.pojo.getRecentWeblogEntries(cat, length);
-        List<WeblogEntryWrapper> wrapped = new ArrayList<>(unwrapped.size());
-
-        int i = 0;
-        for (WeblogEntry we : unwrapped) {
-            wrapped.add(i,WeblogEntryWrapper.wrap(we, urlStrategy));
-            i++;
-        }
-        return wrapped;
+    public List<WeblogEntryWrapper> getRecentWeblogEntries(String cat, int length) {
+        return this.pojo.getRecentWeblogEntries(cat, length).stream()
+                .map(entry -> WeblogEntryWrapper.wrap(entry, urlStrategy))
+                .collect(Collectors.toList());
     }
     
     
-    public List<WeblogEntryWrapper> getRecentWeblogEntriesByTag(String tag,int length) {
-        List<WeblogEntry> unwrapped = pojo.getRecentWeblogEntriesByTag(tag,length);
-        List<WeblogEntryWrapper> wrapped = new ArrayList<>(unwrapped.size());
-
-        int i = 0;
-        for (WeblogEntry we : unwrapped) {
-            wrapped.add(i,WeblogEntryWrapper.wrap(we, urlStrategy));
-            i++;
-        }
-        return wrapped;
+    public List<WeblogEntryWrapper> getRecentWeblogEntriesByTag(String tag, int length) {
+        return this.pojo.getRecentWeblogEntriesByTag(tag, length).stream()
+                .map(entry -> WeblogEntryWrapper.wrap(entry, urlStrategy))
+                .collect(Collectors.toList());
     }
     
     
     public List<WeblogEntryCommentWrapper> getRecentComments(int length) {
-        List<WeblogEntryComment> unwrapped = this.pojo.getRecentComments(length);
-        List<WeblogEntryCommentWrapper> wrapped = new ArrayList<>(unwrapped.size());
-
-        int i = 0;
-        for (WeblogEntryComment wec : unwrapped) {
-            wrapped.add(i, WeblogEntryCommentWrapper.wrap(wec, urlStrategy));
-            i++;
-        }
-        return wrapped;
+        return this.pojo.getRecentComments(length).stream()
+                .map(wec -> WeblogEntryCommentWrapper.wrap(wec, urlStrategy))
+                .collect(Collectors.toList());
     }
     
     

[roller] 04/19: UrlValidator package changed.

Posted by mb...@apache.org.
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 499b02ffa9a06d9ca862dc0a20a7198d1b4c4e78
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 08:18:49 2021 +0200

    UrlValidator package changed.
---
 .../roller/weblogger/util/HTMLSanitizer.java       | 23 +++++++++++-----------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java b/app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java
index dbbdc44..3f82305 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java
@@ -45,8 +45,7 @@ import java.util.List;
 import java.util.Stack;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-
-import org.apache.commons.validator.UrlValidator;
+import org.apache.commons.validator.routines.UrlValidator;
 import org.apache.roller.weblogger.config.WebloggerConfig;
 
 public class HTMLSanitizer {
@@ -56,21 +55,21 @@ public class HTMLSanitizer {
     public static Pattern allowedTags = Pattern.compile("^(b|p|i|s|a|img|table|thead|tbody|tfoot|tr|th|td|dd|dl|dt|em|h1|h2|h3|h4|h5|h6|li|ul|ol|span|div|strike|strong|"
             + "sub|sup|pre|del|code|blockquote|kbd|br|hr|area|map|object|embed|param|link|form|small|big)$");
     // <!--.........>
-    private static Pattern commentPattern = Pattern.compile("<!--.*");
+    private static final Pattern commentPattern = Pattern.compile("<!--.*");
     // <tag ....props.....>
-    private static Pattern tagStartPattern = Pattern.compile("<(?i)(\\w+\\b)\\s*(.*)/?>$");
+    private static final Pattern tagStartPattern = Pattern.compile("<(?i)(\\w+\\b)\\s*(.*)/?>$");
     // </tag .........>
-    private static Pattern tagClosePattern = Pattern.compile("</(?i)(\\w+\\b)\\s*>$");
-    private static Pattern standAloneTags = Pattern.compile("^(img|br|hr)$");
-    private static Pattern selfClosed = Pattern.compile("<.+/>");
+    private static final Pattern tagClosePattern = Pattern.compile("</(?i)(\\w+\\b)\\s*>$");
+    private static final Pattern standAloneTags = Pattern.compile("^(img|br|hr)$");
+    private static final Pattern selfClosed = Pattern.compile("<.+/>");
     // prop="...."
-    private static Pattern attributesPattern = Pattern.compile("(\\w*)\\s*=\\s*\"([^\"]*)\"");
+    private static final Pattern attributesPattern = Pattern.compile("(\\w*)\\s*=\\s*\"([^\"]*)\"");
     // color:red;
-    private static Pattern stylePattern = Pattern.compile("([^\\s^:]+)\\s*:\\s*([^;]+);?");
+    private static final Pattern stylePattern = Pattern.compile("([^\\s^:]+)\\s*:\\s*([^;]+);?");
     // url('....')"
-    private static Pattern urlStylePattern = Pattern.compile("(?i).*\\b\\s*url\\s*\\(['\"]([^)]*)['\"]\\)");
+    private static final Pattern urlStylePattern = Pattern.compile("(?i).*\\b\\s*url\\s*\\(['\"]([^)]*)['\"]\\)");
     // expression(....)"   thanks to Ben Summer
-    private static Pattern forbiddenStylePattern = Pattern.compile("(?:(expression|eval|javascript))\\s*\\(");
+    private static final Pattern forbiddenStylePattern = Pattern.compile("(?:(expression|eval|javascript))\\s*\\(");
 
     /**
      * This method should be used to test input.
@@ -373,7 +372,7 @@ public class HTMLSanitizer {
      * @return a list of token
      */
     private static List<String> tokenize(String html) {
-        ArrayList tokens = new ArrayList();
+        List<String> tokens = new ArrayList<>();
         int pos = 0;
         String token = "";
         int len = html.length();

[roller] 10/19: URLStrategy: better StringBuilder sizing, generics and collection improvements.

Posted by mb...@apache.org.
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 5fe8291314b0ff85b85ae7442f664f195ad5b80e
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 08:34:04 2021 +0200

    URLStrategy: better StringBuilder sizing, generics and collection improvements.
---
 .../weblogger/business/AbstractURLStrategy.java    | 49 +++++++--------
 .../weblogger/business/MultiWeblogURLStrategy.java | 71 ++++++++++------------
 .../weblogger/business/PreviewURLStrategy.java     | 57 ++++++++---------
 .../roller/weblogger/business/URLStrategy.java     |  6 +-
 4 files changed, 85 insertions(+), 98 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/business/AbstractURLStrategy.java b/app/src/main/java/org/apache/roller/weblogger/business/AbstractURLStrategy.java
index 1567eaf..bffb6f0 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/AbstractURLStrategy.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/AbstractURLStrategy.java
@@ -30,6 +30,9 @@ import org.apache.roller.weblogger.util.URLUtilities;
  */
 public abstract class AbstractURLStrategy implements URLStrategy {
     
+    static final int URL_BUFFER_SIZE = 64;
+    
+    
     public AbstractURLStrategy() {}
     
     
@@ -39,7 +42,7 @@ public abstract class AbstractURLStrategy implements URLStrategy {
     @Override
     public String getLoginURL(boolean absolute) {
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -59,7 +62,7 @@ public abstract class AbstractURLStrategy implements URLStrategy {
     @Override
     public String getLogoutURL(boolean absolute) {
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -78,7 +81,7 @@ public abstract class AbstractURLStrategy implements URLStrategy {
     @Override
     public String getRegisterURL(boolean absolute) {
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -103,7 +106,7 @@ public abstract class AbstractURLStrategy implements URLStrategy {
                                             Map<String, String> parameters,
                                             boolean absolute) {
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -112,7 +115,7 @@ public abstract class AbstractURLStrategy implements URLStrategy {
         }
         
         url.append(namespace);
-        url.append("/").append(action).append(".rol");
+        url.append('/').append(action).append(".rol");
         
         // put weblog handle parameter, if necessary
         Map<String, String> params = new HashMap<>();
@@ -137,10 +140,9 @@ public abstract class AbstractURLStrategy implements URLStrategy {
      * Get a url to add a new weblog entry.
      */
     @Override
-    public String getEntryAddURL(String weblogHandle,
-                                              boolean absolute) {
+    public String getEntryAddURL(String weblogHandle, boolean absolute) {
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -150,10 +152,9 @@ public abstract class AbstractURLStrategy implements URLStrategy {
         
         url.append("/roller-ui/authoring/entryAdd.rol");
         
-        Map params = new HashMap();
-        params.put("weblog", weblogHandle);
+        Map<String, String> params = Map.of("weblog", weblogHandle);
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
@@ -161,11 +162,9 @@ public abstract class AbstractURLStrategy implements URLStrategy {
      * Get a url to edit a specific weblog entry.
      */
     @Override
-    public String getEntryEditURL(String weblogHandle,
-                                               String entryId,
-                                               boolean absolute) {
+    public String getEntryEditURL(String weblogHandle, String entryId, boolean absolute) {
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -175,11 +174,9 @@ public abstract class AbstractURLStrategy implements URLStrategy {
         
         url.append("/roller-ui/authoring/entryEdit.rol");
         
-        Map params = new HashMap();
-        params.put("weblog", weblogHandle);
-        params.put("bean.id", entryId);
+        Map<String, String> params = Map.of("weblog", weblogHandle, "bean.id", entryId);
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
@@ -187,10 +184,9 @@ public abstract class AbstractURLStrategy implements URLStrategy {
      * Get a url to weblog config page.
      */
     @Override
-    public String getWeblogConfigURL(String weblogHandle,
-                                                  boolean absolute) {
+    public String getWeblogConfigURL(String weblogHandle, boolean absolute) {
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -200,17 +196,16 @@ public abstract class AbstractURLStrategy implements URLStrategy {
         
         url.append("/roller-ui/authoring/weblogConfig.rol");
         
-        Map params = new HashMap();
-        params.put("weblog", weblogHandle);
+        Map<String, String> params = Map.of("weblog", weblogHandle);
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
     @Override
     public String getXmlrpcURL(boolean absolute) {
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -227,7 +222,7 @@ public abstract class AbstractURLStrategy implements URLStrategy {
     @Override
     public String getAtomProtocolURL(boolean absolute) {
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java b/app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java
index e49e842..acb077e 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java
@@ -66,10 +66,10 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             url.append(WebloggerRuntimeConfig.getRelativeContextURL());
         }
 
-        url.append("/").append(weblog.getHandle()).append("/");
+        url.append('/').append(weblog.getHandle()).append('/');
 
         if (locale != null) {
-            url.append(locale).append("/");
+            url.append(locale).append('/');
         }
 
         return url.toString();
@@ -114,7 +114,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
         StringBuilder url = new StringBuilder();
         url.append(getWeblogURL(weblog, null, absolute));
         url.append("mediaresource");
-        url.append("/");
+        url.append('/');
         url.append(URLUtilities.encode(fileAnchor));
         
         return url.toString();
@@ -168,7 +168,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
                                                       String locale,
                                                       String category,
                                                       String dateString,
-                                                      List tags,
+                                                      List<String> tags,
                                                       int pageNum,
                                                       boolean absolute) {
         
@@ -176,8 +176,8 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             return null;
         }
         
-        StringBuilder pathinfo = new StringBuilder();
-        Map params = new HashMap();
+        StringBuilder pathinfo = new StringBuilder(URL_BUFFER_SIZE);
+        Map<String, String> params = new HashMap<>();
         
         pathinfo.append(getWeblogURL(weblog, locale, absolute));
         
@@ -209,7 +209,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             params.put("page", Integer.toString(pageNum));
         }
         
-        return pathinfo.toString() + URLUtilities.getQueryString(params);
+        return pathinfo.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
@@ -223,7 +223,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
                                                 String entryAnchor,
                                                 String category,
                                                 String dateString,
-                                                List tags,
+                                                List<String> tags,
                                                 int pageNum,
                                                 boolean absolute) {
         
@@ -231,8 +231,8 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             return null;
         }
         
-        StringBuilder pathinfo = new StringBuilder();
-        Map params = new HashMap();
+        StringBuilder pathinfo = new StringBuilder(URL_BUFFER_SIZE);
+        Map<String, String> params = new HashMap<>();
         
         pathinfo.append(getWeblogURL(weblog, locale, absolute));
         
@@ -257,7 +257,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             return getWeblogCollectionURL(weblog, locale, category, dateString, tags, pageNum, absolute);
         }
         
-        return pathinfo.toString() + URLUtilities.getQueryString(params);
+        return pathinfo.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
@@ -271,7 +271,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
                                                 String format,
                                                 String category,
                                                 String term,
-                                                List tags,
+                                                List<String> tags,
                                                 boolean excerpts,
                                                 boolean absolute) {
         
@@ -279,12 +279,12 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             return null;
         }
         
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         url.append(getWeblogURL(weblog, locale, absolute));
-        url.append("feed/").append(type).append("/").append(format);
+        url.append("feed/").append(type).append('/').append(format);
         
-        Map params = new HashMap();
+        Map<String, String> params = new HashMap<>();
         if(category != null && !category.isBlank()) {
             params.put("cat", URLUtilities.encode(category));
         }
@@ -298,7 +298,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             params.put("excerpts", "true");
         }
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
@@ -317,12 +317,12 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             return null;
         }
         
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         url.append(getWeblogURL(weblog, locale, absolute));
         url.append("search");
         
-        Map params = new HashMap();
+        Map<String, String> params = new HashMap<>();
         if(query != null) {
             params.put("q", URLUtilities.encode(query));
             
@@ -335,7 +335,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             }
         }
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
@@ -343,15 +343,13 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
      * Get url to a resource on a given weblog.
      */
     @Override
-    public String getWeblogResourceURL(Weblog weblog,
-                                                    String filePath,
-                                                    boolean absolute) {
+    public String getWeblogResourceURL(Weblog weblog, String filePath, boolean absolute) {
         
         if(weblog == null || StringUtils.isEmpty(filePath)) {
             return null;
         }
         
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         url.append(getWeblogURL(weblog, null, absolute));
         url.append("resource/");
@@ -370,8 +368,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
      * Get url to rsd file on a given weblog.
      */
     @Override
-    public String getWeblogRsdURL(Weblog weblog,
-                                               boolean absolute) {
+    public String getWeblogRsdURL(Weblog weblog, boolean absolute) {
         
         if(weblog == null) {
             return null;
@@ -385,11 +382,9 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
      * Get url to JSON tags service url, optionally for a given weblog.
      */
     @Override
-    public String getWeblogTagsJsonURL(Weblog weblog,
-                                                    boolean absolute,
-                                                    int pageNum) {
+    public String getWeblogTagsJsonURL(Weblog weblog, boolean absolute, int pageNum) {
         
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if (absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -404,7 +399,7 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
         if (weblog != null) {
             url.append("weblog/");
             url.append(weblog.getHandle());
-            url.append("/");
+            url.append('/');
         }
         
         if (pageNum > 0) {
@@ -421,16 +416,14 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             return null;
         }
         
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         url.append(getWeblogURL(weblog, null, true));
         url.append("feed/entries/atom");
         
-        Map params = new HashMap();
-        params.put("q", "{searchTerms}");
-        params.put("page", "{startPage}");
+        Map<String, String> params = Map.of("q", "{searchTerms}", "page", "{startPage}");
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
 
     
@@ -440,16 +433,14 @@ public class MultiWeblogURLStrategy extends AbstractURLStrategy {
             return null;
         }
         
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         url.append(getWeblogURL(weblog, null, true));
         url.append("search");
         
-        Map params = new HashMap();
-        params.put("q", "{searchTerms}");
-        params.put("page", "{startPage}");
+        Map<String, String> params = Map.of("q", "{searchTerms}", "page", "{startPage}");
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
 
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java b/app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java
index 6f1d2cf..a8c3bff 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java
@@ -18,6 +18,7 @@
 
 package org.apache.roller.weblogger.business;
 
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -51,7 +52,7 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             return null;
         }
         
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -59,18 +60,18 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             url.append(WebloggerRuntimeConfig.getRelativeContextURL());
         }
         
-        url.append(PREVIEW_URL_SEGMENT).append(weblog.getHandle()).append("/");
+        url.append(PREVIEW_URL_SEGMENT).append(weblog.getHandle()).append('/');
         
         if(locale != null) {
-            url.append(locale).append("/");
+            url.append(locale).append('/');
         }
         
-        Map params = new HashMap();
+        Map<String, String> params = Collections.emptyMap();
         if(previewTheme != null) {
-            params.put("theme", URLUtilities.encode(previewTheme));
+            params = Map.of("theme", URLUtilities.encode(previewTheme));
         }
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
@@ -88,7 +89,7 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             return null;
         }
 
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -96,13 +97,13 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             url.append(WebloggerRuntimeConfig.getRelativeContextURL());
         }
         
-        url.append(PREVIEW_URL_SEGMENT).append(weblog.getHandle()).append("/");
+        url.append(PREVIEW_URL_SEGMENT).append(weblog.getHandle()).append('/');
         
         if(locale != null) {
-            url.append(locale).append("/");
+            url.append(locale).append('/');
         }
         
-        Map params = new HashMap();
+        Map<String, String> params = new HashMap<>();
         if(previewTheme != null) {
             params.put("theme", URLUtilities.encode(previewTheme));
         }
@@ -110,7 +111,7 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             params.put("previewEntry", URLUtilities.encode(previewAnchor));
         }
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
@@ -122,7 +123,7 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
                                                       String locale,
                                                       String category,
                                                       String dateString,
-                                                      List tags,
+                                                      List<String> tags,
                                                       int pageNum,
                                                       boolean absolute) {
         
@@ -130,8 +131,8 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             return null;
         }
 
-        StringBuilder pathinfo = new StringBuilder();
-        Map params = new HashMap();
+        StringBuilder pathinfo = new StringBuilder(URL_BUFFER_SIZE);
+        Map<String, String> params = new HashMap<>();
         
         if(absolute) {
         	pathinfo.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -139,10 +140,10 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
         	pathinfo.append(WebloggerRuntimeConfig.getRelativeContextURL());
         }
         
-        pathinfo.append(PREVIEW_URL_SEGMENT).append(weblog.getHandle()).append("/");
+        pathinfo.append(PREVIEW_URL_SEGMENT).append(weblog.getHandle()).append('/');
         
         if(locale != null) {
-        	pathinfo.append(locale).append("/");
+        	pathinfo.append(locale).append('/');
         }
 
         String cat;
@@ -177,7 +178,7 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             params.put("theme", URLUtilities.encode(previewTheme));
         }
 
-        return pathinfo.toString() + URLUtilities.getQueryString(params);
+        return pathinfo.append(URLUtilities.getQueryString(params)).toString();
     }
     
 
@@ -191,7 +192,7 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
                                                 String entryAnchor,
                                                 String category,
                                                 String dateString,
-                                                List tags,
+                                                List<String> tags,
                                                 int pageNum,
                                                 boolean absolute) {
         
@@ -199,8 +200,8 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             return null;
         }
         
-        StringBuilder pathinfo = new StringBuilder();
-        Map params = new HashMap();
+        StringBuilder pathinfo = new StringBuilder(URL_BUFFER_SIZE);
+        Map<String, String> params = new HashMap<>();
         
         if(absolute) {
             pathinfo.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -208,10 +209,10 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             pathinfo.append(WebloggerRuntimeConfig.getRelativeContextURL());
         }
         
-        pathinfo.append(PREVIEW_URL_SEGMENT).append(weblog.getHandle()).append("/");
+        pathinfo.append(PREVIEW_URL_SEGMENT).append(weblog.getHandle()).append('/');
         
         if(locale != null) {
-            pathinfo.append(locale).append("/");
+            pathinfo.append(locale).append('/');
         }
         
         if(previewTheme != null) {
@@ -239,7 +240,7 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             return getWeblogCollectionURL(weblog, locale, category, dateString, tags, pageNum, absolute);
         }
         
-        return pathinfo.toString() + URLUtilities.getQueryString(params);
+        return pathinfo.append(URLUtilities.getQueryString(params)).toString();
     }
     
     
@@ -253,7 +254,7 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             return null;
         }
         
-        StringBuilder url = new StringBuilder();
+        StringBuilder url = new StringBuilder(URL_BUFFER_SIZE);
         
         if(absolute) {
             url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
@@ -261,7 +262,7 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             url.append(WebloggerRuntimeConfig.getRelativeContextURL());
         }
         
-        url.append("/roller-ui/authoring/previewresource/").append(weblog.getHandle()).append("/");
+        url.append("/roller-ui/authoring/previewresource/").append(weblog.getHandle()).append('/');
         
         if(filePath.startsWith("/")) {
             url.append(filePath.substring(1));
@@ -269,12 +270,12 @@ public class PreviewURLStrategy extends MultiWeblogURLStrategy {
             url.append(filePath);
         }
         
-        Map params = new HashMap();
+        Map<String, String> params = Collections.emptyMap();
         if(previewTheme != null && !WeblogTheme.CUSTOM.equals(previewTheme)) {
-            params.put("theme", URLUtilities.encode(previewTheme));
+            params = Map.of("theme", URLUtilities.encode(previewTheme));
         }
         
-        return url.toString() + URLUtilities.getQueryString(params);
+        return url.append(URLUtilities.getQueryString(params)).toString();
     }
     
 }
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/URLStrategy.java b/app/src/main/java/org/apache/roller/weblogger/business/URLStrategy.java
index 29ca52c..db87407 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/URLStrategy.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/URLStrategy.java
@@ -173,7 +173,7 @@ public interface URLStrategy {
                                                       String locale,
                                                       String category,
                                                       String dateString,
-                                                      List tags,
+                                                      List<String> tags,
                                                       int pageNum,
                                                       boolean absolute);
     
@@ -187,7 +187,7 @@ public interface URLStrategy {
                                                 String entryAnchor,
                                                 String category,
                                                 String dateString,
-                                                List tags,
+                                                List<String> tags,
                                                 int pageNum,
                                                 boolean absolute);
     
@@ -201,7 +201,7 @@ public interface URLStrategy {
                                                 String format,
                                                 String category,
                                                 String term,
-                                                List tags,
+                                                List<String> tags,
                                                 boolean excerpts,
                                                 boolean absolute);
     

[roller] 03/19: MethodOrderer.Alphanumeric is deprecated, use MethodOrder.MethodName instead.

Posted by mb...@apache.org.
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 3faedb231ce6aca3049c100a940fe4d0b0d37d18
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 08:14:31 2021 +0200

    MethodOrderer.Alphanumeric is deprecated, use MethodOrder.MethodName instead.
---
 .../org/apache/roller/planet/business/SubscriptionFunctionalTests.java  | 2 +-
 .../test/java/org/apache/roller/weblogger/business/WeblogStatsTest.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/src/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java b/app/src/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java
index 0febf3b..09e5a98 100644
--- a/app/src/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java
+++ b/app/src/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java
@@ -29,7 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 /**
  * Test Subscription functionality.
  */
-@TestMethodOrder(MethodOrderer.Alphanumeric.class)
+@TestMethodOrder(MethodOrderer.MethodName.class)
 public class SubscriptionFunctionalTests  {
     
     private Planet testPlanet = null;
diff --git a/app/src/test/java/org/apache/roller/weblogger/business/WeblogStatsTest.java b/app/src/test/java/org/apache/roller/weblogger/business/WeblogStatsTest.java
index ddf6d06..2649f63 100644
--- a/app/src/test/java/org/apache/roller/weblogger/business/WeblogStatsTest.java
+++ b/app/src/test/java/org/apache/roller/weblogger/business/WeblogStatsTest.java
@@ -30,7 +30,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 
-@TestMethodOrder(MethodOrderer.Alphanumeric.class)
+@TestMethodOrder(MethodOrderer.MethodName.class)
 public class WeblogStatsTest  {
     
     private User user1, user2;

[roller] 01/19: Class.newInstance() deprecation.

Posted by mb...@apache.org.
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 <mb...@gmail.com>
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);
             }

[roller] 02/19: struts2: refactored deprecated ParameterAware to HttpParametersAware.

Posted by mb...@apache.org.
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 a7237f9d979a8618e95db8f49e0bc9dd4a557ac7
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 10:36:52 2021 +0200

    struts2: refactored deprecated ParameterAware to HttpParametersAware.
---
 .../roller/weblogger/planet/ui/PlanetConfig.java   | 20 +++++++++--------
 .../weblogger/ui/struts2/admin/GlobalConfig.java   | 25 ++++++++++------------
 .../weblogger/ui/struts2/editor/Members.java       | 24 ++++++++-------------
 3 files changed, 31 insertions(+), 38 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetConfig.java b/app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetConfig.java
index ce9f1ff..8d24508 100644
--- a/app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetConfig.java
+++ b/app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetConfig.java
@@ -30,7 +30,9 @@ import org.apache.roller.weblogger.config.runtime.PropertyDef;
 import org.apache.roller.weblogger.config.runtime.RuntimeConfigDefs;
 import org.apache.roller.weblogger.pojos.GlobalPermission;
 import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
-import org.apache.struts2.interceptor.ParameterAware;
+import org.apache.struts2.interceptor.HttpParametersAware;
+import org.apache.struts2.dispatcher.HttpParameters;
+import org.apache.struts2.dispatcher.Parameter;
 
 import java.util.Collections;
 import java.util.List;
@@ -43,12 +45,12 @@ import java.util.Map;
  * Handles editing of planet global runtime properties.
  */
 // TODO: make this work @AllowedMethods({"execute","save"})
-public class PlanetConfig extends PlanetUIAction implements ParameterAware {
+public class PlanetConfig extends PlanetUIAction implements HttpParametersAware {
     
-    private static Log log = LogFactory.getLog(PlanetConfig.class);
+    private static final Log log = LogFactory.getLog(PlanetConfig.class);
     
     // original request parameters
-    private Map parameters = Collections.EMPTY_MAP;
+    private HttpParameters parameters = HttpParameters.create().build();
     
     // runtime properties data
     private Map<String, RuntimeConfigProperty> properties = Collections.emptyMap();
@@ -128,10 +130,10 @@ public class PlanetConfig extends PlanetUIAction implements ParameterAware {
                             getProperties().put( propName, updProp);
                         }
 
-                        String[] propValues = (String[]) getParameters().get(updProp.getName());
-                        if (propValues != null && propValues.length > 0) {
+                        Parameter param = getParameters().get(updProp.getName());
+                        if (param != null && param.getValue() != null) {
                             // we don't deal with multi-valued props
-                            incomingProp = propValues[0];
+                            incomingProp = param.getValue();
                         }
 
                         // some special treatment for booleans
@@ -174,12 +176,12 @@ public class PlanetConfig extends PlanetUIAction implements ParameterAware {
     }
 
     
-    public Map getParameters() {
+    public HttpParameters getParameters() {
         return parameters;
     }
 
     @Override
-    public void setParameters(Map parameters) {
+    public void setParameters(HttpParameters parameters) {
         this.parameters = parameters;
     }
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java
index b6b3166..1943378 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java
@@ -39,7 +39,9 @@ import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
 import org.apache.roller.weblogger.util.Utilities;
-import org.apache.struts2.interceptor.ParameterAware;
+import org.apache.struts2.dispatcher.HttpParameters;
+import org.apache.struts2.dispatcher.Parameter;
+import org.apache.struts2.interceptor.HttpParametersAware;
 import org.apache.struts2.interceptor.ServletRequestAware;
 
 
@@ -47,12 +49,12 @@ import org.apache.struts2.interceptor.ServletRequestAware;
  * Action which handles editing of global configuration.
  */
 // TODO: make this work @AllowedMethods({"execute","save"})
-public class GlobalConfig extends UIAction implements ParameterAware, ServletRequestAware {
+public class GlobalConfig extends UIAction implements HttpParametersAware, ServletRequestAware {
 
-    private static Log log = LogFactory.getLog(GlobalConfig.class);
+    private static final Log log = LogFactory.getLog(GlobalConfig.class);
 
     // the request parameters
-    private Map<String, String[]> params = Collections.emptyMap();
+    private HttpParameters params = HttpParameters.create().build();
 
     // map of config properties
     private Map<String, RuntimeConfigProperty> properties = Collections.emptyMap();
@@ -70,7 +72,7 @@ public class GlobalConfig extends UIAction implements ParameterAware, ServletReq
     // GET on the GlobalConfig!save URL and thus sets all checkboxes to false
     private String httpMethod = "GET";
 
-    private ResourceBundle bundle = ResourceBundle.getBundle("ApplicationResources");
+    private final ResourceBundle bundle = ResourceBundle.getBundle("ApplicationResources");
 
     // weblogs for frontpage blog chooser
     private Collection<Weblog> weblogs;
@@ -251,26 +253,21 @@ public class GlobalConfig extends UIAction implements ParameterAware, ServletReq
 
 
     @Override
-    public void setParameters(Map<String, String[]> parameters) {
+    public void setParameters(HttpParameters parameters) {
         this.params = parameters;
 
         if (log.isDebugEnabled()) {
             log.debug("Parameter map:");
 
-            for (Map.Entry<String, String[]> entry : parameters.entrySet()) {
-                log.debug(entry.getKey() + " = " + Utilities.stringArrayToString(entry.getValue(),","));
+            for (Map.Entry<String, Parameter> entry : parameters.entrySet()) {
+                log.debug(entry.getKey() + " = " + Utilities.stringArrayToString(entry.getValue().getMultipleValues(), ","));
             }
         }
     }
 
     // convenience method for getting a single parameter as a String
     private String getParameter(String key) {
-
-        String[] p = this.params.get(key);
-        if (p != null && p.length > 0) {
-            return p[0];
-        }
-        return null;
+        return this.params.get(key).getValue();
     }
 
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java
index 8e7fb91..bda8961 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java
@@ -19,7 +19,6 @@
 package org.apache.roller.weblogger.ui.struts2.editor;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.logging.Log;
@@ -31,8 +30,9 @@ import org.apache.roller.weblogger.pojos.User;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
 import org.apache.roller.weblogger.util.Utilities;
-import org.apache.struts2.convention.annotation.AllowedMethods;
-import org.apache.struts2.interceptor.ParameterAware;
+import org.apache.struts2.dispatcher.HttpParameters;
+import org.apache.struts2.dispatcher.Parameter;
+import org.apache.struts2.interceptor.HttpParametersAware;
 
 
 /**
@@ -42,12 +42,12 @@ import org.apache.struts2.interceptor.ParameterAware;
  * website.permissions collection when a permission is deleted.
  */
 // TODO: make this work @AllowedMethods({"execute","save"})
-public class Members extends UIAction implements ParameterAware {
+public class Members extends UIAction implements HttpParametersAware {
     
-    private static Log log = LogFactory.getLog(Members.class);
+    private static final Log log = LogFactory.getLog(Members.class);
     
     // raw parameters from request
-    private Map parameters = Collections.EMPTY_MAP;
+    private HttpParameters parameters = HttpParameters.create().build();
     
     
     public Members() {
@@ -155,22 +155,16 @@ public class Members extends UIAction implements ParameterAware {
     
     // convenience for accessing a single parameter with a single value
     public String getParameter(String key) {
-        if(key != null) {
-            String[] value = (String[]) getParameters().get(key);
-            if(value != null && value.length > 0) {
-                return value[0];
-            }
-        }
-        return null;
+        return parameters.get(key).getValue();
     }
     
     
-    public Map getParameters() {
+    public Map<String, Parameter> getParameters() {
         return parameters;
     }
 
     @Override
-    public void setParameters(Map parameters) {
+    public void setParameters(HttpParameters parameters) {
         this.parameters = parameters;
     }
     

[roller] 07/19: pojos: compiler warning fixes combined with collection improvements.

Posted by mb...@apache.org.
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 625a309d5a7e8fa1ab755ee5ec7e5f613427450e
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Fri Jul 9 05:09:50 2021 +0200

    pojos: compiler warning fixes combined with collection improvements.
---
 .../apache/roller/weblogger/pojos/MediaFile.java   | 14 +++------
 .../org/apache/roller/weblogger/pojos/Weblog.java  | 34 ++++++++++------------
 .../apache/roller/weblogger/pojos/WeblogEntry.java | 32 +++++++++-----------
 .../roller/weblogger/pojos/WeblogPermission.java   |  9 +-----
 .../roller/weblogger/pojos/WeblogTemplate.java     |  9 +-----
 5 files changed, 34 insertions(+), 64 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/MediaFile.java b/app/src/main/java/org/apache/roller/weblogger/pojos/MediaFile.java
index e753c08..b94749b 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/MediaFile.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/MediaFile.java
@@ -43,8 +43,7 @@ public class MediaFile implements Serializable {
 
     private static final long serialVersionUID = -6704258422169734004L;
 
-    private static Log log = LogFactory.getFactory().getInstance(
-            MediaFile.class);
+    private static final Log log = LogFactory.getFactory().getInstance(MediaFile.class);
 
     private String id = UUIDGenerator.generateUUID();
 
@@ -226,12 +225,7 @@ public class MediaFile implements Serializable {
             }
         }
 
-        MediaFileTag tag = new MediaFileTag();
-        tag.setName(name);
-        tag.setMediaFile(this);
-
-        tagSet.add(tag);
-
+        tagSet.add(new MediaFileTag(name, this));
         addedTags.add(name);
     }
 
@@ -239,11 +233,11 @@ public class MediaFile implements Serializable {
         removedTags.add(name);
     }
 
-    public Set getAddedTags() {
+    public Set<String> getAddedTags() {
         return addedTags;
     }
 
-    public Set getRemovedTags() {
+    public Set<String> getRemovedTags() {
         return removedTags;
     }
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java b/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java
index dd02445..a6c7393 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java
@@ -644,9 +644,8 @@ public class Weblog implements Serializable {
         if (length > MAX_ENTRIES) {
             length = MAX_ENTRIES;
         }
-        List<WeblogEntry> recentEntries = new ArrayList<>();
         if (length < 1) {
-            return recentEntries;
+            return Collections.emptyList();
         }
         try {
             WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
@@ -655,11 +654,11 @@ public class Weblog implements Serializable {
             wesc.setCatName(cat);
             wesc.setStatus(PubStatus.PUBLISHED);
             wesc.setMaxResults(length);
-            recentEntries = wmgr.getWeblogEntries(wesc);
+            return wmgr.getWeblogEntries(wesc);
         } catch (WebloggerException e) {
             log.error("ERROR: getting recent entries", e);
         }
-        return recentEntries;
+        return Collections.emptyList();
     }
     
     /**
@@ -675,13 +674,12 @@ public class Weblog implements Serializable {
         if (length > MAX_ENTRIES) {
             length = MAX_ENTRIES;
         }
-        List<WeblogEntry> recentEntries = new ArrayList<>();
-        List<String> tags = new ArrayList<>();
-        if (tag != null) {
-            tags.add(tag);
-        }
         if (length < 1) {
-            return recentEntries;
+            return Collections.emptyList();
+        }
+        List<String> tags = Collections.emptyList();
+        if (tag != null) {
+            tags = List.of(tag);
         }
         try {
             WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
@@ -690,11 +688,11 @@ public class Weblog implements Serializable {
             wesc.setTags(tags);
             wesc.setStatus(PubStatus.PUBLISHED);
             wesc.setMaxResults(length);
-            recentEntries = wmgr.getWeblogEntries(wesc);
+            return wmgr.getWeblogEntries(wesc);
         } catch (WebloggerException e) {
             log.error("ERROR: getting recent entries", e);
         }
-        return recentEntries;
+        return Collections.emptyList();
     }   
     
     /**
@@ -706,9 +704,8 @@ public class Weblog implements Serializable {
         if (length > MAX_ENTRIES) {
             length = MAX_ENTRIES;
         }
-        List<WeblogEntryComment> recentComments = new ArrayList<>();
         if (length < 1) {
-            return recentComments;
+            return Collections.emptyList();
         }
         try {
             WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
@@ -717,11 +714,11 @@ public class Weblog implements Serializable {
             csc.setStatus(WeblogEntryComment.ApprovalStatus.APPROVED);
             csc.setReverseChrono(true);
             csc.setMaxResults(length);
-            recentComments = wmgr.getComments(csc);
+            return wmgr.getComments(csc);
         } catch (WebloggerException e) {
             log.error("ERROR: getting recent comments", e);
         }
-        return recentComments;
+        return Collections.emptyList();
     }
 
     
@@ -771,7 +768,6 @@ public class Weblog implements Serializable {
      * @return          Collection of WeblogEntryTag objects
      */
     public List<TagStat> getPopularTags(int sinceDays, int length) {
-        List<TagStat> results = new ArrayList<>();
         Date startDate = null;
         if(sinceDays > 0) {
             Calendar cal = Calendar.getInstance();
@@ -782,11 +778,11 @@ public class Weblog implements Serializable {
         try {            
             Weblogger roller = WebloggerFactory.getWeblogger();
             WeblogEntryManager wmgr = roller.getWeblogEntryManager();
-            results = wmgr.getPopularTags(this, startDate, 0, length);
+            return wmgr.getPopularTags(this, startDate, 0, length);
         } catch (Exception e) {
             log.error("ERROR: fetching popular tags for weblog " + this.getName(), e);
         }
-        return results;
+        return Collections.emptyList();
     }      
 
     public long getCommentCount() {
diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java b/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java
index 448e0df..18fe3a8 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java
@@ -23,7 +23,6 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Collections;
@@ -61,8 +60,7 @@ import org.apache.roller.weblogger.util.Utilities;
  * Represents a Weblog Entry.
  */
 public class WeblogEntry implements Serializable {
-    private static Log mLogger =
-            LogFactory.getFactory().getInstance(WeblogEntry.class);
+    private static final Log mLogger = LogFactory.getFactory().getInstance(WeblogEntry.class);
     
     public static final long serialVersionUID = 2341505386843044125L;
 
@@ -234,9 +232,7 @@ public class WeblogEntry implements Serializable {
      * Added for symmetry with PlanetEntryData object.
      */
     public List<WeblogCategory> getCategories() {
-        List<WeblogCategory> cats = new ArrayList<>();
-        cats.add(getCategory());
-        return cats;
+        return List.of(getCategory());
     }
     
     public Weblog getWebsite() {
@@ -356,7 +352,7 @@ public class WeblogEntry implements Serializable {
         return attSet;
     }
 
-    public void setEntryAttributes(Set atts) {
+    public void setEntryAttributes(Set<WeblogEntryAttribute> atts) {
         this.attSet = atts;
     }
     
@@ -609,8 +605,8 @@ public class WeblogEntry implements Serializable {
         }
 
         // remove old ones no longer passed.
-        for (Iterator it = tagSet.iterator(); it.hasNext();) {
-            WeblogEntryTag tag = (WeblogEntryTag) it.next();
+        for (Iterator<WeblogEntryTag> it = tagSet.iterator(); it.hasNext();) {
+            WeblogEntryTag tag = it.next();
             if (!newTags.contains(tag.getName())) {
                 // tag no longer listed in UI, needs removal from DB
                 removedTags.add(tag);
@@ -724,7 +720,6 @@ public class WeblogEntry implements Serializable {
      * TODO: why is this method exposed to users with ability to get spam/non-approved comments?
      */
     public List<WeblogEntryComment> getComments(boolean ignoreSpam, boolean approvedOnly) {
-        List<WeblogEntryComment> list = new ArrayList<>();
         try {
             WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
 
@@ -734,12 +729,12 @@ public class WeblogEntry implements Serializable {
             csc.setStatus(approvedOnly ? WeblogEntryComment.ApprovalStatus.APPROVED : null);
             return wmgr.getComments(csc);
         } catch (WebloggerException alreadyLogged) {}
-        return list;
+        
+        return Collections.emptyList();
     }
     
     public int getCommentCount() {
-        List comments = getComments(true, true);
-        return comments.size();
+        return getComments(true, true).size();
     }
     
     //------------------------------------------------------------------------
@@ -882,7 +877,7 @@ public class WeblogEntry implements Serializable {
         if (getPlugins() != null) {
             return Arrays.asList( StringUtils.split(getPlugins(), ",") );
         }
-        return new ArrayList<>();
+        return Collections.emptyList();
     }
 
     /** Convenience method for checking status */
@@ -928,7 +923,7 @@ public class WeblogEntry implements Serializable {
             return true;
         }
         
-        WeblogPermission perm = null;
+        WeblogPermission perm;
         try {
             // if user is an author then post status defaults to PUBLISHED, otherwise PENDING
             UserManager umgr = WebloggerFactory.getWeblogger().getUserManager();
@@ -954,7 +949,7 @@ public class WeblogEntry implements Serializable {
         mLogger.debug("Applying page plugins to string");
         Map<String, WeblogEntryPlugin> inPlugins = getWebsite().getInitializedPlugins();
         if (str != null && inPlugins != null) {
-            List entryPlugins = getPluginsList();
+            List<String> entryPlugins = getPluginsList();
             
             // if no Entry plugins, don't bother looping.
             if (entryPlugins != null && !entryPlugins.isEmpty()) {
@@ -988,7 +983,7 @@ public class WeblogEntry implements Serializable {
      */
     public String displayContent(String readMoreLink) {
         
-        String displayContent = null;
+        String displayContent;
         
         if(readMoreLink == null || readMoreLink.isBlank() || "nil".equals(readMoreLink)) {
             
@@ -1005,8 +1000,7 @@ public class WeblogEntry implements Serializable {
                 displayContent = this.getTransformedSummary();
                 if(StringUtils.isNotEmpty(this.getText())) {
                     // add read more
-                    List<String> args = new ArrayList<>();
-                    args.add(readMoreLink);
+                    List<String> args = List.of(readMoreLink);
                     
                     // TODO: we need a more appropriate way to get the view locale here
                     String readMore = I18nMessages.getMessages(getWebsite().getLocaleInstance()).getString("macro.weblog.readMoreLink", args);
diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogPermission.java b/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogPermission.java
index a220c95..803d0ff 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogPermission.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogPermission.java
@@ -20,7 +20,6 @@ package org.apache.roller.weblogger.pojos;
 
 import java.io.Serializable;
 import java.security.Permission;
-import java.util.ArrayList;
 import java.util.List;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
@@ -36,13 +35,7 @@ public class WeblogPermission extends ObjectPermission implements Serializable {
     public static final String EDIT_DRAFT = "edit_draft";
     public static final String POST = "post";
     public static final String ADMIN = "admin";
-    public static final List<String> ALL_ACTIONS = new ArrayList<>();
-    
-    static {
-        ALL_ACTIONS.add(EDIT_DRAFT);
-        ALL_ACTIONS.add(POST);
-        ALL_ACTIONS.add(ADMIN);
-    }
+    public static final List<String> ALL_ACTIONS = List.of(EDIT_DRAFT, POST, ADMIN);
 
     public WeblogPermission() {
         // required by JPA
diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java b/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java
index b35a704..7cde4a1 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java
@@ -26,7 +26,6 @@ import org.apache.roller.weblogger.WebloggerException;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -41,7 +40,7 @@ public class WeblogTemplate implements ThemeTemplate, Serializable {
     public static final long serialVersionUID = -613737191638263428L;
     public static final String DEFAULT_PAGE = "Weblog";
     
-    private static Set<String> requiredTemplates = null;
+    private static final Set<String> requiredTemplates = Set.of("Weblog", "_day");
     
     // attributes
     private String id = UUIDGenerator.generateUUID();
@@ -57,12 +56,6 @@ public class WeblogTemplate implements ThemeTemplate, Serializable {
     // associations
     private Weblog weblog = null;
 
-    static {
-        requiredTemplates = new HashSet<>();
-        requiredTemplates.add("Weblog");
-        requiredTemplates.add("_day");
-    }
-
     public WeblogTemplate() {}
     
     @Override

[roller] 19/19: Dependency updates, roller runs now on JDK 17 (and 11).

Posted by mb...@apache.org.
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 637cf3aa5b8c76f7a485151efa8bb4facecf9e5d
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Sat Jul 10 11:12:25 2021 +0200

    Dependency updates, roller runs now on JDK 17 (and 11).
---
 app/pom.xml | 21 +++++++--------------
 pom.xml     | 11 +++++++++--
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/app/pom.xml b/app/pom.xml
index 97603f1..9b77de2 100644
--- a/app/pom.xml
+++ b/app/pom.xml
@@ -40,22 +40,22 @@ limitations under the License.
         <jstl.version>1.2</jstl.version>
         <angular.version>1.7.8</angular.version>
         <ant.version>1.10.10</ant.version>
-        <asm.version>9.1</asm.version>
+        <asm.version>9.2</asm.version>
         <commons-validator.version>1.7</commons-validator.version>
         <commons-beanutils.version>1.9.4</commons-beanutils.version>
         <commons-codec.version>1.15</commons-codec.version>
-        <eclipse-link.version>2.7.8</eclipse-link.version>
+        <eclipse-link.version>2.7.9</eclipse-link.version>
         <guice.version>5.0.1</guice.version>
         <log4j2.version>2.14.1</log4j2.version>
-        <lucene.version>8.8.2</lucene.version>
+        <lucene.version>8.9.0</lucene.version>
         <oauth-core.version>20100527</oauth-core.version>
         <maven-war.version>3.2.3</maven-war.version>
         <maven-surefire.version>2.22.2</maven-surefire.version>
         <maven-antrun.version>1.0b3</maven-antrun.version>
-        <rome.version>1.15.0</rome.version>
-        <slf4j.version>1.7.30</slf4j.version>
+        <rome.version>1.16.0</rome.version>
+        <slf4j.version>1.7.31</slf4j.version>
         <spring.version>5.3.8</spring.version>
-        <spring.security.version>5.4.6</spring.security.version>
+        <spring.security.version>5.5.1</spring.security.version>
         <struts.version>2.5.26</struts.version>
         <velocity.version>2.3</velocity.version>
         <webjars.version>1.5</webjars.version>
@@ -428,14 +428,6 @@ limitations under the License.
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-config</artifactId>
             <version>${spring.security.version}</version>
-            <exclusions>
-                <!-- all classes of spring-security-crypto-x.x.x.jar are already in 
-                                    spring-security-core-x.x.x.jar -->
-                <exclusion>
-                    <groupId>org.springframework.security</groupId>
-                    <artifactId>spring-security-crypto</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
@@ -744,6 +736,7 @@ limitations under the License.
                             <value>${basedir}/target</value>
                         </property>
                     </systemProperties>
+                    <trimStackTrace>false</trimStackTrace>
                 </configuration>
             </plugin>
 
diff --git a/pom.xml b/pom.xml
index 7cf3922..942794d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,7 +44,7 @@ limitations under the License.
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <derby.version>10.11.1.1</derby.version>
         <jaxb.version>2.3.1</jaxb.version>
-        <jetty.version>10.0.3</jetty.version>
+        <jetty.version>10.0.5</jetty.version>
         <roller.version>6.1.0-SNAPSHOT</roller.version>
     </properties>
 
@@ -63,7 +63,14 @@ limitations under the License.
                     <configuration>
                         <release>11</release>
                         <fork>true</fork>
-                        <compilerArgument>-Xlint:deprecation</compilerArgument>
+                        <compilerArgs>
+                            <arg>-Xlint:all</arg>
+                            <!--
+                            <arg>-Xlint:unchecked,rawtypes,cast,overrides,overloads,dep-ann,removal,synchronization,try,finally,varargs,processing</arg>
+                            <arg>-Xmaxwarns</arg>
+                            <arg>1000</arg>
+                            -->
+                        </compilerArgs>
                         <encoding>${project.build.sourceEncoding}</encoding>
                     </configuration>
                 </plugin>

[roller] 11/19: Cache: type compiler warning fixes and collection improvements.

Posted by mb...@apache.org.
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 7d07a845feed451d0356c9954ad2f11a0e148e96
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 09:04:00 2021 +0200

    Cache: type compiler warning fixes and collection improvements.
---
 .../ui/rendering/util/cache/PlanetCache.java       |  6 +++---
 .../ui/rendering/util/cache/SaltCache.java         | 12 ++++++------
 .../ui/rendering/util/cache/SiteWideCache.java     | 21 ++++++++++-----------
 .../rendering/util/cache/WeblogCacheWarmupJob.java |  5 +++--
 .../ui/rendering/util/cache/WeblogFeedCache.java   | 20 ++++++++++----------
 .../ui/rendering/util/cache/WeblogPageCache.java   | 22 ++++++++++------------
 .../roller/weblogger/util/cache/CacheFactory.java  |  2 +-
 .../roller/weblogger/util/cache/CacheManager.java  |  4 ++--
 .../weblogger/util/cache/ExpiringCacheEntry.java   | 13 ++++---------
 .../util/cache/ExpiringLRUCacheFactoryImpl.java    |  8 ++++----
 .../weblogger/util/cache/LRUCacheFactoryImpl.java  |  6 +++---
 .../roller/weblogger/util/cache/LRUCacheImpl.java  |  8 ++++----
 .../util/cache/LazyExpiringCacheEntry.java         |  4 ++--
 13 files changed, 62 insertions(+), 69 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java
index 649abed..9ea6214 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java
@@ -37,7 +37,7 @@ import org.apache.roller.weblogger.util.cache.ExpiringCacheEntry;
  */
 public final class PlanetCache {
     
-    private static Log log = LogFactory.getLog(PlanetCache.class);
+    private static final Log log = LogFactory.getLog(PlanetCache.class);
     
     // a unique identifier for this cache, this is used as the prefix for
     // roller config properties that apply to this cache
@@ -60,7 +60,7 @@ public final class PlanetCache {
         
         Map<String, String> cacheProps = new HashMap<>();
         cacheProps.put("id", CACHE_ID);
-        Enumeration allProps = WebloggerConfig.keys();
+        Enumeration<Object> allProps = WebloggerConfig.keys();
         String prop;
         while(allProps.hasMoreElements()) {
             prop = (String) allProps.nextElement();
@@ -192,7 +192,7 @@ public final class PlanetCache {
      */
     public String generateKey(PlanetRequest planetRequest) {
         
-        StringBuilder key = new StringBuilder();
+        StringBuilder key = new StringBuilder(128);
         
         key.append(CACHE_ID).append(':');
         key.append(planetRequest.getContext());
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java
index 1fa3dec..e810bf7 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java
@@ -36,7 +36,8 @@ import org.apache.roller.weblogger.util.cache.ExpiringCacheEntry;
  * cache, e.g. memcached
  */
 public final class SaltCache {
-    private static Log log = LogFactory.getLog(SaltCache.class);
+    
+    private static final Log log = LogFactory.getLog(SaltCache.class);
     
     // a unique identifier for this cache, this is used as the prefix for
     // roller config properties that apply to this cache
@@ -49,10 +50,10 @@ public final class SaltCache {
 
     private SaltCache() {
         
-        Map cacheProps = new HashMap();
+        Map<String, String> cacheProps = new HashMap<>();
         cacheProps.put("id", CACHE_ID);
-        Enumeration allProps = WebloggerConfig.keys();
-        String prop = null;
+        Enumeration<Object> allProps = WebloggerConfig.keys();
+        String prop;
         while(allProps.hasMoreElements()) {
             prop = (String) allProps.nextElement();
             
@@ -78,8 +79,7 @@ public final class SaltCache {
         
         Object entry = null;
         
-        ExpiringCacheEntry lazyEntry =
-                (ExpiringCacheEntry) this.contentCache.get(key);
+        ExpiringCacheEntry lazyEntry = (ExpiringCacheEntry) this.contentCache.get(key);
         if(lazyEntry != null) {
             entry = lazyEntry.getValue();
             if(entry != null) {
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SiteWideCache.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SiteWideCache.java
index 68b341d..02f7bd9 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SiteWideCache.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SiteWideCache.java
@@ -20,12 +20,11 @@ package org.apache.roller.weblogger.ui.rendering.util.cache;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.util.RollerConstants;
@@ -53,7 +52,7 @@ import org.apache.roller.weblogger.util.cache.ExpiringCacheEntry;
  */
 public final class SiteWideCache implements CacheHandler {
     
-    private static Log log = LogFactory.getLog(SiteWideCache.class);
+    private static final Log log = LogFactory.getLog(SiteWideCache.class);
     
     // a unique identifier for this cache, this is used as the prefix for
     // roller config properties that apply to this cache
@@ -76,8 +75,8 @@ public final class SiteWideCache implements CacheHandler {
         
         Map<String, String> cacheProps = new HashMap<>();
         cacheProps.put("id", CACHE_ID);
-        Enumeration allProps = WebloggerConfig.keys();
-        String prop = null;
+        Enumeration<Object> allProps = WebloggerConfig.keys();
+        String prop;
         while(allProps.hasMoreElements()) {
             prop = (String) allProps.nextElement();
             
@@ -234,9 +233,9 @@ public final class SiteWideCache implements CacheHandler {
             if("tags".equals(pageRequest.getContext())) {
                 key.append("/tags/");
                 if(pageRequest.getTags() != null && !pageRequest.getTags().isEmpty()) {
-                    Set ordered = new TreeSet(pageRequest.getTags());
-                    String[] tags = (String[]) ordered.toArray(new String[ordered.size()]);
-                    key.append(Utilities.stringArrayToString(tags,"+"));
+                    String[] tags = pageRequest.getTags().toArray(new String[0]);
+                    Arrays.sort(tags);
+                    key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
                 }
             }
         }
@@ -316,9 +315,9 @@ public final class SiteWideCache implements CacheHandler {
         }
         
         if(feedRequest.getTags() != null && !feedRequest.getTags().isEmpty()) {
-          String[] tags = new String[feedRequest.getTags().size()];
-          new TreeSet(feedRequest.getTags()).toArray(tags);
-          key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
+            String[] tags = feedRequest.getTags().toArray(new String[0]);
+            Arrays.sort(tags);
+            key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
         }       
         
         return key.toString();
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogCacheWarmupJob.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogCacheWarmupJob.java
index 7224c04..98baa89 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogCacheWarmupJob.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogCacheWarmupJob.java
@@ -48,7 +48,7 @@ import org.apache.roller.weblogger.util.cache.CachedContent;
  */
 public class WeblogCacheWarmupJob implements Job {
     
-    private static Log log = LogFactory.getLog(WeblogCacheWarmupJob.class);
+    private static final Log log = LogFactory.getLog(WeblogCacheWarmupJob.class);
     
     // inputs from the user
     private Map<String, Object> inputs = null;
@@ -63,6 +63,7 @@ public class WeblogCacheWarmupJob implements Job {
         if(inputs != null) {
             
             // what weblogs will we handle?
+            @SuppressWarnings("unchecked")
             List<String> weblogs = (List<String>) inputs.get("weblogs");
             if(weblogs == null) {
                 return;
@@ -118,7 +119,7 @@ public class WeblogCacheWarmupJob implements Job {
                 
                 // populate the rendering model
                 Map<String, Object> modelMap = new HashMap<>();
-                Map<String, WeblogFeedRequest> initData = new HashMap<>();
+                Map<String, Object> initData = new HashMap<>();
                 initData.put("request", null);
                 initData.put("feedRequest", feedRequest);
                 initData.put("weblogRequest", feedRequest);
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogFeedCache.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogFeedCache.java
index 7e5cec5..35f57b2 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogFeedCache.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogFeedCache.java
@@ -20,11 +20,10 @@ package org.apache.roller.weblogger.ui.rendering.util.cache;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
+import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.config.WebloggerConfig;
@@ -40,7 +39,7 @@ import org.apache.roller.weblogger.util.cache.LazyExpiringCacheEntry;
  */
 public final class WeblogFeedCache {
     
-    private static Log log = LogFactory.getLog(WeblogFeedCache.class);
+    private static final Log log = LogFactory.getLog(WeblogFeedCache.class);
     
     // a unique identifier for this cache, this is used as the prefix for
     // roller config properties that apply to this cache
@@ -58,10 +57,11 @@ public final class WeblogFeedCache {
         
         cacheEnabled = WebloggerConfig.getBooleanProperty(CACHE_ID+".enabled");
         
-        Map cacheProps = new HashMap();
+        Map<String, String> cacheProps = new HashMap<>();
         cacheProps.put("id", CACHE_ID);
-        Enumeration allProps = WebloggerConfig.keys();
-        String prop = null;
+        
+        Enumeration<Object> allProps = WebloggerConfig.keys();
+        String prop;
         while(allProps.hasMoreElements()) {
             prop = (String) allProps.nextElement();
             
@@ -164,7 +164,7 @@ public final class WeblogFeedCache {
         
         StringBuilder key = new StringBuilder(128);
         
-        key.append(this.CACHE_ID).append(':');
+        key.append(CACHE_ID).append(':');
         key.append(feedRequest.getWeblogHandle());
         
         key.append('/').append(feedRequest.getType());
@@ -186,9 +186,9 @@ public final class WeblogFeedCache {
         }
         
         if(feedRequest.getTags() != null && !feedRequest.getTags().isEmpty()) {
-          Set ordered = new TreeSet(feedRequest.getTags());
-          String[] tags = (String[]) ordered.toArray(new String[ordered.size()]);  
-          key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
+            String[] tags = feedRequest.getTags().toArray(new String[0]);
+            Arrays.sort(tags);
+            key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
         }        
         
         if(feedRequest.getLocale() != null) {
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogPageCache.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogPageCache.java
index 7982c87..4c63d08 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogPageCache.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogPageCache.java
@@ -20,11 +20,10 @@ package org.apache.roller.weblogger.ui.rendering.util.cache;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
+import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.config.WebloggerConfig;
@@ -40,7 +39,7 @@ import org.apache.roller.weblogger.util.cache.LazyExpiringCacheEntry;
  */
 public final class WeblogPageCache {
     
-    private static Log log = LogFactory.getLog(WeblogPageCache.class);
+    private static final Log log = LogFactory.getLog(WeblogPageCache.class);
     
     // a unique identifier for this cache, this is used as the prefix for
     // roller config properties that apply to this cache
@@ -58,10 +57,10 @@ public final class WeblogPageCache {
         
         cacheEnabled = WebloggerConfig.getBooleanProperty(CACHE_ID+".enabled");
         
-        Map cacheProps = new HashMap();
+        Map<String, String> cacheProps = new HashMap<>();
         cacheProps.put("id", CACHE_ID);
-        Enumeration allProps = WebloggerConfig.keys();
-        String prop = null;
+        Enumeration<Object> allProps = WebloggerConfig.keys();
+        String prop;
         while(allProps.hasMoreElements()) {
             prop = (String) allProps.nextElement();
             
@@ -95,8 +94,7 @@ public final class WeblogPageCache {
         
         Object entry = null;
         
-        LazyExpiringCacheEntry lazyEntry =
-                (LazyExpiringCacheEntry) this.contentCache.get(key);
+        LazyExpiringCacheEntry lazyEntry = (LazyExpiringCacheEntry) this.contentCache.get(key);
         if(lazyEntry != null) {
             entry = lazyEntry.getValue(lastModified);
             
@@ -168,7 +166,7 @@ public final class WeblogPageCache {
         
         StringBuilder key = new StringBuilder(128);
         
-        key.append(this.CACHE_ID).append(':');
+        key.append(CACHE_ID).append(':');
         key.append(pageRequest.getWeblogHandle());
         
         if(pageRequest.getWeblogAnchor() != null) {
@@ -207,9 +205,9 @@ public final class WeblogPageCache {
             if("tags".equals(pageRequest.getContext())) {
                 key.append("/tags/");
                 if(pageRequest.getTags() != null && !pageRequest.getTags().isEmpty()) {
-                    Set ordered = new TreeSet(pageRequest.getTags());
-                    String[] tags = (String[]) ordered.toArray(new String[ordered.size()]);
-                    key.append(Utilities.stringArrayToString(tags,"+"));
+                    String[] tags = pageRequest.getTags().toArray(new String[0]);
+                    Arrays.sort(tags);
+                    key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
                 }
             }
         }
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheFactory.java b/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheFactory.java
index 145983b..171cd85 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheFactory.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheFactory.java
@@ -30,6 +30,6 @@ import java.util.Map;
  */
 public interface CacheFactory {
     
-    Cache constructCache(Map properties);
+    Cache constructCache(Map<String, ?> properties);
     
 }
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 23b4d1b..9b44a30 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
@@ -139,7 +139,7 @@ public final class CacheManager {
      * see fit.  It also allows users to write their own caching modifications
      * and have them used only by specific caches.
      */
-    public static Cache constructCache(CacheHandler handler, Map properties) {
+    public static Cache constructCache(CacheHandler handler, Map<String, String> properties) {
         
         log.debug("Constructing new cache with props "+properties);
         
@@ -147,7 +147,7 @@ public final class CacheManager {
         
         if(properties != null && properties.containsKey("factory")) {
             // someone wants a custom cache instance
-            String classname = (String) properties.get("factory");
+            String classname = properties.get("factory");
             
             try {
                 // use reflection to instantiate the factory class
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringCacheEntry.java b/app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringCacheEntry.java
index d24b781..d644b30 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringCacheEntry.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringCacheEntry.java
@@ -29,19 +29,14 @@ import java.io.Serializable;
  */
 public class ExpiringCacheEntry implements Serializable {
     
-    private Object value;
-    private long timeCached = -1;
-    private long timeout = 0;
+    private final Object value;
+    private final long timeCached;
+    private final long timeout;
     
     
     public ExpiringCacheEntry(Object value, long timeout) {
         this.value = value;
-        
-        // make sure that we don't support negative values
-        if(timeout > 0) {
-            this.timeout = timeout;
-        }
-        
+        this.timeout = Math.max(0, timeout);  // make sure that we don't support negative values
         this.timeCached = System.currentTimeMillis();
     }
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheFactoryImpl.java b/app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheFactoryImpl.java
index ec83fd3..a11ac31 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheFactoryImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheFactoryImpl.java
@@ -28,7 +28,7 @@ import org.apache.commons.logging.LogFactory;
  */
 public class ExpiringLRUCacheFactoryImpl implements CacheFactory {
     
-    private static Log log = LogFactory.getLog(ExpiringLRUCacheFactoryImpl.class);
+    private static final Log log = LogFactory.getLog(ExpiringLRUCacheFactoryImpl.class);
     
     
     // protected so only the CacheManager can instantiate us
@@ -39,7 +39,7 @@ public class ExpiringLRUCacheFactoryImpl implements CacheFactory {
      * Construct a new instance of a Roller Expiring LRUCache.
      */
     @Override
-    public Cache constructCache(Map properties) {
+    public Cache constructCache(Map<String, ?> properties) {
         
         int size = 100;
         long timeout = 15 * 60;
@@ -48,13 +48,13 @@ public class ExpiringLRUCacheFactoryImpl implements CacheFactory {
         try {
             size = Integer.parseInt((String) properties.get("size"));
         } catch(Exception e) {
-            // ignored
+            log.warn("invalid size property", e);
         }
         
         try {
             timeout = Long.parseLong((String) properties.get("timeout"));
         } catch(Exception e) {
-            // ignored
+            log.warn("invalid timeout property", e);
         }
         
         String cacheId = (String) properties.get("id");
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/cache/LRUCacheFactoryImpl.java b/app/src/main/java/org/apache/roller/weblogger/util/cache/LRUCacheFactoryImpl.java
index 4877d1f..27c0676 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/cache/LRUCacheFactoryImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/cache/LRUCacheFactoryImpl.java
@@ -28,7 +28,7 @@ import org.apache.commons.logging.LogFactory;
  */
 public class LRUCacheFactoryImpl implements CacheFactory {
     
-    private static Log log = LogFactory.getLog(LRUCacheFactoryImpl.class);
+    private static final Log log = LogFactory.getLog(LRUCacheFactoryImpl.class);
     
     
     // protected so that only the CacheManager can instantiate us
@@ -39,14 +39,14 @@ public class LRUCacheFactoryImpl implements CacheFactory {
      * Construct a new instance of a Roller LRUCache.
      */
     @Override
-    public Cache constructCache(Map properties) {
+    public Cache constructCache(Map<String, ?> properties) {
         int size = 100;
         String id = "unknown";
         
         try {
             size = Integer.parseInt((String) properties.get("size"));
         } catch(Exception e) {
-            // ignored
+            log.warn("invalide size property", e);
         }
         
         String cacheId = (String) properties.get("id");
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/cache/LRUCacheImpl.java b/app/src/main/java/org/apache/roller/weblogger/util/cache/LRUCacheImpl.java
index b1ef250..83d4abf 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/cache/LRUCacheImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/cache/LRUCacheImpl.java
@@ -31,7 +31,7 @@ import org.apache.roller.util.RollerConstants;
 public class LRUCacheImpl implements Cache {
     
     private final String id;
-    private final Map cache;
+    private final Map<String, Object> cache;
     
     // for metrics
     protected double hits = 0;
@@ -50,7 +50,7 @@ public class LRUCacheImpl implements Cache {
     protected LRUCacheImpl(String id, int maxsize) {
         
         this.id = id;
-        this.cache = new LRULinkedHashMap(maxsize);
+        this.cache = new LRULinkedHashMap<>(maxsize);
     }
     
     
@@ -133,7 +133,7 @@ public class LRUCacheImpl implements Cache {
     
     
     // David Flanaghan: http://www.davidflanagan.com/blog/000014.html
-    private static class LRULinkedHashMap extends LinkedHashMap {
+    private static class LRULinkedHashMap<K, V> extends LinkedHashMap<K, V> {
         protected int maxsize;
         
         public LRULinkedHashMap(int maxsize) {
@@ -142,7 +142,7 @@ public class LRUCacheImpl implements Cache {
         }
         
         @Override
-        protected boolean removeEldestEntry(Map.Entry eldest) {
+        protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
             return this.size() > this.maxsize;
         }
     }
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/cache/LazyExpiringCacheEntry.java b/app/src/main/java/org/apache/roller/weblogger/util/cache/LazyExpiringCacheEntry.java
index fc0ea1e..0b85b25 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/cache/LazyExpiringCacheEntry.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/cache/LazyExpiringCacheEntry.java
@@ -44,8 +44,8 @@ import java.io.Serializable;
  */
 public class LazyExpiringCacheEntry implements Serializable {
     
-    private Object value = null;
-    private long timeCached = -1;
+    private final Object value;
+    private final long timeCached;
     
     
     public LazyExpiringCacheEntry(Object item) {

[roller] 12/19: Pagers: type compiler warning fixes and collection improvements.

Posted by mb...@apache.org.
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 ba2a6ce3d3d908822231db7cfede4153395a0e33
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Thu Jul 8 09:19:32 2021 +0200

    Pagers: type compiler warning fixes and collection improvements.
---
 .../ui/rendering/pagers/AbstractPager.java         | 14 ++----
 .../pagers/AbstractWeblogEntriesPager.java         | 51 ++++++++++------------
 .../ui/rendering/pagers/CommentsPager.java         |  4 +-
 .../ui/rendering/pagers/MediaFilesPager.java       |  4 +-
 .../weblogger/ui/rendering/pagers/Pager.java       |  4 +-
 .../ui/rendering/pagers/PlanetEntriesPager.java    |  4 +-
 .../rendering/pagers/SearchResultsFeedPager.java   | 23 +++++-----
 .../ui/rendering/pagers/SearchResultsPager.java    | 28 ++++++------
 .../weblogger/ui/rendering/pagers/UsersPager.java  | 17 +++-----
 .../ui/rendering/pagers/WeblogEntriesDayPager.java |  4 +-
 .../rendering/pagers/WeblogEntriesLatestPager.java |  4 +-
 .../rendering/pagers/WeblogEntriesListPager.java   |  4 +-
 .../rendering/pagers/WeblogEntriesMonthPager.java  |  4 +-
 .../ui/rendering/pagers/WeblogEntriesPager.java    |  5 ++-
 .../pagers/WeblogEntriesPermalinkPager.java        | 15 +++----
 .../pagers/WeblogEntriesPreviewPager.java          | 12 +++--
 .../ui/rendering/pagers/WeblogsPager.java          | 13 ++----
 17 files changed, 90 insertions(+), 120 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.java
index 6129dda..16b9000 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.java
@@ -18,7 +18,6 @@
 
 package org.apache.roller.weblogger.ui.rendering.pagers;
 
-import java.util.HashMap;
 import java.util.Map;
 import org.apache.roller.weblogger.business.URLStrategy;
 import org.apache.roller.weblogger.util.URLUtilities;
@@ -27,7 +26,7 @@ import org.apache.roller.weblogger.util.URLUtilities;
 /**
  * Abstract base for simple pagers.
  */
-public abstract class AbstractPager implements Pager {
+public abstract class AbstractPager<T> implements Pager<T> {
     
     final URLStrategy urlStrategy;
     private String url = null;
@@ -60,9 +59,7 @@ public abstract class AbstractPager implements Pager {
     public String getNextLink() {
         if(hasMoreItems()) {
             int nextPage = page + 1;
-            Map params = new HashMap();
-            params.put("page", ""+nextPage);
-            return createURL(url, params);
+            return createURL(url, Map.of("page", ""+nextPage));
         }
         return null;
     }
@@ -81,9 +78,7 @@ public abstract class AbstractPager implements Pager {
     public String getPrevLink() {
         if (page > 0) {
             int prevPage = page - 1;
-            Map params = new HashMap();
-            params.put("page", ""+prevPage);
-            return createURL(url, params);
+            return createURL(url, Map.of("page", ""+prevPage));
         }
         return null;
     }
@@ -103,8 +98,7 @@ public abstract class AbstractPager implements Pager {
     }
     
     
-    protected String createURL(String url, Map params) {
-        
+    protected String createURL(String url, Map<String, String> params) {
         return url + URLUtilities.getQueryString(params);
     }
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/AbstractWeblogEntriesPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/AbstractWeblogEntriesPager.java
index e350506..7c37659 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/AbstractWeblogEntriesPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/AbstractWeblogEntriesPager.java
@@ -20,8 +20,8 @@ package org.apache.roller.weblogger.ui.rendering.pagers;
 
 import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Locale;
@@ -42,21 +42,23 @@ import org.apache.roller.weblogger.util.I18nMessages;
 public abstract class AbstractWeblogEntriesPager implements WeblogEntriesPager {
     
     // message utils for doing i18n messages
-    I18nMessages messageUtils = null;
+    final I18nMessages messageUtils;
     
     // url strategy for building urls
-    URLStrategy urlStrategy = null;
+    final URLStrategy urlStrategy;
     
-    Weblog weblog = null;
-    String locale = null;
-    String pageLink = null;
-    String entryAnchor = null;
-    String dateString = null;
-    String catName = null;
-    List tags = new ArrayList();
-    int offset = 0;
-    int page = 0;
-    int length = 0;
+    final Weblog weblog;
+    final String locale;
+    final String pageLink;
+    final String entryAnchor;
+    final String dateString;
+    final String catName;
+    
+    final int offset;
+    final int page;
+    final int length;
+    
+    final List<String> tags;
     
     
     public AbstractWeblogEntriesPager(
@@ -67,7 +69,7 @@ public abstract class AbstractWeblogEntriesPager implements WeblogEntriesPager {
             String             entryAnchor,
             String             dateString,
             String             catName,
-            List               tags,
+            List<String>       tags,
             int                page) {
         
         this.urlStrategy = strat;
@@ -79,20 +81,13 @@ public abstract class AbstractWeblogEntriesPager implements WeblogEntriesPager {
         this.dateString = dateString;
         this.catName = catName;
         
-        if (tags != null) {
-            this.tags = tags;
-        }
+        this.tags = tags != null ? tags : Collections.emptyList();
         
         // make sure offset, length, and page are valid
         int maxLength = WebloggerRuntimeConfig.getIntProperty("site.pages.maxEntries");
-        length = weblog.getEntryDisplayCount();
-        if(length > maxLength) {
-            length = maxLength;
-        }
+        this.length = Math.min(weblog.getEntryDisplayCount(), maxLength);
         
-        if(page > 0) {
-            this.page = page;
-        }
+        this.page = Math.max(0, page);
         this.offset = length * page;
         
         // get a message utils instance to handle i18n of messages
@@ -231,9 +226,7 @@ public abstract class AbstractWeblogEntriesPager implements WeblogEntriesPager {
      * Return today based on current blog's timezone/locale.
      */
     protected Date getToday() {
-        Calendar todayCal = Calendar.getInstance();
-        todayCal = Calendar.getInstance(
-                weblog.getTimeZoneInstance(), weblog.getLocaleInstance());
+        Calendar todayCal = Calendar.getInstance(weblog.getTimeZoneInstance(), weblog.getLocaleInstance());
         todayCal.setTime(new Date());
         return todayCal.getTime();
     }
@@ -246,13 +239,13 @@ public abstract class AbstractWeblogEntriesPager implements WeblogEntriesPager {
     protected String createURL(
             int                page,
             int                pageAdd,
-            Weblog        website,
+            Weblog             website,
             String             locale,
             String             pageLink,
             String             entryAnchor,
             String             dateString,
             String             catName,
-            List               tags) {
+            List<String>       tags) {
         
         int pageNum = page + pageAdd;
         
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.java
index eff70c9..3c4793a 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.java
@@ -39,9 +39,9 @@ import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryCommentWrapper;
 /**
  * Paging through a collection of comments.
  */
-public class CommentsPager extends AbstractPager {
+public class CommentsPager extends AbstractPager<WeblogEntryCommentWrapper> {
     
-    private static Log log = LogFactory.getLog(CommentsPager.class);
+    private static final Log log = LogFactory.getLog(CommentsPager.class);
     
     private Weblog weblog = null;
     private int sinceDays = -1;
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/MediaFilesPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/MediaFilesPager.java
index b16a27d..06f124d 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/MediaFilesPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/MediaFilesPager.java
@@ -34,9 +34,9 @@ import org.apache.roller.weblogger.pojos.MediaFile;
 /**
  * Paging through a collection of media files.
  */
-public class MediaFilesPager extends AbstractPager {
+public class MediaFilesPager extends AbstractPager<MediaFile> {
     
-    private static Log log = LogFactory.getLog(MediaFilesPager.class);
+    private static final Log log = LogFactory.getLog(MediaFilesPager.class);
     private int length = 0;
     
     // the collection for the pager
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/Pager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/Pager.java
index 7977de1..21c954c 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/Pager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/Pager.java
@@ -23,7 +23,7 @@ import java.util.List;
 /**
  * Common pager interface.
  */
-public interface Pager {
+public interface Pager <T> {
     /**
      * Link value for returning to pager home
      */
@@ -57,6 +57,6 @@ public interface Pager {
     /**
      * Get current list of items available from the pager.
      */
-    List getItems();
+    List<T> getItems();
     
 }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager.java
index 61e50ed..dda26fc 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager.java
@@ -36,9 +36,9 @@ import org.apache.roller.weblogger.business.WebloggerFactory;
 /**
  * Paging through a collection of planet entries.
  */
-public class PlanetEntriesPager extends AbstractPager {
+public class PlanetEntriesPager extends AbstractPager<SubscriptionEntry> {
     
-    private static Log log = LogFactory.getLog(PlanetEntriesPager.class);
+    private static final Log log = LogFactory.getLog(PlanetEntriesPager.class);
     
     private String feedURL = null;
     private String groupHandle = null;
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager.java
index 0ec2c7e..c2ff969 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager.java
@@ -24,6 +24,7 @@ import java.util.Locale;
 import java.util.Map;
 import org.apache.roller.weblogger.business.URLStrategy;
 import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
 import org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest;
 import org.apache.roller.weblogger.util.I18nMessages;
 import org.apache.roller.weblogger.util.URLUtilities;
@@ -32,23 +33,23 @@ import org.apache.roller.weblogger.util.URLUtilities;
 /**
  * Pager for navigating through search results feeds.
  */
-public class SearchResultsFeedPager extends AbstractPager {
+public class SearchResultsFeedPager extends AbstractPager<WeblogEntryWrapper> {
     
     // message utils for doing i18n messages
     I18nMessages messageUtils = null;
     
-    private List entries = null;
+    private final List<WeblogEntryWrapper> entries;
     
-    private Weblog weblog = null;
-    private boolean     moreResults = false;
+    private final Weblog weblog;
+    private final boolean moreResults;
     
-    private WeblogFeedRequest feedRequest = null;
+    private final WeblogFeedRequest feedRequest;
     
-    private String url = null;
+    private final String url;
     
             
     public SearchResultsFeedPager(URLStrategy strat, String baseUrl, int pageNum,
-            WeblogFeedRequest feedRequest, List entries, boolean more) {
+            WeblogFeedRequest feedRequest, List<WeblogEntryWrapper> entries, boolean more) {
         
         super(strat, baseUrl, pageNum);
         
@@ -81,7 +82,7 @@ public class SearchResultsFeedPager extends AbstractPager {
     }
     
     @Override
-    public List getItems() {
+    public List<WeblogEntryWrapper> getItems() {
         return this.entries;
     }
     
@@ -101,7 +102,7 @@ public class SearchResultsFeedPager extends AbstractPager {
     }  
     
     @Override
-    protected String createURL(String url, Map params) {
+    protected String createURL(String url, Map<String, String> params) {
         String category = feedRequest.getWeblogCategoryName();
         if(category != null && !category.isBlank()) {
             params.put("cat", URLUtilities.encode(category));
@@ -110,7 +111,7 @@ public class SearchResultsFeedPager extends AbstractPager {
         if(term != null && !term.isBlank()) {
             params.put("q", URLUtilities.encode(term.trim()));
         }     
-        List tags = feedRequest.getTags();
+        List<String> tags = feedRequest.getTags();
         if(tags != null && !tags.isEmpty()) {
             params.put("tags", URLUtilities.getEncodedTagsString(tags));
         }
@@ -122,6 +123,6 @@ public class SearchResultsFeedPager extends AbstractPager {
     
     @Override
     public String getUrl() {
-        return createURL(url, new HashMap());
+        return createURL(url, new HashMap<>());
     }
 }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsPager.java
index 0321988..c063c56 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsPager.java
@@ -18,10 +18,13 @@
 
 package org.apache.roller.weblogger.ui.rendering.pagers;
 
+import java.util.Date;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Set;
 import org.apache.roller.weblogger.business.URLStrategy;
 import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
 import org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest;
 import org.apache.roller.weblogger.util.I18nMessages;
 
@@ -31,24 +34,21 @@ import org.apache.roller.weblogger.util.I18nMessages;
 public class SearchResultsPager implements WeblogEntriesPager {
     
     // message utils for doing i18n messages
-    I18nMessages messageUtils = null;
+    final I18nMessages messageUtils;
     
     // url strategy
-    URLStrategy urlStrategy = null;
+    final URLStrategy urlStrategy;
     
-    private Map entries = null;
+    private final Map<Date, Set<WeblogEntryWrapper>> entries;
     
-    private Weblog weblog = null;
-    private String      locale = null;
-    private String      query = null;
-    private String      category = null;
-    private int         page = 0;
-    private boolean     moreResults = false;
+    private final Weblog weblog;
+    private final String locale;
+    private final String query;
+    private final String category;
+    private final int page;
+    private final boolean moreResults;
     
-    
-    public SearchResultsPager() {}
-    
-    public SearchResultsPager(URLStrategy strat, WeblogSearchRequest searchRequest, Map entries, boolean more) {
+    public SearchResultsPager(URLStrategy strat, WeblogSearchRequest searchRequest, Map<Date, Set<WeblogEntryWrapper>> entries, boolean more) {
         
         // url strategy for building urls
         this.urlStrategy = strat;
@@ -83,7 +83,7 @@ public class SearchResultsPager implements WeblogEntriesPager {
     
     
     @Override
-    public Map getEntries() {
+    public Map<Date, Set<WeblogEntryWrapper>> getEntries() {
         return entries;
     }
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.java
index 335f175..ffb1c0f 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.java
@@ -19,7 +19,6 @@
 package org.apache.roller.weblogger.ui.rendering.pagers;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.logging.Log;
@@ -35,12 +34,12 @@ import org.apache.roller.weblogger.pojos.wrapper.UserWrapper;
 /**
  * Paging through a collection of users.
  */
-public class UsersPager extends AbstractPager {
+public class UsersPager extends AbstractPager<UserWrapper> {
     
-    private static Log log = LogFactory.getLog(UsersPager.class);
+    private final static Log log = LogFactory.getLog(UsersPager.class);
     
     private String letter = null;
-    private int length = 0;
+    private final int length;
     
     // collection for the pager
     private List<UserWrapper> users;
@@ -91,10 +90,7 @@ public class UsersPager extends AbstractPager {
         if(letter != null) {
             int page = getPage() + 1;
             if(hasMoreItems()) {
-                Map params = new HashMap();
-                params.put("page", ""+page);
-                params.put("letter", letter);
-                return createURL(getUrl(), params);
+                return createURL(getUrl(), Map.of("page", ""+page, "letter", letter));
             }
             return null;
         } else {
@@ -109,10 +105,7 @@ public class UsersPager extends AbstractPager {
         if(letter != null) {
             int page = getPage() - 1;
             if (page >= 0) {
-                Map params = new HashMap();
-                params.put("page", ""+page);
-                params.put("letter", letter);
-                return createURL(getUrl(), params);
+                return createURL(getUrl(), Map.of("page", ""+page, "letter", letter));
             }
             return null;
         } else {
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java
index c841a68..a423be0 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java
@@ -43,7 +43,7 @@ import org.apache.roller.weblogger.business.URLStrategy;
  */
 public class WeblogEntriesDayPager extends AbstractWeblogEntriesPager {
     
-    private static Log log = LogFactory.getLog(WeblogEntriesDayPager.class);
+    private static final Log log = LogFactory.getLog(WeblogEntriesDayPager.class);
     
     private SimpleDateFormat dayFormat = new SimpleDateFormat();
     
@@ -66,7 +66,7 @@ public class WeblogEntriesDayPager extends AbstractWeblogEntriesPager {
             String             entryAnchor,
             String             dateString,
             String             catName,
-            List               tags,
+            List<String>       tags,
             int                page) {
         
         super(strat, weblog, locale, pageLink, entryAnchor, dateString, catName, tags, page);
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesLatestPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesLatestPager.java
index 8bfb6bb..fce4f5e 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesLatestPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesLatestPager.java
@@ -39,7 +39,7 @@ import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
  */
 public class WeblogEntriesLatestPager extends AbstractWeblogEntriesPager {
     
-    private static Log log = LogFactory.getLog(WeblogEntriesLatestPager.class);
+    private static final Log log = LogFactory.getLog(WeblogEntriesLatestPager.class);
     
     // collection for the pager
     private Map<Date, List<WeblogEntryWrapper>> entries = null;
@@ -56,7 +56,7 @@ public class WeblogEntriesLatestPager extends AbstractWeblogEntriesPager {
             String             entryAnchor,
             String             dateString,
             String             catName,
-            List               tags,
+            List<String>       tags,
             int                page) {
         
         super(strat, weblog, locale, pageLink, entryAnchor, dateString, catName, tags, page);
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.java
index 807129a..8359e69 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.java
@@ -37,9 +37,9 @@ import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
 /**
  * Simple pager for list of weblog entries.
  */
-public class WeblogEntriesListPager extends AbstractPager {
+public class WeblogEntriesListPager extends AbstractPager<WeblogEntryWrapper> {
     
-    private static Log log = LogFactory.getLog(WeblogEntriesListPager.class);
+    private static final Log log = LogFactory.getLog(WeblogEntriesListPager.class);
     
     private String locale = null;
     private int sinceDays = -1;
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java
index da48c99..1606c98 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java
@@ -37,7 +37,7 @@ import org.apache.roller.weblogger.business.URLStrategy;
  */
 public class WeblogEntriesMonthPager extends AbstractWeblogEntriesPager {
     
-    private static Log log = LogFactory.getLog(WeblogEntriesMonthPager.class);
+    private static final Log log = LogFactory.getLog(WeblogEntriesMonthPager.class);
     
     private SimpleDateFormat monthFormat = new SimpleDateFormat();
     
@@ -60,7 +60,7 @@ public class WeblogEntriesMonthPager extends AbstractWeblogEntriesPager {
             String             entryAnchor,
             String             dateString,
             String             catName,
-            List               tags,
+            List<String>       tags,
             int                page) {
         
         super(strat, weblog, locale, pageLink, entryAnchor, dateString, catName, tags, page);
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager.java
index 15eb8b9..b203b4e 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager.java
@@ -18,7 +18,10 @@
 
 package org.apache.roller.weblogger.ui.rendering.pagers;
 
+import java.util.Collection;
+import java.util.Date;
 import java.util.Map;
+import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
 
 /**
  * Pager for weblog entries, handles latest, single-entry, month and day views.
@@ -33,7 +36,7 @@ public interface WeblogEntriesPager {
      * The collection is grouped by days of entries.  Each value is a list of
      * entry objects keyed by the date they were published.
      */
-    Map getEntries();
+    Map<Date, ? extends Collection<WeblogEntryWrapper>> getEntries();
         
     /**
      * Link value for returning to pager home
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPermalinkPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPermalinkPager.java
index afdc650..b92e3a4 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPermalinkPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPermalinkPager.java
@@ -18,11 +18,9 @@
 
 package org.apache.roller.weblogger.ui.rendering.pagers;
 
-import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.TreeMap;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
@@ -42,14 +40,14 @@ import org.apache.roller.weblogger.util.Utilities;
  */
 public class WeblogEntriesPermalinkPager extends AbstractWeblogEntriesPager {
     
-    private static Log log = LogFactory.getLog(WeblogEntriesPermalinkPager.class);
+    private static final Log log = LogFactory.getLog(WeblogEntriesPermalinkPager.class);
     
     WeblogEntry currEntry = null;
     WeblogEntry nextEntry = null;
     WeblogEntry prevEntry = null;
     
     // collection for the pager
-    Map entries = null;
+    Map<Date, List<WeblogEntryWrapper>> entries = null;
     
     
     public WeblogEntriesPermalinkPager(
@@ -60,7 +58,7 @@ public class WeblogEntriesPermalinkPager extends AbstractWeblogEntriesPager {
             String             entryAnchor,
             String             dateString,
             String             catName,
-            List               tags,
+            List<String>       tags,
             int                page) {
         
         super(strat, weblog, locale, pageLink, entryAnchor, dateString, catName, tags, page);
@@ -70,22 +68,19 @@ public class WeblogEntriesPermalinkPager extends AbstractWeblogEntriesPager {
     
     
     @Override
-    public Map getEntries() {
+    public Map<Date, List<WeblogEntryWrapper>> getEntries() {
         if (entries == null) {
             try {
                 Weblogger roller = WebloggerFactory.getWeblogger();
                 WeblogEntryManager wmgr = roller.getWeblogEntryManager();
                 currEntry = wmgr.getWeblogEntryByAnchor(weblog, entryAnchor);
                 if (currEntry != null && currEntry.getStatus().equals(PubStatus.PUBLISHED)) {
-                    entries = new TreeMap();
-                    entries.put(new Date(currEntry.getPubTime().getTime()),Collections.singletonList(WeblogEntryWrapper.wrap(currEntry, urlStrategy)));
+                    entries = Map.of(new Date(currEntry.getPubTime().getTime()), List.of(WeblogEntryWrapper.wrap(currEntry, urlStrategy)));
                 }
             } catch (Exception e) {
                 log.error("ERROR: fetching entry");
             }
         }
-
-
         
         return entries;
     }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPreviewPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPreviewPager.java
index 118430d..d887fb7 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPreviewPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPreviewPager.java
@@ -19,10 +19,9 @@
 package org.apache.roller.weblogger.ui.rendering.pagers;
 
 import java.sql.Timestamp;
-import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.TreeMap;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.business.URLStrategy;
@@ -43,7 +42,7 @@ import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
  */
 public class WeblogEntriesPreviewPager extends WeblogEntriesPermalinkPager {
     
-    private static Log log = LogFactory.getLog(WeblogEntriesPreviewPager.class);
+    private static final Log log = LogFactory.getLog(WeblogEntriesPreviewPager.class);
     
     
     public WeblogEntriesPreviewPager(
@@ -54,7 +53,7 @@ public class WeblogEntriesPreviewPager extends WeblogEntriesPermalinkPager {
             String             entryAnchor,
             String             dateString,
             String             catName,
-            List               tags,
+            List<String>       tags,
             int                page) {
         
         super(strat, weblog, locale, pageLink, entryAnchor, dateString, catName, tags, page);
@@ -62,7 +61,7 @@ public class WeblogEntriesPreviewPager extends WeblogEntriesPermalinkPager {
     
     
     @Override
-    public Map getEntries() {
+    public Map<Date, List<WeblogEntryWrapper>> getEntries() {
         if (entries == null) {
             try {
                 Weblogger roller = WebloggerFactory.getWeblogger();
@@ -80,8 +79,7 @@ public class WeblogEntriesPreviewPager extends WeblogEntriesPermalinkPager {
                     }
 
                     // store the entry in the collection
-                    entries = new TreeMap();
-                    entries.put(tmpEntry.getPubTime(),Collections.singletonList(WeblogEntryWrapper.wrap(tmpEntry, urlStrategy)));
+                    entries = Map.of(tmpEntry.getPubTime(), List.of(WeblogEntryWrapper.wrap(tmpEntry, urlStrategy)));
                 }
             } catch (Exception e) {
                 log.error("ERROR: fetching entry", e);
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.java
index cb5423d..3c1b7a8 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.java
@@ -21,7 +21,6 @@ package org.apache.roller.weblogger.ui.rendering.pagers;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.logging.Log;
@@ -37,7 +36,7 @@ import org.apache.roller.weblogger.pojos.wrapper.WeblogWrapper;
 /**
  * Paging through a collection of weblogs.
  */
-public class WeblogsPager extends AbstractPager {
+public class WeblogsPager extends AbstractPager<WeblogWrapper> {
     
     private static Log log = LogFactory.getLog(WeblogsPager.class);
     
@@ -96,10 +95,7 @@ public class WeblogsPager extends AbstractPager {
         if(letter != null) {
             int page = getPage() + 1;
             if(hasMoreItems()) {
-                Map<String, String> params = new HashMap<>();
-                params.put("page", ""+page);
-                params.put("letter", letter);
-                return createURL(getUrl(), params);
+                return createURL(getUrl(), Map.of("page", ""+page, "letter", letter));
             }
             return null;
         } else {
@@ -114,10 +110,7 @@ public class WeblogsPager extends AbstractPager {
         if(letter != null) {
             int page = getPage() - 1;
             if (page >= 0) {
-                Map<String, String> params = new HashMap<>();
-                params.put("page", ""+page);
-                params.put("letter", letter);
-                return createURL(getUrl(), params);
+                return createURL(getUrl(), Map.of("page", ""+page, "letter", letter));
             }
             return null;
         } else {

[roller] 18/19: final set of rawtype warning fixes.

Posted by mb...@apache.org.
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 1bc342caa5a849fcab58565b4c3913a35adb99e0
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Sat Jul 10 13:54:33 2021 +0200

    final set of rawtype warning fixes.
---
 .../planet/business/fetcher/RomeFeedFetcher.java   |  2 +-
 .../planet/business/jpa/JPAPlanetManagerImpl.java  |  2 +-
 .../roller/planet/pojos/SubscriptionEntry.java     |  8 ++---
 .../roller/planet/tasks/StaticPlanetModel.java     |  3 +-
 .../weblogger/business/PropertiesManager.java      |  2 +-
 .../weblogger/business/WeblogEntryManager.java     |  3 +-
 .../business/jpa/JPAMediaFileManagerImpl.java      |  4 +--
 .../business/jpa/JPAPropertiesManagerImpl.java     |  4 +--
 .../weblogger/business/jpa/JPAUserManagerImpl.java |  6 ++--
 .../business/jpa/JPAWeblogEntryManagerImpl.java    | 30 +++++++++---------
 .../business/jpa/JPAWeblogManagerImpl.java         |  8 ++---
 .../business/runnable/ContinuousWorkerThread.java  |  2 +-
 .../weblogger/business/runnable/RollerTask.java    |  4 +--
 .../business/themes/ThemeManagerImpl.java          | 15 +++------
 .../ui/core/security/CustomUserRegistry.java       |  2 +-
 .../core/tags/calendar/BigWeblogCalendarModel.java |  8 ++---
 .../ui/core/tags/calendar/WeblogCalendarModel.java | 14 ++++-----
 .../weblogger/ui/rendering/model/SiteModel.java    |  2 +-
 .../weblogger/ui/struts2/admin/CacheInfo.java      |  9 +++---
 .../ui/struts2/admin/GlobalCommentManagement.java  |  4 +--
 .../ui/struts2/ajax/ThemeDataServlet.java          |  4 +--
 .../weblogger/ui/struts2/core/CreateWeblog.java    |  5 +--
 .../weblogger/ui/struts2/editor/EntryEdit.java     |  8 ++---
 .../roller/weblogger/ui/struts2/editor/Pings.java  |  8 ++---
 .../roller/weblogger/ui/struts2/util/UIAction.java |  4 +--
 .../apache/roller/weblogger/util/LRUCache2.java    |  2 +-
 .../roller/weblogger/util/LinkbackExtractor.java   |  2 +-
 .../org/apache/roller/weblogger/util/MailUtil.java | 10 +++---
 .../roller/weblogger/util/PasswordUtility.java     |  4 +--
 .../webservices/atomprotocol/EntryCollection.java  |  2 +-
 .../webservices/atomprotocol/MediaCollection.java  |  4 +--
 .../atomprotocol/RollerAtomService.java            |  4 +--
 .../webservices/tagdata/TagDataServlet.java        |  4 +--
 .../webservices/xmlrpc/MetaWeblogAPIHandler.java   | 14 ++++-----
 .../roller/planet/business/PropertiesTest.java     | 10 +++---
 .../weblogger/business/FileContentManagerTest.java | 36 +++++++++++-----------
 .../roller/weblogger/business/PropertiesTest.java  | 10 +++---
 37 files changed, 128 insertions(+), 135 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java b/app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java
index 83777c1..1f38660 100644
--- a/app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java
+++ b/app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java
@@ -200,7 +200,7 @@ public class RomeFeedFetcher implements FeedFetcher {
         
         // get content and unescape if it is 'text/plain'
         if (!romeEntry.getContents().isEmpty()) {
-            SyndContent content= (SyndContent)romeEntry.getContents().get(0);
+            SyndContent content= romeEntry.getContents().get(0);
             if (content != null && content.getType().equals("text/plain")) {
                 newEntry.setText(StringEscapeUtils.unescapeHtml4(content.getValue()));
             } else if (content != null) {
diff --git a/app/src/main/java/org/apache/roller/planet/business/jpa/JPAPlanetManagerImpl.java b/app/src/main/java/org/apache/roller/planet/business/jpa/JPAPlanetManagerImpl.java
index 212dfa5..0e170b6 100644
--- a/app/src/main/java/org/apache/roller/planet/business/jpa/JPAPlanetManagerImpl.java
+++ b/app/src/main/java/org/apache/roller/planet/business/jpa/JPAPlanetManagerImpl.java
@@ -122,7 +122,7 @@ public class JPAPlanetManagerImpl extends AbstractManagerImpl implements PlanetM
                 Subscription.class, id);
     }
     
-    public Iterator getAllSubscriptions() {
+    public Iterator<Subscription> getAllSubscriptions() {
         try {
             return (strategy.getNamedQuery(
                     "Subscription.getAll", Subscription.class).getResultList()).iterator();
diff --git a/app/src/main/java/org/apache/roller/planet/pojos/SubscriptionEntry.java b/app/src/main/java/org/apache/roller/planet/pojos/SubscriptionEntry.java
index 51ab6aa..afaf385 100644
--- a/app/src/main/java/org/apache/roller/planet/pojos/SubscriptionEntry.java
+++ b/app/src/main/java/org/apache/roller/planet/pojos/SubscriptionEntry.java
@@ -226,18 +226,18 @@ public class SubscriptionEntry implements Serializable, Comparable<SubscriptionE
      */
     public Category getCategory() {
         Category cat = null;
-        List cats = getCategories();
+        List<Category> cats = getCategories();
         if (!cats.isEmpty()) {
-            cat = (Category)cats.get(0);
+            cat = cats.get(0);
         }
         return cat;
     }
 
     public void setCategoriesString(List<String> categoryNames) {
         StringBuilder sb = new StringBuilder();
-        Iterator cats = categoryNames.iterator();
+        Iterator<String> cats = categoryNames.iterator();
         while (cats.hasNext()) {
-            String catName = (String) cats.next();
+            String catName = cats.next();
             sb.append(catName);
             if (cats.hasNext()) {
                 sb.append(",");
diff --git a/app/src/main/java/org/apache/roller/planet/tasks/StaticPlanetModel.java b/app/src/main/java/org/apache/roller/planet/tasks/StaticPlanetModel.java
index 9df09c0..257d6c8 100644
--- a/app/src/main/java/org/apache/roller/planet/tasks/StaticPlanetModel.java
+++ b/app/src/main/java/org/apache/roller/planet/tasks/StaticPlanetModel.java
@@ -65,8 +65,7 @@ public class StaticPlanetModel {
         }
     }
        
-    public List getAggregation(
-            PlanetGroup group, int maxEntries) throws RollerException {
+    public List<SubscriptionEntry> getAggregation(PlanetGroup group, int maxEntries) throws RollerException {
         return planetManager.getEntries(group, 0, maxEntries);
     }
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/PropertiesManager.java b/app/src/main/java/org/apache/roller/weblogger/business/PropertiesManager.java
index 311783d..5b0fef7 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/PropertiesManager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/PropertiesManager.java
@@ -51,7 +51,7 @@ public interface PropertiesManager {
     /**
      * Save a list of properties
      */
-    void saveProperties(Map properties) throws WebloggerException;
+    void saveProperties(Map<String, RuntimeConfigProperty> properties) throws WebloggerException;
     
     
     /**
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/WeblogEntryManager.java b/app/src/main/java/org/apache/roller/weblogger/business/WeblogEntryManager.java
index 6f87756..ca95a0d 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/WeblogEntryManager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/WeblogEntryManager.java
@@ -283,8 +283,7 @@ public interface WeblogEntryManager {
      * @return True if tags exist, false otherwise.
      * @throws WebloggerException If there is any problem doing the operation.
      */
-    boolean getTagComboExists(List tags, Weblog weblog)
-        throws WebloggerException;
+    boolean getTagComboExists(List<String> tags, Weblog weblog) throws WebloggerException;
     
     /**
      * Get a HitCountData by id.
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
index 116e19a..1aa83a2 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
@@ -892,8 +892,8 @@ public class JPAMediaFileManagerImpl implements MediaFileManager {
     public void removeMediaFileTag(String name, MediaFile entry)
             throws WebloggerException {
 
-        for (Iterator it = entry.getTags().iterator(); it.hasNext();) {
-            MediaFileTag tag = (MediaFileTag) it.next();
+        for (Iterator<MediaFileTag> it = entry.getTags().iterator(); it.hasNext();) {
+            MediaFileTag tag = it.next();
             if (tag.getName().equals(name)) {
 
                 // Call back the entity to adjust its internal state
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java
index 0efd193..255ee04 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java
@@ -137,7 +137,7 @@ public class JPAPropertiesManagerImpl implements PropertiesManager {
      * Save all properties.
      */
     @Override
-    public void saveProperties(Map properties) throws WebloggerException {
+    public void saveProperties(Map<String, RuntimeConfigProperty> properties) throws WebloggerException {
 
         // just go through the list and saveProperties each property
         for (Object prop : properties.values()) {
@@ -153,7 +153,7 @@ public class JPAPropertiesManagerImpl implements PropertiesManager {
      *
      * If the Map of props is empty/null then we will initialize all properties.
      **/
-    private Map initializeMissingProps(Map<String, RuntimeConfigProperty> props) {
+    private Map<String, RuntimeConfigProperty> initializeMissingProps(Map<String, RuntimeConfigProperty> props) {
 
         if(props == null) {
             props = new HashMap<>();
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
index 654307b..1e42cf7 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
@@ -96,7 +96,7 @@ public class JPAUserManagerImpl implements UserManager {
         }
         
         boolean adminUser = false;
-        List existingUsers = this.getUsers(Boolean.TRUE, null, null, 0, 1);
+        List<User> existingUsers = this.getUsers(Boolean.TRUE, null, null, 0, 1);
         boolean firstUserAdmin = WebloggerConfig.getBooleanProperty("users.firstUserAdmin");
         if (existingUsers.isEmpty() && firstUserAdmin) {
             // Make first user an admin
@@ -299,8 +299,8 @@ public class JPAUserManagerImpl implements UserManager {
         for (int i=0; i<26; i++) {
             char currentChar = lc.charAt(i);
             query.setParameter(1, currentChar + "%");
-            List row = query.getResultList();
-            Long count = (Long) row.get(0);
+            List<Long> row = query.getResultList();
+            Long count = row.get(0);
             results.put(String.valueOf(currentChar), count);
         }
         return results;
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java
index 7739adb..638cb42 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java
@@ -68,7 +68,7 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
     private final JPAPersistenceStrategy strategy;
     
     // cached mapping of entryAnchors -> entryIds
-    private Map<String, String> entryAnchorToIdMap = Collections.synchronizedMap(new HashMap<String, String>());
+    private final Map<String, String> entryAnchorToIdMap = Collections.synchronizedMap(new HashMap<String, String>());
     
     private static final Comparator<TagStat> TAG_STAT_NAME_COMPARATOR = new TagStatComparator();
     
@@ -276,8 +276,8 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
         
         // remove attributes
         if (entry.getEntryAttributes() != null) {
-            for (Iterator it = entry.getEntryAttributes().iterator(); it.hasNext(); ) {
-                WeblogEntryAttribute att = (WeblogEntryAttribute) it.next();
+            for (Iterator<WeblogEntryAttribute> it = entry.getEntryAttributes().iterator(); it.hasNext(); ) {
+                WeblogEntryAttribute att = it.next();
                 it.remove();
                 this.strategy.remove(att);
             }
@@ -295,7 +295,7 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
         this.entryAnchorToIdMap.remove(entry.getWebsite().getHandle()+":"+entry.getAnchor());
     }
     
-    private List getNextPrevEntries(WeblogEntry current, String catName,
+    private List<WeblogEntry> getNextPrevEntries(WeblogEntry current, String catName,
             String locale, int maxEntries, boolean next)
             throws WebloggerException {
 
@@ -496,8 +496,8 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
 
         // seems silly, why is this not done in WeblogEntry?
 
-        for (Iterator it = entry.getEntryAttributes().iterator(); it.hasNext();) {
-            WeblogEntryAttribute entryAttribute = (WeblogEntryAttribute) it.next();
+        for (Iterator<WeblogEntryAttribute> it = entry.getEntryAttributes().iterator(); it.hasNext();) {
+            WeblogEntryAttribute entryAttribute = it.next();
             if (entryAttribute.getName().equals(name)) {
 
                 //Remove it from database
@@ -587,7 +587,7 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
                     "WeblogEntry.getByWebsite&Anchor", WeblogEntry.class);
             q.setParameter(1, entry.getWebsite());
             q.setParameter(2, name);
-            List results = q.getResultList();
+            List<WeblogEntry> results = q.getResultList();
             
             if (results.isEmpty()) {
                 break;
@@ -819,7 +819,7 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
             Date startDate, Date endDate, int offset,
             int length) throws WebloggerException {
         TypedQuery<WeblogEntryComment> query;
-        List queryResults;
+        List<WeblogEntryComment> queryResults;
 
         Timestamp end = new Timestamp(endDate != null? endDate.getTime() : new Date().getTime());
 
@@ -881,9 +881,9 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
     public WeblogEntry getNextEntry(WeblogEntry current,
             String catName, String locale) throws WebloggerException {
         WeblogEntry entry = null;
-        List entryList = getNextPrevEntries(current, catName, locale, 1, true);
+        List<WeblogEntry> entryList = getNextPrevEntries(current, catName, locale, 1, true);
         if (entryList != null && !entryList.isEmpty()) {
-            entry = (WeblogEntry)entryList.get(0);
+            entry = entryList.get(0);
         }
         return entry;
     }
@@ -895,9 +895,9 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
     public WeblogEntry getPreviousEntry(WeblogEntry current,
             String catName, String locale) throws WebloggerException {
         WeblogEntry entry = null;
-        List entryList = getNextPrevEntries(current, catName, locale, 1, false);
+        List<WeblogEntry> entryList = getNextPrevEntries(current, catName, locale, 1, false);
         if (entryList != null && !entryList.isEmpty()) {
-            entry = (WeblogEntry)entryList.get(0);
+            entry = entryList.get(0);
         }
         return entry;
     }
@@ -934,7 +934,7 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
     public List<TagStat> getPopularTags(Weblog website, Date startDate, int offset, int limit)
     throws WebloggerException {
         TypedQuery<TagStat> query;
-        List queryResults;
+        List<TagStat> queryResults;
         
         if (website != null) {
             if (startDate != null) {
@@ -1002,7 +1002,7 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
     public List<TagStat> getTags(Weblog website, String sortBy,
             String startsWith, int offset, int limit) throws WebloggerException {
         Query query;
-        List queryResults;
+        List<?> queryResults;
         boolean sortByName = sortBy == null || !sortBy.equals("count");
                 
         List<Object> params = new ArrayList<>();
@@ -1062,7 +1062,7 @@ public class JPAWeblogEntryManagerImpl implements WeblogEntryManager {
      * @inheritDoc
      */
     @Override
-    public boolean getTagComboExists(List tags, Weblog weblog) throws WebloggerException{
+    public boolean getTagComboExists(List<String> tags, Weblog weblog) throws WebloggerException{
         
         if (tags == null || tags.isEmpty()) {
             return false;
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
index 14530f5..8fa1df6 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
@@ -158,7 +158,7 @@ public class JPAWeblogManagerImpl implements WeblogManager {
         // Remove the weblog's ping queue entries
         TypedQuery<PingQueueEntry> q = strategy.getNamedQuery("PingQueueEntry.getByWebsite", PingQueueEntry.class);
         q.setParameter(1, weblog);
-        List queueEntries = q.getResultList();
+        List<PingQueueEntry> queueEntries = q.getResultList();
         for (Object obj : queueEntries) {
             this.strategy.remove(obj);
         }
@@ -620,8 +620,8 @@ public class JPAWeblogManagerImpl implements WeblogManager {
         for (int i=0; i<26; i++) {
             char currentChar = lc.charAt(i);
             query.setParameter(1, currentChar + "%");
-            List row = query.getResultList();
-            Long count = (Long) row.get(0);
+            List<Long> row = query.getResultList();
+            Long count = row.get(0);
             results.put(String.valueOf(currentChar), count);
         }
         return results;
@@ -672,7 +672,7 @@ public class JPAWeblogManagerImpl implements WeblogManager {
         if (length != -1) {
             query.setMaxResults(length);
         }
-        List queryResults = query.getResultList();
+        List<?> queryResults = query.getResultList();
         List<StatCount> results = new ArrayList<>();
         if (queryResults != null) {
             for (Object obj : queryResults) {
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/runnable/ContinuousWorkerThread.java b/app/src/main/java/org/apache/roller/weblogger/business/runnable/ContinuousWorkerThread.java
index b99683f..86e623b 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/runnable/ContinuousWorkerThread.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/runnable/ContinuousWorkerThread.java
@@ -70,7 +70,7 @@ public class ContinuousWorkerThread extends WorkerThread {
             // job is done, lets sleep it off for a bit
             try {
                 mLogger.debug(this.id + " SLEEPING for " + this.sleepTime + " milliseconds ...");
-                this.sleep(this.sleepTime);
+                Thread.sleep(this.sleepTime);
             } catch (InterruptedException e) {
                 mLogger.info(this.id + " INTERRUPT: " + e.getMessage());
                 break;
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/runnable/RollerTask.java b/app/src/main/java/org/apache/roller/weblogger/business/runnable/RollerTask.java
index d46da72..6384567 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/runnable/RollerTask.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/runnable/RollerTask.java
@@ -123,8 +123,8 @@ public abstract class RollerTask implements Runnable {
         
         Properties taskProps = new Properties();
         
-        String key = null;
-        Enumeration keys = WebloggerConfig.keys();
+        String key;
+        Enumeration<Object> keys = WebloggerConfig.keys();
         while(keys.hasMoreElements()) {
             key = (String) keys.nextElement();
             
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
index 0147523..8603263 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
@@ -160,7 +160,7 @@ public class ThemeManagerImpl implements ThemeManager {
 
 			// otherwise we are returning a WeblogSharedTheme
 		} else {
-			SharedTheme staticTheme = (SharedTheme) this.themes.get(weblog.getEditorTheme());
+			SharedTheme staticTheme = this.themes.get(weblog.getEditorTheme());
 			if (staticTheme != null) {
 				weblogTheme = new WeblogSharedTheme(weblog, staticTheme);
 			} else {
@@ -377,15 +377,10 @@ public class ThemeManagerImpl implements ThemeManager {
 
 		// first, get a list of the themes available
 		File themesdir = new File(this.themeDir);
-		FilenameFilter filter = new FilenameFilter() {
-
-            @Override
-			public boolean accept(File dir, String name) {
-				File file = new File(dir.getAbsolutePath() + File.separator
-						+ name);
-				return file.isDirectory() && !file.getName().startsWith(".");
-			}
-		};
+		FilenameFilter filter = (File dir, String name) -> {
+            File file = new File(dir.getAbsolutePath() + File.separator + name);
+            return file.isDirectory() && !file.getName().startsWith(".");
+        };
 		String[] themenames = themesdir.list(filter);
 
 		if (themenames == null) {
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java b/app/src/main/java/org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java
index e36a97f..14d184f 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java
@@ -203,7 +203,7 @@ public class CustomUserRegistry {
         if (attrObj instanceof String) {
             attr = (String)attrObj;
         } else if (attrObj instanceof Set) {
-            Set attrSet = (Set)attrObj;           
+            Set<?> attrSet = (Set)attrObj;           
             if (!attrSet.isEmpty()) {
                 attr = (String)attrSet.iterator().next();
             }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java
index 543a20f..5b9db4d 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java
@@ -40,7 +40,7 @@ import org.apache.roller.util.DateUtil;
  */
 public class BigWeblogCalendarModel extends WeblogCalendarModel {
     
-    private static Log mLogger = LogFactory.getLog(BigWeblogCalendarModel.class);
+    private static final Log mLogger = LogFactory.getLog(BigWeblogCalendarModel.class);
 
     protected final SimpleDateFormat starDateFormat =
             DateUtil.get8charDateFormat();
@@ -71,7 +71,7 @@ public class BigWeblogCalendarModel extends WeblogCalendarModel {
             monthMap = mgr.getWeblogEntryObjectMap(wesc);
         } catch (WebloggerException e) {
             mLogger.error(e);
-            monthMap = new HashMap();
+            monthMap = new HashMap<>();
         }
     }
     
@@ -85,7 +85,7 @@ public class BigWeblogCalendarModel extends WeblogCalendarModel {
             // get the 8 char YYYYMMDD datestring for day, returns null
             // if no weblog entry on that day
             String dateString;
-            List entries = (List)monthMap.get(day);
+            List<?> entries = (List<?>)monthMap.get(day);
             if ( entries != null ) {
                 dateString = starDateFormat.format(
                         ((WeblogEntry)entries.get(0)).getPubTime());
@@ -144,7 +144,7 @@ public class BigWeblogCalendarModel extends WeblogCalendarModel {
         // get the 8 char YYYYMMDD datestring for day, returns null
         // if no weblog entry on that day
         String dateString = null;
-        List entries = (List)monthMap.get( day );
+        List<?> entries = (List<?>)monthMap.get( day );
         if ( entries != null && day != null ) {
             WeblogEntry entry = (WeblogEntry)entries.get(0);
             dateString = starDateFormat.format(entry.getPubTime());
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java
index 1ff954d..a2b6317 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java
@@ -47,9 +47,9 @@ import org.apache.roller.util.DateUtil;
  */
 public class WeblogCalendarModel implements CalendarModel {
     
-    private static Log log = LogFactory.getLog(WeblogCalendarModel.class);
+    private static final Log log = LogFactory.getLog(WeblogCalendarModel.class);
     
-    protected Map               monthMap;
+    protected Map<Date, ?>      monthMap;
     protected Date              day;
     protected String            cat = null;
     protected String            pageLink = null;
@@ -115,10 +115,10 @@ public class WeblogCalendarModel implements CalendarModel {
             wesc.setSortOrder(WeblogEntrySearchCriteria.SortOrder.DESCENDING);
             wesc.setLocale(locale);
             wesc.setMaxResults(1);
-            List prevEntries = mgr.getWeblogEntries(wesc);
+            List<WeblogEntry> prevEntries = mgr.getWeblogEntries(wesc);
 
             if (!prevEntries.isEmpty()) {
-                WeblogEntry prevEntry = (WeblogEntry)prevEntries.get(0);
+                WeblogEntry prevEntry = prevEntries.get(0);
                 prevMonth = DateUtil.getStartOfMonth(new Date(prevEntry.getPubTime().getTime()),getCalendar());
             }
         } catch (WebloggerException e) {
@@ -139,9 +139,9 @@ public class WeblogCalendarModel implements CalendarModel {
             wesc.setSortOrder(WeblogEntrySearchCriteria.SortOrder.ASCENDING);
             wesc.setLocale(locale);
             wesc.setMaxResults(1);
-            List nextEntries = mgr.getWeblogEntries(wesc);
+            List<WeblogEntry> nextEntries = mgr.getWeblogEntries(wesc);
             if (!nextEntries.isEmpty()) {
-                WeblogEntry nextEntry = (WeblogEntry)nextEntries.get(0);
+                WeblogEntry nextEntry = nextEntries.get(0);
                 nextMonth = DateUtil.getStartOfMonth(new Date(nextEntry.getPubTime().getTime()),getCalendar());
             }
         } catch (WebloggerException e) {
@@ -171,7 +171,7 @@ public class WeblogCalendarModel implements CalendarModel {
             monthMap = mgr.getWeblogEntryStringMap(wesc);
         } catch (WebloggerException e) {
             log.error(e);
-            monthMap = new HashMap<Date, String>();
+            monthMap = new HashMap<>();
         }
     }
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java
index c978b0e..a0c7acf 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java
@@ -482,7 +482,7 @@ public class SiteModel implements Model {
      * @param cats     To limit results to list of category names
      * @param length      Max number of results to return
      */
-    public List<StatCount> getMostCommentedWeblogEntries(List cats, int sinceDays, int length) {
+    public List<StatCount> getMostCommentedWeblogEntries(List<String> cats, int sinceDays, int length) {
         Date startDate = JPAWeblogEntryManagerImpl.getStartDateNow(sinceDays);
         try {
             Weblogger roller = WebloggerFactory.getWeblogger();
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CacheInfo.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CacheInfo.java
index 920ab6c..7f199ba 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CacheInfo.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CacheInfo.java
@@ -34,7 +34,7 @@ import org.apache.struts2.convention.annotation.AllowedMethods;
 public class CacheInfo extends UIAction {
     
     // map of stats to display
-    private Map stats = Collections.EMPTY_MAP;
+    private Map<String, Map<String, Object>> stats = Collections.emptyMap();
     
     // cache which we would clear when clear() is called
     private String cache = null;
@@ -60,8 +60,7 @@ public class CacheInfo extends UIAction {
     
     @Override
     public void myPrepare() {
-        Map cacheStats = CacheManager.getStats();
-        setStats(cacheStats);
+        setStats(CacheManager.getStats());
     }
     
     
@@ -94,11 +93,11 @@ public class CacheInfo extends UIAction {
     }
 
     
-    public Map getStats() {
+    public Map<String, Map<String, Object>> getStats() {
         return stats;
     }
 
-    public void setStats(Map stats) {
+    public void setStats(Map<String, Map<String, Object>> stats) {
         this.stats = stats;
     }
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java
index a9ca1f9..ef1774f 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java
@@ -195,7 +195,7 @@ public class GlobalCommentManagement extends UIAction implements ServletRequestA
             csc.setStatus(getBean().getStatus());
             csc.setReverseChrono(true);
 
-            List allMatchingComments = wmgr.getComments(csc);
+            List<WeblogEntryComment> allMatchingComments = wmgr.getComments(csc);
 
             if(allMatchingComments.size() > COUNT) {
                 setBulkDeleteCount(allMatchingComments.size());
@@ -268,7 +268,7 @@ public class GlobalCommentManagement extends UIAction implements ServletRequestA
             }
             
             // loop through IDs of all comments displayed on page
-            List spamIds = Arrays.asList(getBean().getSpamComments());
+            List<String> spamIds = Arrays.asList(getBean().getSpamComments());
             log.debug(spamIds.size()+" comments marked as spam");
             
             String[] ids = Utilities.stringToStringArray(getBean().getIds(),",");
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/ajax/ThemeDataServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/ajax/ThemeDataServlet.java
index 2e2110e..694c736 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/ajax/ThemeDataServlet.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/ajax/ThemeDataServlet.java
@@ -78,8 +78,8 @@ public class ThemeDataServlet extends HttpServlet {
         if (themeId == null) {
             pw.println("[" );
         }
-        for (Iterator it = themes.iterator(); it.hasNext();) {
-            SharedTheme theme = (SharedTheme) it.next();
+        for (Iterator<SharedTheme> it = themes.iterator(); it.hasNext();) {
+            SharedTheme theme = it.next();
             pw.print("    { \"id\" : \"");
             pw.print(theme.getId());
             pw.print("\", ");
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/CreateWeblog.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/CreateWeblog.java
index 35baaff..b19ca50 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/CreateWeblog.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/CreateWeblog.java
@@ -37,6 +37,7 @@ import org.apache.struts2.convention.annotation.AllowedMethods;
 import org.apache.struts2.interceptor.validation.SkipValidation;
 
 import java.util.List;
+import org.apache.roller.weblogger.business.themes.SharedTheme;
 
 
 /**
@@ -45,7 +46,7 @@ import java.util.List;
 // TODO: make this work @AllowedMethods({"execute","save"})
 public class CreateWeblog extends UIAction {
     
-    private static Log log = LogFactory.getLog(CreateWeblog.class);
+    private static final Log log = LogFactory.getLog(CreateWeblog.class);
     private static final String DISABLED_RETURN_CODE = "disabled";
 
     private CreateWeblogBean bean = new CreateWeblogBean();
@@ -192,7 +193,7 @@ public class CreateWeblog extends UIAction {
     }
     
     
-    public List getThemes() {
+    public List<SharedTheme> getThemes() {
         ThemeManager themeMgr = WebloggerFactory.getWeblogger().getThemeManager();
         return themeMgr.getEnabledThemesList();
     }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java
index 72108c1..a12dc18 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java
@@ -396,8 +396,8 @@ public final class EntryEdit extends UIAction {
             }
 
             if (results != null) {
-                for (Iterator mit = results.getMessages(); mit.hasNext();) {
-                    RollerMessage msg = (RollerMessage) mit.next();
+                for (Iterator<RollerMessage> mit = results.getMessages(); mit.hasNext();) {
+                    RollerMessage msg = mit.next();
                     if (msg.getArgs() == null) {
                         addMessage(msg.getKey());
                     } else {
@@ -405,8 +405,8 @@ public final class EntryEdit extends UIAction {
                     }
                 }
 
-                for (Iterator eit = results.getErrors(); eit.hasNext();) {
-                    RollerMessage err = (RollerMessage) eit.next();
+                for (Iterator<RollerMessage> eit = results.getErrors(); eit.hasNext();) {
+                    RollerMessage err = eit.next();
                     if (err.getArgs() == null) {
                         addError(err.getKey());
                     } else {
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java
index 1be3dad..3a90368 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java
@@ -47,7 +47,7 @@ import org.apache.roller.weblogger.ui.struts2.util.UIAction;
 // TODO: make this work @AllowedMethods({"execute","enable","disable","pingNow"})
 public class Pings extends UIAction {
     
-    private static Log log = LogFactory.getLog(Pings.class);
+    private static final Log log = LogFactory.getLog(Pings.class);
     
     // ping target id to work on
     private String pingTargetId = null;
@@ -59,7 +59,7 @@ public class Pings extends UIAction {
     private List<PingTarget> commonPingTargets = Collections.emptyList();
     
     // track the enabled/disabled status for pings
-    private Map pingStatus = Collections.EMPTY_MAP;
+    private Map<String, Boolean> pingStatus = Collections.emptyMap();
     
     
     public Pings() {
@@ -262,11 +262,11 @@ public class Pings extends UIAction {
         this.commonPingTargets = commonPingTargets;
     }
 
-    public Map getPingStatus() {
+    public Map<String, Boolean> getPingStatus() {
         return pingStatus;
     }
 
-    public void setPingStatus(Map pingStatus) {
+    public void setPingStatus(Map<String, Boolean> pingStatus) {
         this.pingStatus = pingStatus;
     }
 }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
index d025e70..b5be30d 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
@@ -241,7 +241,7 @@ public abstract class UIAction extends ActionSupport
         addActionError(getText(errorKey, errorKey, param));
     }
     
-    public void addError(String errorKey, List args) {
+    public void addError(String errorKey, List<?> args) {
         addActionError(getText(errorKey, args));
     }
     
@@ -263,7 +263,7 @@ public abstract class UIAction extends ActionSupport
         addActionMessage(getText(msgKey, msgKey, param));
     }
     
-    public void addMessage(String msgKey, List args) {
+    public void addMessage(String msgKey, List<?> args) {
         addActionMessage(getText(msgKey, args));
     }
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/LRUCache2.java b/app/src/main/java/org/apache/roller/weblogger/util/LRUCache2.java
index 3134bc6..aadc490 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/LRUCache2.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/LRUCache2.java
@@ -162,7 +162,7 @@ public class LRUCache2
         }
 
         @Override
-        protected boolean removeEldestEntry(Map.Entry eldest)
+        protected boolean removeEldestEntry(Map.Entry<Object, CacheEntry> eldest)
         {
             return this.size() > this.maxsize;
         }
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/LinkbackExtractor.java b/app/src/main/java/org/apache/roller/weblogger/util/LinkbackExtractor.java
index 516dc01..d43378e 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/LinkbackExtractor.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/LinkbackExtractor.java
@@ -241,7 +241,7 @@ public class LinkbackExtractor
                                           Tag.H2, Tag.H3, Tag.H4, Tag.H5,
                                           Tag.H6 };
 
-        private List  mList       = Arrays.asList(mDivTags);
+        private List<Tag> mList = Arrays.asList(mDivTags);
 
         private Tag   mCurrentTag = null;
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java b/app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java
index 4c52e70..50475ca 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java
@@ -107,7 +107,7 @@ public class MailUtil {
                 }
             }
 
-            to = (String[])reviewers.toArray(new String[reviewers.size()]);
+            to = reviewers.toArray(new String[reviewers.size()]);
             
             // Figure URL to entry edit page
             String editURL = WebloggerFactory.getWeblogger().getUrlStrategy().getEntryEditURL(entry.getWebsite().getHandle(), entry.getId(), true);
@@ -359,8 +359,8 @@ public class MailUtil {
                 ownermsg.append((isPlainText) ? "\n\n" : "</p>");
                 ownermsg.append((isPlainText) ? "" : "<ul>");
             }
-            for (Iterator it = messages.getMessages(); it.hasNext();) {
-                RollerMessage rollerMessage = (RollerMessage)it.next();
+            for (Iterator<RollerMessage> it = messages.getMessages(); it.hasNext();) {
+                RollerMessage rollerMessage = it.next();
                 ownermsg.append((isPlainText) ? "" : "<li>");
                 ownermsg.append(MessageFormat.format(resources.getString(
                     rollerMessage.getKey()), (Object[])rollerMessage.getArgs()) );
@@ -377,8 +377,8 @@ public class MailUtil {
                 ownermsg.append((isPlainText) ? "\n\n" : "</p>");
                 ownermsg.append((isPlainText) ? "" : "<ul>");
             }
-            for (Iterator it = messages.getErrors(); it.hasNext();) {
-                RollerMessage rollerMessage = (RollerMessage)it.next();
+            for (Iterator<RollerMessage> it = messages.getErrors(); it.hasNext();) {
+                RollerMessage rollerMessage = it.next();
                 ownermsg.append((isPlainText) ? "" : "<li>");
                 ownermsg.append(MessageFormat.format(resources.getString(
                     rollerMessage.getKey()), (Object[])rollerMessage.getArgs()) );
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/PasswordUtility.java b/app/src/main/java/org/apache/roller/weblogger/util/PasswordUtility.java
index 4d567ca..0f17798 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/PasswordUtility.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/PasswordUtility.java
@@ -177,7 +177,7 @@ public class PasswordUtility
             String passphrase = users.getString(2);
             props.put(username, passphrase);
         }
-        Enumeration usernames = props.keys();
+        Enumeration<Object> usernames = props.keys();
         while (usernames.hasMoreElements())
         {
             String username = (String)usernames.nextElement();
@@ -201,7 +201,7 @@ public class PasswordUtility
 
         Properties props = new Properties();
         props.load(new FileInputStream(fileName));
-        Enumeration usernames = props.keys();
+        Enumeration<Object> usernames = props.keys();
         while (usernames.hasMoreElements())
         {
             String username = (String)usernames.nextElement();
diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/EntryCollection.java b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/EntryCollection.java
index 3da086c..e637ffc 100644
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/EntryCollection.java
+++ b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/EntryCollection.java
@@ -339,7 +339,7 @@ public class EntryCollection {
         SyndPerson author = new Person();
         author.setName(         creator.getUserName());
         author.setEmail(        creator.getEmailAddress());
-        atomEntry.setAuthors(   (List<SyndPerson>)Collections.singletonList(author));
+        atomEntry.setAuthors(Collections.singletonList(author));
         
         // Add Atom category for Weblogger category, using category scheme
         List<Category> categories = new ArrayList<>();
diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java
index 9603d77..0cd1994 100644
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java
+++ b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java
@@ -91,7 +91,7 @@ public class MediaCollection {
             // get incoming slug from HTTP header
             String slug = areq.getHeader("Slug");
 
-            Content content = (Content)entry.getContents().get(0); 
+            Content content = entry.getContents().get(0); 
             String contentType = content.getType();
             InputStream is = areq.getInputStream();
             String title = entry.getTitle() != null ? entry.getTitle() : slug;
@@ -312,7 +312,7 @@ public class MediaCollection {
                 }
                 int count = 0;
                 MediaFile[] sortedResources =
-                   (MediaFile[])sortedSet.toArray(new MediaFile[sortedSet.size()]);
+                        sortedSet.toArray(new MediaFile[sortedSet.size()]);
                 List<Entry> atomEntries = new ArrayList<>();
                 for (int i=start; i<(start + max) && i<(sortedResources.length); i++) {
                     Entry entry = createAtomResourceEntry(website, sortedResources[i]);
diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
index 92e9b11..60342c6 100644
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
+++ b/app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java
@@ -136,8 +136,8 @@ public class RollerAtomService extends AtomService {
     private List<String> getAcceptedContentTypeRange() throws WebloggerException {
         List<String> accepts = new ArrayList<>();
         Weblogger roller = WebloggerFactory.getWeblogger();
-        Map config = roller.getPropertiesManager().getProperties();        
-        String allows = ((RuntimeConfigProperty)config.get("uploads.types.allowed")).getValue();
+        Map<String, RuntimeConfigProperty> config = roller.getPropertiesManager().getProperties();        
+        String allows = config.get("uploads.types.allowed").getValue();
         String[] rules = StringUtils.split(StringUtils.deleteWhitespace(allows), ",");
         if (rules != null) {
             for (String rule : rules) {
diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java b/app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java
index a281bcd..6ddb591 100644
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java
+++ b/app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java
@@ -149,8 +149,8 @@ public class TagDataServlet extends HttpServlet {
             pw.println("  \"weblog\": \"" + (!siteWide ? weblog.getHandle() : "") + "\",");
             pw.println("  \"tagcounts\": [" );
             int count = 0;
-            for (Iterator it = tags.iterator(); it.hasNext();) {
-                TagStat stat = (TagStat) it.next();
+            for (Iterator<TagStat> it = tags.iterator(); it.hasNext();) {
+                TagStat stat = it.next();
                 pw.print("    { \"tag\" : \"");
                 pw.print(stat.getName());
                 pw.print("\", ");
diff --git a/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java b/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java
index 7b5d234..dc8ce3f 100644
--- a/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java
+++ b/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/MetaWeblogAPIHandler.java
@@ -113,14 +113,14 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
      * @return
      */
     public boolean editPost(String postid, String userid, String password,
-            Hashtable struct, int publish) throws Exception {
+            Hashtable<String, ?> struct, int publish) throws Exception {
         
         return editPost(postid, userid, password, struct, publish > 0);
     }
     
     
     public boolean editPost(String postid, String userid, String password,
-            Hashtable struct, boolean publish) throws Exception {
+            Hashtable<String, ?> struct, boolean publish) throws Exception {
         
         mLogger.debug("editPost() Called ========[ SUPPORTED ]=====");
         mLogger.debug("     PostId: " + postid);
@@ -133,7 +133,7 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
         
         validate(entry.getWebsite().getHandle(), userid,password);
         
-        Hashtable postcontent = struct;
+        Hashtable<String, ?> postcontent = struct;
         String description = (String)postcontent.get("description");
         String title = (String)postcontent.get("title");
         if (title == null) {
@@ -213,14 +213,14 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
      * @return
      */
     public String newPost(String blogid, String userid, String password,
-            Hashtable struct, int publish) throws Exception {
+            Hashtable<String, ?> struct, int publish) throws Exception {
         
         return newPost(blogid, userid, password, struct, publish > 0);
     }
     
     
     public String newPost(String blogid, String userid, String password,
-            Hashtable struct, boolean publish) throws Exception {
+            Hashtable<String, ?> struct, boolean publish) throws Exception {
         
         mLogger.debug("newPost() Called ===========[ SUPPORTED ]=====");
         mLogger.debug("     BlogId: " + blogid);
@@ -229,7 +229,7 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
         
         Weblog website = validate(blogid, userid, password);
         
-        Hashtable postcontent = struct;
+        Hashtable<String, ?> postcontent = struct;
         String description = (String)postcontent.get("description");
         String title = (String)postcontent.get("title");
         if (StringUtils.isEmpty(title) && StringUtils.isEmpty(description)) {
@@ -355,7 +355,7 @@ public class MetaWeblogAPIHandler extends BloggerAPIHandler {
      * placed in the user's upload diretory.
      */
     public Object newMediaObject(String blogid, String userid, String password,
-            Hashtable struct) throws Exception {
+            Hashtable<String, ?> struct) throws Exception {
         
         mLogger.debug("newMediaObject() Called =[ SUPPORTED ]=====");
         mLogger.debug("     BlogId: " + blogid);
diff --git a/app/src/test/java/org/apache/roller/planet/business/PropertiesTest.java b/app/src/test/java/org/apache/roller/planet/business/PropertiesTest.java
index 2a4217a..7e31305 100644
--- a/app/src/test/java/org/apache/roller/planet/business/PropertiesTest.java
+++ b/app/src/test/java/org/apache/roller/planet/business/PropertiesTest.java
@@ -75,14 +75,14 @@ public class PropertiesTest  {
         assertEquals("testtest", prop.getValue());
         
         // get all properties
-        Map props = mgr.getProperties();
+        Map<String, RuntimeConfigProperty> props = mgr.getProperties();
         assertNotNull(props);
         assertTrue(props.containsKey("site.name"));
         
         // update multiple properties
-        prop = (RuntimeConfigProperty) props.get("site.name");
+        prop = props.get("site.name");
         prop.setValue("foofoo");
-        prop = (RuntimeConfigProperty) props.get("site.description");
+        prop = props.get("site.description");
         prop.setValue("blahblah");
         mgr.saveProperties(props);
         TestUtils.endSession(true);
@@ -90,8 +90,8 @@ public class PropertiesTest  {
         // make sure all properties were updated
         props = mgr.getProperties();
         assertNotNull(props);
-        assertEquals("foofoo", ((RuntimeConfigProperty)props.get("site.name")).getValue());
-        assertEquals("blahblah", ((RuntimeConfigProperty)props.get("site.description")).getValue());
+        assertEquals("foofoo", props.get("site.name").getValue());
+        assertEquals("blahblah", props.get("site.description").getValue());
     }
     
 }
diff --git a/app/src/test/java/org/apache/roller/weblogger/business/FileContentManagerTest.java b/app/src/test/java/org/apache/roller/weblogger/business/FileContentManagerTest.java
index 2cfa44d..1406f01 100644
--- a/app/src/test/java/org/apache/roller/weblogger/business/FileContentManagerTest.java
+++ b/app/src/test/java/org/apache/roller/weblogger/business/FileContentManagerTest.java
@@ -39,7 +39,7 @@ import static org.junit.jupiter.api.Assertions.*;
  */
 public class FileContentManagerTest  {
 
-    private static Log log = LogFactory.getLog(FileContentManagerTest.class);
+    private static final Log log = LogFactory.getLog(FileContentManagerTest.class);
     User testUser = null;
     Weblog testWeblog = null;
 
@@ -54,11 +54,11 @@ public class FileContentManagerTest  {
     @AfterEach
     public void tearDown() throws Exception {
         PropertiesManager pmgr = WebloggerFactory.getWeblogger().getPropertiesManager();
-        Map config = pmgr.getProperties();
-        ((RuntimeConfigProperty) config.get("uploads.dir.maxsize")).setValue("30000");
-        ((RuntimeConfigProperty) config.get("uploads.types.forbid")).setValue("");
-        ((RuntimeConfigProperty) config.get("uploads.types.allowed")).setValue("");
-        ((RuntimeConfigProperty) config.get("uploads.enabled")).setValue("true");
+        Map<String, RuntimeConfigProperty> config = pmgr.getProperties();
+        config.get("uploads.dir.maxsize").setValue("30000");
+        config.get("uploads.types.forbid").setValue("");
+        config.get("uploads.types.allowed").setValue("");
+        config.get("uploads.enabled").setValue("true");
         pmgr.saveProperties(config);
         TestUtils.endSession(true);
     }
@@ -79,10 +79,10 @@ public class FileContentManagerTest  {
 
         // update roller properties to prepare for test
         PropertiesManager pmgr = WebloggerFactory.getWeblogger().getPropertiesManager();
-        Map config = pmgr.getProperties();
-        ((RuntimeConfigProperty) config.get("uploads.enabled")).setValue("true");
-        ((RuntimeConfigProperty) config.get("uploads.types.allowed")).setValue("opml");
-        ((RuntimeConfigProperty) config.get("uploads.dir.maxsize")).setValue("1.00");
+        Map<String, RuntimeConfigProperty> config = pmgr.getProperties();
+        config.get("uploads.enabled").setValue("true");
+        config.get("uploads.types.allowed").setValue("opml");
+        config.get("uploads.dir.maxsize").setValue("1.00");
         pmgr.saveProperties(config);
         TestUtils.endSession(true);
 
@@ -141,16 +141,16 @@ public class FileContentManagerTest  {
 
         FileContentManager fmgr = WebloggerFactory.getWeblogger().getFileContentManager();
         PropertiesManager pmgr = WebloggerFactory.getWeblogger().getPropertiesManager();
-        Map config = pmgr.getProperties();
-        ((RuntimeConfigProperty) config.get("uploads.dir.maxsize")).setValue("1.00");
-        ((RuntimeConfigProperty) config.get("uploads.types.forbid")).setValue("");
-        ((RuntimeConfigProperty) config.get("uploads.types.allowed")).setValue("");
-        ((RuntimeConfigProperty) config.get("uploads.enabled")).setValue("true");
+        Map<String, RuntimeConfigProperty> config = pmgr.getProperties();
+        config.get("uploads.dir.maxsize").setValue("1.00");
+        config.get("uploads.types.forbid").setValue("");
+        config.get("uploads.types.allowed").setValue("");
+        config.get("uploads.enabled").setValue("true");
         pmgr.saveProperties(config);
         TestUtils.endSession(true);
 
         config = pmgr.getProperties();
-        ((RuntimeConfigProperty) config.get("uploads.dir.maxsize")).setValue("1.00");
+        config.get("uploads.dir.maxsize").setValue("1.00");
         pmgr.saveProperties(config);
         TestUtils.endSession(true);
 
@@ -159,7 +159,7 @@ public class FileContentManagerTest  {
         assertFalse(canSave);
 
         config = pmgr.getProperties();
-        ((RuntimeConfigProperty) config.get("uploads.types.forbid")).setValue("gif");
+        config.get("uploads.types.forbid").setValue("gif");
         pmgr.saveProperties(config);
         TestUtils.endSession(true);
 
@@ -170,7 +170,7 @@ public class FileContentManagerTest  {
 
 
         config = pmgr.getProperties();
-        ((RuntimeConfigProperty) config.get("uploads.enabled")).setValue("false");
+        config.get("uploads.enabled").setValue("false");
         pmgr.saveProperties(config);
         TestUtils.endSession(true);
 
diff --git a/app/src/test/java/org/apache/roller/weblogger/business/PropertiesTest.java b/app/src/test/java/org/apache/roller/weblogger/business/PropertiesTest.java
index 0ed3b8c..d35a9fc 100644
--- a/app/src/test/java/org/apache/roller/weblogger/business/PropertiesTest.java
+++ b/app/src/test/java/org/apache/roller/weblogger/business/PropertiesTest.java
@@ -73,14 +73,14 @@ public class PropertiesTest  {
         assertEquals("testtest", prop.getValue());
         
         // get all properties
-        Map props = mgr.getProperties();
+        Map<String, RuntimeConfigProperty> props = mgr.getProperties();
         assertNotNull(props);
         assertTrue(props.containsKey("site.name"));
         
         // update multiple properties
-        prop = (RuntimeConfigProperty) props.get("site.name");
+        prop = props.get("site.name");
         prop.setValue("foofoo");
-        prop = (RuntimeConfigProperty) props.get("site.description");
+        prop = props.get("site.description");
         prop.setValue("blahblah");
         mgr.saveProperties(props);
         TestUtils.endSession(true);
@@ -88,8 +88,8 @@ public class PropertiesTest  {
         // make sure all properties were updated
         props = mgr.getProperties();
         assertNotNull(props);
-        assertEquals("foofoo", ((RuntimeConfigProperty)props.get("site.name")).getValue());
-        assertEquals("blahblah", ((RuntimeConfigProperty)props.get("site.description")).getValue());
+        assertEquals("foofoo", props.get("site.name").getValue());
+        assertEquals("blahblah", props.get("site.description").getValue());
     }
     
 }

[roller] 06/19: ui package: compiler warning fixes combined with collection improvements.

Posted by mb...@apache.org.
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 6577ba24fd3c968ea80da04daee272af87b07f7c
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Fri Jul 9 05:08:50 2021 +0200

    ui package: compiler warning fixes combined with collection improvements.
---
 .../weblogger/ui/core/plugins/UIPluginManager.java |  2 +-
 .../ui/core/plugins/UIPluginManagerImpl.java       | 19 ++++----
 .../ui/rendering/servlets/CommentServlet.java      | 35 +++++----------
 .../ui/rendering/servlets/PreviewServlet.java      |  6 +--
 .../ui/rendering/servlets/SearchServlet.java       |  4 +-
 .../ui/rendering/util/WeblogFeedRequest.java       |  6 +--
 .../ui/rendering/util/WeblogPageRequest.java       | 15 ++++---
 .../weblogger/ui/struts2/editor/MediaFileAdd.java  |  9 ++--
 .../weblogger/ui/struts2/editor/WeblogConfig.java  | 33 +++++++-------
 .../roller/weblogger/ui/struts2/util/UIAction.java | 52 ++++++++++------------
 .../roller/weblogger/ui/struts2/util/UIUtils.java  | 27 +++++------
 11 files changed, 93 insertions(+), 115 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManager.java b/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManager.java
index 7aecef6..234506b 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManager.java
@@ -31,7 +31,7 @@ public interface UIPluginManager {
      *
      * @return List of all configure WeblogEntryEditor objects.
      */
-    List getWeblogEntryEditors();
+    List<WeblogEntryEditor> getWeblogEntryEditors();
     
     
     /**
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 cc5f6cd..51f96c3 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
@@ -33,13 +33,13 @@ import org.apache.commons.lang3.StringUtils;
  */
 public final class UIPluginManagerImpl implements UIPluginManager {
     
-    private static Log log = LogFactory.getLog(UIPluginManagerImpl.class);
+    private static final Log log = LogFactory.getLog(UIPluginManagerImpl.class);
     
     // singleton instance
-    private static UIPluginManagerImpl instance = null;
+    private static final UIPluginManagerImpl instance;
     
     // list of configured WeblogEntryEditor classes
-    private Map editors = new LinkedHashMap();
+    private final Map<String, WeblogEntryEditor> editors = new LinkedHashMap<>();
     
     // the default WeblogEntryEditor
     WeblogEntryEditor defaultEditor = null;
@@ -63,19 +63,19 @@ public final class UIPluginManagerImpl implements UIPluginManager {
     
     
     @Override
-    public List getWeblogEntryEditors() {
+    public List<WeblogEntryEditor> getWeblogEntryEditors() {
         // TODO: sort list of returned editors
-        return new ArrayList(this.editors.values());
+        return new ArrayList<>(this.editors.values());
     }
     
     
     @Override
     public WeblogEntryEditor getWeblogEntryEditor(String id) {
         
-        WeblogEntryEditor editor = null;
+        WeblogEntryEditor editor;
         
         // see if this editor is configured
-        editor = (id == null) ? null : (WeblogEntryEditor) this.editors.get(id);
+        editor = (id == null) ? null : this.editors.get(id);
         if(editor == null) {
             editor = this.defaultEditor;
         }
@@ -124,7 +124,7 @@ public final class UIPluginManagerImpl implements UIPluginManager {
         // make sure the default editor is defined
         String defaultEditorId = WebloggerConfig.getProperty("plugins.defaultEditor");
         if(defaultEditorId != null) {
-            this.defaultEditor = (WeblogEntryEditor) this.editors.get(defaultEditorId);
+            this.defaultEditor = this.editors.get(defaultEditorId);
         }
         
         if(this.defaultEditor == null) {
@@ -132,8 +132,7 @@ public final class UIPluginManagerImpl implements UIPluginManager {
             // guess we'll just have to pick one for them
             log.warn("Default editor was not properly configured, picking one at random instead.");
             
-            Object editor = this.editors.values().iterator().next();
-            this.defaultEditor = (WeblogEntryEditor) editor;
+            this.defaultEditor = this.editors.values().iterator().next();
         }
     }
     
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 8be89ad..fbb6263 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
@@ -109,39 +109,28 @@ public class CommentServlet extends HttpServlet {
 
             int threshold = 25;
             try {
-                threshold = Integer.parseInt(WebloggerConfig
-                        .getProperty("comment.throttle.threshold"));
-            } catch (Exception e) {
-                log.warn(
-                        "bad input for config property comment.throttle.threshold",
-                        e);
+                threshold = Integer.parseInt(WebloggerConfig.getProperty("comment.throttle.threshold"));
+            } catch (NumberFormatException e) {
+                log.warn("bad input for config property comment.throttle.threshold", e);
             }
 
             int interval = RollerConstants.MIN_IN_MS;
             try {
-                interval = Integer.parseInt(WebloggerConfig
-                        .getProperty("comment.throttle.interval"));
+                interval = Integer.parseInt(WebloggerConfig.getProperty("comment.throttle.interval"));
                 // convert from seconds to milliseconds
                 interval = interval * RollerConstants.SEC_IN_MS;
-            } catch (Exception e) {
-                log.warn(
-                        "bad input for config property comment.throttle.interval",
-                        e);
+            } catch (NumberFormatException e) {
+                log.warn("bad input for config property comment.throttle.interval", e);
             }
 
             int maxEntries = 250;
             try {
-                maxEntries = Integer.parseInt(WebloggerConfig
-                        .getProperty("comment.throttle.maxentries"));
-            } catch (Exception e) {
-                log.warn(
-                        "bad input for config property comment.throttle.maxentries",
-                        e);
+                maxEntries = Integer.parseInt(WebloggerConfig.getProperty("comment.throttle.maxentries"));
+            } catch (NumberFormatException e) {
+                log.warn("bad input for config property comment.throttle.maxentries", e);
             }
 
-            commentThrottle = new GenericThrottle(threshold, interval,
-                    maxEntries);
-
+            commentThrottle = new GenericThrottle(threshold, interval, maxEntries);
             log.info("Comment Throttling ENABLED");
         } else {
             log.info("Comment Throttling DISABLED");
@@ -346,13 +335,13 @@ public class CommentServlet extends HttpServlet {
 
                 // add specific error messages if they exist
                 if (messages.getErrorCount() > 0) {
-                    Iterator errors = messages.getErrors();
+                    Iterator<RollerMessage> errors = messages.getErrors();
                     RollerMessage errorKey;
 
                     StringBuilder buf = new StringBuilder();
                     buf.append("<ul>");
                     while (errors.hasNext()) {
-                        errorKey = (RollerMessage) errors.next();
+                        errorKey = errors.next();
 
                         buf.append("<li>");
                         if (errorKey.getArgs() != null) {
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java
index 54dca83..c24c642 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java
@@ -59,7 +59,7 @@ import org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository;
  */
 public class PreviewServlet extends HttpServlet {
     
-    private static Log log = LogFactory.getLog(PreviewServlet.class);
+    private static final Log log = LogFactory.getLog(PreviewServlet.class);
     
     
     /**
@@ -208,7 +208,7 @@ public class PreviewServlet extends HttpServlet {
         }
         
         // looks like we need to render content
-        Map model = new HashMap();
+        Map<String, Object> model = new HashMap<>();
         try {
             PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(
                     this, request, response,"", false, RollerConstants.EIGHT_KB_IN_BYTES, true);
@@ -217,7 +217,7 @@ public class PreviewServlet extends HttpServlet {
             request.setAttribute("pageRequest", previewRequest);
             
             // populate the rendering model
-            Map initData = new HashMap();
+            Map<String, Object> initData = new HashMap<>();
             initData.put("parsedRequest", previewRequest);
             initData.put("pageContext", pageContext);
             
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java
index 729d3bb..8c49557 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java
@@ -174,14 +174,14 @@ public class SearchServlet extends HttpServlet {
         response.setContentType("text/html; charset=utf-8");
 
         // looks like we need to render content
-        Map model = new HashMap();
+        Map<String, Object> model = new HashMap<>();
         try {
             PageContext pageContext = JspFactory.getDefaultFactory()
                     .getPageContext(this, request, response, "", false, RollerConstants.EIGHT_KB_IN_BYTES,
                             true);
 
             // populate the rendering model
-            Map initData = new HashMap();
+            Map<String, Object> initData = new HashMap<>();
             initData.put("request", request);
             initData.put("pageContext", pageContext);
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java
index 5a10855..2c0832f 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java
@@ -52,7 +52,7 @@ public class WeblogFeedRequest extends WeblogRequest {
     private String type = null;
     private String format = null;
     private String weblogCategoryName = null;
-    private List   tags = null;
+    private List<String> tags = null;
     private int    page = 0;
     private boolean excerpts = false;
     private String term = null;
@@ -190,11 +190,11 @@ public class WeblogFeedRequest extends WeblogRequest {
         this.weblogCategoryName = weblogCategory;
     }
     
-    public List getTags() {
+    public List<String> getTags() {
       return tags;
     }
 
-    public void setTags(List tags) {
+    public void setTags(List<String> tags) {
       this.tags = tags;
     }
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java
index f2a7125..4e7dc7c 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java
@@ -18,6 +18,7 @@
 
 package org.apache.roller.weblogger.ui.rendering.util;
 
+import java.util.Collections;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -57,9 +58,9 @@ public class WeblogPageRequest extends WeblogRequest {
     private String weblogPageName = null;
     private String weblogCategoryName = null;
     private String weblogDate = null;
-    private List tags = null;
+    private List<String> tags = null;
     private int pageNum = 0;
-    private Map customParams = new HashMap();
+    private Map<String, String[]> customParams = Collections.emptyMap();
 
     // heavyweight attributes
     private WeblogEntry weblogEntry = null;
@@ -247,7 +248,7 @@ public class WeblogPageRequest extends WeblogRequest {
 
         // build customParams Map, we remove built-in params because we only
         // want this map to represent params defined by the template author
-        customParams = new HashMap(request.getParameterMap());
+        customParams = new HashMap<>(request.getParameterMap());
         customParams.remove("entry");
         customParams.remove("anchor");
         customParams.remove("date");
@@ -324,19 +325,19 @@ public class WeblogPageRequest extends WeblogRequest {
         this.pageNum = pageNum;
     }
 
-    public Map getCustomParams() {
+    public Map<String, String[]> getCustomParams() {
         return customParams;
     }
 
-    public void setCustomParams(Map customParams) {
+    public void setCustomParams(Map<String, String[]> customParams) {
         this.customParams = customParams;
     }
 
-    public List getTags() {
+    public List<String> getTags() {
         return tags;
     }
 
-    public void setTags(List tags) {
+    public void setTags(List<String> tags) {
         this.tags = tags;
     }
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java
index e48c80a..881dad7 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java
@@ -36,7 +36,6 @@ import org.apache.roller.weblogger.pojos.MediaFileDirectory;
 import org.apache.roller.weblogger.util.RollerMessages;
 import org.apache.roller.weblogger.util.RollerMessages.RollerMessage;
 import org.apache.roller.weblogger.util.Utilities;
-import org.apache.struts2.convention.annotation.AllowedMethods;
 import org.apache.struts2.interceptor.validation.SkipValidation;
 
 /**
@@ -46,7 +45,7 @@ import org.apache.struts2.interceptor.validation.SkipValidation;
 // TODO: make this work @AllowedMethods({"execute","save"})
 public class MediaFileAdd extends MediaFileBase {
 
-    private static Log log = LogFactory.getLog(MediaFileAdd.class);
+    private static final Log log = LogFactory.getLog(MediaFileAdd.class);
     private MediaFileBean bean = new MediaFileBean();
     private MediaFileDirectory directory;
 
@@ -136,7 +135,7 @@ public class MediaFileAdd extends MediaFileBase {
             MediaFileManager manager = WebloggerFactory.getWeblogger().getMediaFileManager();
 
             RollerMessages errors = new RollerMessages();
-            List<MediaFile> uploaded = new ArrayList();
+            List<MediaFile> uploaded = new ArrayList<>();
             File[] uploads = getUploadedFiles();
 
             if (uploads != null && uploads.length > 0) {
@@ -209,8 +208,8 @@ public class MediaFileAdd extends MediaFileBase {
                     }
                 }
 
-                for (Iterator it = errors.getErrors(); it.hasNext();) {
-                    RollerMessage msg = (RollerMessage) it.next();
+                for (Iterator<RollerMessage> it = errors.getErrors(); it.hasNext();) {
+                    RollerMessage msg = it.next();
                     addError(msg.getKey(), Arrays.asList(msg.getArgs()));
                 }
 
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java
index 8e25a65..912ffe1 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java
@@ -19,10 +19,10 @@
 package org.apache.roller.weblogger.ui.struts2.editor;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Pattern;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.business.plugins.PluginManager;
@@ -31,8 +31,10 @@ import org.apache.roller.weblogger.business.WeblogEntryManager;
 import org.apache.roller.weblogger.business.plugins.entry.WeblogEntryPlugin;
 import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
 import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.WeblogCategory;
 import org.apache.roller.weblogger.ui.core.RollerContext;
 import org.apache.roller.weblogger.ui.core.plugins.UIPluginManager;
+import org.apache.roller.weblogger.ui.core.plugins.WeblogEntryEditor;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
 import org.apache.roller.weblogger.util.Bannedwordslist;
 import org.apache.roller.weblogger.util.cache.CacheManager;
@@ -46,19 +48,19 @@ import org.apache.struts2.interceptor.validation.SkipValidation;
 // TODO: make this work @AllowedMethods({"execute","save"})
 public class WeblogConfig extends UIAction {
     
-    private static Log log = LogFactory.getLog(WeblogConfig.class);
+    private static final Log log = LogFactory.getLog(WeblogConfig.class);
     
     // bean for managing submitted data
     private WeblogConfigBean bean = new WeblogConfigBean();
     
     // categories list
-    private List weblogCategories = Collections.emptyList();
+    private List<WeblogCategory> weblogCategories = Collections.emptyList();
     
     // list of available editors
-    private List editorsList = Collections.emptyList();
+    private List<WeblogEntryEditor> editorsList = Collections.emptyList();
     
     // list of available plugins
-    private List pluginsList = Collections.emptyList();
+    private List<WeblogEntryPlugin> pluginsList = Collections.emptyList();
     
     
     public WeblogConfig() {
@@ -78,7 +80,7 @@ public class WeblogConfig extends UIAction {
             
             // set the Editor Page list
             UIPluginManager pmgr = RollerContext.getUIPluginManager();
-            List editorList = pmgr.getWeblogEntryEditors();
+            List<WeblogEntryEditor> editorList = pmgr.getWeblogEntryEditors();
             if(editorList != null) {
                 setEditorsList(editorList);
             }
@@ -186,13 +188,12 @@ public class WeblogConfig extends UIAction {
         }
         
         // check bannedwordslist
-        List regexRules = new ArrayList();
-        List stringRules = new ArrayList();
+        List<Pattern> regexRules = new ArrayList<>();
+        List<String> stringRules = new ArrayList<>();
         try {
             // just for testing/counting, this does not persist rules in any way
             Bannedwordslist.populateSpamRules(getBean().getBannedwordslist(), stringRules, regexRules, null);
-            addMessage("websiteSettings.acceptedBannedwordslist",
-                    Arrays.asList(new String[] {""+stringRules.size(), ""+regexRules.size()}));
+            addMessage("websiteSettings.acceptedBannedwordslist", List.of(""+stringRules.size(), ""+regexRules.size()));
         } catch (Exception e) {
             addError("websiteSettings.error.processingBannedwordslist", e.getMessage());
         }
@@ -207,27 +208,27 @@ public class WeblogConfig extends UIAction {
         this.bean = bean;
     }
 
-    public List getWeblogCategories() {
+    public List<WeblogCategory> getWeblogCategories() {
         return weblogCategories;
     }
 
-    public void setWeblogCategories(List weblogCategories) {
+    public void setWeblogCategories(List<WeblogCategory> weblogCategories) {
         this.weblogCategories = weblogCategories;
     }
 
-    public List getEditorsList() {
+    public List<WeblogEntryEditor> getEditorsList() {
         return editorsList;
     }
     
-    public void setEditorsList(List editorsList) {
+    public void setEditorsList(List<WeblogEntryEditor> editorsList) {
         this.editorsList = editorsList;
     }
 
-    public List getPluginsList() {
+    public List<WeblogEntryPlugin> getPluginsList() {
         return pluginsList;
     }
 
-    public void setPluginsList(List pluginsList) {
+    public void setPluginsList(List<WeblogEntryPlugin> pluginsList) {
         this.pluginsList = pluginsList;
     }
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
index fd5d7c1..d025e70 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
@@ -35,9 +35,13 @@ import org.apache.struts2.interceptor.RequestAware;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 /**
  * Extends the Struts2 ActionSupport class to add in support for handling an
@@ -203,20 +207,12 @@ public abstract class UIAction extends ActionSupport
 
     @Override
     public String getText(String aTextName, List<?> args) {
-        List<Object> cleanedArgs = new ArrayList<>(args.size());
-        for (Object el : args) {
-            cleanedArgs.add(el instanceof String ? cleanTextArg((String) el) : el);
-        }
-        return super.getText(cleanTextKey(aTextName), cleanedArgs);
+        return super.getText(cleanTextKey(aTextName), cleanArgs(args));
     }
 
     @Override
     public String getText(String key, String[] args) {
-        String[] cleanedArgs = new String[args.length];
-        for (int i = 0; i < args.length; ++i) {
-            cleanedArgs[i] = cleanTextArg(args[i]);
-        }
-        return super.getText(cleanTextKey(key), cleanedArgs);
+        return super.getText(cleanTextKey(key), cleanArgs(Arrays.asList(args)));
     }
 
     @Override
@@ -338,8 +334,7 @@ public abstract class UIAction extends ActionSupport
     
     
     public String getShortDateFormat() {
-        DateFormat sdf = DateFormat.getDateInstance(
-                DateFormat.SHORT, getLocale());
+        DateFormat sdf = DateFormat.getDateInstance(DateFormat.SHORT, getLocale());
         if (sdf instanceof SimpleDateFormat) {
             return ((SimpleDateFormat)sdf).toPattern();
         }
@@ -347,39 +342,30 @@ public abstract class UIAction extends ActionSupport
     }
     
     public String getMediumDateFormat() {
-        DateFormat sdf = DateFormat.getDateInstance(
-                DateFormat.MEDIUM, getLocale());
+        DateFormat sdf = DateFormat.getDateInstance(DateFormat.MEDIUM, getLocale());
         if (sdf instanceof SimpleDateFormat) {
             return ((SimpleDateFormat)sdf).toPattern();
         }
         return "MMM dd, yyyy";
     }
     
-    public List getLocalesList() {
+    public List<Locale> getLocalesList() {
         return UIUtils.getLocales();
     }
     
-    public List getTimeZonesList() {
+    public List<String> getTimeZonesList() {
         return UIUtils.getTimeZones();
     }
     
-    public List getHoursList() {
-        List ret = new ArrayList();
-        for (int i=0; i<24; i++) {
-            ret.add(i);
-        }
-        return ret;
+    public List<Integer> getHoursList() {
+        return IntStream.range(0, 24).boxed().collect(Collectors.toList());
     }
     
-    public List getMinutesList() {
-        List ret = new ArrayList();
-        for (int i=0; i<60; i++) {
-            ret.add(i);
-        }
-        return ret;
+    public List<Integer> getMinutesList() {
+        return IntStream.range(0, 60).boxed().collect(Collectors.toList());
     }
     
-    public List getSecondsList() {
+    public List<Integer> getSecondsList() {
         return getMinutesList();
     }
     
@@ -417,4 +403,12 @@ public abstract class UIAction extends ActionSupport
         }
         return StringEscapeUtils.escapeHtml4(s);
     }
+
+    private List<?> cleanArgs(List<?> args) {
+        List<Object> cleanedArgs = new ArrayList<>(args.size());
+        for (Object arg : args) {
+            cleanedArgs.add(arg instanceof String ? cleanTextArg((String) arg) : arg);
+        }
+        return cleanedArgs;
+    }
 }
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIUtils.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIUtils.java
index 1171838..713d4b1 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIUtils.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIUtils.java
@@ -31,8 +31,8 @@ import java.util.TimeZone;
  */
 public final class UIUtils {
     
-    private static final List LOCALES;
-    private static final List TIME_ZONES;
+    private static final List<Locale> LOCALES;
+    private static final List<String> TIME_ZONES;
     
     
     // load up the locales and time zones lists
@@ -48,11 +48,11 @@ public final class UIUtils {
     
     
     public static String getLocale(String localeName) {
-        Locale locale = new Locale(localeName,localeName);        
+        Locale locale = new Locale(localeName, localeName); // TODO: is this a bug?
         return locale.toString();        
     }
     
-    public static List getLocales() {
+    public static List<Locale> getLocales() {
         return LOCALES;
     }
     
@@ -60,25 +60,20 @@ public final class UIUtils {
         return TimeZone.getTimeZone(timeZoneName).getID();                
     }
     
-    public static List getTimeZones() {
+    public static List<String> getTimeZones() {
         return TIME_ZONES;
     }
     
     
     // special comparator for sorting LOCALES
-    private static final class LocaleComparator implements Comparator {
+    private static final class LocaleComparator implements Comparator<Locale> {
         @Override
-        public int compare(Object obj1, Object obj2) {
-            if (obj1 instanceof Locale && obj2 instanceof Locale) {
-                Locale locale1 = (Locale)obj1;
-                Locale locale2 = (Locale)obj2;
-                int compName = locale1.getDisplayName().compareTo(locale2.getDisplayName());
-                if (compName == 0) {
-                    return locale1.toString().compareTo(locale2.toString());
-                }
-                return compName;
+        public int compare(Locale locale1, Locale locale2) {
+            int compName = locale1.getDisplayName().compareTo(locale2.getDisplayName());
+            if (compName == 0) {
+                return locale1.toString().compareTo(locale2.toString());
             }
-            return 0;
+            return compName;
         }
     }