You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/12/19 19:51:59 UTC
svn commit: r1424024 - in /cxf/branches/2.5.x-fixes:
common/common/src/main/java/org/apache/cxf/common/util/
rt/transports/http/src/main/java/org/apache/cxf/transport/http/
rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/
rt/transport...
Author: dkulp
Date: Wed Dec 19 18:51:59 2012
New Revision: 1424024
URL: http://svn.apache.org/viewvc?rev=1424024&view=rev
Log:
Merged revisions 1424007 via git cherry-pick from
https://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes
........
r1424007 | dkulp | 2012-12-19 13:28:46 -0500 (Wed, 19 Dec 2012) | 10 lines
Merged revisions 1423981 via git cherry-pick from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1423981 | dkulp | 2012-12-19 12:43:48 -0500 (Wed, 19 Dec 2012) | 2 lines
Start to use some precompiled patterns for common places where we split strings
........
........
Modified:
cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java
cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Cookies.java
cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/AbstractHTTPServlet.java
cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSUtils.java
cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/URISupport.java
Modified: cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java?rev=1424024&r1=1424023&r2=1424024&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java (original)
+++ cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java Wed Dec 19 18:51:59 2012
@@ -24,14 +24,38 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class StringUtils {
-
+ public static final Map<String, Pattern> PATTERN_MAP = new HashMap<String, Pattern>();
+ static {
+ String patterns[] = {"/", " ", ":", "," , ";", "="};
+ for (String p : patterns) {
+ PATTERN_MAP.put(p, Pattern.compile(p));
+ }
+ }
+
private StringUtils() {
}
+
+ public static String[] split(String s, String regex) {
+ Pattern p = PATTERN_MAP.get(regex);
+ if (p != null) {
+ return p.split(s);
+ }
+ return s.split(regex);
+ }
+ public static String[] split(String s, String regex, int limit) {
+ Pattern p = PATTERN_MAP.get(regex);
+ if (p != null) {
+ return p.split(s, limit);
+ }
+ return s.split(regex, limit);
+ }
public static String extract(String string, String startToken, String endToken) {
int start = string.indexOf(startToken) + startToken.length();
@@ -112,7 +136,7 @@ public final class StringUtils {
public static List<String> getParts(String str, String seperator) {
List<String> ret = new ArrayList<String>();
- List<String> parts = Arrays.asList(str.split(seperator));
+ List<String> parts = Arrays.asList(split(str, seperator));
for (String part : parts) {
if (!isEmpty(part)) {
ret.add(part);
@@ -122,7 +146,7 @@ public final class StringUtils {
}
public static String getFirstNotEmpty(String str, String seperator) {
- List<String> parts = Arrays.asList(str.split(seperator));
+ List<String> parts = Arrays.asList(split(str, seperator));
for (String part : parts) {
if (!isEmpty(part)) {
return part;
Modified: cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=1424024&r1=1424023&r2=1424024&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Wed Dec 19 18:51:59 2012
@@ -149,9 +149,10 @@ public abstract class AbstractHTTPDestin
if (credentials == null || StringUtils.isEmpty(credentials.trim())) {
return null;
}
- String authType = credentials.split(" ")[0];
+ String creds[] = StringUtils.split(credentials, " ");
+ String authType = creds[0];
if ("Basic".equals(authType)) {
- String authEncoded = credentials.split(" ")[1];
+ String authEncoded = creds[1];
try {
String authDecoded = new String(Base64Utility.decode(authEncoded));
int idx = authDecoded.indexOf(':');
Modified: cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Cookies.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Cookies.java?rev=1424024&r1=1424023&r2=1424024&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Cookies.java (original)
+++ cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Cookies.java Wed Dec 19 18:51:59 2012
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageUtils;
@@ -70,11 +71,11 @@ public class Cookies {
}
for (String header : headers) {
- String[] cookies = header.split(",");
+ String[] cookies = StringUtils.split(header, ",");
for (String cookie : cookies) {
- String[] parts = cookie.split(";");
+ String[] parts = StringUtils.split(cookie, ";");
- String[] kv = parts[0].split("=", 2);
+ String[] kv = StringUtils.split(parts[0], "=", 2);
if (kv.length != 2) {
continue;
}
@@ -83,7 +84,7 @@ public class Cookies {
Cookie newCookie = new Cookie(name, value);
for (int i = 1; i < parts.length; i++) {
- kv = parts[i].split("=", 2);
+ kv = StringUtils.split(parts[i], "=", 2);
name = kv[0].trim();
value = (kv.length > 1) ? kv[1].trim() : null;
if (name.equalsIgnoreCase(Cookie.DISCARD_ATTRIBUTE)) {
Modified: cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/AbstractHTTPServlet.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/AbstractHTTPServlet.java?rev=1424024&r1=1424023&r2=1424024&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/AbstractHTTPServlet.java (original)
+++ cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/AbstractHTTPServlet.java Wed Dec 19 18:51:59 2012
@@ -102,7 +102,7 @@ public abstract class AbstractHTTPServle
protected static List<Pattern> parseListSequence(String values) {
if (values != null) {
List<Pattern> list = new LinkedList<Pattern>();
- String[] pathValues = values.split(" ");
+ String[] pathValues = StringUtils.split(values, " ");
for (String value : pathValues) {
String theValue = value.trim();
if (theValue.length() > 0) {
@@ -119,9 +119,13 @@ public abstract class AbstractHTTPServle
if (sequence != null) {
sequence = sequence.trim();
Map<String, String> map = new HashMap<String, String>();
- String[] pairs = sequence.split(" ");
+ String[] pairs = StringUtils.split(sequence, " ");
for (String pair : pairs) {
- String[] value = pair.split("=");
+ String thePair = pair.trim();
+ if (thePair.length() == 0) {
+ continue;
+ }
+ String[] value = StringUtils.split(thePair, "=");
if (value.length == 2) {
map.put(value[0].trim(), value[1].trim());
} else {
Modified: cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSUtils.java?rev=1424024&r1=1424023&r2=1424024&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSUtils.java (original)
+++ cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSUtils.java Wed Dec 19 18:51:59 2012
@@ -45,6 +45,7 @@ import javax.jms.Topic;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.SOAPConstants;
+import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.helpers.HttpHeaderHelper;
import org.apache.cxf.message.MessageUtils;
@@ -343,7 +344,7 @@ public final class JMSUtils {
String contentType = ct.toLowerCase();
String enc = null;
- String[] tokens = contentType.split(";");
+ String[] tokens = StringUtils.split(contentType, ";");
for (String token : tokens) {
int index = token.indexOf("charset=");
if (index >= 0) {
Modified: cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/URISupport.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/URISupport.java?rev=1424024&r1=1424023&r2=1424024&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/URISupport.java (original)
+++ cxf/branches/2.5.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/URISupport.java Wed Dec 19 18:51:59 2012
@@ -27,6 +27,8 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import org.apache.cxf.common.util.StringUtils;
+
/**
* URI utilities.
*
@@ -114,7 +116,7 @@ public final class URISupport {
try {
Map rc = new HashMap();
if (uri != null) {
- String[] parameters = uri.split("&");
+ String[] parameters = StringUtils.split(uri, "&");
for (String parameter : parameters) {
int p = parameter.indexOf("=");
if (p >= 0) {