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 <mbie...@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);