From 6f4dadbaf0550ab5dcd3ce2ee108d5da6850def0 Mon Sep 17 00:00:00 2001 From: "chen.ma" Date: Sat, 20 Nov 2021 02:42:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20GroupKey=20parseKey=20?= =?UTF-8?q?=E6=96=B9=E5=BC=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/hippo4j/common/constant/Constants.java | 2 + .../cn/hippo4j/common/toolkit/GroupKey.java | 47 +------------------ 2 files changed, 4 insertions(+), 45 deletions(-) diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/constant/Constants.java b/hippo4j-common/src/main/java/cn/hippo4j/common/constant/Constants.java index b2eaae48..4114600e 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/constant/Constants.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/constant/Constants.java @@ -52,6 +52,8 @@ public class Constants { public static final String GROUP_KEY_DELIMITER = "+"; + public static final String GROUP_KEY_DELIMITER_TRANSLATION = "\\+"; + public static final long EVICTION_INTERVAL_TIMER_IN_MS = 60 * 1000; public static final int SCHEDULED_THREAD_CORE_NUM = 1; diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java index 11e0f9c3..62f24d26 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java @@ -1,5 +1,6 @@ package cn.hippo4j.common.toolkit; +import cn.hippo4j.common.constant.Constants; import org.springframework.util.StringUtils; /** @@ -36,51 +37,7 @@ public class GroupKey { } public static String[] parseKey(String groupKey) { - StringBuilder sb = new StringBuilder(); - String dataId = null; - String group = null; - String tenant = null; - - for (int i = 0; i < groupKey.length(); ++i) { - char c = groupKey.charAt(i); - if ('+' == c) { - if (null == dataId) { - dataId = sb.toString(); - sb.setLength(0); - } else if (null == group) { - group = sb.toString(); - sb.setLength(0); - } else { - throw new IllegalArgumentException("invalid groupkey:" + groupKey); - } - } else if ('%' == c) { - char next = groupKey.charAt(++i); - char nextnext = groupKey.charAt(++i); - if ('2' == next && 'B' == nextnext) { - sb.append('+'); - } else if ('2' == next && '5' == nextnext) { - sb.append('%'); - } else { - throw new IllegalArgumentException("invalid groupkey:" + groupKey); - } - } else { - sb.append(c); - } - } - - if (StringUtils.isEmpty(group)) { - group = sb.toString(); - if (group.length() == 0) { - throw new IllegalArgumentException("invalid groupkey:" + groupKey); - } - } else { - tenant = sb.toString(); - if (group.length() == 0) { - throw new IllegalArgumentException("invalid groupkey:" + groupKey); - } - } - - return new String[]{dataId, group, tenant}; + return groupKey.split(Constants.GROUP_KEY_DELIMITER_TRANSLATION); } public static void urlEncode(String str, StringBuilder sb) {