You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2020/07/25 21:33:21 UTC

[roller] branch banned-words created (now 96b226f)

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

snoopdave pushed a change to branch banned-words
in repository https://gitbox.apache.org/repos/asf/roller.git.


      at 96b226f  Remove all references to term "blacklist" with more descriptive "banned-words list" terminology.

This branch includes the following new commits:

     new 96b226f  Remove all references to term "blacklist" with more descriptive "banned-words list" terminology.

The 1 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.



[roller] 01/01: Remove all references to term "blacklist" with more descriptive "banned-words list" terminology.

Posted by sn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

snoopdave pushed a commit to branch banned-words
in repository https://gitbox.apache.org/repos/asf/roller.git

commit 96b226f0bfab8bf593d9f760ae262222cf1196fd
Author: David M. Johnson <sn...@apache.org>
AuthorDate: Sat Jul 25 17:32:24 2020 -0400

    Remove all references to term "blacklist" with more descriptive "banned-words list" terminology.
---
 .../org/apache/roller/weblogger/TestUtils.java     |   2 +-
 .../org/apache/roller/weblogger/pojos/Weblog.java  |  12 +-
 .../weblogger/pojos/wrapper/WeblogWrapper.java     |   4 +-
 ...r.java => BannedwordslistCommentValidator.java} |  12 +-
 .../ui/rendering/servlets/CommentServlet.java      |   2 +-
 .../ui/rendering/servlets/PageServlet.java         |   6 +-
 .../weblogger/ui/struts2/editor/WeblogConfig.java  |  10 +-
 .../ui/struts2/editor/WeblogConfigBean.java        |  14 +-
 .../util/{Blacklist.java => Bannedwordslist.java}  | 160 ++++++++++-----------
 ...istChecker.java => BannedwordslistChecker.java} |  54 +++----
 .../main/resources/ApplicationResources.properties |  10 +-
 .../resources/ApplicationResources_de.properties   |   8 +-
 .../resources/ApplicationResources_es.properties   |   4 +-
 .../resources/ApplicationResources_fr.properties   |   8 +-
 .../resources/ApplicationResources_ja.properties   |   8 +-
 .../resources/ApplicationResources_ko.properties   |   8 +-
 .../ApplicationResources_zh_CN.properties          |   4 +-
 .../{blacklist.txt => bannedwordslist.txt}         |   2 +-
 .../roller/weblogger/config/roller.properties      |  14 +-
 .../roller/weblogger/config/runtimeConfigDefs.xml  |   2 +-
 .../apache/roller/weblogger/pojos/Weblog.orm.xml   |   4 +-
 app/src/main/resources/sql/createdb.vm             |   2 +-
 .../webapp/WEB-INF/jsps/editor/WeblogConfig.jsp    |   2 +-
 .../roller/weblogger/business/WeblogTest.java      |   2 +-
 .../ui/rendering/util/CommentValidatorTest.java    |   4 +-
 ...BlacklistTest.java => BannedwordslistTest.java} |  42 +++---
 app/src/test/resources/blacklist.txt               |   4 +-
 docs/roller-user-guide.adoc                        |  24 ++--
 28 files changed, 211 insertions(+), 217 deletions(-)

diff --git a/app/src/main/java/org/apache/roller/weblogger/TestUtils.java b/app/src/main/java/org/apache/roller/weblogger/TestUtils.java
index 125d3f2..94b7735 100644
--- a/app/src/main/java/org/apache/roller/weblogger/TestUtils.java
+++ b/app/src/main/java/org/apache/roller/weblogger/TestUtils.java
@@ -249,7 +249,7 @@ public final class TestUtils {
         testWeblog.setHandle(handle);
         testWeblog.setEmailAddress("testweblog@dev.null");
         testWeblog.setEditorPage("editor-text.jsp");
-        testWeblog.setBlacklist("");
+        testWeblog.setBannedwordslist("");
         testWeblog.setEditorTheme("basic");
         testWeblog.setLocale("en_US");
         testWeblog.setTimeZone("America/Los_Angeles");
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 f8e2915..41c8b8d 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
@@ -62,7 +62,7 @@ public class Weblog implements Serializable {
     private String  tagline          = null;
     private Boolean enableBloggerApi = Boolean.TRUE;
     private String  editorPage       = null;
-    private String  blacklist        = null;
+    private String  bannedwordslist  = null;
     private Boolean allowComments    = Boolean.TRUE;
     private Boolean emailComments    = Boolean.FALSE;
     private String  emailAddress     = null;
@@ -252,12 +252,12 @@ public class Weblog implements Serializable {
         this.editorPage = editorPage;
     }
     
-    public String getBlacklist() {
-        return this.blacklist;
+    public String getBannedwordslist() {
+        return this.bannedwordslist;
     }
     
-    public void setBlacklist(String blacklist) {
-        this.blacklist = blacklist;
+    public void setBannedwordslist(String bannedwordslist) {
+        this.bannedwordslist = bannedwordslist;
     }
     
     public Boolean getAllowComments() {
@@ -381,7 +381,7 @@ public class Weblog implements Serializable {
         this.setEnableBloggerApi(other.getEnableBloggerApi());
         this.setBloggerCategory(other.getBloggerCategory());
         this.setEditorPage(other.getEditorPage());
-        this.setBlacklist(other.getBlacklist());
+        this.setBannedwordslist(other.getBannedwordslist());
         this.setAllowComments(other.getAllowComments());
         this.setEmailComments(other.getEmailComments());
         this.setEmailAddress(other.getEmailAddress());
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 32c3fc2..0b74d62 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
@@ -128,8 +128,8 @@ public final class WeblogWrapper {
         return this.pojo.getEditorPage();
     }
 
-    public String getBlacklist() {
-        return this.pojo.getBlacklist();
+    public String getBannedwordslist() {
+        return this.pojo.getBannedwordslist();
     }
     
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/BlacklistCommentValidator.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/BannedwordslistCommentValidator.java
similarity index 77%
rename from app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/BlacklistCommentValidator.java
rename to app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/BannedwordslistCommentValidator.java
index 9f39332..0413b1b 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/BlacklistCommentValidator.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/BannedwordslistCommentValidator.java
@@ -23,21 +23,21 @@ import java.util.ResourceBundle;
 import org.apache.roller.util.RollerConstants;
 import org.apache.roller.weblogger.pojos.WeblogEntryComment;
 import org.apache.roller.weblogger.util.RollerMessages;
-import org.apache.roller.weblogger.util.BlacklistChecker;
+import org.apache.roller.weblogger.util.BannedwordslistChecker;
 
 /**
- * Validates comment if comment does not contain blacklisted words.
+ * Validates comment if comment does not contain bannedwordslisted words.
  */
-public class BlacklistCommentValidator implements CommentValidator {
+public class BannedwordslistCommentValidator implements CommentValidator {
     private ResourceBundle bundle = ResourceBundle.getBundle("ApplicationResources");       
 
     public String getName() {
-        return bundle.getString("comment.validator.blacklistName");
+        return bundle.getString("comment.validator.bannedwordslistName");
     }
 
     public int validate(WeblogEntryComment comment, RollerMessages messages) {
-        if (BlacklistChecker.checkComment(comment)) {
-            messages.addError("comment.validator.blacklistMessage");
+        if (BannedwordslistChecker.checkComment(comment)) {
+            messages.addError("comment.validator.bannedwordslistMessage");
             return 0;
         }
         return RollerConstants.PERCENT_100;
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 88b0e15..d8bb6bd 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
@@ -65,7 +65,7 @@ import org.apache.roller.weblogger.util.cache.CacheManager;
  * We validate each incoming comment based on various comment settings and if
  * all checks are passed then the comment is saved.
  * 
- * Incoming comments are tested against the MT Blacklist. If they are found to
+ * Incoming comments are tested against the MT Bannedwordslist. If they are found to
  * be spam, then they are marked as spam and hidden from view.
  * 
  * If email notification is turned on, each new comment will result in an email
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java
index bffffb9..14b3ee2 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java
@@ -46,7 +46,7 @@ import org.apache.roller.weblogger.ui.rendering.util.WeblogEntryCommentForm;
 import org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest;
 import org.apache.roller.weblogger.ui.rendering.util.cache.SiteWideCache;
 import org.apache.roller.weblogger.ui.rendering.util.cache.WeblogPageCache;
-import org.apache.roller.weblogger.util.BlacklistChecker;
+import org.apache.roller.weblogger.util.BannedwordslistChecker;
 import org.apache.roller.weblogger.util.I18nMessages;
 import org.apache.roller.weblogger.util.cache.CachedContent;
 
@@ -101,7 +101,7 @@ public class PageServlet extends HttpServlet {
 
         // see if built-in referrer spam check is enabled
         this.processReferrers = WebloggerConfig
-                .getBooleanProperty("site.blacklist.enable.referrers");
+                .getBooleanProperty("site.bannedwordslist.enable.referrers");
 
         log.info("Referrer spam check enabled = " + this.processReferrers);
 
@@ -658,7 +658,7 @@ public class PageServlet extends HttpServlet {
                     String requestSite = requestUrl.substring(0, lastSlash);
 
                     if (!referrerUrl.matches(requestSite + ".*\\.rol.*") &&
-                            BlacklistChecker.checkReferrer(pageRequest.getWeblog(), referrerUrl)) {
+                            BannedwordslistChecker.checkReferrer(pageRequest.getWeblog(), referrerUrl)) {
                         return true;
                     }
                 }
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 77688f1..4957a1c 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
@@ -34,7 +34,7 @@ import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.ui.core.RollerContext;
 import org.apache.roller.weblogger.ui.core.plugins.UIPluginManager;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
-import org.apache.roller.weblogger.util.Blacklist;
+import org.apache.roller.weblogger.util.Bannedwordslist;
 import org.apache.roller.weblogger.util.cache.CacheManager;
 import org.apache.struts2.convention.annotation.AllowedMethods;
 import org.apache.struts2.interceptor.validation.SkipValidation;
@@ -185,16 +185,16 @@ public class WeblogConfig extends UIAction {
             addError("websiteSettings.error.entryDisplayCount");
         }
         
-        // check blacklist
+        // check bannedwordslist
         List regexRules = new ArrayList();
         List stringRules = new ArrayList();
         try {
             // just for testing/counting, this does not persist rules in any way
-            Blacklist.populateSpamRules(getBean().getBlacklist(), stringRules, regexRules, null);
-            addMessage("websiteSettings.acceptedBlacklist",
+            Bannedwordslist.populateSpamRules(getBean().getBannedwordslist(), stringRules, regexRules, null);
+            addMessage("websiteSettings.acceptedBannedwordslist",
                     Arrays.asList(new String[] {""+stringRules.size(), ""+regexRules.size()}));
         } catch (Exception e) {
-            addError("websiteSettings.error.processingBlacklist", e.getMessage());
+            addError("websiteSettings.error.processingBannedwordslist", e.getMessage());
         }
     }
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java
index 4afa7a7..8e3200b 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java
@@ -32,7 +32,7 @@ public class WeblogConfigBean {
     private String tagline = null;
     private boolean enableBloggerApi = false;
     private String editorPage = null;
-    private String blacklist = null;
+    private String bannedwordslist = null;
     private boolean allowComments = false;
     private boolean defaultAllowComments = false;
     private String defaultCommentDays = "0";
@@ -97,12 +97,12 @@ public class WeblogConfigBean {
         this.editorPage = editorPage;
     }
     
-    public String getBlacklist() {
-        return this.blacklist;
+    public String getBannedwordslist() {
+        return this.bannedwordslist;
     }
     
-    public void setBlacklist( String blacklist ) {
-        this.blacklist = blacklist;
+    public void setBannedwordslist( String bannedwordslist ) {
+        this.bannedwordslist = bannedwordslist;
     }
     
     public boolean getAllowComments() {
@@ -263,7 +263,7 @@ public class WeblogConfigBean {
         this.tagline = dataHolder.getTagline();
         this.enableBloggerApi = dataHolder.getEnableBloggerApi();
         this.editorPage = dataHolder.getEditorPage();
-        this.blacklist = dataHolder.getBlacklist();
+        this.bannedwordslist = dataHolder.getBannedwordslist();
         this.allowComments = dataHolder.getAllowComments();
         this.defaultAllowComments = dataHolder.getDefaultAllowComments();
         this.defaultCommentDays = ""+dataHolder.getDefaultCommentDays();
@@ -295,7 +295,7 @@ public class WeblogConfigBean {
         dataHolder.setTagline(this.tagline);
         dataHolder.setEnableBloggerApi(this.enableBloggerApi);
         dataHolder.setEditorPage(this.editorPage);
-        dataHolder.setBlacklist(this.blacklist);
+        dataHolder.setBannedwordslist(this.bannedwordslist);
         dataHolder.setAllowComments(this.allowComments);
         dataHolder.setDefaultAllowComments(this.defaultAllowComments);
         dataHolder.setModerateComments(this.moderateComments);
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/Blacklist.java b/app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java
similarity index 71%
rename from app/src/main/java/org/apache/roller/weblogger/util/Blacklist.java
rename to app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java
index bcc4430..ab6c736 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/Blacklist.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java
@@ -46,76 +46,76 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.roller.util.DateUtil;
 
 /**
- * Loads MT-Blacklist style blacklist from disk and allows callers to test
- * strings against the blacklist and (optionally) addition blacklists.
+ * Loads MT-Bannedwordslist style bannedwordslist from disk and allows callers to test
+ * strings against the bannedwordslist and (optionally) addition bannedwordslists.
  * <br />
- * First looks for blacklist.txt in uploads directory, than in classpath 
- * as /blacklist.txt. Download from web feature disabled.
+ * First looks for bannedwordslist.txt in uploads directory, than in classpath
+ * as /bannedwordslist.txt. Download from web feature disabled.
  * <br />
- * Blacklist is formatted one entry per line. 
+ * Bannedwordslist is formatted one entry per line.
  * Any line that begins with # is considered to be a comment. 
  * Any line that begins with ( is considered to be a regex expression. 
  * <br />
- * For more information on the (discontinued) MT-Blacklist service:
- * http://www.jayallen.org/projects/mt-blacklist. 
+ * For more information on the (discontinued) MT-Bannedwordslist service:
+ * http://www.jayallen.org/projects/mt-bannedwordslist.
  *
  * @author Lance Lavandowska
  * @author Allen Gilliland
  */
-public final class Blacklist {
+public final class Bannedwordslist {
     
-    private static Log mLogger = LogFactory.getLog(Blacklist.class);
+    private static Log mLogger = LogFactory.getLog(Bannedwordslist.class);
     
-    private static Blacklist blacklist;
-    private static final String BLACKLIST_FILE = "blacklist.txt";
+    private static Bannedwordslist bannedwordslist;
+    private static final String BANNEDWORDSLIST_FILE = "bannedwordslist.txt";
     private static final String LAST_UPDATE_STR = "Last update:";
 
-    /** We no longer have a blacklist update URL */
-    private static final String BLACKLIST_URL = null;
+    /** We no longer have a bannedwordslist update URL */
+    private static final String BANNEDWORDSLIST_URL = null;
 
     private Date lastModified = null;
-    private List<String> blacklistStr = new LinkedList<String>();
-    private List<Pattern> blacklistRegex = new LinkedList<Pattern>();
+    private List<String> bannedwordslistStr = new LinkedList<String>();
+    private List<Pattern> bannedwordslistRegex = new LinkedList<Pattern>();
     
     // setup our singleton at class loading time
     static {
-        mLogger.info("Initializing MT Blacklist");
-        blacklist = new Blacklist();
-        blacklist.loadBlacklistFromFile(null);
+        mLogger.info("Initializing MT Bannedwordslist");
+        bannedwordslist = new Bannedwordslist();
+        bannedwordslist.loadBannedwordslistFromFile(null);
     }
     
     /** Hide constructor */
-    private Blacklist() {
+    private Bannedwordslist() {
     }
       
     /** Singleton factory method. */
-    public static Blacklist getBlacklist() {
-        return blacklist;
+    public static Bannedwordslist getBannedwordslist() {
+        return bannedwordslist;
     }
     
     /** Non-Static update method. */
     public void update() {
-        if (BLACKLIST_URL != null) {
-            boolean blacklist_updated = this.downloadBlacklist();
-            if (blacklist_updated) {
-                this.loadBlacklistFromFile(null);
+        if (BANNEDWORDSLIST_URL != null) {
+            boolean bannedwordslist_updated = this.downloadBannedwordslist();
+            if (bannedwordslist_updated) {
+                this.loadBannedwordslistFromFile(null);
             }
         }
     }
         
-    /** Download the MT blacklist from the web to our uploads directory. */
-    private boolean downloadBlacklist() {
+    /** Download the MT bannedwordslist from the web to our uploads directory. */
+    private boolean downloadBannedwordslist() {
         
-        boolean blacklistUpdated = false;
+        boolean bannedwordslistUpdated = false;
         try {
-            mLogger.debug("Attempting to download MT blacklist");
+            mLogger.debug("Attempting to download MT bannedwordslist");
             
-            URL url = new URL(BLACKLIST_URL);
+            URL url = new URL(BANNEDWORDSLIST_URL);
             HttpURLConnection connection = 
                     (HttpURLConnection) url.openConnection();
             
             // after spending way too much time debugging i've discovered
-            // that the blacklist server is selective based on the User-Agent
+            // that the bannedwordslist server is selective based on the User-Agent
             // header.  without this header set i always get a 403 response :(
             connection.setRequestProperty("User-Agent", "Mozilla/5.0");
             
@@ -130,7 +130,7 @@ public final class Blacklist {
             
             // did the connection return NotModified? If so, no need to parse
             if (responseCode == HttpURLConnection.HTTP_NOT_MODIFIED) {
-                mLogger.debug("MT blacklist site says we are current");
+                mLogger.debug("MT bannedwordslist site says we are current");
                 return false;
             }
             
@@ -147,14 +147,14 @@ public final class Blacklist {
                         this.lastModified.getTime()));
                 mLogger.debug("MT last modified = " + lastModifiedLong);
                 
-                // save the new blacklist
+                // save the new bannedwordslist
                 InputStream instream = connection.getInputStream();
                 
                 String uploadDir = WebloggerConfig.getProperty("uploads.dir");
-                String path = uploadDir + File.separator + BLACKLIST_FILE;
+                String path = uploadDir + File.separator + BANNEDWORDSLIST_FILE;
                 FileOutputStream outstream = new FileOutputStream(path);
                 
-                mLogger.debug("writing updated MT blacklist to "+path);
+                mLogger.debug("writing updated MT bannedwordslist to "+path);
                 
                 // read from url and write to file
                 byte[] buf = new byte[RollerConstants.FOUR_KB_IN_BYTES];
@@ -166,64 +166,64 @@ public final class Blacklist {
                 outstream.close();
                 instream.close();
                 
-                blacklistUpdated = true;
+                bannedwordslistUpdated = true;
                 
-                mLogger.debug("MT blacklist download completed.");
+                mLogger.debug("MT bannedwordslist download completed.");
                 
             } else {
-                mLogger.debug("blacklist *NOT* saved, assuming we are current");
+                mLogger.debug("bannedwordslist *NOT* saved, assuming we are current");
             }
             
         } catch (Exception e) {
-            mLogger.error("error downloading blacklist", e);
+            mLogger.error("error downloading bannedwordslist", e);
         }
         
-        return blacklistUpdated;
+        return bannedwordslistUpdated;
     }
         
     /**
-     * Load the MT blacklist from the file system.
-     * We look for a previously downloaded version of the blacklist first and
-     * if it's not found then we load the default blacklist packed with Roller.
+     * Load the MT bannedwordslist from the file system.
+     * We look for a previously downloaded version of the bannedwordslist first and
+     * if it's not found then we load the default bannedwordslist packed with Roller.
      * Only public for purposes of unit testing.
      */
-    public void loadBlacklistFromFile(String blacklistFilePath) {
+    public void loadBannedwordslistFromFile(String bannedwordslistFilePath) {
         
         InputStream txtStream;
         try {
-            String path = blacklistFilePath;
+            String path = bannedwordslistFilePath;
             if (path == null) {
                 String uploadDir = WebloggerConfig.getProperty("uploads.dir");
-                path = uploadDir + File.separator + BLACKLIST_FILE;
+                path = uploadDir + File.separator + BANNEDWORDSLIST_FILE;
             }
-            File blacklistFile = new File(path);
+            File bannedwordslistFile = new File(path);
             
             // check our lastModified date to see if we need to re-read the file
             if (this.lastModified != null &&
-                    this.lastModified.getTime() >= blacklistFile.lastModified()) {               
-                mLogger.debug("Blacklist is current, no need to load again");
+                    this.lastModified.getTime() >= bannedwordslistFile.lastModified()) {
+                mLogger.debug("Bannedwordslist is current, no need to load again");
                 return;
             } else {
-                this.lastModified = new Date(blacklistFile.lastModified());
+                this.lastModified = new Date(bannedwordslistFile.lastModified());
             }           
-            txtStream = new FileInputStream(blacklistFile);           
-            mLogger.info("Loading blacklist from "+path);
+            txtStream = new FileInputStream(bannedwordslistFile);
+            mLogger.info("Loading bannedwordslist from "+path);
             
         } catch (Exception e) {
             // Roller keeps a copy in the webapp just in case
-            txtStream = getClass().getResourceAsStream("/blacklist.txt");           
+            txtStream = getClass().getResourceAsStream("/bannedwordslist.txt");
             mLogger.warn(
-                "Couldn't find downloaded blacklist, loaded blacklist.txt from classpath instead");
+                "Couldn't find downloaded bannedwordslist, loaded bannedwordslist.txt from classpath instead");
         }
         
         if (txtStream != null) {
             readFromStream(txtStream, false);
         } else {
-            mLogger.error("Couldn't load a blacklist file from anywhere, "
-                        + "this means blacklist checking is disabled for now.");
+            mLogger.error("Couldn't load a bannedwordslist file from anywhere, "
+                        + "this means bannedwordslist checking is disabled for now.");
         }
-        mLogger.info("Number of blacklist string rules: "+blacklistStr.size());
-        mLogger.info("Number of blacklist regex rules: "+blacklistRegex.size());
+        mLogger.info("Number of bannedwordslist string rules: "+bannedwordslistStr.size());
+        mLogger.info("Number of bannedwordslist regex rules: "+bannedwordslistRegex.size());
     }
        
     /**
@@ -280,9 +280,9 @@ public final class Blacklist {
         // regex rule?
         if (rule.indexOf( '(' ) > -1) {
             // pre-compile patterns since they will be frequently used
-            blacklistRegex.add(Pattern.compile(rule));
+            bannedwordslistRegex.add(Pattern.compile(rule));
         } else if (StringUtils.isNotEmpty(rule)) {
-            blacklistStr.add(rule);
+            bannedwordslistStr.add(rule);
         }
     }
         
@@ -302,52 +302,52 @@ public final class Blacklist {
     }
        
     /** 
-     * Does the String argument match any of the rules in the built-in blacklist? 
+     * Does the String argument match any of the rules in the built-in bannedwordslist?
      */
-    public boolean isBlacklisted(String str) {
-        return isBlacklisted(str, null, null);
+    public boolean isBannedwordslisted(String str) {
+        return isBannedwordslisted(str, null, null);
     }
     
     /** 
-     * Does the String argument match any of the rules in the built-in blacklist
-     * plus additional blacklists provided by caller?
-     * @param str             String to be checked against blacklist
+     * Does the String argument match any of the rules in the built-in bannedwordslist
+     * plus additional bannedwordslists provided by caller?
+     * @param str             String to be checked against bannedwordslist
      * @param moreStringRules Additional string rules to consider
      * @param moreRegexRules  Additional regex rules to consider 
      */
-    public boolean isBlacklisted(
+    public boolean isBannedwordslisted(
          String str, List<String> moreStringRules, List<Pattern> moreRegexRules) {
         if (str == null || StringUtils.isEmpty(str)) {
             return false;
         }
 
-        // First iterate over blacklist, doing indexOf.
-        // Then iterate over blacklistRegex and test.
+        // First iterate over bannedwordslist, doing indexOf.
+        // Then iterate over bannedwordslistRegex and test.
         // As soon as there is a hit in either case return true
         
         // test plain String.indexOf
-        List<String> stringRules = blacklistStr;
+        List<String> stringRules = bannedwordslistStr;
         if (moreStringRules != null && moreStringRules.size() > 0) {
             stringRules = new ArrayList<String>();
             stringRules.addAll(moreStringRules);
-            stringRules.addAll(blacklistStr);
+            stringRules.addAll(bannedwordslistStr);
         }
         if (testStringRules(str, stringRules)) {
             return true;
         }
         
-        // test regex blacklisted
-        List<Pattern> regexRules = blacklistRegex;
+        // test regex bannedwordslisted
+        List<Pattern> regexRules = bannedwordslistRegex;
         if (moreRegexRules != null && moreRegexRules.size() > 0) {
             regexRules = new ArrayList<Pattern>();
             regexRules.addAll(moreRegexRules);
-            regexRules.addAll(blacklistRegex);
+            regexRules.addAll(bannedwordslistRegex);
         }
         return testRegExRules(str, regexRules);
     }      
 
     /** 
-     * Test string only against rules provided by caller, NOT against built-in blacklist.
+     * Test string only against rules provided by caller, NOT against built-in bannedwordslist.
      * @param str             String to be checked against rules
      * @param stringRules String rules to consider
      * @param regexRules  Regex rules to consider
@@ -431,10 +431,10 @@ public final class Blacklist {
         return matches;
     }   
     
-    /** Utility method to populate lists based a blacklist in string form */
+    /** Utility method to populate lists based a bannedwordslist in string form */
     public static void populateSpamRules(
-        String blacklist, List<String> stringRules, List<Pattern> regexRules, String addendum) {
-        String weblogWords = blacklist;
+        String bannedwordslist, List<String> stringRules, List<Pattern> regexRules, String addendum) {
+        String weblogWords = bannedwordslist;
         weblogWords = (weblogWords == null) ? "" : weblogWords;
         String siteWords = (addendum != null) ? addendum : "";
         StringTokenizer toker = new StringTokenizer(siteWords + "\n" + weblogWords, "\n");
@@ -453,8 +453,8 @@ public final class Blacklist {
         
     /** Return pretty list of String and RegEx rules. */
     public String toString() {
-        String val = "blacklist " + blacklistStr;
-        val += "\nRegex blacklist " + blacklistRegex;
+        String val = "bannedwordslist " + bannedwordslistStr;
+        val += "\nRegex bannedwordslist " + bannedwordslistRegex;
         return val;
     }
 }
diff --git a/app/src/main/java/org/apache/roller/weblogger/util/BlacklistChecker.java b/app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java
similarity index 53%
rename from app/src/main/java/org/apache/roller/weblogger/util/BlacklistChecker.java
rename to app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java
index ef223cc..cabc111 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/BlacklistChecker.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java
@@ -31,71 +31,71 @@ import org.apache.roller.weblogger.pojos.Weblog;
  * @author Lance Lavandowska
  * @author Dave Johnson
  */
-public final class BlacklistChecker {
+public final class BannedwordslistChecker {
 
-    private BlacklistChecker() {
+    private BannedwordslistChecker() {
         // never instantiable
         throw new AssertionError();
     }
 
     /**
-     * Test comment, applying all blacklists, if configured 
-     * @return True if comment matches blacklist term
+     * Test comment, applying all bannedwordslists, if configured
+     * @return True if comment matches bannedwordslist term
      */
     public static boolean checkComment(WeblogEntryComment comment) {
-        if (WebloggerConfig.getBooleanProperty("site.blacklist.enable.comments")) {
+        if (WebloggerConfig.getBooleanProperty("site.bannedwordslist.enable.comments")) {
             return testComment(comment);
         }
         return false;
     }
     
     /** 
-     * Test trackback comment, applying all blacklists, if configured 
-     * @return True if comment matches blacklist term
+     * Test trackback comment, applying all bannedwordslists, if configured
+     * @return True if comment matches bannedwordslist term
      */
     public static boolean checkTrackback(WeblogEntryComment comment) {
-        if (WebloggerConfig.getBooleanProperty("site.blacklist.enable.trackbacks")) {
+        if (WebloggerConfig.getBooleanProperty("site.bannedwordslist.enable.trackbacks")) {
             return testComment(comment);
         }
         return false;
     }
 
     /** 
-     * Test referrer URL, applying blacklist and website blacklist only if configured 
-     * @return True if comment matches blacklist term
+     * Test referrer URL, applying bannedwordslist and website bannedwordslist only if configured
+     * @return True if comment matches bannedwordslist term
      */
     public static boolean checkReferrer(Weblog website, String referrerURL) {
-        if (WebloggerConfig.getBooleanProperty("site.blacklist.enable.referrers")) {
+        if (WebloggerConfig.getBooleanProperty("site.bannedwordslist.enable.referrers")) {
             List<String> stringRules = new ArrayList<String>();
             List<Pattern> regexRules = new ArrayList<Pattern>();
-            Blacklist.populateSpamRules(
-                website.getBlacklist(), stringRules, regexRules, null);
-            if (WebloggerRuntimeConfig.getProperty("spam.blacklist") != null) {
-                Blacklist.populateSpamRules(
-                    WebloggerRuntimeConfig.getProperty("spam.blacklist"), stringRules, regexRules, null);
+            Bannedwordslist.populateSpamRules(
+                website.getBannedwordslist(), stringRules, regexRules, null);
+            if (WebloggerRuntimeConfig.getProperty("spam.bannedwordslist") != null) {
+                Bannedwordslist.populateSpamRules(
+                    WebloggerRuntimeConfig.getProperty("spam.bannedwordslist"), stringRules, regexRules, null);
             }
-            return Blacklist.matchesRulesOnly(referrerURL, stringRules, regexRules);
+            return Bannedwordslist.matchesRulesOnly(referrerURL, stringRules, regexRules);
         }
         return false;
     }
 
     /** 
-     * Test comment against built in blacklist, site blacklist and website blacklist 
-     * @return True if comment matches blacklist term
+     * Test comment against built in bannedwordslist, site bannedwordslist and website bannedwordslist
+     * @return True if comment matches bannedwordslist term
      */
     private static boolean testComment(WeblogEntryComment c) {
         boolean ret = false;
         List<String> stringRules = new ArrayList<String>();
         List<Pattern> regexRules = new ArrayList<Pattern>();
         Weblog website = c.getWeblogEntry().getWebsite();
-        Blacklist.populateSpamRules(
-            website.getBlacklist(), stringRules, regexRules, 
-            WebloggerRuntimeConfig.getProperty("spam.blacklist"));
-        Blacklist blacklist = Blacklist.getBlacklist();
-        if (   blacklist.isBlacklisted(c.getUrl(),     stringRules, regexRules)
-            || blacklist.isBlacklisted(c.getEmail(),   stringRules, regexRules)
-            || blacklist.isBlacklisted(c.getName(),    stringRules, regexRules)
-            || blacklist.isBlacklisted(c.getContent(), stringRules, regexRules)) {
+        Bannedwordslist.populateSpamRules(
+            website.getBannedwordslist(), stringRules, regexRules,
+            WebloggerRuntimeConfig.getProperty("spam.bannedwordslist"));
+        Bannedwordslist bannedwordslist = Bannedwordslist.getBannedwordslist();
+        if (   bannedwordslist.isBannedwordslisted(c.getUrl(),     stringRules, regexRules)
+            || bannedwordslist.isBannedwordslisted(c.getEmail(),   stringRules, regexRules)
+            || bannedwordslist.isBannedwordslisted(c.getName(),    stringRules, regexRules)
+            || bannedwordslist.isBannedwordslisted(c.getContent(), stringRules, regexRules)) {
             ret = true;
         }
         return ret;
diff --git a/app/src/main/resources/ApplicationResources.properties b/app/src/main/resources/ApplicationResources.properties
index 0c315a0..fd5b18d 100644
--- a/app/src/main/resources/ApplicationResources.properties
+++ b/app/src/main/resources/ApplicationResources.properties
@@ -221,8 +221,8 @@ comment.validator.excessLinksMessage=Comment has more than {0} links
 comment.validator.excessSizeName=Excess Size Comment Validator
 comment.validator.excessSizeMessage=Comment has more than {0} characters
 
-comment.validator.blacklistName=Blacklist Comment Validator
-comment.validator.blacklistMessage=Comment contains blacklisted/ignored words
+comment.validator.bannedwordslistName=Banned Words Comment Validator
+comment.validator.bannedwordslistMessage=Comment contains banned/ignored words
 
 comment.validator.trackbackLinkbackName=Trackback Linkback Comment Validator
 comment.validator.trackbackLinkbackMessage=Trackback from site/page that does not link to your weblog entry
@@ -1754,9 +1754,9 @@ websiteSettings.formatting=Formatting
 
 websiteSettings.spamPrevention=Spam Prevention
 websiteSettings.ignoreUrls=List of words and regex expressions listed one per \
-line to be added to the blacklist used to check comments, trackbacks and referrers.
-websiteSettings.acceptedBlacklist=Accepted {0} string and {1} regex blacklist rules
-websiteSettings.error.processingBlacklist=Error processing blacklist: {0}
+line to be added to the banned words list used to check comments, trackbacks and referrers.
+websiteSettings.acceptedBannedwordslist=Accepted {0} string and {1} regex banned-words list rules
+websiteSettings.error.processingBannedwordslist=Error processing banned-words list: {0}
 
 # --- web analytics
 
diff --git a/app/src/main/resources/ApplicationResources_de.properties b/app/src/main/resources/ApplicationResources_de.properties
index a4f150e..360c1e9 100644
--- a/app/src/main/resources/ApplicationResources_de.properties
+++ b/app/src/main/resources/ApplicationResources_de.properties
@@ -171,8 +171,8 @@ categoryForm.image=Bild
 # ---------------------------------------------------------- CategoryForm.jsp
 comment.validator.akismetMessage=Der Akismet Dienst (akismet.com) h\u00E4lt den Kommentar f\u00FCr Spam
 comment.validator.akismetName=Akismet Kommentarpr\u00FCfung
-comment.validator.blacklistMessage=Der Kommentar enth\u00E4lt gesperrte/ignorierte Worte
-comment.validator.blacklistName=Sperrlisten Kommentarpr\u00FCfung
+comment.validator.bannedwordslistMessage=Der Kommentar enth\u00E4lt gesperrte/ignorierte Worte
+comment.validator.bannedwordslistName=Sperrlisten Kommentarpr\u00FCfung
 comment.validator.excessLinksMessage=Der Kommentar enth\u00E4lt mehr als {0} Links
 # -------------------------------------------------------- comment validators
 comment.validator.excessLinksName=Linkanzahl Kommentarpr\u00FCfung
@@ -871,7 +871,7 @@ websiteRemove.websiteId=Weblog-ID
 websiteRemove.websiteName=Weblogname
 websiteRemove.youSure=Sind Sie sicher, dass Sie den Weblog [{0}] l\u00F6schen wollen?
 websiteSettings.about=\u00DCber Ihren Blog
-websiteSettings.acceptedBlacklist={0} String und {2} Regex Blacklist Regeln akzeptiert
+websiteSettings.acceptedBannedwordslist={0} String und {2} Regex Bannedwordslist Regeln akzeptiert
 websiteSettings.active=Weblog ist aktiv (und soll in Blogverzeichnissen enthalten sein)
 websiteSettings.allowComments=Kommentare sind erlaubt in Ihrem Weblog?
 websiteSettings.applyCommentDefaults=Kommentarstandards f\u00FCr existierende Eintr\u00E4ge anwenden (nur dies Mal)?
@@ -891,7 +891,7 @@ websiteSettings.enableBloggerApi=Blogger API einschlaten f\u00FCr Ihren Weblog?
 websiteSettings.enableMultiLang=Ich ver\u00F6ffentliche meinen Weblog in verschiedenen Sprachen
 websiteSettings.entryDisplayCount=Zahl der anzuzeigenden Eintr\u00E4ge in meinem Weblog
 websiteSettings.error.entryDisplayCount=Der eingegebene Wert f\u00FCr "Zahl der anzuzeigenden Eintr\u00E4ge in meinem Weblog" ist zu hoch.
-websiteSettings.error.processingBlacklist=Fehler bei der Verarbeitung der Blacklist: {0}
+websiteSettings.error.processingBannedwordslist=Fehler bei der Verarbeitung der Bannedwordslist: {0}
 websiteSettings.formatting=Formatierung
 websiteSettings.generalSettings=Generelle Einstellungen
 websiteSettings.icon=Icon
diff --git a/app/src/main/resources/ApplicationResources_es.properties b/app/src/main/resources/ApplicationResources_es.properties
index 7799536..b8dcbb0 100644
--- a/app/src/main/resources/ApplicationResources_es.properties
+++ b/app/src/main/resources/ApplicationResources_es.properties
@@ -534,8 +534,8 @@ websiteSettings.commentSettings=Comentarios
 websiteSettings.button.update=Configuraci\u00F3n de actualizaci\u00F3n del weblog
 websiteSettings.button.remove=Eliminar weblog
 websiteSettings.savedChanges=Cambios guardados en las configuraci\u00F3n del weblog
-websiteSettings.acceptedBlacklist=Cadena aceptada {0} y expresi\u00F3n regular {1} de las reglas de la lista negra
-websiteSettings.error.processingBlacklist=Error procesando la lista negra\: {0}
+websiteSettings.acceptedBannedwordslist=Cadena aceptada {0} y expresi\u00F3n regular {1} de las reglas de la lista negra
+websiteSettings.error.processingBannedwordslist=Error procesando la lista negra\: {0}
 websiteSettings.removeWebsiteHeading=\u00BFEliminar weblog?
 websiteSettings.removeWebsite=Es usted el \u00FAltimo colaborador de este weblog, \u00BFdesea eliminarlo?
 websiteSettings.removeWebsiteWarning=ALERTA\: eliminar un weblog significa eliminarlo todo\: todas las entradas, marcadores, comentarios y configuraci\u00F3n. La eliminaci\u00F3n de un weblog es IRREVERSIBLE.
diff --git a/app/src/main/resources/ApplicationResources_fr.properties b/app/src/main/resources/ApplicationResources_fr.properties
index 5332039..124fd32 100644
--- a/app/src/main/resources/ApplicationResources_fr.properties
+++ b/app/src/main/resources/ApplicationResources_fr.properties
@@ -152,8 +152,8 @@ comment.validator.excessLinksName=Validation du nombre de liens
 comment.validator.excessLinksMessage=Ce commentaire a plus de {0} liens
 comment.validator.excessSizeName=Validation de la taille du commentaire
 comment.validator.excessSizeMessage=Ce commentaire contient plus de {0} caractères
-comment.validator.blacklistName=Validation de la liste noire
-comment.validator.blacklistMessage=Ce commentaire contient certains mots figurant sur la liste noire.
+comment.validator.bannedwordslistName=Validation de la liste noire
+comment.validator.bannedwordslistMessage=Ce commentaire contient certains mots figurant sur la liste noire.
 
 #FIXME
 comment.validator.trackbackLinkbackName=Trackback Linkback Comment Validator
@@ -1119,8 +1119,8 @@ websiteSettings.ignoreUrls=Liste de mots ou expressions régulières à ajouter
 à la liste noire utilisée pour vérifier les commentaires, trackbacks et réferrants. \
 Veuillez ajouter une seule expression ou mot par ligne.
 
-websiteSettings.acceptedBlacklist={0} mots ou phrases et {1} expression(s) régulière(s) ajouté(s) à la liste noire.
-websiteSettings.error.processingBlacklist=Une erreur est survenue durant la création de la liste noire : {0}
+websiteSettings.acceptedBannedwordslist={0} mots ou phrases et {1} expression(s) régulière(s) ajouté(s) à la liste noire.
+websiteSettings.error.processingBannedwordslist=Une erreur est survenue durant la création de la liste noire : {0}
 
 # --- Buttons
 
diff --git a/app/src/main/resources/ApplicationResources_ja.properties b/app/src/main/resources/ApplicationResources_ja.properties
index 5a210c2..8802be0 100644
--- a/app/src/main/resources/ApplicationResources_ja.properties
+++ b/app/src/main/resources/ApplicationResources_ja.properties
@@ -851,7 +851,7 @@ websiteSettings.formatting=\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8
 
 websiteSettings.spamPrevention=\u30B9\u30D1\u30E0\u906E\u65AD
 websiteSettings.ignoreUrls=\u3053\u3053\u306B\u4E00\u884C\u305A\u3064\u30EA\u30B9\u30C8\u3055\u308C\u305F\u6587\u5B57\u5217\u3068\u6B63\u898F\u8868\u73FE\u306F\u3001\u30B3\u30E1\u30F3\u30C8\u3001\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u304A\u3088\u3073\u30EA\u30D5\u30A1\u30E9\u3092\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u969B\u306B\u4F7F\u7528\u3055\u308C\u308B\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002
-websiteSettings.acceptedBlacklist={0}\u500B\u306E\u6587\u5B57\u5217\u3068{1}\u30D1\u30BF\u30FC\u30F3\u306E\u6B63\u898F\u8868\u73FE\u306E\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u30EB\u30FC\u30EB\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+websiteSettings.acceptedBannedwordslist={0}\u500B\u306E\u6587\u5B57\u5217\u3068{1}\u30D1\u30BF\u30FC\u30F3\u306E\u6B63\u898F\u8868\u73FE\u306E\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u30EB\u30FC\u30EB\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u3059\u3002
 
 # --- Buttons
 
@@ -939,10 +939,10 @@ installer.unknownError=\u4E0D\u660E\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3
 commentManagement.confirmBulkDelete=\u9078\u629E\u3057\u305F\u9805\u76EE{0}\u500B\u3092\u3059\u3079\u3066\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F
 installer.bannerTitleRight=\u81EA\u52D5\u30A4\u30F3\u30B9\u30C8\u30FC\u30E9
 pageForm.useAutoContentType=\u81EA\u52D5\u7684\u306BContent-Type\u3092\u30BB\u30C3\u30C8
-comment.validator.blacklistName=\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u30FB\u30B3\u30E1\u30F3\u30C8\u30FB\u30D0\u30EA\u30C7\u30FC\u30BF
+comment.validator.bannedwordslistName=\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u30FB\u30B3\u30E1\u30F3\u30C8\u30FB\u30D0\u30EA\u30C7\u30FC\u30BF
 installer.cannotConnectToDatabase=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093
 userAdmin.cantChangeOwnRole=\u6A29\u9650\u306E\u5909\u66F4\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
-comment.validator.blacklistMessage=\u30B3\u30E1\u30F3\u30C8\u306B\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u304BNG\u30EF\u30FC\u30C9\u306B\u767B\u9332\u3055\u308C\u305F\u5358\u8A9E\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
+comment.validator.bannedwordslistMessage=\u30B3\u30E1\u30F3\u30C8\u306B\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u304BNG\u30EF\u30FC\u30C9\u306B\u767B\u9332\u3055\u308C\u305F\u5358\u8A9E\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
 comment.validator.excessSizeMessage=\u30B3\u30E1\u30F3\u30C8\u304C{0}\u6587\u5B57\u3092\u8D85\u3048\u3066\u3044\u307E\u3059
 comment.validator.excessLinksMessage=\u30B3\u30E1\u30F3\u30C8\u306B{0}\u500B\u4EE5\u4E0A\u306E\u30EA\u30F3\u30AF\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
 Entry.error.textNull=\u672C\u6587\u306F\u5FC5\u9808\u9805\u76EE\u3067\u3059
@@ -1356,7 +1356,7 @@ configForm.allowUserWeblogCreation=\u30E6\u30FC\u30B6\u306B\u65B0\u3057\u3044\u3
 oauthKeys.consumerKey=\u30B3\u30F3\u30B7\u30E5\u30FC\u30DE\u30FC\u30FB\u30AD\u30FC
 categoryForm.requiredFields={0} \u306F\u5FC5\u9808\u9805\u76EE\u3067\u3059
 mediaFileEdit.updateFileContents=\u30D5\u30A1\u30A4\u30EB\u306E\u5185\u5BB9\u3092\u66F4\u65B0\u3059\u308B
-websiteSettings.error.processingBlacklist=\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u306E\u51E6\u7406\u30A8\u30E9\u30FC\: {0}
+websiteSettings.error.processingBannedwordslist=\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u306E\u51E6\u7406\u30A8\u30E9\u30FC\: {0}
 mediaFileView.ge=>\=
 weblogEdit.mediaCastUrlMalformed=\u30A8\u30F3\u30AF\u30ED\u30FC\u30B8\u30E3URL\u304C\u4E0D\u6B63\u3067\u3059\u3002
 stylesheetEdit.revert.success=\u30B9\u30BF\u30A4\u30EB\u30B7\u30FC\u30C8\u306F\u6B63\u5E38\u306B\u5FA9\u5143\u3055\u308C\u307E\u3057\u305F\u3002
diff --git a/app/src/main/resources/ApplicationResources_ko.properties b/app/src/main/resources/ApplicationResources_ko.properties
index cc8144a..0de377c 100644
--- a/app/src/main/resources/ApplicationResources_ko.properties
+++ b/app/src/main/resources/ApplicationResources_ko.properties
@@ -169,8 +169,8 @@ comment.validator.excessLinksName=\uc758\uacac \uc720\ud6a8\uc131 \uac80\uc0ac:
 comment.validator.excessLinksMessage=\uc758\uacac\uc774 {0}\uac1c \uc774\uc0c1\uc758 \ub9c1\ud06c\ub4e4\uc744 \ud3ec\ud568\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.
 comment.validator.excessSizeName=\uc758\uacac \uc720\ud6a8\uc131 \uac80\uc0ac: \uae00\uc790 \uc218 \ucd08\uacfcExcess Size Comment Validator
 comment.validator.excessSizeMessage=\uc758\uacac\uc774 {0}\uac1c \uc774\uc0c1\uc758 \uae00\uc790\ub97c \ud3ec\ud568\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.
-comment.validator.blacklistName=\uc758\uacac \uc720\ud6a8\uc131 \uac80\uc0ac: \ube14\ub799\ub9ac\uc2a4\ud2b8
-comment.validator.blacklistMessage=\uc758\uacac\uc774 \ube14\ub799\ub9ac\uc2a4\ud2b8\uc5d0 \ud3ec\ud568\ub41c \ub2e8\uc5b4\ub4e4\uc744 \ud3ec\ud568\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.
+comment.validator.bannedwordslistName=\uc758\uacac \uc720\ud6a8\uc131 \uac80\uc0ac: \ube14\ub799\ub9ac\uc2a4\ud2b8
+comment.validator.bannedwordslistMessage=\uc758\uacac\uc774 \ube14\ub799\ub9ac\uc2a4\ud2b8\uc5d0 \ud3ec\ud568\ub41c \ub2e8\uc5b4\ub4e4\uc744 \ud3ec\ud568\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.
 comment.validator.trackbackLinkbackName=\uc758\uacac \uc720\ud6a8\uc131 \uac80\uc0ac: \ud2b8\ub799\ubc31 \ub9c1\ud06c\ubc31
 comment.validator.trackbackLinkbackMessage=\uadc0\ud558\uc758 \uc6f9\ub85c\uadf8 \uae30\uc0ac\uc5d0 \uc5f0\uacb0\ub418\uc9c0 \uc54a\ub294 \uc0ac\uc774\ud2b8\ub098 \ud398\uc774\uc9c0\ub85c\ubd80\ud130\uc758 \ud2b8\ub799\ubc31\uc785\ub2c8\ub2e4.
 comment.validator.akismetName=\uc758\uacac\uc720\ud6a8\uc131 \uac80\uc0ac: Akismet \uc11c\ube44\uc2a4
@@ -1240,8 +1240,8 @@ websiteSettings.formatting=\ud3ec\ub9f7\ud305
 
 websiteSettings.spamPrevention=\uc2a4\ud338 \ubc29\uc9c0
 websiteSettings.ignoreUrls=\uc758\uacac, \ud2b8\ub799\ubc31, \ucc38\uc870\uc790\ub97c \uac80\uc0ac\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ub418\ub294 \ube14\ub799\ub9ac\uc2a4\ud2b8 \ub2e8\uc5b4\ub4e4 \ubc0f \uc815\uaddc\uc2dd \ud45c\ud604 \ubaa9\ub85d
-websiteSettings.acceptedBlacklist=A{0} \ubb38\uc790\uc5f4\uacfc {1} \uc815\uaddc\uc2dd \ube14\ub799\ub9ac\uc2a4\ud2b8 \uaddc\uce59\uc73c\ub85c \uc2b9\uc778\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-websiteSettings.error.processingBlacklist=\ube14\ub799\ub9ac\uc2a4\ud2b8 \ucc98\ub9ac \uc624\ub958: {0}
+websiteSettings.acceptedBannedwordslist=A{0} \ubb38\uc790\uc5f4\uacfc {1} \uc815\uaddc\uc2dd \ube14\ub799\ub9ac\uc2a4\ud2b8 \uaddc\uce59\uc73c\ub85c \uc2b9\uc778\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+websiteSettings.error.processingBannedwordslist=\ube14\ub799\ub9ac\uc2a4\ud2b8 \ucc98\ub9ac \uc624\ub958: {0}
 
 # --- Buttons
 
diff --git a/app/src/main/resources/ApplicationResources_zh_CN.properties b/app/src/main/resources/ApplicationResources_zh_CN.properties
index 77c7ec8..92610a7 100644
--- a/app/src/main/resources/ApplicationResources_zh_CN.properties
+++ b/app/src/main/resources/ApplicationResources_zh_CN.properties
@@ -543,7 +543,7 @@ websiteRemove.title=\u786E\u8BA4\u7F51\u5FD7\u5220\u9664
 websiteRemove.websiteId=\u7F51\u5FD7ID
 websiteRemove.websiteName=\u7F51\u5FD7\u540D\u5B57
 websiteRemove.youSure=\u60A8\u786E\u4FE1\u60F3\u79FB\u9664\u7F51\u5FD7 [{0}] \u5417\uFF1F
-websiteSettings.acceptedBlacklist=\u63A5\u53D7 {0} \u8BCD\u7EC4\u548C {1} \u8868\u8FBE\u5F0F\u4F5C\u4E3A\u9ED1\u540D\u5355\u89C4\u5219
+websiteSettings.acceptedBannedwordslist=\u63A5\u53D7 {0} \u8BCD\u7EC4\u548C {1} \u8868\u8FBE\u5F0F\u4F5C\u4E3A\u9ED1\u540D\u5355\u89C4\u5219
 websiteSettings.active=\u6B64\u7F51\u5FD7\u662F\u6D3B\u8DC3\u7684\uFF08\u5C06\u88AB\u63D0\u4EA4\u5230\u4EA4\u6D41\u5217\u8868\u4E2D\uFF09
 websiteSettings.allowComments=\u5141\u8BB8\u5728\u4F60\u7684\u65E5\u5FD7\u4E2D\u5F00\u542F\u8BC4\u8BBA\u529F\u80FD\uFF1F
 websiteSettings.applyCommentDefaults=\u5E94\u7528\u8BC4\u8BBA\u8BBE\u7F6E\u5230\u6240\u6709\u7684\u65E5\u5FD7\uFF08\u53EA\u6709\u6B64\u6B21\uFF09\uFF1F
@@ -561,7 +561,7 @@ websiteSettings.emailAddress=\u7F51\u5FD7\u6240\u6709\u4EBA\u7535\u5B50\u90AE\u4
 websiteSettings.emailComments=\u5BF9\u8BC4\u8BBA\u53D1\u9001\u7535\u5B50\u90AE\u4EF6\u901A\u77E5?
 websiteSettings.enableBloggerApi=\u4E3A\u60A8\u7684\u7F51\u5FD7\u542F\u7528Blogger API\uFF1F\uFF08\u53EF\u4EE5\u4F7F\u7528\u7F51\u5FD7\u7F16\u5199\u5DE5\u5177\u6765\u64B0\u5199\u65E5\u5FD7\uFF09
 websiteSettings.entryDisplayCount=\u7F51\u5FD7\u663E\u793A\u65E5\u5FD7\u6570\u91CF
-websiteSettings.error.processingBlacklist=\u9519\u8BEF\u5904\u7406\u9ED1\u540D\u5355\uFF1A [{0}]
+websiteSettings.error.processingBannedwordslist=\u9519\u8BEF\u5904\u7406\u9ED1\u540D\u5355\uFF1A [{0}]
 websiteSettings.formatting=\u683C\u5F0F\u5316
 websiteSettings.ignoreUrls=\u5FFD\u7565\u5305\u542B\u6709\u4E0B\u5217\u4EFB\u4F55\u8BCD\u8BED\u7684\u5F15\u7528\uFF08\u7528\u9017\u53F7\u5206\u9694\uFF09
 websiteSettings.moderateComments=\u9002\u5EA6\u8BC4\u8BBA
diff --git a/app/src/main/resources/blacklist.txt b/app/src/main/resources/bannedwordslist.txt
similarity index 94%
rename from app/src/main/resources/blacklist.txt
rename to app/src/main/resources/bannedwordslist.txt
index 08611aa..68622a8 100644
--- a/app/src/main/resources/blacklist.txt
+++ b/app/src/main/resources/bannedwordslist.txt
@@ -1,7 +1,7 @@
 #
 #   List of domains to block from blog comments
 #
-#   Following format of discontinued MT-Blacklist (last updated in 2005)
+#   Following format of discontinued MT-Bannedwordslist (last updated in 2005)
 #   Add entries to this file of unwanted domains in blog comments
 #   without the "www." part, i.e., unwanted.com, or using regular
 #   expressions as shown below.
diff --git a/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties b/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties
index 1be6b64..ffbd275 100644
--- a/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties
+++ b/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties
@@ -174,7 +174,7 @@ org.apache.roller.weblogger.ui.rendering.plugins.comments.MathCommentAuthenticat
 
 # pluggable comment validation
 comment.validator.classnames=\
-org.apache.roller.weblogger.ui.rendering.plugins.comments.BlacklistCommentValidator,\
+org.apache.roller.weblogger.ui.rendering.plugins.comments.BannedwordslistCommentValidator,\
 org.apache.roller.weblogger.ui.rendering.plugins.comments.ExcessLinksCommentValidator,\
 org.apache.roller.weblogger.ui.rendering.plugins.comments.ExcessSizeCommentValidator
 #org.apache.roller.weblogger.ui.rendering.plugins.comments.AkismetCommentValidator
@@ -189,14 +189,14 @@ org.apache.roller.weblogger.business.plugins.comment.LinkMarkupPlugin,\
 org.apache.roller.weblogger.business.plugins.comment.AutoformatPlugin,\
 org.apache.roller.weblogger.business.plugins.comment.HTMLSubsetPlugin
 
-# enables site full blacklist check on comment posts (default: true)
-site.blacklist.enable.comments=true
+# enables site full bannedwordslist check on comment posts (default: true)
+site.bannedwordslist.enable.comments=true
 
-# enables site full blacklist check at time of trackback post (default: true)
-site.blacklist.enable.trackbacks=true
+# enables site full bannedwordslist check at time of trackback post (default: true)
+site.bannedwordslist.enable.trackbacks=true
 
-# enables partial blacklist check (not including blacklist.txt) for each incoming referrer
-site.blacklist.enable.referrers=false
+# enables partial bannedwordslist check (not including bannedwordslist.txt) for each incoming referrer
+site.bannedwordslist.enable.referrers=false
 
 # Trackback protection. Set this only if you need to limit the URLs to
 # which users may send trackbacks. Regex expressions are allowed, for example:
diff --git a/app/src/main/resources/org/apache/roller/weblogger/config/runtimeConfigDefs.xml b/app/src/main/resources/org/apache/roller/weblogger/config/runtimeConfigDefs.xml
index d897bca..f67b65c 100644
--- a/app/src/main/resources/org/apache/roller/weblogger/config/runtimeConfigDefs.xml
+++ b/app/src/main/resources/org/apache/roller/weblogger/config/runtimeConfigDefs.xml
@@ -238,7 +238,7 @@
    <!-- Spam Prevention Settings Group -->
    <display-group name="spamSettings" key="websiteSettings.spamPrevention" >
    
-      <property-def  name="spam.blacklist"  key="websiteSettings.ignoreUrls">
+      <property-def  name="spam.bannedwordslist"  key="websiteSettings.ignoreUrls">
          <type>text</type>
          <default-value/>
          <rows>7</rows>
diff --git a/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml b/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml
index f483127..7930b20 100644
--- a/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml
+++ b/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml
@@ -44,8 +44,8 @@
 			<basic name="editorPage">
 				<column name="editorpage" insertable="true" updatable="true" unique="false"/>
 			</basic>
-			<basic name="blacklist">
-				<column name="blacklist" insertable="true" updatable="true" unique="false"/>
+			<basic name="bannedwordslist">
+				<column name="bannedwordslist" insertable="true" updatable="true" unique="false"/>
 			</basic>
             <basic name="analyticsCode">
                 <column name="analyticscode" insertable="true" updatable="true" unique="false"/>
diff --git a/app/src/main/resources/sql/createdb.vm b/app/src/main/resources/sql/createdb.vm
index b870a3c..9493947 100644
--- a/app/src/main/resources/sql/createdb.vm
+++ b/app/src/main/resources/sql/createdb.vm
@@ -79,7 +79,7 @@ create table weblog (
     visible           $db.BOOLEAN_SQL_TYPE_TRUE not null,
     isactive          $db.BOOLEAN_SQL_TYPE_TRUE not null,
     datecreated          $db.TIMESTAMP_SQL_TYPE not null,
-    blacklist            $db.TEXT_SQL_TYPE,
+    bannedwordslist            $db.TEXT_SQL_TYPE,
     defaultallowcomments $db.BOOLEAN_SQL_TYPE_TRUE not null,
     defaultcommentdays   integer default 7 not null,
     commentmod           $db.BOOLEAN_SQL_TYPE_FALSE not null,
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/WeblogConfig.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/WeblogConfig.jsp
index 8f5d083..770e01e 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/WeblogConfig.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/WeblogConfig.jsp
@@ -129,7 +129,7 @@
 
     <h3><s:text name="websiteSettings.spamPrevention"/></h3>
 
-    <s:textarea name="bean.blacklist" rows="7" cols="40"
+    <s:textarea name="bean.bannedwordslist" rows="7" cols="40"
                 label="%{getText('websiteSettings.analyticsTrackingCode')}"/>
 
     <%-- ***** Web analytics settings ***** --%>
diff --git a/app/src/test/java/org/apache/roller/weblogger/business/WeblogTest.java b/app/src/test/java/org/apache/roller/weblogger/business/WeblogTest.java
index e3cfdbc..f7ed688 100644
--- a/app/src/test/java/org/apache/roller/weblogger/business/WeblogTest.java
+++ b/app/src/test/java/org/apache/roller/weblogger/business/WeblogTest.java
@@ -100,7 +100,7 @@ public class WeblogTest  {
             testWeblog.setHandle("testweblog");
             testWeblog.setEmailAddress("testweblog@dev.null");
             testWeblog.setEditorPage("editor-text.jsp");
-            testWeblog.setBlacklist("");
+            testWeblog.setBannedwordslist("");
             testWeblog.setEditorTheme("basic");
             testWeblog.setLocale("en_US");
             testWeblog.setTimeZone("America/Los_Angeles");
diff --git a/app/src/test/java/org/apache/roller/weblogger/ui/rendering/util/CommentValidatorTest.java b/app/src/test/java/org/apache/roller/weblogger/ui/rendering/util/CommentValidatorTest.java
index a6cd46b..ef71c4c 100644
--- a/app/src/test/java/org/apache/roller/weblogger/ui/rendering/util/CommentValidatorTest.java
+++ b/app/src/test/java/org/apache/roller/weblogger/ui/rendering/util/CommentValidatorTest.java
@@ -107,14 +107,14 @@ public class CommentValidatorTest  {
     }
 
     @Test
-    public void testBlacklistCommentValidator() {
+    public void testBannedwordslistCommentValidator() {
         RollerMessages msgs = new RollerMessages();
         WeblogEntryComment comment = createEmptyComment();
        
         comment.setContent("nice friendly stuff"); 
         assertEquals(100, mgr.validateComment(comment, msgs));
 
-        comment.setContent("blah blah www.myblacklistedsite.com blah");
+        comment.setContent("blah blah www.mybannedwordslistedsite.com blah");
         assertTrue(mgr.validateComment(comment, msgs) != 100);
     }
     
diff --git a/app/src/test/java/org/apache/roller/weblogger/util/BlacklistTest.java b/app/src/test/java/org/apache/roller/weblogger/util/BannedwordslistTest.java
similarity index 58%
rename from app/src/test/java/org/apache/roller/weblogger/util/BlacklistTest.java
rename to app/src/test/java/org/apache/roller/weblogger/util/BannedwordslistTest.java
index 638ae9d..6108649 100644
--- a/app/src/test/java/org/apache/roller/weblogger/util/BlacklistTest.java
+++ b/app/src/test/java/org/apache/roller/weblogger/util/BannedwordslistTest.java
@@ -30,20 +30,20 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
- * Test blacklist functionality.
+ * Test bannedwordslist functionality.
  */
-public class BlacklistTest  {
-    public static Log log = LogFactory.getLog(BlacklistTest.class);
+public class BannedwordslistTest  {
+    public static Log log = LogFactory.getLog(BannedwordslistTest.class);
     
-    private Blacklist blacklist;
+    private Bannedwordslist bannedwordslist;
     
     @BeforeEach
     public void setUp() throws Exception {
-        blacklist = Blacklist.getBlacklist();
+        bannedwordslist = Bannedwordslist.getBannedwordslist();
         String FS = File.separator;
-        String blacklistName = System.getProperty("project.build.directory") + FS + "classes" + "blacklist.txt";
-        log.info("Processing Blacklist file: " + blacklistName);
-        blacklist.loadBlacklistFromFile(blacklistName);
+        String bannedwordslistName = System.getProperty("project.build.directory") + FS + "classes" + "bannedwordslist.txt";
+        log.info("Processing Banned-words list file: " + bannedwordslistName);
+        bannedwordslist.loadBannedwordslistFromFile(bannedwordslistName);
     }
 
     @AfterEach
@@ -51,38 +51,32 @@ public class BlacklistTest  {
     }
 
     @Test
-    public void testIsBlacklisted0() {
-        assertFalse(blacklist.isBlacklisted("four score and seven years ago.com"));
-    }
-    
-    // test non-regex
-    @Test
-    public void testIsBlacklisted1() {
-        assertTrue(blacklist.isBlacklisted("www.myblacklistedsite.com"));
+    public void testIsBannedwordslisted0() {
+        assertFalse(bannedwordslist.isBannedwordslisted("four score and seven years ago.com"));
     }
     
     // test the regex patterns
     @Test
-    public void testIsBlacklisted2() {
-        assertTrue(blacklist.isBlacklisted("www.lsotr.com"));
+    public void testIsBannedwordslisted2() {
+        assertTrue(bannedwordslist.isBannedwordslisted("www.lsotr.com"));
     }
     
     // test the regex patterns
     @Test
-    public void testIsBlacklisted3() {
-        assertTrue(blacklist.isBlacklisted("buymoreonline.com"));
+    public void testIsBannedwordslisted3() {
+        assertTrue(bannedwordslist.isBannedwordslisted("buymoreonline.com"));
     }
     
     // test the regex patterns
     @Test
-    public void testIsBlacklisted4() {
-        assertTrue(blacklist.isBlacklisted("diet-enlargement.com"));
+    public void testIsBannedwordslisted4() {
+        assertTrue(bannedwordslist.isBannedwordslisted("diet-enlargement.com"));
     }
     
     // test the regex patterns
     @Test
-    public void testIsBlacklisted5() {
-        assertTrue(blacklist.isBlacklisted("viagra.com"));
+    public void testIsBannedwordslisted5() {
+        assertTrue(bannedwordslist.isBannedwordslisted("viagra.com"));
     }
     
 
diff --git a/app/src/test/resources/blacklist.txt b/app/src/test/resources/blacklist.txt
index ca55290..638b71d 100644
--- a/app/src/test/resources/blacklist.txt
+++ b/app/src/test/resources/blacklist.txt
@@ -1,7 +1,7 @@
 #
 #   List of domains to block from blog comments
 #
-#   Following format of discontinued MT-Blacklist (last updated in 2005)
+#   Following format of discontinued MT-Bannedwordslist (last updated in 2005)
 #   Add entries to this file of unwanted domains in blog comments
 #   without the "www." part, i.e., unwanted.com, or using regular
 #   expressions as shown below.
@@ -16,4 +16,4 @@
 (prozac|zoloft|xanax|valium|hydrocodone|vicodin|paxil|vioxx)[\w\-_.]*\.[a-z]{2,}     # Super regexp for domains containing drug names
 (ultram\b|\btenuate|tramadol|pheromones|phendimetrazine|ionamin|ortho.?tricyclen|retin.?a\b)[\w\-_.]*\.[a-z]{2,}     # Third drug super regexp
 (valtrex|zyrtec|\bhgh\b|ambien\b|flonase|allegra|didrex|renova\b|bontril|nexium)[\w\-_.]*\.[a-z]{2,}     # Fourth drug super regexp
-www.myblacklistedsite.com
\ No newline at end of file
+www.mybannedwordslistedsite.com
\ No newline at end of file
diff --git a/docs/roller-user-guide.adoc b/docs/roller-user-guide.adoc
index 343dc20..6cd4bb5 100644
--- a/docs/roller-user-guide.adoc
+++ b/docs/roller-user-guide.adoc
@@ -728,7 +728,7 @@ information).
 as spam (default: on)
 ** Excess size validator marks any comment with more than 1000
 characters as spam (default: on)
-** Blacklist validator marks comments containing any of your site’s
+** Bannedwordslist validator marks comments containing any of your site’s
 designated bad words as spam (default: on)
 ** Trackback verification validator will check incoming trackbacks to
 ensure that they link to you.
@@ -747,36 +747,36 @@ comments on your weblog. None of the measures are 100% effective. If you
 are really concerned about displaying offensive content on your weblog
 even for a short time, then enable comment moderation on your weblog.
 
-Roller uses a _blacklist_, a lists of words which are used to check
+Roller uses a _bannedwordslist_, a lists of words which are used to check
 incoming comments, trackbacks and requestors for spam URLs. If the name,
-URL or content of a comment or trackback includes one of the blacklist
+URL or content of a comment or trackback includes one of the bannedwordslist
 words or matches one of the expressions then that comment or trackback
 is marked as spam and is not displayed on your weblog, unless you use
 the comment management page to unmark it.
 
-Actually, there are three levels of blacklist:
+Actually, there are three levels of bannedwordslist:
 
-** Level 1 blacklist: This is the built-in blacklist, the one that comes
+** Level 1 bannedwordslist: This is the built-in bannedwordslist, the one that comes
 with Roller. This can only be changed by somebody with root access to
 the Roller server itself.
-** Level 2 blacklist: This is the site wide blacklist, which can only be
+** Level 2 bannedwordslist: This is the site wide bannedwordslist, which can only be
 edited by a global administrator via the Server Admin page.
-** Level 3 blacklist: Weblog specific blacklist, which you control in
+** Level 3 bannedwordslist: Weblog specific bannedwordslist, which you control in
 the Weblog Settings page of your weblog.
 
 Incoming comments and trackbacks are checked against all three levels of
-blacklist. Incoming web page requests, however, are only checked against
-the levels 2 and 3 blacklist and will receive a 403 (forbidden) message
+bannedwordslist. Incoming web page requests, however, are only checked against
+the levels 2 and 3 bannedwordslist and will receive a 403 (forbidden) message
 if found.
 
 If you have a spam problem on your weblog and you’d like to add words to
-the blacklist, it’s probably better for you to ask your administrator to
-add the words to the level 2 blacklist for you. That way, every blogger
+the bannedwordslist, it’s probably better for you to ask your administrator to
+add the words to the level 2 bannedwordslist for you. That way, every blogger
 on the site will benefit from the addition. If you must do it yourself,
 here’s how you do it:
 
 
-** Go to the Weblog Settings page and scroll down to the blacklist
+** Go to the Weblog Settings page and scroll down to the bannedwordslist
 fields
 ** Enter your spam words, one per line
 ** Lines that begin with a left parenthesis will be treated as regular