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

mikexue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/eventmesh.git


The following commit(s) were added to refs/heads/master by this push:
     new fb144bb1d [ISSUE #3918]RequestMapping, UrlMappingPattern can apply 
some optimizing
fb144bb1d is described below

commit fb144bb1d0d838ef2a4d1cccc2bd7877bd4ab09f
Author: pandaapo <[email protected]>
AuthorDate: Wed May 31 11:31:40 2023 +0800

    [ISSUE #3918]RequestMapping, UrlMappingPattern can apply some optimizing
---
 .../admin/rocketmq/util/RequestMapping.java        | 38 +++++++++-------------
 .../admin/rocketmq/util/UrlMappingPattern.java     | 22 ++++---------
 2 files changed, 21 insertions(+), 39 deletions(-)

diff --git 
a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/RequestMapping.java
 
b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/RequestMapping.java
index e796e49ed..2158cb2b1 100644
--- 
a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/RequestMapping.java
+++ 
b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/RequestMapping.java
@@ -21,37 +21,29 @@ import org.apache.eventmesh.common.enums.HttpMethod;
 
 import com.sun.net.httpserver.HttpExchange;
 
+import lombok.experimental.UtilityClass;
+
+@UtilityClass
 public class RequestMapping {
 
-    public static boolean postMapping(String value, HttpExchange httpExchange) 
{
-        if 
(HttpMethod.POST.name().equalsIgnoreCase(httpExchange.getRequestMethod())) {
-            String requestUri = httpExchange.getRequestURI().getPath();
-            UrlMappingPattern matcher = new UrlMappingPattern(value);
-            return matcher.matches(requestUri);
-        }
-        return false;
+    public boolean postMapping(String value, HttpExchange httpExchange) {
+        return isUrlMatch(value, httpExchange, HttpMethod.POST.name());
     }
 
-    public static boolean getMapping(String value, HttpExchange httpExchange) {
-        if 
(HttpMethod.GET.name().equalsIgnoreCase(httpExchange.getRequestMethod())) {
-            String requestUri = httpExchange.getRequestURI().getPath();
-            UrlMappingPattern matcher = new UrlMappingPattern(value);
-            return matcher.matches(requestUri);
-        }
-        return false;
+    public boolean getMapping(String value, HttpExchange httpExchange) {
+        return isUrlMatch(value, httpExchange, HttpMethod.GET.name());
     }
 
-    public static boolean putMapping(String value, HttpExchange httpExchange) {
-        if 
(HttpMethod.PUT.name().equalsIgnoreCase(httpExchange.getRequestMethod())) {
-            String requestUri = httpExchange.getRequestURI().getPath();
-            UrlMappingPattern matcher = new UrlMappingPattern(value);
-            return matcher.matches(requestUri);
-        }
-        return false;
+    public boolean putMapping(String value, HttpExchange httpExchange) {
+        return isUrlMatch(value, httpExchange, HttpMethod.PUT.name());
+    }
+
+    public boolean deleteMapping(String value, HttpExchange httpExchange) {
+        return isUrlMatch(value, httpExchange, HttpMethod.DELETE.name());
     }
 
-    public static boolean deleteMapping(String value, HttpExchange 
httpExchange) {
-        if 
(HttpMethod.DELETE.name().equalsIgnoreCase(httpExchange.getRequestMethod())) {
+    private boolean isUrlMatch(String value, HttpExchange httpExchange, String 
methodType) {
+        if (methodType.equalsIgnoreCase(httpExchange.getRequestMethod())) {
             String requestUri = httpExchange.getRequestURI().getPath();
             UrlMappingPattern matcher = new UrlMappingPattern(value);
             return matcher.matches(requestUri);
diff --git 
a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPattern.java
 
b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPattern.java
index 199e41729..994f471c8 100644
--- 
a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPattern.java
+++ 
b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPattern.java
@@ -44,20 +44,15 @@ public class UrlMappingPattern {
 
     private Pattern compiledUrlMappingPattern;
 
-    private List<String> paramNames = new ArrayList<String>();
+    private List<String> paramNames = new ArrayList<>();
 
     public UrlMappingPattern(String pattern) {
-        super();
-        setUrlMappingPattern(pattern);
+        this.urlMappingPattern = pattern;
         compile();
     }
 
     public String getMappingPattern() {
-        return getUrlMappingPattern().replaceFirst(URL_FORMAT_REGEX, "");
-    }
-
-    private String getUrlMappingPattern() {
-        return urlMappingPattern;
+        return urlMappingPattern.replaceFirst(URL_FORMAT_REGEX, "");
     }
 
     public Map<String, String> extractPathParameterValues(String url) {
@@ -74,21 +69,20 @@ public class UrlMappingPattern {
 
     public void compile() {
         acquireParamNames();
-        String parsedPattern =
-            getUrlMappingPattern().replaceFirst(URL_FORMAT_REGEX, 
URL_FORMAT_MATCH_REGEX);
+        String parsedPattern = 
urlMappingPattern.replaceFirst(URL_FORMAT_REGEX, URL_FORMAT_MATCH_REGEX);
         parsedPattern = parsedPattern.replaceAll(URL_PARAMETER_REGEX, 
URL_PARAMETER_MATCH_REGEX);
         this.compiledUrlMappingPattern = Pattern.compile(parsedPattern + 
URL_QUERY_STRING_REGEX);
     }
 
     private void acquireParamNames() {
-        Matcher m = URL_PARAMETER_PATTERN.matcher(getUrlMappingPattern());
+        Matcher m = URL_PARAMETER_PATTERN.matcher(urlMappingPattern);
         while (m.find()) {
             paramNames.add(m.group(1));
         }
     }
 
     private Map<String, String> extractParameters(Matcher matcher) {
-        Map<String, String> values = new HashMap<String, String>();
+        Map<String, String> values = new HashMap<>((int) (matcher.groupCount() 
/ 0.75f + 1));
         for (int i = 0; i < matcher.groupCount(); i++) {
             String value = matcher.group(i + 1);
 
@@ -99,10 +93,6 @@ public class UrlMappingPattern {
         return values;
     }
 
-    private void setUrlMappingPattern(String pattern) {
-        this.urlMappingPattern = pattern;
-    }
-
     public List<String> getParamNames() {
         return Collections.unmodifiableList(paramNames);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to