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]