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())
                                {

Reply via email to