Repository: wicket Updated Branches: refs/heads/master 1b9470baa -> 2b013c5d4
WICKET-6315 Optimize LinkParser by caching the compiled regex Pattern Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2b013c5d Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2b013c5d Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2b013c5d Branch: refs/heads/master Commit: 2b013c5d4fe86f6a813120c248e115ca3f8ad3cd Parents: 1b9470b Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Tue Jan 31 21:13:59 2017 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Tue Jan 31 21:13:59 2017 +0100 ---------------------------------------------------------------------- .../wicket/extensions/markup/html/basic/LinkParser.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/2b013c5d/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java index b8cb3fe..0039c68 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java @@ -32,7 +32,7 @@ import org.apache.wicket.util.string.Strings; */ public class LinkParser implements ILinkParser { - private final Map<String, ILinkRenderStrategy> renderStrategies = new HashMap<>(); + private final Map<Pattern, ILinkRenderStrategy> renderStrategies = new HashMap<>(); /** * Adds a render strategy to the parser. @@ -47,7 +47,8 @@ public class LinkParser implements ILinkParser public ILinkParser addLinkRenderStrategy(final String pattern, final ILinkRenderStrategy renderStrategy) { - renderStrategies.put(pattern, renderStrategy); + final Pattern compiledPattern = Pattern.compile(pattern, Pattern.DOTALL); + renderStrategies.put(compiledPattern, renderStrategy); return this; } @@ -67,12 +68,12 @@ public class LinkParser implements ILinkParser // don't try to parse markup. just plain text. WICKET-4099 if (work.indexOf('<') == -1) { - for (Map.Entry<String, ILinkRenderStrategy> entry : renderStrategies.entrySet()) + for (Map.Entry<Pattern, ILinkRenderStrategy> entry : renderStrategies.entrySet()) { - String pattern = entry.getKey(); + Pattern pattern = entry.getKey(); ILinkRenderStrategy strategy = entry.getValue(); - Matcher matcher = Pattern.compile(pattern, Pattern.DOTALL).matcher(work); + Matcher matcher = pattern.matcher(work); StringBuffer buffer = new StringBuffer(); while (matcher.find()) {
