This is an automated email from the ASF dual-hosted git repository.
zhongjiajie pushed a commit to branch 3.0.0-beta-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/3.0.0-beta-prepare by this
push:
new 69a76e8658 [refactor][perf] cache compiled regex pattern (#10099)
69a76e8658 is described below
commit 69a76e8658d70bab70c1dbbbc96771f68fdc210e
Author: youzipi <[email protected]>
AuthorDate: Sat May 21 10:36:42 2022 +0800
[refactor][perf] cache compiled regex pattern (#10099)
(cherry picked from commit 5161df04d75dce3dec6cc4114c38d3414ea93af8)
---
.../apache/dolphinscheduler/common/utils/ParameterUtils.java | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java
index a1241022a8..dba207a6cf 100644
---
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java
+++
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java
@@ -40,9 +40,8 @@ import java.util.regex.Pattern;
* parameter parse utils
*/
public class ParameterUtils {
- private static final String DATE_PARSE_PATTERN = "\\$\\[([^\\$\\]]+)]";
-
- private static final String DATE_START_PATTERN = "^[0-9]";
+ private static final Pattern DATE_PARSE_PATTERN =
Pattern.compile("\\$\\[([^\\$\\]]+)]");
+ private static final Pattern DATE_START_PATTERN =
Pattern.compile("^[0-9]");
private ParameterUtils() {
throw new UnsupportedOperationException("Construct ParameterUtils");
@@ -165,15 +164,15 @@ public class ParameterUtils {
if (templateStr == null) {
return null;
}
- Pattern pattern = Pattern.compile(DATE_PARSE_PATTERN);
+
StringBuffer newValue = new StringBuffer(templateStr.length());
- Matcher matcher = pattern.matcher(templateStr);
+ Matcher matcher = DATE_PARSE_PATTERN.matcher(templateStr);
while (matcher.find()) {
String key = matcher.group(1);
- if (Pattern.matches(DATE_START_PATTERN, key)) {
+ if (DATE_START_PATTERN.matcher(key).matches()) {
continue;
}
String value = TimePlaceholderUtils.getPlaceHolderTime(key, date);