AMQ-4010: Use pre compiled pattern when doing string replaceAll as its faster.

git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1379761 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Claus Ibsen 2012-09-01 13:04:53 +00:00
parent 3092051699
commit 0e724cd53f
1 changed files with 12 additions and 5 deletions

View File

@ -16,17 +16,24 @@
*/ */
package org.apache.activemq.util; package org.apache.activemq.util;
import java.util.regex.Pattern;
public final class JMXSupport { public final class JMXSupport {
private static final Pattern PART_1 = Pattern.compile("[\\:\\,\\'\\\"]");
private static final Pattern PART_2 = Pattern.compile("\\?");
private static final Pattern PART_3 = Pattern.compile("=");
private static final Pattern PART_4 = Pattern.compile("\\*");
private JMXSupport() { private JMXSupport() {
} }
public static String encodeObjectNamePart(String part) { public static String encodeObjectNamePart(String part) {
// return ObjectName.quote(part); String answer = PART_1.matcher(part).replaceAll("_");
String answer = part.replaceAll("[\\:\\,\\'\\\"]", "_"); answer = PART_2.matcher(answer).replaceAll("&qe;");
answer = answer.replaceAll("\\?", "&qe;"); answer = PART_3.matcher(answer).replaceAll("&");
answer = answer.replaceAll("=", "&"); answer = PART_4.matcher(answer).replaceAll("*");
answer = answer.replaceAll("\\*", "*");
return answer; return answer;
} }
} }