]> source.dussan.org Git - jgit.git/commitdiff
Add MetaFilter.serveRegex(Pattern) 03/6303/2
authorDave Borowitz <dborowitz@google.com>
Fri, 8 Jun 2012 19:13:23 +0000 (12:13 -0700)
committerDave Borowitz <dborowitz@google.com>
Fri, 8 Jun 2012 19:16:31 +0000 (12:16 -0700)
This allows the use of precompiled patterns, such as those compiled with
flags.

Change-Id: I1c87fea98e246004aecbae3aabaf1d21fbf3176e

org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/MetaFilter.java
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/RegexPipeline.java

index 8cb3bea1f9e7ca28fb21220c41788a8ea10e7961..2187cfaa4237c3398803eb0ff84183a5cdae211c 100644 (file)
@@ -52,6 +52,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
@@ -116,6 +117,17 @@ public class MetaFilter implements Filter {
                return register(new RegexPipeline.Binder(expression));
        }
 
+       /**
+        * Construct a binding for a regular expression.
+        *
+        * @param pattern
+        *            the regular expression to pattern match the URL against.
+        * @return binder for the passed expression.
+        */
+       public ServletBinder serveRegex(Pattern pattern) {
+               return register(new RegexPipeline.Binder(pattern));
+       }
+
        public void init(FilterConfig filterConfig) throws ServletException {
                servletContext = filterConfig.getServletContext();
        }
index 384ff45a3888d64e293f9af85f5c2e0f741e46cd..2ef71368d056d8a4b3e64f63d36c8c98c668542b 100644 (file)
@@ -91,6 +91,10 @@ class RegexPipeline extends UrlPipeline {
                        pattern = Pattern.compile(p);
                }
 
+               Binder(final Pattern p) {
+                       pattern = p;
+               }
+
                UrlPipeline create() {
                        return new RegexPipeline(pattern, getFilters(), getServlet());
                }