You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/06/03 12:01:11 UTC

[1/3] incubator-juneau git commit: Clean up use of internal utilities.

Repository: incubator-juneau
Updated Branches:
  refs/heads/master 0ccac121d -> 3bdc0d85a


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
index 9be6df6..90f2cf8 100644
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
+++ b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.client;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
@@ -201,7 +203,7 @@ public final class RestCall {
 			return query(name, toBeanMap(value), skipIfEmpty, partSerializer);
 		} else if (value instanceof Reader) {
 			try {
-				uriBuilder.setCustomQuery(IOUtils.read(value));
+				uriBuilder.setCustomQuery(read(value));
 			} catch (IOException e) {
 				throw new RestCallException(e);
 			}
@@ -210,7 +212,7 @@ public final class RestCall {
 			if (! isEmpty(s))
 				uriBuilder.setCustomQuery(s);
 		} else {
-			throw new FormattedRuntimeException("Invalid name ''{0}'' passed to query(name,value,skipIfEmpty) for data type ''{1}''", name, ClassUtils.getReadableClassNameForObject(value));
+			throw new FormattedRuntimeException("Invalid name ''{0}'' passed to query(name,value,skipIfEmpty) for data type ''{1}''", name, getReadableClassNameForObject(value));
 		}
 		return this;
 	}
@@ -315,7 +317,7 @@ public final class RestCall {
 				input(new StringEntity(value.toString()));
 			} catch (UnsupportedEncodingException e) {}
 		} else {
-			throw new FormattedRuntimeException("Invalid name ''{0}'' passed to formData(name,value,skipIfEmpty) for data type ''{1}''", name, ClassUtils.getReadableClassNameForObject(value));
+			throw new FormattedRuntimeException("Invalid name ''{0}'' passed to formData(name,value,skipIfEmpty) for data type ''{1}''", name, getReadableClassNameForObject(value));
 		}
 		return this;
 	}
@@ -412,7 +414,7 @@ public final class RestCall {
 		} else if (isBean(value)) {
 			return path(name, toBeanMap(value), partSerializer);
 		} else if (value != null) {
-			throw new FormattedRuntimeException("Invalid name ''{0}'' passed to path(name,value) for data type ''{1}''", name, ClassUtils.getReadableClassNameForObject(value));
+			throw new FormattedRuntimeException("Invalid name ''{0}'' passed to path(name,value) for data type ''{1}''", name, getReadableClassNameForObject(value));
 		}
 		return this;
 	}
@@ -532,7 +534,7 @@ public final class RestCall {
 		} else if (isBean(value)) {
 			return header(name, toBeanMap(value), skipIfEmpty, partSerializer);
 		} else {
-			throw new FormattedRuntimeException("Invalid name ''{0}'' passed to header(name,value,skipIfEmpty) for data type ''{1}''", name, ClassUtils.getReadableClassNameForObject(value));
+			throw new FormattedRuntimeException("Invalid name ''{0}'' passed to header(name,value,skipIfEmpty) for data type ''{1}''", name, getReadableClassNameForObject(value));
 		}
 		return this;
 	}
@@ -1632,7 +1634,7 @@ public final class RestCall {
 	public String getResponseAsString() throws IOException {
 		try {
 			Reader r = getReader();
-			String s = IOUtils.read(r).toString();
+			String s = read(r).toString();
 			return s;
 		} catch (IOException e) {
 			isFailed = true;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCallException.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCallException.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCallException.java
index d4579eb..097a6cf 100644
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCallException.java
+++ b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCallException.java
@@ -13,6 +13,8 @@
 package org.apache.juneau.rest.client;
 
 import static java.lang.String.*;
+import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -22,7 +24,6 @@ import java.util.regex.*;
 import org.apache.http.*;
 import org.apache.http.client.*;
 import org.apache.http.util.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Exception representing a <code>400+</code> HTTP response code against a remote resource.
@@ -76,7 +77,7 @@ public final class RestCallException extends IOException {
 	 * @throws IOException
 	 */
 	public RestCallException(String msg, HttpResponse response) throws ParseException, IOException {
-		super(format("%s%nstatus='%s'%nResponse: %n%s%n", msg, response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity(), IOUtils.UTF8)));
+		super(format("%s%nstatus='%s'%nResponse: %n%s%n", msg, response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity(), UTF8)));
 	}
 
 	/**
@@ -136,11 +137,11 @@ public final class RestCallException extends IOException {
 			Throwable t = null;
 			try {
 				Class<?> exceptionClass = cl.loadClass(serverExceptionName);
-				Constructor<?> c = ClassUtils.findPublicConstructor(exceptionClass, String.class);
+				Constructor<?> c = findPublicConstructor(exceptionClass, String.class);
 				if (c != null)
 					t = (Throwable)c.newInstance(serverExceptionMessage);
 				if (t == null) {
-					c = ClassUtils.findPublicConstructor(exceptionClass);
+					c = findPublicConstructor(exceptionClass);
 					if (c != null)
 						t = (Throwable)c.newInstance();
 				}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 910a9fb..32fd4da 100644
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.client;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
@@ -28,7 +30,6 @@ import org.apache.http.client.utils.*;
 import org.apache.http.entity.*;
 import org.apache.http.impl.client.*;
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.remoteable.*;
@@ -513,7 +514,7 @@ public class RestClient extends CoreObject {
 	public <T> T getRemoteableProxy(final Class<T> interfaceClass, Object restUrl, final Serializer serializer, final Parser parser) {
 
 		if (restUrl == null) {
-			Remoteable r = ReflectionUtils.getAnnotation(Remoteable.class, interfaceClass);
+			Remoteable r = getAnnotation(Remoteable.class, interfaceClass);
 
 			String path = r == null ? "" : trimSlashes(r.path());
 			if (path.indexOf("://") == -1) {
@@ -648,11 +649,7 @@ public class RestClient extends CoreObject {
 			return null;
 		PartSerializer pf = partSerializerCache.get(c);
 		if (pf == null) {
-			try {
-				partSerializerCache.putIfAbsent(c, (PartSerializer)c.newInstance());
-			} catch (Exception e) {
-				throw new RuntimeException(e);
-			}
+			partSerializerCache.putIfAbsent(c, newInstance(PartSerializer.class, c));
 			pf = partSerializerCache.get(c);
 		}
 		return pf;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index 93e7a3c..5dc2ac6 100644
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -12,6 +12,7 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.client;
 
+import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.parser.ParserContext.*;
 import static org.apache.juneau.serializer.SerializerContext.*;
 
@@ -42,7 +43,6 @@ import org.apache.http.impl.conn.*;
 import org.apache.http.protocol.*;
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
@@ -219,7 +219,7 @@ public class RestClientBuilder extends CoreObjectBuilder {
 				default: throw new RuntimeException("Programmer error");
 			}
 
-			for (String p : StringUtils.split(sslOpts.getProtocols(), ',')) {
+			for (String p : split(sslOpts.getProtocols(), ',')) {
 				try {
 					TrustManager tm = new SimpleX509TrustManager(sslOpts.getCertValidate() == SSLOpts.CertValidate.LAX);
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java
index 96c10e6..9e460ab 100644
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java
+++ b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java
@@ -12,11 +12,12 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.client;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 
 import org.apache.http.entity.*;
 import org.apache.http.message.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.utils.*;
 
@@ -45,7 +46,7 @@ public final class RestRequestEntity extends BasicHttpEntity {
 		if (output instanceof InputStream) {
 			IOPipe.create(output, os).closeOut().run();
 		} else if (output instanceof Reader) {
-			IOPipe.create(output, new OutputStreamWriter(os, IOUtils.UTF8)).closeOut().run();
+			IOPipe.create(output, new OutputStreamWriter(os, UTF8)).closeOut().run();
 		} else {
 			try {
 				if (serializer == null) {
@@ -57,7 +58,7 @@ public final class RestRequestEntity extends BasicHttpEntity {
 					os.flush();
 					os.close();
 				} else {
-					Writer w = new OutputStreamWriter(os, IOUtils.UTF8);
+					Writer w = new OutputStreamWriter(os, UTF8);
 					WriterSerializer s2 = (WriterSerializer)serializer;
 					s2.serialize(output, w);
 					w.flush();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/SSLOpts.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/SSLOpts.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/SSLOpts.java
index e0041da..35ce572 100644
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/SSLOpts.java
+++ b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/SSLOpts.java
@@ -12,7 +12,7 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.client;
 
-import org.apache.juneau.internal.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 /**
  * SSL configuration options that get passed to {@link RestClientBuilder#enableSSL(SSLOpts)}.
@@ -69,7 +69,7 @@ public class SSLOpts {
 	 */
 	protected String getDefaultProtocols() {
 		String sp = System.getProperty("transport.client.protocol");
-		if (StringUtils.isEmpty(sp))
+		if (isEmpty(sp))
 			sp = "SSL_TLS,TLS,SSL";
 		return sp;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
----------------------------------------------------------------------
diff --git a/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java b/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
index 8ff2e52..272c335 100644
--- a/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
+++ b/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest.jaxrs;
 
 import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
 import java.lang.annotation.*;
@@ -26,7 +27,6 @@ import javax.ws.rs.ext.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.serializer.*;
@@ -113,7 +113,7 @@ public class BaseProvider implements MessageBodyReader<Object>, MessageBodyWrite
 			TimeZone timeZone = getTimeZone(headers);
 			if (s.isWriterSerializer()) {
 				WriterSerializer s2 = (WriterSerializer)s;
-				OutputStreamWriter w = new OutputStreamWriter(out, IOUtils.UTF8);
+				OutputStreamWriter w = new OutputStreamWriter(out, UTF8);
 				SerializerSession session = s.createSession(w, mp, null, locale, timeZone, sm.getMediaType(), null);
 				s2.serialize(session, o);
 				w.flush();
@@ -149,7 +149,7 @@ public class BaseProvider implements MessageBodyReader<Object>, MessageBodyWrite
 			TimeZone timeZone = getTimeZone(headers);
 			if (p.isReaderParser()) {
 				ReaderParser p2 = (ReaderParser)p;
-				InputStreamReader r = new InputStreamReader(in, IOUtils.UTF8);
+				InputStreamReader r = new InputStreamReader(in, UTF8);
 				ParserSession session = p2.createSession(r, mp, null, null, locale, timeZone, pm.getMediaType());
 				return p2.parseSession(session, p.getBeanContext().getClassMeta(gType));
 			}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/CharsetEncodingsResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/CharsetEncodingsResource.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/CharsetEncodingsResource.java
index 4f9e6f3..2abb53a 100644
--- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/CharsetEncodingsResource.java
+++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/CharsetEncodingsResource.java
@@ -12,9 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
@@ -41,7 +42,7 @@ public class CharsetEncodingsResource extends RestServlet {
 		@SuppressWarnings("unchecked")
 		@Override /* Parser */
 		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)IOUtils.read(session.getReader());
+			return (T)read(session.getReader());
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/FormDataResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/FormDataResource.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/FormDataResource.java
index 3b4cdd1..d83b821 100644
--- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/FormDataResource.java
+++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/FormDataResource.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 
@@ -33,7 +34,7 @@ public class FormDataResource extends RestServletDefault {
 	//====================================================================================================
 	@RestMethod(name="POST", path="/*")
 	public Reader test(RestRequest req) throws IOException {
-		return new StringReader("Content-Type=["+req.getContentType()+"], contents=["+IOUtils.read(req.getReader())+"]");
+		return new StringReader("Content-Type=["+req.getContentType()+"], contents=["+read(req.getReader())+"]");
 	}
 
 	//====================================================================================================

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/GroupsResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/GroupsResource.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/GroupsResource.java
index adad8d2..a7a8d57 100644
--- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/GroupsResource.java
+++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/GroupsResource.java
@@ -12,9 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
@@ -58,7 +59,7 @@ public class GroupsResource extends RestServlet {
 		@SuppressWarnings("unchecked")
 		@Override /* Parser */
 		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)IOUtils.read(session.getReader());
+			return (T)read(session.getReader());
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/NoParserInputResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/NoParserInputResource.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/NoParserInputResource.java
index 51a578e..cbd7230 100644
--- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/NoParserInputResource.java
+++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/NoParserInputResource.java
@@ -12,9 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.plaintext.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
@@ -34,7 +35,7 @@ public class NoParserInputResource extends RestServlet {
 	//====================================================================================================
 	@RestMethod(name="PUT", path="/testInputStream")
 	public String testInputStream(@Body InputStream in) throws Exception {
-		return IOUtils.read(in);
+		return read(in);
 	}
 
 	//====================================================================================================
@@ -42,7 +43,7 @@ public class NoParserInputResource extends RestServlet {
 	//====================================================================================================
 	@RestMethod(name="PUT", path="/testReader")
 	public String testReader(@Body Reader in) throws Exception {
-		return IOUtils.read(in);
+		return read(in);
 	}
 
 	//====================================================================================================
@@ -51,6 +52,6 @@ public class NoParserInputResource extends RestServlet {
 	//====================================================================================================
 	@RestMethod(name="PUT", path="/testPushbackReader")
 	public String testPushbackReader(@Body PushbackReader in) throws Exception {
-		return IOUtils.read(in);
+		return read(in);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParamsResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParamsResource.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParamsResource.java
index 706b97f..3d49776 100644
--- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParamsResource.java
+++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParamsResource.java
@@ -12,6 +12,7 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.IOUtils.*;
 import static org.apache.juneau.rest.RestContext.*;
 
 import java.io.*;
@@ -323,17 +324,17 @@ public class ParamsResource extends RestServletDefault {
 
 	@RestMethod(name="POST", path="/otherObjects/InputStream")
 	public String testOtherInputStream(InputStream t) throws IOException {
-		return IOUtils.read(t);
+		return read(t);
 	}
 
 	@RestMethod(name="POST", path="/otherObjects/ServletInputStream")
 	public String testOtherServletInputStream(ServletInputStream t) throws IOException {
-		return IOUtils.read(t);
+		return read(t);
 	}
 
 	@RestMethod(name="POST", path="/otherObjects/Reader")
 	public String testOtherReader(Reader t) throws IOException {
-		return IOUtils.read(t);
+		return read(t);
 	}
 
 	@RestMethod(name="GET", path="/otherObjects/OutputStream")

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParsersResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParsersResource.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParsersResource.java
index 3c6ddad..24823a2 100644
--- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParsersResource.java
+++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/ParsersResource.java
@@ -12,11 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.IOUtils.*;
 import static org.apache.juneau.rest.annotation.Inherit.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.plaintext.*;
 import org.apache.juneau.rest.*;
@@ -44,7 +44,7 @@ public class ParsersResource extends RestServletDefault {
 		@SuppressWarnings("unchecked")
 		@Override /* Parser */
 		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)("text/a - " + IOUtils.read(session.getReader()).trim());
+			return (T)("text/a - " + read(session.getReader()).trim());
 		}
 	}
 
@@ -74,7 +74,7 @@ public class ParsersResource extends RestServletDefault {
 		@SuppressWarnings("unchecked")
 		@Override /* Parser */
 		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)("text/b - " + IOUtils.read(session.getReader()).trim());
+			return (T)("text/b - " + read(session.getReader()).trim());
 		}
 	}
 
@@ -96,7 +96,7 @@ public class ParsersResource extends RestServletDefault {
 		@SuppressWarnings("unchecked")
 		@Override /* Parser */
 		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)("text/c - " + IOUtils.read(session.getReader()).trim());
+			return (T)("text/c - " + read(session.getReader()).trim());
 		}
 	}
 
@@ -118,7 +118,7 @@ public class ParsersResource extends RestServletDefault {
 		@SuppressWarnings("unchecked")
 		@Override /* Parser */
 		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)("text/d - " + IOUtils.read(session.getReader()).trim());
+			return (T)("text/d - " + read(session.getReader()).trim());
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/AcceptCharsetTest.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/AcceptCharsetTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/AcceptCharsetTest.java
index e6b5147..f5fcf09 100644
--- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/AcceptCharsetTest.java
+++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/AcceptCharsetTest.java
@@ -13,12 +13,12 @@
 package org.apache.juneau.rest.test;
 
 import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.internal.IOUtils.*;
 import static org.apache.juneau.rest.test.TestUtils.*;
 import static org.junit.Assert.*;
 
 import java.io.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.client.*;
 import org.junit.*;
 
@@ -55,7 +55,7 @@ public class AcceptCharsetTest extends RestTestcase {
 		r = client.doGet(url).acceptCharset(requestCharset).connect();
 		assertTrue(r.getResponse().getFirstHeader("Content-Type").getValue().toLowerCase().contains(responseCharset));
 		is = r.getInputStream();
-		assertEquals("foo", IOUtils.read(new InputStreamReader(is, responseCharset)));
+		assertEquals("foo", read(new InputStreamReader(is, responseCharset)));
 	}
 
 	//====================================================================================================

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/CharsetEncodingsTest.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/CharsetEncodingsTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/CharsetEncodingsTest.java
index 3bf705e..fa0a242 100644
--- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/CharsetEncodingsTest.java
+++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/CharsetEncodingsTest.java
@@ -13,12 +13,12 @@
 package org.apache.juneau.rest.test;
 
 import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.internal.IOUtils.*;
 import static org.apache.juneau.rest.test.TestUtils.*;
 import static org.junit.Assert.*;
 
 import java.io.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.client.*;
 import org.junit.*;
 
@@ -44,7 +44,7 @@ public class CharsetEncodingsTest extends RestTestcase {
 		assertEquals("utf-8/foo/utf-8", r);
 
 		is = client.doPut(url, new StringReader("foo")).getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "utf-8"));
+		r = read(new InputStreamReader(is, "utf-8"));
 		if (debug) System.err.println(r);
 		assertEquals("utf-8/foo/utf-8", r);
 
@@ -52,7 +52,7 @@ public class CharsetEncodingsTest extends RestTestcase {
 
 		client = cb.acceptCharset("utf-8").contentType("text/p;charset=utf-8").build();
 		is = client.doPut(url, new StringReader("foo")).acceptCharset("utf-8").contentType("text/p;charset=utf-8").getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "utf-8"));
+		r = read(new InputStreamReader(is, "utf-8"));
 		if (debug) System.err.println(r);
 		assertEquals("utf-8/foo/utf-8", r);
 
@@ -60,7 +60,7 @@ public class CharsetEncodingsTest extends RestTestcase {
 
 		client = cb.acceptCharset("Shift_JIS").contentType("text/p;charset=shift_jis").build();
 		is = client.doPut(url, new StringReader("foo")).getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "Shift_JIS"));
+		r = read(new InputStreamReader(is, "Shift_JIS"));
 		if (debug) System.err.println(r);
 		assertEquals("shift_jis/foo/shift_jis", r);
 
@@ -69,7 +69,7 @@ public class CharsetEncodingsTest extends RestTestcase {
 		try {
 			client = cb.acceptCharset("BAD").contentType("text/p;charset=sjis").build();
 			is = client.doPut(url + "?noTrace=true", new StringReader("foo")).getInputStream();
-			r = IOUtils.read(new InputStreamReader(is, "sjis"));
+			r = read(new InputStreamReader(is, "sjis"));
 			if (debug) System.err.println(r);
 			fail("Exception expected");
 		} catch (RestCallException e) {
@@ -80,7 +80,7 @@ public class CharsetEncodingsTest extends RestTestcase {
 
 		client = cb.accept("text/s").acceptCharset("utf-8").contentType("text/p").build();
 		is = client.doPut(url+"?Content-Type=text/p", new StringReader("foo")).getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "utf-8"));
+		r = read(new InputStreamReader(is, "utf-8"));
 		if (debug) System.err.println(r);
 		assertEquals("utf-8/foo/utf-8", r);
 
@@ -88,7 +88,7 @@ public class CharsetEncodingsTest extends RestTestcase {
 
 		client = cb.accept("text/s").contentType("text/bad").acceptCharset("utf-8").build();
 		is = client.doPut(url+"?Content-Type=text/p;charset=utf-8", new StringReader("foo")).getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "utf-8"));
+		r = read(new InputStreamReader(is, "utf-8"));
 		if (debug) System.err.println(r);
 		assertEquals("utf-8/foo/utf-8", r);
 
@@ -97,7 +97,7 @@ public class CharsetEncodingsTest extends RestTestcase {
 		try {
 			client = cb.accept("text/s").contentType("text/p").acceptCharset("utf-8").build();
 			is = client.doPut(url+"?Content-Type=text/p;charset=BAD&noTrace=true", new StringReader("foo")).getInputStream();
-			r = IOUtils.read(new InputStreamReader(is, "utf-8"));
+			r = read(new InputStreamReader(is, "utf-8"));
 			if (debug) System.err.println(r);
 			assertEquals("utf-8/foo/utf-8", r);
 			fail("Exception expected");

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ConfigTest.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ConfigTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ConfigTest.java
index d52425d..9c186f3 100644
--- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ConfigTest.java
+++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ConfigTest.java
@@ -12,11 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.rest.test.TestUtils.*;
 import static org.junit.Assert.*;
 
 import org.apache.juneau.ini.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.client.*;
 import org.junit.*;
 
@@ -52,6 +52,6 @@ public class ConfigTest extends RestTestcase {
 	}
 
 	private String getName(Class<?> c) {
-		return StringUtils.urlEncode(c.getName());
+		return urlEncode(c.getName());
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ContentTest.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ContentTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ContentTest.java
index ae67a25..1db53ad 100644
--- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ContentTest.java
+++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/ContentTest.java
@@ -12,9 +12,9 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.StringUtils.*;
 import static org.junit.Assert.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.plaintext.*;
 import org.apache.juneau.rest.client.*;
@@ -281,7 +281,7 @@ public class ContentTest extends RestTestcase {
 		//	public TreeMap<String,String> testMap(@Body TreeMap<String,String> m) {
 		//		return m;
 		//	}
-		r = c.doPost(URL + "/Map?body=" + encode("{a:'b',c:'d'}") + "&Content-Type=text/json", null).getResponseAsString();
+		r = c.doPost(URL + "/Map?body=" + urlEncode("{a:'b',c:'d'}") + "&Content-Type=text/json", null).getResponseAsString();
 		assertEquals("{a:'b',c:'d'}", r);
 		r = c.doPost(URL + "/Map?body=null&Content-Type=text/json", null).getResponseAsString();
 		assertEquals("null", r);
@@ -297,7 +297,7 @@ public class ContentTest extends RestTestcase {
 		//		return b;
 		//	}
 		DTOs.B b = DTOs.B.create();
-		r = c.doPost(URL + "/B?body=" + encode(JsonSerializer.DEFAULT_LAX.serialize(b)) + "&Content-Type=text/json", null).getResponseAsString();
+		r = c.doPost(URL + "/B?body=" + urlEncode(JsonSerializer.DEFAULT_LAX.serialize(b)) + "&Content-Type=text/json", null).getResponseAsString();
 		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		//	@RestMethod(name="POST", path="/C")
@@ -305,7 +305,7 @@ public class ContentTest extends RestTestcase {
 		//		return c;
 		//	}
 		DTOs.C x = DTOs.C.create();
-		r = c.doPost(URL + "/C?body=" + encode(JsonSerializer.DEFAULT_LAX.serialize(x)) + "&Content-Type=text/json", null).getResponseAsString();
+		r = c.doPost(URL + "/C?body=" + urlEncode(JsonSerializer.DEFAULT_LAX.serialize(x)) + "&Content-Type=text/json", null).getResponseAsString();
 		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		c.closeQuietly();
@@ -447,9 +447,4 @@ public class ContentTest extends RestTestcase {
 
 		c.closeQuietly();
 	}
-
-
-	private String encode(String s) {
-		return StringUtils.urlEncode(s);
-	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/GzipTest.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/GzipTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/GzipTest.java
index 26e0a05..22cb80f 100644
--- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/GzipTest.java
+++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/GzipTest.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest.test;
 
 import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.internal.IOUtils.*;
 import static org.apache.juneau.rest.test.TestUtils.*;
 import static org.junit.Assert.*;
 
@@ -20,7 +21,6 @@ import java.io.*;
 import java.util.zip.*;
 
 import org.apache.http.impl.client.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.client.*;
 import org.junit.*;
 
@@ -48,7 +48,7 @@ public class GzipTest extends RestTestcase {
 	}
 
 	private static String decompress(InputStream is) throws Exception {
-		return IOUtils.read(new GZIPInputStream(is));
+		return read(new GZIPInputStream(is));
 	}
 
 	//====================================================================================================

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RequestBeanProxyTest.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RequestBeanProxyTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RequestBeanProxyTest.java
index 5f587b5..a604066 100644
--- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RequestBeanProxyTest.java
+++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RequestBeanProxyTest.java
@@ -12,13 +12,14 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.ArrayUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 import static org.junit.Assert.*;
 
 import java.io.*;
 import java.util.*;
 
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.plaintext.*;
 import org.apache.juneau.remoteable.*;
 import org.apache.juneau.rest.client.*;
@@ -1993,9 +1994,9 @@ public class RequestBeanProxyTest extends RestTestcase {
 			if (value == null)
 				return "NULL";
 			if (value instanceof Collection)
-				return StringUtils.join((Collection<?>)value, "X");
-			if (ArrayUtils.isArray(value))
-				return StringUtils.join(ArrayUtils.toList(value, Object.class), "X");
+				return join((Collection<?>)value, "X");
+			if (isArray(value))
+				return join(toList(value, Object.class), "X");
 			return "x" + value + "x";
 		}
 	}
@@ -2006,9 +2007,9 @@ public class RequestBeanProxyTest extends RestTestcase {
 			if (value == null)
 				return "NULL";
 			if (value instanceof Collection)
-				return StringUtils.join((Collection<?>)value, '|');
-			if (ArrayUtils.isArray(value))
-				return StringUtils.join(ArrayUtils.toList(value, Object.class), "|");
+				return join((Collection<?>)value, '|');
+			if (isArray(value))
+				return join(toList(value, Object.class), "|");
 			return "?" + value + "?";
 		}
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RestUtilsTest.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RestUtilsTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RestUtilsTest.java
index d9d3341..9a210f9 100644
--- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RestUtilsTest.java
+++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/RestUtilsTest.java
@@ -12,10 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.test;
 
+import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.rest.RestUtils.*;
 import static org.junit.Assert.*;
 
-import org.apache.juneau.internal.*;
 import org.junit.*;
 
 public class RestUtilsTest extends RestTestcase {
@@ -25,8 +25,8 @@ public class RestUtilsTest extends RestTestcase {
 	//====================================================================================================
 	@Test
 	public void testDecode() throws Exception {
-		assertNull(StringUtils.urlDecode(null));
-		assertEquals("foo/bar baz  bing", StringUtils.urlDecode("foo%2Fbar+baz++bing"));
+		assertNull(urlDecode(null));
+		assertEquals("foo/bar baz  bing", urlDecode("foo%2Fbar+baz++bing"));
 	}
 
 	//====================================================================================================
@@ -34,11 +34,11 @@ public class RestUtilsTest extends RestTestcase {
 	//====================================================================================================
 	@Test
 	public void testEncode() throws Exception {
-		assertNull(StringUtils.urlEncode(null));
-		assertEquals("foo%2Fbar+baz++bing", StringUtils.urlEncode("foo/bar baz  bing"));
-		assertEquals("foobar", StringUtils.urlEncode("foobar"));
-		assertEquals("+", StringUtils.urlEncode(" "));
-		assertEquals("%2F", StringUtils.urlEncode("/"));
+		assertNull(urlEncode(null));
+		assertEquals("foo%2Fbar+baz++bing", urlEncode("foo/bar baz  bing"));
+		assertEquals("foobar", urlEncode("foobar"));
+		assertEquals("+", urlEncode(" "));
+		assertEquals("%2F", urlEncode("/"));
 	}
 
 	//====================================================================================================
@@ -147,14 +147,14 @@ public class RestUtilsTest extends RestTestcase {
 	//====================================================================================================
 	@Test
 	public void testTrimSlashes() throws Exception {
-		assertNull(StringUtils.trimSlashes(null));
-		assertEquals("", StringUtils.trimSlashes(""));
-		assertEquals("", StringUtils.trimSlashes("/"));
-		assertEquals("", StringUtils.trimSlashes("//"));
-		assertEquals("foo/bar", StringUtils.trimSlashes("foo/bar"));
-		assertEquals("foo/bar", StringUtils.trimSlashes("foo/bar//"));
-		assertEquals("foo/bar", StringUtils.trimSlashes("/foo/bar//"));
-		assertEquals("foo/bar", StringUtils.trimSlashes("//foo/bar//"));
+		assertNull(trimSlashes(null));
+		assertEquals("", trimSlashes(""));
+		assertEquals("", trimSlashes("/"));
+		assertEquals("", trimSlashes("//"));
+		assertEquals("foo/bar", trimSlashes("foo/bar"));
+		assertEquals("foo/bar", trimSlashes("foo/bar//"));
+		assertEquals("foo/bar", trimSlashes("/foo/bar//"));
+		assertEquals("foo/bar", trimSlashes("//foo/bar//"));
 	}
 
 	//====================================================================================================
@@ -162,14 +162,14 @@ public class RestUtilsTest extends RestTestcase {
 	//====================================================================================================
 	@Test
 	public void testTrimTrailingSlashes() throws Exception {
-		assertNull(StringUtils.trimTrailingSlashes((String)null));
-		assertEquals("", StringUtils.trimTrailingSlashes(""));
-		assertEquals("", StringUtils.trimTrailingSlashes("/"));
-		assertEquals("", StringUtils.trimTrailingSlashes("//"));
-		assertEquals("foo/bar", StringUtils.trimTrailingSlashes("foo/bar"));
-		assertEquals("foo/bar", StringUtils.trimTrailingSlashes("foo/bar//"));
-		assertEquals("/foo/bar", StringUtils.trimTrailingSlashes("/foo/bar//"));
-		assertEquals("//foo/bar", StringUtils.trimTrailingSlashes("//foo/bar//"));
+		assertNull(trimTrailingSlashes((String)null));
+		assertEquals("", trimTrailingSlashes(""));
+		assertEquals("", trimTrailingSlashes("/"));
+		assertEquals("", trimTrailingSlashes("//"));
+		assertEquals("foo/bar", trimTrailingSlashes("foo/bar"));
+		assertEquals("foo/bar", trimTrailingSlashes("foo/bar//"));
+		assertEquals("/foo/bar", trimTrailingSlashes("/foo/bar//"));
+		assertEquals("//foo/bar", trimTrailingSlashes("//foo/bar//"));
 	}
 
 	//====================================================================================================
@@ -177,13 +177,13 @@ public class RestUtilsTest extends RestTestcase {
 	//====================================================================================================
 	@Test
 	public void testTrimTrailingSlashes2() throws Exception {
-		assertNull(StringUtils.trimTrailingSlashes((StringBuffer)null));
-		assertEquals("", StringUtils.trimTrailingSlashes(new StringBuffer("")).toString());
-		assertEquals("", StringUtils.trimTrailingSlashes(new StringBuffer("/")).toString());
-		assertEquals("", StringUtils.trimTrailingSlashes(new StringBuffer("//")).toString());
-		assertEquals("foo/bar", StringUtils.trimTrailingSlashes(new StringBuffer("foo/bar")).toString());
-		assertEquals("foo/bar", StringUtils.trimTrailingSlashes(new StringBuffer("foo/bar//")).toString());
-		assertEquals("/foo/bar", StringUtils.trimTrailingSlashes(new StringBuffer("/foo/bar//")).toString());
-		assertEquals("//foo/bar", StringUtils.trimTrailingSlashes(new StringBuffer("//foo/bar//")).toString());
+		assertNull(trimTrailingSlashes((StringBuffer)null));
+		assertEquals("", trimTrailingSlashes(new StringBuffer("")).toString());
+		assertEquals("", trimTrailingSlashes(new StringBuffer("/")).toString());
+		assertEquals("", trimTrailingSlashes(new StringBuffer("//")).toString());
+		assertEquals("foo/bar", trimTrailingSlashes(new StringBuffer("foo/bar")).toString());
+		assertEquals("foo/bar", trimTrailingSlashes(new StringBuffer("foo/bar//")).toString());
+		assertEquals("/foo/bar", trimTrailingSlashes(new StringBuffer("/foo/bar//")).toString());
+		assertEquals("//foo/bar", trimTrailingSlashes(new StringBuffer("//foo/bar//")).toString());
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java b/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java
index caf0894..efb827c 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java
@@ -14,12 +14,13 @@ package org.apache.juneau.rest;
 
 import static javax.servlet.http.HttpServletResponse.*;
 import static org.apache.juneau.dto.swagger.SwaggerBuilder.*;
+import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.Utils.*;
 import static org.apache.juneau.rest.RestContext.*;
 import static org.apache.juneau.rest.annotation.Inherit.*;
 
 import java.lang.annotation.*;
 import java.lang.reflect.*;
-import java.lang.reflect.Method;
 import java.util.*;
 
 import javax.servlet.http.*;
@@ -28,7 +29,6 @@ import org.apache.juneau.*;
 import org.apache.juneau.dto.swagger.*;
 import org.apache.juneau.encoders.*;
 import org.apache.juneau.html.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.rest.annotation.*;
@@ -179,20 +179,20 @@ class CallMethod implements Comparable<CallMethod>  {
 				String p = m.path();
 				converters = new RestConverter[m.converters().length];
 				for (int i = 0; i < converters.length; i++)
-					converters[i] = m.converters()[i].newInstance();
+					converters[i] = newInstance(RestConverter.class, m.converters()[i]);
 
 				guards = new RestGuard[m.guards().length];
 				for (int i = 0; i < guards.length; i++)
-					guards[i] = m.guards()[i].newInstance();
+					guards[i] = newInstance(RestGuard.class, m.guards()[i]);
 
 				List<RestMatcher> optionalMatchers = new LinkedList<RestMatcher>(), requiredMatchers = new LinkedList<RestMatcher>();
 				for (int i = 0; i < m.matchers().length; i++) {
 					Class<? extends RestMatcher> c = m.matchers()[i];
 					RestMatcher matcher = null;
-					if (ClassUtils.isParentClass(RestMatcherReflecting.class, c))
-						matcher = c.getConstructor(Object.class, Method.class).newInstance(servlet, method);
+					if (isParentClass(RestMatcherReflecting.class, c))
+						matcher = newInstance(RestMatcherReflecting.class, c, servlet, method);
 					else
-						matcher = c.newInstance();
+						matcher = newInstance(RestMatcher.class, c);
 					if (matcher.mustMatch())
 						requiredMatchers.add(matcher);
 					else
@@ -758,7 +758,7 @@ class CallMethod implements Comparable<CallMethod>  {
 		} catch (IllegalArgumentException e) {
 			throw new RestException(SC_BAD_REQUEST,
 				"Invalid argument type passed to the following method: ''{0}''.\n\tArgument types: {1}",
-				method.toString(), ClassUtils.getReadableClassNames(args)
+				method.toString(), getReadableClassNames(args)
 			);
 		} catch (InvocationTargetException e) {
 			Throwable e2 = e.getTargetException();		// Get the throwable thrown from the doX() method.
@@ -860,15 +860,15 @@ class CallMethod implements Comparable<CallMethod>  {
 		if (c != 0)
 			return c;
 
-		c = Utils.compare(o.requiredMatchers.length, requiredMatchers.length);
+		c = compare(o.requiredMatchers.length, requiredMatchers.length);
 		if (c != 0)
 			return c;
 
-		c = Utils.compare(o.optionalMatchers.length, optionalMatchers.length);
+		c = compare(o.optionalMatchers.length, optionalMatchers.length);
 		if (c != 0)
 			return c;
 
-		c = Utils.compare(o.guards.length, guards.length);
+		c = compare(o.guards.length, guards.length);
 		if (c != 0)
 			return c;
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/ClientVersionMatcher.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/ClientVersionMatcher.java b/juneau-rest/src/main/java/org/apache/juneau/rest/ClientVersionMatcher.java
index ccf4dd1..891cda5 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/ClientVersionMatcher.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/ClientVersionMatcher.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.annotation.*;
 
@@ -33,7 +35,7 @@ public class ClientVersionMatcher extends RestMatcher {
 	 * @param javaMethod The version string that the client version must match.
 	 */
 	protected ClientVersionMatcher(String clientVersionHeader, java.lang.reflect.Method javaMethod) {
-		this.clientVersionHeader = StringUtils.isEmpty(clientVersionHeader) ? "X-Client-Version" : clientVersionHeader;
+		this.clientVersionHeader = isEmpty(clientVersionHeader) ? "X-Client-Version" : clientVersionHeader;
 		RestMethod m = javaMethod.getAnnotation(RestMethod.class);
 		range = new VersionRange(m.clientVersion());
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/ReaderResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/ReaderResource.java b/juneau-rest/src/main/java/org/apache/juneau/rest/ReaderResource.java
index e4da074..bed46f1 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/ReaderResource.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/ReaderResource.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 import java.util.*;
 
@@ -84,11 +86,11 @@ public class ReaderResource implements Writable {
 			if (c == null)
 				this.contents[i] = "";
 			else if (c instanceof InputStream)
-				this.contents[i] = IOUtils.read((InputStream)c);
+				this.contents[i] = read((InputStream)c);
 			else if (c instanceof File)
-				this.contents[i] = IOUtils.read((File)c);
+				this.contents[i] = read((File)c);
 			else if (c instanceof Reader)
-				this.contents[i] = IOUtils.read((Reader)c);
+				this.contents[i] = read((Reader)c);
 			else if (c instanceof CharSequence)
 				this.contents[i] = ((CharSequence)c).toString();
 			else

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RequestBody.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestBody.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestBody.java
index e5fb2bb..80fe80a 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestBody.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestBody.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest;
 
 import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.internal.IOUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
@@ -206,8 +207,8 @@ public class RequestBody {
 	 */
 	public String asString() throws IOException {
 		if (body == null)
-			body = IOUtils.readBytes(getInputStream(), 1024);
-		return new String(body, IOUtils.UTF8);
+			body = readBytes(getInputStream(), 1024);
+		return new String(body, UTF8);
 	}
 
 	/**
@@ -218,8 +219,8 @@ public class RequestBody {
 	 */
 	public String asHex() throws IOException {
 		if (body == null)
-			body = IOUtils.readBytes(getInputStream(), 1024);
-		return StringUtils.toHex(body);
+			body = readBytes(getInputStream(), 1024);
+		return toHex(body);
 	}
 
 	/**
@@ -249,7 +250,7 @@ public class RequestBody {
 	 */
 	protected Reader getUnbufferedReader() throws IOException {
 		if (body != null)
-			return new CharSequenceReader(new String(body, IOUtils.UTF8));
+			return new CharSequenceReader(new String(body, UTF8));
 		return new InputStreamReader(getInputStream(), req.getCharacterEncoding());
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RequestFormData.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestFormData.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestFormData.java
index 453bb8b..df0b1ab 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestFormData.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestFormData.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest;
 
+import static org.apache.juneau.internal.ArrayUtils.*;
+
 import java.lang.reflect.*;
 import java.util.*;
 
@@ -267,7 +269,7 @@ public class RequestFormData extends LinkedHashMap<String,String[]> {
 			List c = new ArrayList();
 			for (int i = 0; i < p.length; i++)
 				c.add(parseValue(p[i], cm.getElementType()));
-			return (T)ArrayUtils.toArray(c, cm.getElementType().getInnerClass());
+			return (T)toArray(c, cm.getElementType().getInnerClass());
 		} else if (cm.isCollection()) {
 			try {
 				Collection c = (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new ObjectList());

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java
index cc0709d..1094160 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java
@@ -12,6 +12,9 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest;
 
+import static org.apache.juneau.internal.ArrayUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.lang.reflect.*;
 import java.util.*;
 
@@ -87,7 +90,7 @@ public class RequestHeaders extends TreeMap<String,String[]> {
 			String v = values.nextElement();
 			String[] s = new String[]{v};
 			while (values.hasMoreElements())
-				s = ArrayUtils.append(s, values.nextElement());
+				s = append(s, values.nextElement());
 			put(name, s);
 		}
 		return this;
@@ -223,7 +226,7 @@ public class RequestHeaders extends TreeMap<String,String[]> {
 	 * @return A new headers object.
 	 */
 	public RequestHeaders subset(String headers) {
-		return subset(StringUtils.split(headers, ','));
+		return subset(split(headers, ','));
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java
index 593c900..366fc1c 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest;
 
+import static org.apache.juneau.internal.ArrayUtils.*;
+
 import java.lang.reflect.*;
 import java.util.*;
 
@@ -285,7 +287,7 @@ public final class RequestQuery extends LinkedHashMap<String,String[]> {
 			List c = new ArrayList();
 			for (int i = 0; i < p.length; i++)
 				c.add(parseValue(p[i], cm.getElementType()));
-			return (T)ArrayUtils.toArray(c, cm.getElementType().getInnerClass());
+			return (T)toArray(c, cm.getElementType().getInnerClass());
 		} else if (cm.isCollection()) {
 			try {
 				Collection c = (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new ObjectList());

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RestCallHandler.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestCallHandler.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RestCallHandler.java
index 99a051c..d60c489 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestCallHandler.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestCallHandler.java
@@ -14,6 +14,7 @@ package org.apache.juneau.rest;
 
 import static java.util.logging.Level.*;
 import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.internal.IOUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
@@ -22,7 +23,6 @@ import java.util.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.vars.*;
 
@@ -284,7 +284,7 @@ public class RestCallHandler {
 		try {
 			w = res.getWriter();
 		} catch (IllegalStateException e2) {
-			w = new PrintWriter(new OutputStreamWriter(res.getOutputStream(), IOUtils.UTF8));
+			w = new PrintWriter(new OutputStreamWriter(res.getOutputStream(), UTF8));
 		}
 		String httpMessage = RestUtils.getHttpResponseText(status);
 		if (httpMessage != null)

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
index 8576e18..8d35327 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
@@ -13,6 +13,8 @@
 package org.apache.juneau.rest;
 
 import static org.apache.juneau.internal.ArrayUtils.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
 import java.util.*;
@@ -137,7 +139,7 @@ public class RestConfig implements ServletConfig {
 
 			VarResolver vr = varResolverBuilder.build();
 
-			Map<Class<?>,RestResource> restResourceAnnotationsParentFirst = ReflectionUtils.findAnnotationsMapParentFirst(RestResource.class, resourceClass);
+			Map<Class<?>,RestResource> restResourceAnnotationsParentFirst = findAnnotationsMapParentFirst(RestResource.class, resourceClass);
 
 			// Find our config file.  It's the last non-empty @RestResource.config().
 			String configPath = "";
@@ -994,7 +996,7 @@ public class RestConfig implements ServletConfig {
 	 * @return This object (for method chaining).
 	 */
 	public RestConfig setPath(String path) {
-		if (StringUtils.startsWith(path, '/'))
+		if (startsWith(path, '/'))
 			path = path.substring(1);
 		this.path = path;
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java
index 779a1e4..62aca6c 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -13,6 +13,11 @@
 package org.apache.juneau.rest;
 
 import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.internal.ArrayUtils.*;
+import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.FileUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
@@ -375,15 +380,15 @@ public final class RestContext extends Context {
 			this.urlEncodingSerializer = b.urlEncodingSerializer;
 			this.urlEncodingParser = b.urlEncodingParser;
 			this.encoders = b.encoders;
-			this.supportedContentTypes = ArrayUtils.toObjectArray(b.supportedContentTypes, MediaType.class);
-			this.supportedAcceptTypes = ArrayUtils.toObjectArray(b.supportedAcceptTypes, MediaType.class);
+			this.supportedContentTypes = toObjectArray(b.supportedContentTypes, MediaType.class);
+			this.supportedAcceptTypes = toObjectArray(b.supportedAcceptTypes, MediaType.class);
 			this.clientVersionHeader = b.clientVersionHeader;
 			this.defaultRequestHeaders = Collections.unmodifiableMap(b.defaultRequestHeaders);
 			this.defaultResponseHeaders = Collections.unmodifiableMap(b.defaultResponseHeaders);
 			this.beanContext = b.beanContext;
 			this.converters = b.converters.toArray(new RestConverter[b.converters.size()]);
 			this.guards = b.guards.toArray(new RestGuard[b.guards.size()]);
-			this.responseHandlers = ArrayUtils.toObjectArray(b.responseHandlers, ResponseHandler.class);
+			this.responseHandlers = toObjectArray(b.responseHandlers, ResponseHandler.class);
 			this.mimetypesFileTypeMap = b.mimetypesFileTypeMap;
 			this.styleSheet = b.styleSheet;
 			this.favIcon = b.favIcon;
@@ -423,7 +428,7 @@ public final class RestContext extends Context {
 							final ClassMeta<?> interfaceClass = beanContext.getClassMeta(method.getGenericReturnType());
 							final Map<String,Method> remoteableMethods = interfaceClass.getRemoteableMethods();
 							if (remoteableMethods.isEmpty())
-								throw new RestException(SC_INTERNAL_SERVER_ERROR, "Method {0} returns an interface {1} that doesn't define any remoteable methods.", ClassUtils.getMethodSignature(method), interfaceClass.getReadableName());
+								throw new RestException(SC_INTERNAL_SERVER_ERROR, "Method {0} returns an interface {1} that doesn't define any remoteable methods.", getMethodSignature(method), interfaceClass.getReadableName());
 
 							sm = new CallMethod(resource, method, this) {
 
@@ -437,7 +442,7 @@ public final class RestContext extends Context {
 									final Object o = res.getOutput();
 
 									if ("GET".equals(req.getMethod())) {
-										res.setOutput(ClassUtils.getMethodInfo(remoteableMethods.values()));
+										res.setOutput(getMethodInfo(remoteableMethods.values()));
 										return SC_OK;
 
 									} else if ("POST".equals(req.getMethod())) {
@@ -517,14 +522,14 @@ public final class RestContext extends Context {
 				} else {
 
 					// Call the init(RestConfig) method.
-					java.lang.reflect.Method m2 = ClassUtils.findPublicMethod(r.getClass(), "init", Void.class, RestConfig.class);
+					java.lang.reflect.Method m2 = findPublicMethod(r.getClass(), "init", Void.class, RestConfig.class);
 					if (m2 != null)
 						m2.invoke(r, childConfig);
 
 					RestContext rc2 = new RestContext(r, childConfig);
 
 					// Call the init(RestContext) method.
-					m2 = ClassUtils.findPublicMethod(r.getClass(), "init", Void.class, RestContext.class);
+					m2 = findPublicMethod(r.getClass(), "init", Void.class, RestContext.class);
 					if (m2 != null)
 						m2.invoke(r, rc2);
 
@@ -589,7 +594,7 @@ public final class RestContext extends Context {
 
 			PropertyStore ps = sc.createPropertyStore();
 
-			LinkedHashMap<Class<?>,RestResource> restResourceAnnotationsChildFirst = ReflectionUtils.findAnnotationsMap(RestResource.class, resource.getClass());
+			LinkedHashMap<Class<?>,RestResource> restResourceAnnotationsChildFirst = findAnnotationsMap(RestResource.class, resource.getClass());
 
 			allowHeaderParams = ps.getProperty(REST_allowHeaderParams, boolean.class, true);
 			allowBodyParam = ps.getProperty(REST_allowBodyParam, boolean.class, true);
@@ -612,11 +617,11 @@ public final class RestContext extends Context {
 			properties = sc.properties;
 			Collections.reverse(sc.beanFilters);
 			Collections.reverse(sc.pojoSwaps);
-			beanFilters = ArrayUtils.toObjectArray(sc.beanFilters, Class.class);
-			pojoSwaps = ArrayUtils.toObjectArray(sc.pojoSwaps, Class.class);
+			beanFilters = toObjectArray(sc.beanFilters, Class.class);
+			pojoSwaps = toObjectArray(sc.pojoSwaps, Class.class);
 
 			for (Class<?> c : sc.paramResolvers) {
-				RestParam rp = (RestParam)c.newInstance();
+				RestParam rp = newInstance(RestParam.class, c);
 				paramResolvers.put(rp.forClass(), rp);
 			}
 
@@ -674,7 +679,7 @@ public final class RestContext extends Context {
 							else
 								contents.add(ReflectionUtils.getResource(p.first(), path));
 					} else {
-						contents.add(IOUtils.toInputStream(o));
+						contents.add(toInputStream(o));
 					}
 				}
 				styleSheet = new StreamResource(MediaType.forString("text/css"), contents.toArray());
@@ -687,7 +692,7 @@ public final class RestContext extends Context {
 					Pair<Class<?>,String> p = (Pair<Class<?>,String>)o;
 					is = ReflectionUtils.getResource(p.first(), vr.resolve(p.second()));
 				} else {
-					is = IOUtils.toInputStream(o);
+					is = toInputStream(o);
 				}
 				if (is != null)
 					favIcon = new StreamResource(MediaType.forString("image/x-icon"), is);
@@ -844,9 +849,9 @@ public final class RestContext extends Context {
 	protected InputStream getResource(String name, Locale locale) throws IOException {
 		String n = (locale == null || locale.toString().isEmpty() ? name : name + '|' + locale);
 		if (! resourceStreams.containsKey(n)) {
-			InputStream is = ReflectionUtils.getLocalizedResource(resource.getClass(), name, locale);
+			InputStream is = getLocalizedResource(resource.getClass(), name, locale);
 			if (is == null && name.indexOf("..") == -1) {
-				for (String n2 : FileUtils.getCandidateFileNames(name, locale)) {
+				for (String n2 : getCandidateFileNames(name, locale)) {
 					File f = new File(n2);
 					if (f.exists() && f.canRead()) {
 						is = new FileInputStream(f);
@@ -877,7 +882,7 @@ public final class RestContext extends Context {
 	public String getResourceAsString(String name, Locale locale) throws IOException {
 		String n = (locale == null || locale.toString().isEmpty() ? name : name + '|' + locale);
 		if (! resourceStrings.containsKey(n)) {
-			String s = IOUtils.read(getResource(name, locale));
+			String s = read(getResource(name, locale));
 			if (s == null)
 				throw new IOException("Resource '"+name+"' not found.");
 			resourceStrings.put(n, s);
@@ -908,7 +913,7 @@ public final class RestContext extends Context {
 			if (p != null) {
 				try {
 					if (p.isReaderParser())
-						return p.parse(new InputStreamReader(is, IOUtils.UTF8), c);
+						return p.parse(new InputStreamReader(is, UTF8), c);
 					return p.parse(is, c);
 				} catch (ParseException e) {
 					throw new ServletException("Could not parse resource '' as media type '"+mediaType+"'.");
@@ -1332,7 +1337,7 @@ public final class RestContext extends Context {
 					// Check for {#} variables.
 					String idxs = String.valueOf(idx);
 					for (int j = 0; j < vars.length; j++)
-						if (StringUtils.isNumeric(vars[j]) && vars[j].equals(idxs))
+						if (isNumeric(vars[j]) && vars[j].equals(idxs))
 							name = vars[j];
 
 					if (name.isEmpty())
@@ -1606,9 +1611,9 @@ public final class RestContext extends Context {
 			return (T)o;
 		if (! (o instanceof Class))
 			throw new RestServletException("Invalid object type passed to resolve:  ''{0}''.  Must be an object of type T or a Class<? extend T>.", o.getClass());
-		Constructor<T> n = ClassUtils.findPublicConstructor((Class<T>)o, cArgs);
+		Constructor<T> n = findPublicConstructor((Class<T>)o, cArgs);
 		if (n == null)
-			throw new RestServletException("Could not find public constructor for class ''{0}'' that takes in args {1}", c, JsonSerializer.DEFAULT_LAX.toString(ClassUtils.getClasses(cArgs)));
+			throw new RestServletException("Could not find public constructor for class ''{0}'' that takes in args {1}", c, JsonSerializer.DEFAULT_LAX.toString(getClasses(cArgs)));
 		try {
 			return n.newInstance(cArgs);
 		} catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RestInfoProvider.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestInfoProvider.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RestInfoProvider.java
index 84f5f9f..18488e6 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestInfoProvider.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestInfoProvider.java
@@ -14,13 +14,13 @@ package org.apache.juneau.rest;
 
 import static javax.servlet.http.HttpServletResponse.*;
 import static org.apache.juneau.dto.swagger.SwaggerBuilder.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
 
 import java.util.*;
 import java.util.concurrent.*;
 
 import org.apache.juneau.dto.swagger.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.rest.annotation.*;
@@ -84,7 +84,7 @@ public class RestInfoProvider {
 
 		Builder(RestContext context) {
 
-			LinkedHashMap<Class<?>,RestResource> restResourceAnnotationsParentFirst = ReflectionUtils.findAnnotationsMapParentFirst(RestResource.class, context.getResource().getClass());
+			LinkedHashMap<Class<?>,RestResource> restResourceAnnotationsParentFirst = findAnnotationsMapParentFirst(RestResource.class, context.getResource().getClass());
 
 			for (RestResource r : restResourceAnnotationsParentFirst.values()) {
 				if (! r.title().isEmpty())

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java
index 5739ca1..5112e25 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -15,6 +15,7 @@ package org.apache.juneau.rest;
 import static java.util.Collections.*;
 import static java.util.logging.Level.*;
 import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.internal.IOUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
@@ -33,7 +34,6 @@ import org.apache.juneau.dto.swagger.*;
 import org.apache.juneau.encoders.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.ini.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.svl.*;
@@ -130,7 +130,7 @@ public final class RestRequest extends HttpServletRequestWrapper {
 				String b = getQuery().getFirst("body");
 				if (b != null) {
 					headers.put("Content-Type", UonSerializer.DEFAULT.getResponseContentType());
-					body.load(b.getBytes(IOUtils.UTF8));
+					body.load(b.getBytes(UTF8));
 				}
 			}
 
@@ -462,7 +462,7 @@ public final class RestRequest extends HttpServletRequestWrapper {
 	 */
 	public UriContext getUriContext() {
 		if (uriContext == null) {
-			String authority = StringUtils.getAuthorityUri(super.getRequestURL().toString());
+			String authority = getAuthorityUri(super.getRequestURL().toString());
 			uriContext = new UriContext(authority, super.getContextPath(), super.getServletPath(), super.getPathInfo());
 		}
 		return uriContext;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/RestResourceResolver.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestResourceResolver.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RestResourceResolver.java
index 7989eb9..ae8d9d3 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestResourceResolver.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestResourceResolver.java
@@ -12,9 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+
 import java.lang.reflect.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.annotation.*;
 
 /**
@@ -66,10 +67,10 @@ public class RestResourceResolver {
 	 */
 	public Object resolve(Class<?> c, RestConfig config) throws RestServletException {
 		try {
-			Constructor<?> c1 = ClassUtils.findPublicConstructor(c, RestConfig.class);
+			Constructor<?> c1 = findPublicConstructor(c, RestConfig.class);
 			if (c1 != null)
 				return c1.newInstance(config);
-			c1 = ClassUtils.findPublicConstructor(c);
+			c1 = findPublicConstructor(c);
 			if (c1 != null)
 				return c1.newInstance();
 		} catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/StreamResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/StreamResource.java b/juneau-rest/src/main/java/org/apache/juneau/rest/StreamResource.java
index 53e186c..525055d 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/StreamResource.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/StreamResource.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 import java.util.*;
 
@@ -88,13 +90,13 @@ public class StreamResource implements Streamable {
 			else if (c instanceof byte[])
 				this.contents[i] = (byte[])c;
 			else if (c instanceof InputStream)
-				this.contents[i] = IOUtils.readBytes((InputStream)c, 1024);
+				this.contents[i] = readBytes((InputStream)c, 1024);
 			else if (c instanceof File)
-				this.contents[i] = IOUtils.readBytes((File)c);
+				this.contents[i] = readBytes((File)c);
 			else if (c instanceof Reader)
-				this.contents[i] = IOUtils.read((Reader)c).getBytes(IOUtils.UTF8);
+				this.contents[i] = read((Reader)c).getBytes(UTF8);
 			else if (c instanceof CharSequence)
-				this.contents[i] = ((CharSequence)c).toString().getBytes(IOUtils.UTF8);
+				this.contents[i] = ((CharSequence)c).toString().getBytes(UTF8);
 			else
 				throw new IOException("Invalid class type passed to StreamResource: " + c.getClass().getName());
 		}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java b/juneau-rest/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
index 499a834..0463e0e 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
@@ -12,9 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.response;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.io.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.*;
 
 /**
@@ -27,7 +28,7 @@ public final class RedirectHandler implements ResponseHandler {
 		if (output instanceof Redirect) {
 			Redirect r = (Redirect)output;
 			String uri = r.toUrl(res.getUrlEncodingSerializer());
-			if (StringUtils.isEmpty(uri))
+			if (isEmpty(uri))
 				uri = req.getServletURI();
 			else {
 				char c = (uri.length() > 0 ? uri.charAt(0) : 0);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-rest/src/main/java/org/apache/juneau/rest/vars/SerializedRequestAttrVar.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/vars/SerializedRequestAttrVar.java b/juneau-rest/src/main/java/org/apache/juneau/rest/vars/SerializedRequestAttrVar.java
index a7af629..db22a53 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/vars/SerializedRequestAttrVar.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/vars/SerializedRequestAttrVar.java
@@ -12,9 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.rest.vars;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.io.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.svl.*;
@@ -50,7 +51,7 @@ public class SerializedRequestAttrVar extends StreamedVar {
 			int i = key.indexOf(',');
 			if (i == -1)
 				throw new RuntimeException("Invalid format for $SA var.  Must be of the format $SA{contentType,key[,defaultValue]}");
-			String[] s2 = StringUtils.split(key, ',');
+			String[] s2 = split(key, ',');
 			RestRequest req = session.getSessionObject(RestRequest.class, RequestVar.SESSION_req);
 			if (req != null) {
 				Object o = req.getAttribute(key);


[2/3] incubator-juneau git commit: Clean up use of internal utilities.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
index 8fb7fd2..17825a5 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.json;
 
 import static org.apache.juneau.parser.ParserContext.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -202,7 +203,7 @@ public class JsonParser extends ReaderParser {
 			o = parseIntoBeanMap2(session, r, m).getBean();
 		} else if (sType.canCreateNewInstanceFromString(outer) && (c == '\'' || c == '"')) {
 			o = sType.newInstanceFromString(outer, parseString(session, r));
-		} else if (sType.canCreateNewInstanceFromNumber(outer) && StringUtils.isFirstNumberChar((char)c)) {
+		} else if (sType.canCreateNewInstanceFromNumber(outer) && isFirstNumberChar((char)c)) {
 			o = sType.newInstanceFromNumber(session, outer, parseNumber(session, r, sType.getNewInstanceFromNumberClass()));
 		} else if (sType.isArray() || sType.isArgs()) {
 			if (c == '{') {
@@ -242,7 +243,7 @@ public class JsonParser extends ReaderParser {
 		int c = r.peek();
 		if (c == '\'' || c == '"')
 			return parseNumber(session, parseString(session, r), type);
-		return parseNumber(session, StringUtils.parseNumberString(r), type);
+		return parseNumber(session, parseNumberString(r), type);
 	}
 
 	private static Number parseNumber(JsonParserSession session, String s, Class<? extends Number> type) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java
index 64fe9d9..a9896dd 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java
@@ -13,11 +13,10 @@
 package org.apache.juneau.msgpack;
 
 import static org.apache.juneau.msgpack.DataType.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
 
-import org.apache.juneau.internal.*;
-
 /**
  * Specialized input stream for parsing MessagePack streams.
  * <p>
@@ -395,7 +394,7 @@ public final class MsgPackInputStream extends InputStream {
 	 * Read a string from the stream.
 	 */
 	String readString() throws IOException {
-		return new String(readBinary(), IOUtils.UTF8);
+		return new String(readBinary(), UTF8);
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java b/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
index 38c6d16..231665a 100644
--- a/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.parser;
 
 import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -22,7 +23,6 @@ import java.util.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.transform.*;
 import org.apache.juneau.transforms.*;
 import org.apache.juneau.utils.*;
@@ -142,11 +142,11 @@ public abstract class Parser extends CoreObject {
 		super(propertyStore);
 		this.ctx = createContext(ParserContext.class);
 
-		Consumes c = ReflectionUtils.getAnnotation(Consumes.class, getClass());
+		Consumes c = getAnnotation(Consumes.class, getClass());
 		if (c == null)
 			throw new RuntimeException(MessageFormat.format("Class ''{0}'' is missing the @Consumes annotation", getClass().getName()));
 
-		String[] mt = StringUtils.split(c.value(), ',');
+		String[] mt = split(c.value(), ',');
 		this.mediaTypes = new MediaType[mt.length];
 		for (int i = 0; i < mt.length; i++) {
 			mediaTypes[i] = MediaType.forString(mt[i]);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
index f9dc3f3..0eb2e92 100644
--- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
@@ -14,6 +14,7 @@ package org.apache.juneau.parser;
 
 import static org.apache.juneau.BeanContext.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
+import static org.apache.juneau.internal.ClassUtils.*;
 import static org.apache.juneau.parser.ParserContext.*;
 
 import java.util.*;
@@ -99,14 +100,13 @@ public class ParserGroupBuilder {
 	 *
 	 * @return A new {@link ParserGroup} object.
 	 */
-	@SuppressWarnings("unchecked")
 	public ParserGroup build() {
 		List<Parser> l = new ArrayList<Parser>();
 		for (Object p : parsers) {
-			Class<? extends Parser> c = null;
+			Class<?> c = null;
 			PropertyStore ps = propertyStore;
 			if (p instanceof Class) {
-				c = (Class<? extends Parser>)p;
+				c = (Class<?>)p;
 			} else {
 				// Note that if we added a serializer instance, we want a new instance with this builder's properties
 				// on top of the previous serializer's properties.
@@ -114,11 +114,7 @@ public class ParserGroupBuilder {
 				ps = p2.createPropertyStore().copyFrom(propertyStore);
 				c = p2.getClass();
 			}
-			try {
-				l.add(c.getConstructor(PropertyStore.class).newInstance(ps));
-			} catch (Exception e) {
-				throw new RuntimeException("Could not instantiate parser " + c.getName(), e);
-			}
+			l.add(newInstance(Parser.class, c, ps));
 		}
 		Collections.reverse(l);
 		return new ParserGroup(propertyStore, l.toArray(new Parser[l.size()]));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java
index 0b28ce6..05f2f8b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java
+++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -13,6 +13,9 @@
 package org.apache.juneau.parser;
 
 import static org.apache.juneau.parser.ParserContext.*;
+import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -21,7 +24,6 @@ import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Session object that lives for the duration of a single use of {@link Parser}.
@@ -75,10 +77,9 @@ public class ParserSession extends BeanSession {
 	 * If <jk>null</jk>, then the timezone defined on the context is used.
 	 * @param mediaType The session media type (e.g. <js>"application/json"</js>).
 	 */
-	@SuppressWarnings("unchecked")
 	public ParserSession(ParserContext ctx, ObjectMap op, Object input, Method javaMethod, Object outer, Locale locale, TimeZone timeZone, MediaType mediaType) {
 		super(ctx, op, locale, timeZone, mediaType);
-		Class<? extends ParserListener> listenerClass;
+		Class<?> listenerClass;
 		if (op == null || op.isEmpty()) {
 			trimStrings = ctx.trimStrings;
 			strict = ctx.strict;
@@ -95,11 +96,7 @@ public class ParserSession extends BeanSession {
 		this.input = input;
 		this.javaMethod = javaMethod;
 		this.outer = outer;
-		try {
-			this.listener = listenerClass == null ? null : listenerClass.newInstance();
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
+		this.listener = newInstance(ParserListener.class, listenerClass);
 	}
 
 	/**
@@ -115,25 +112,25 @@ public class ParserSession extends BeanSession {
 				return null;
 			if (input instanceof InputStream) {
 				if (isDebug()) {
-					byte[] b = IOUtils.readBytes((InputStream)input, 1024);
-					inputString = StringUtils.toHex(b);
+					byte[] b = readBytes((InputStream)input, 1024);
+					inputString = toHex(b);
 					return new ByteArrayInputStream(b);
 				}
 				return (InputStream)input;
 			}
 			if (input instanceof byte[]) {
 				if (isDebug())
-					inputString = StringUtils.toHex((byte[])input);
+					inputString = toHex((byte[])input);
 				return new ByteArrayInputStream((byte[])input);
 			}
 			if (input instanceof String) {
 				inputString = (String)input;
-				return new ByteArrayInputStream(StringUtils.fromHex((String)input));
+				return new ByteArrayInputStream(fromHex((String)input));
 			}
 			if (input instanceof File) {
 				if (isDebug()) {
-					byte[] b = IOUtils.readBytes((File)input);
-					inputString = StringUtils.toHex(b);
+					byte[] b = readBytes((File)input);
+					inputString = toHex(b);
 					return new ByteArrayInputStream(b);
 				}
 				inputStream = new FileInputStream((File)input);
@@ -158,7 +155,7 @@ public class ParserSession extends BeanSession {
 			return null;
 		if (input instanceof Reader) {
 			if (isDebug()) {
-				inputString = IOUtils.read((Reader)input);
+				inputString = read((Reader)input);
 				return new StringReader(inputString);
 			}
 			return (Reader)input;
@@ -183,7 +180,7 @@ public class ParserSession extends BeanSession {
 				noCloseReader = new InputStreamReader(is, cd);
 			}
 			if (isDebug()) {
-				inputString = IOUtils.read(noCloseReader);
+				inputString = read(noCloseReader);
 				return new StringReader(inputString);
 			}
 			return noCloseReader;
@@ -201,7 +198,7 @@ public class ParserSession extends BeanSession {
 				reader = new InputStreamReader(new FileInputStream((File)input), cd);
 			}
 			if (isDebug()) {
-				inputString = IOUtils.read(reader);
+				inputString = read(reader);
 				return new StringReader(inputString);
 			}
 			return reader;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java
index 922b8b5..850d320 100644
--- a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java
@@ -12,9 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.plaintext;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.transform.*;
 
@@ -68,6 +69,6 @@ public class PlainTextParser extends ReaderParser {
 
 	@Override /* Parser */
 	protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-		return session.convertToType(IOUtils.read(session.getReader()), type);
+		return session.convertToType(read(session.getReader()), type);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java
index 6293d2b..cf2326b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java
+++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.remoteable;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.urlencoding.*;
 
@@ -53,10 +55,6 @@ public class RemoteMethodArg {
 		this.name = name.isEmpty() ? name2 : name;
 		this.index = index;
 		this.skipIfNE = skipIfNE;
-		try {
-			this.serializer = (serializer == PartSerializer.class ? null : serializer.newInstance());
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
+		this.serializer = (serializer == PartSerializer.class ? null : newInstance(PartSerializer.class, serializer));
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java
index 0fb31b2..60da20a 100644
--- a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java
@@ -14,12 +14,11 @@ package org.apache.juneau.remoteable;
 
 import static org.apache.juneau.internal.ClassUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
 
 import java.lang.reflect.*;
 import java.util.*;
 
-import org.apache.juneau.internal.*;
-
 /**
  * Contains the meta-data about a remoteable interface.
  * <p>
@@ -43,7 +42,7 @@ public class RemoteableMeta {
 	 * @param restUrl The absolute URL of the remote REST interface that implements this proxy interface.
 	 */
 	public RemoteableMeta(Class<?> c, String restUrl) {
-		Remoteable r = ReflectionUtils.getAnnotation(Remoteable.class, c);
+		Remoteable r = getAnnotation(Remoteable.class, c);
 
 		String expose = r == null ? "DECLARED" : r.expose();
 		if (! isOneOf(expose, "ALL", "DECLARED", "ANNOTATED"))

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
index 9bf4907..78340b7 100644
--- a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
@@ -13,13 +13,12 @@
 package org.apache.juneau.remoteable;
 
 import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.ClassUtils.*;
 
 import java.lang.annotation.*;
 import java.lang.reflect.*;
 import java.util.*;
 
-import org.apache.juneau.internal.*;
-
 /**
  * Contains the meta-data about a Java method on a remoteable interface.
  * <p>
@@ -87,7 +86,7 @@ public class RemoteableMethodMeta {
 			url =
 				trimSlashes(restUrl)
 				+ '/'
-				+ (path != null ? trimSlashes(path) : urlEncode("NAME".equals(methodPaths) ? m.getName() : ClassUtils.getMethodSignature(m)));
+				+ (path != null ? trimSlashes(path) : urlEncode("NAME".equals(methodPaths) ? m.getName() : getMethodSignature(m)));
 
 			int index = 0;
 			for (Annotation[] aa : m.getParameterAnnotations()) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java b/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
index bbfcfb2..d751fdc 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
@@ -12,11 +12,12 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.serializer;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.io.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Subclass of {@link Serializer} for byte-based serializers.
@@ -80,6 +81,6 @@ public abstract class OutputStreamSerializer extends Serializer {
 	public final String serializeToHex(Object o) throws SerializeException {
 		ByteArrayOutputStream baos = new ByteArrayOutputStream();
 		serialize(createSession(baos), o);
-		return StringUtils.toHex(baos.toByteArray());
+		return toHex(baos.toByteArray());
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java b/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
index d5af30a..8350093 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -12,6 +12,9 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.serializer;
 
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
+
 import java.io.*;
 import java.lang.reflect.*;
 import java.text.*;
@@ -20,7 +23,6 @@ import java.util.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.soap.*;
 
 /**
@@ -50,11 +52,11 @@ public abstract class Serializer extends CoreObject {
 		super(propertyStore);
 		this.ctx = createContext(SerializerContext.class);
 
-		Produces p = ReflectionUtils.getAnnotation(Produces.class, getClass());
+		Produces p = getAnnotation(Produces.class, getClass());
 		if (p == null)
 			throw new RuntimeException(MessageFormat.format("Class ''{0}'' is missing the @Produces annotation", getClass().getName()));
 
-		String[] mt = StringUtils.split(p.value(), ',');
+		String[] mt = split(p.value(), ',');
 		this.mediaTypes = new MediaType[mt.length];
 		for (int i = 0; i < mt.length; i++) {
 			mediaTypes[i] = MediaType.forString(mt[i]);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
index d34b07f..74f923a 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
@@ -14,6 +14,7 @@ package org.apache.juneau.serializer;
 
 import static org.apache.juneau.BeanContext.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
+import static org.apache.juneau.internal.ClassUtils.*;
 import static org.apache.juneau.serializer.SerializerContext.*;
 
 import java.util.*;
@@ -99,14 +100,13 @@ public class SerializerGroupBuilder {
 	 *
 	 * @return A new {@link SerializerGroup} object.
 	 */
-	@SuppressWarnings("unchecked")
 	public SerializerGroup build() {
 		List<Serializer> l = new ArrayList<Serializer>();
 		for (Object s : serializers) {
-			Class<? extends Serializer> c = null;
+			Class<?> c = null;
 			PropertyStore ps = propertyStore;
 			if (s instanceof Class) {
-				c = ((Class<? extends Serializer>)s);
+				c = (Class<?>)s;
 			} else {
 				// Note that if we added a serializer instance, we want a new instance with this builder's properties
 				// on top of the previous serializer's properties.
@@ -114,11 +114,7 @@ public class SerializerGroupBuilder {
 				ps = s2.createPropertyStore().copyFrom(propertyStore);
 				c = s2.getClass();
 			}
-			try {
-				l.add(c.getConstructor(PropertyStore.class).newInstance(ps));
-			} catch (Exception e) {
-				throw new RuntimeException("Could not instantiate serializer " + c.getName(), e);
-			}
+			l.add(newInstance(Serializer.class, c, ps));
 		}
 		Collections.reverse(l);
 		return new SerializerGroup(propertyStore, l.toArray(new Serializer[l.size()]));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index a52314a..b8371ac 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -13,6 +13,8 @@
 package org.apache.juneau.serializer;
 
 import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.serializer.SerializerContext.*;
 
 import java.io.*;
@@ -22,7 +24,6 @@ import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.transform.*;
 
 /**
@@ -99,14 +100,13 @@ public class SerializerSession extends BeanSession {
 	 * @param uriContext The URI context.
 	 * 	Identifies the current request URI used for resolution of URIs to absolute or root-relative form.
 	 */
-	@SuppressWarnings("unchecked")
 	public SerializerSession(SerializerContext ctx, ObjectMap op, Object output, Method javaMethod, Locale locale, TimeZone timeZone, MediaType mediaType, UriContext uriContext) {
 		super(ctx, op, locale, timeZone, mediaType);
 		this.javaMethod = javaMethod;
 		this.output = output;
 		UriResolution uriResolution;
 		UriRelativity uriRelativity;
-		Class<? extends SerializerListener> listenerClass;
+		Class<?> listenerClass;
 		if (op == null || op.isEmpty()) {
 			maxDepth = ctx.maxDepth;
 			initialDepth = ctx.initialDepth;
@@ -147,7 +147,7 @@ public class SerializerSession extends BeanSession {
 
 		uriResolver = new UriResolver(uriResolution, uriRelativity, uriContext == null ? ctx.uriContext : uriContext);
 
-		listener = ClassUtils.newInstance(listenerClass);
+		listener = newInstance(SerializerListener.class, listenerClass);
 
 		this.indent = initialDepth;
 		if (detectRecursions || isDebug()) {
@@ -205,7 +205,7 @@ public class SerializerSession extends BeanSession {
 			return (Writer)output;
 		if (output instanceof OutputStream) {
 			if (flushOnlyWriter == null)
-				flushOnlyWriter = new OutputStreamWriter((OutputStream)output, IOUtils.UTF8);
+				flushOnlyWriter = new OutputStreamWriter((OutputStream)output, UTF8);
 			return flushOnlyWriter;
 		}
 		if (output instanceof File) {
@@ -658,7 +658,7 @@ public class SerializerSession extends BeanSession {
 		if (o == null)
 			return null;
 		if (o.getClass() == Class.class)
-			return ClassUtils.getReadableClassName((Class<?>)o);
+			return getReadableClassName((Class<?>)o);
 		String s = o.toString();
 		if (trimStrings)
 			s = s.trim();
@@ -698,7 +698,7 @@ public class SerializerSession extends BeanSession {
 
 		private String toString(boolean simple) {
 			StringBuilder sb = new StringBuilder().append('[').append(depth).append(']');
-			sb.append(StringUtils.isEmpty(name) ? "<noname>" : name).append(':');
+			sb.append(isEmpty(name) ? "<noname>" : name).append(':');
 			sb.append(aType.toString(simple));
 			if (aType != aType.getSerializedClassMeta())
 				sb.append('/').append(aType.getSerializedClassMeta().toString(simple));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/svl/DefaultingVar.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/svl/DefaultingVar.java b/juneau-core/src/main/java/org/apache/juneau/svl/DefaultingVar.java
index 914c8c0..3d5d6da 100644
--- a/juneau-core/src/main/java/org/apache/juneau/svl/DefaultingVar.java
+++ b/juneau-core/src/main/java/org/apache/juneau/svl/DefaultingVar.java
@@ -12,7 +12,7 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.svl;
 
-import org.apache.juneau.internal.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 /**
  * Interface for the resolution of vars with a default value if the <code>resolve()</code> method returns <jk>null</jk>.
@@ -40,7 +40,7 @@ public abstract class DefaultingVar extends SimpleVar {
 		int i = s.indexOf(',');
 		if (i == -1)
 			return resolve(session, s.trim());
-		String[] s2 = StringUtils.split(s, ',');
+		String[] s2 = split(s, ',');
 		String v = resolve(session, s2[0]);
 		if (v == null)
 			v = s2[1];

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/svl/MultipartVar.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/svl/MultipartVar.java b/juneau-core/src/main/java/org/apache/juneau/svl/MultipartVar.java
index a777aa7..c360eb9 100644
--- a/juneau-core/src/main/java/org/apache/juneau/svl/MultipartVar.java
+++ b/juneau-core/src/main/java/org/apache/juneau/svl/MultipartVar.java
@@ -12,7 +12,7 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.svl;
 
-import org.apache.juneau.internal.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 /**
  * Interface for the resolution of vars that consist of a comma-delimited list.
@@ -43,7 +43,7 @@ public abstract class MultipartVar extends SimpleVar {
 
 	@Override /* Var */
 	public String resolve(VarResolverSession session, String s) {
-		String[] s2 = s.indexOf(',') == -1 ? new String[]{s.trim()} : StringUtils.split(s, ',');
+		String[] s2 = s.indexOf(',') == -1 ? new String[]{s.trim()} : split(s, ',');
 		return resolve(session, s2);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java b/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java
index 9d6428a..d6df847 100644
--- a/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java
@@ -12,7 +12,7 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.svl;
 
-import static java.text.MessageFormat.*;
+import static org.apache.juneau.internal.ClassUtils.*;
 
 import java.util.*;
 
@@ -47,15 +47,7 @@ public class VarResolverBuilder {
 	@SuppressWarnings("unchecked")
 	public VarResolverBuilder vars(Class<?>...vars) {
 		for (Class<?> v : vars) {
-			try {
-				v.newInstance();
-			} catch (InstantiationException e) {
-				throw new UnsupportedOperationException(format("Cannot instantiate variable class {0}.  Must have a public no-arg constructor.", v.getName()));
-			} catch (RuntimeException e) {
-				throw e;
-			} catch (Exception e) {
-				throw new RuntimeException(e);
-			}
+			newInstance(Var.class, v);
 			this.vars.add((Class<? extends Var>)v);
 		}
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverContext.java b/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverContext.java
index b3d0e18..416ee57 100644
--- a/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverContext.java
@@ -12,11 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.svl;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+
 import java.util.*;
 import java.util.concurrent.*;
 
-import org.apache.juneau.internal.*;
-
 /**
  * Configurable properties on the {@link VarResolver} class.
  * <p>
@@ -41,14 +41,10 @@ public class VarResolverContext {
 
 		Map<String,Var> m = new ConcurrentSkipListMap<String,Var>();
 		for (Class<?> c : vars) {
-			if (! ClassUtils.isParentClass(Var.class, c))
+			if (! isParentClass(Var.class, c))
 				throw new RuntimeException("Invalid variable class.  Must extend from Var");
-			try {
-				Var v = (Var)c.newInstance();
-				m.put(v.getName(), v);
-			} catch (Exception e) {
-				throw new RuntimeException(e);
-			}
+			Var v = newInstance(Var.class, c);
+			m.put(v.getName(), v);
 		}
 
 		this.varMap = Collections.unmodifiableMap(m);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java b/juneau-core/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
index 10fc8be..4c1956e 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
@@ -12,11 +12,12 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transform;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Bean filter builder initialized from the contents of a {@link Bean @Bean} annotation found on a class.
@@ -40,7 +41,7 @@ public final class AnnotationBeanFilterBuilder extends BeanFilterBuilder {
 			Bean b = li.previous();
 
 			if (! b.properties().isEmpty())
-				properties(StringUtils.split(b.properties(), ','));
+				properties(split(b.properties(), ','));
 
 			if (! b.typeName().isEmpty())
 				typeName(b.typeName());
@@ -49,7 +50,7 @@ public final class AnnotationBeanFilterBuilder extends BeanFilterBuilder {
 				sortProperties(true);
 
 			if (! b.excludeProperties().isEmpty())
-				excludeProperties(StringUtils.split(b.excludeProperties(), ','));
+				excludeProperties(split(b.excludeProperties(), ','));
 
 			if (b.propertyNamer() != PropertyNamerDefault.class)
 				propertyNamer(b.propertyNamer());

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java b/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java
index 91ad7b1..931e701 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java
@@ -12,9 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transform;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Parent class for all bean filters.
@@ -41,8 +42,8 @@ public class BeanFilter {
 	BeanFilter(BeanFilterBuilder builder) {
 		this.beanClass = builder.beanClass;
 		this.typeName = builder.typeName;
-		this.properties = StringUtils.split(builder.properties, ',');
-		this.excludeProperties = StringUtils.split(builder.excludeProperties, ',');
+		this.properties = split(builder.properties, ',');
+		this.excludeProperties = split(builder.excludeProperties, ',');
 		this.interfaceClass = builder.interfaceClass;
 		this.stopClass = builder.stopClass;
 		this.sortProperties = builder.sortProperties;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java b/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
index bf30f3f..c166407 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transform;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+
 import java.beans.*;
 import java.util.*;
 
@@ -200,7 +202,7 @@ public abstract class BeanFilterBuilder {
 	 * @throws Exception Thrown from constructor method.
 	 */
 	public BeanFilterBuilder propertyNamer(Class<? extends PropertyNamer> c) throws Exception {
-		this.propertyNamer = c.newInstance();
+		this.propertyNamer = newInstance(PropertyNamer.class, c);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java b/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
index 477a37a..2986aaf 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transform;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+
 import java.util.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
 
@@ -113,8 +114,8 @@ public abstract class PojoSwap<T,S> {
 	 */
 	@SuppressWarnings("unchecked")
 	protected PojoSwap() {
-		normalClass = (Class<T>)ClassUtils.resolveParameterType(PojoSwap.class, 0, this.getClass());
-		swapClass = ClassUtils.resolveParameterType(PojoSwap.class, 1, this.getClass());
+		normalClass = (Class<T>)resolveParameterType(PojoSwap.class, 0, this.getClass());
+		swapClass = resolveParameterType(PojoSwap.class, 1, this.getClass());
 	}
 
 	/**
@@ -213,7 +214,7 @@ public abstract class PojoSwap<T,S> {
 	public boolean isNormalObject(Object o) {
 		if (o == null)
 			return false;
-		return ClassUtils.isParentClass(normalClass, o.getClass());
+		return isParentClass(normalClass, o.getClass());
 	}
 
 	/**
@@ -226,7 +227,7 @@ public abstract class PojoSwap<T,S> {
 	public boolean isSwappedObject(Object o) {
 		if (o == null)
 			return false;
-		return ClassUtils.isParentClass(swapClass, o.getClass());
+		return isParentClass(swapClass, o.getClass());
 	}
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/transforms/ByteArrayBase64Swap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transforms/ByteArrayBase64Swap.java b/juneau-core/src/main/java/org/apache/juneau/transforms/ByteArrayBase64Swap.java
index 2eea048..5183c5b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transforms/ByteArrayBase64Swap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transforms/ByteArrayBase64Swap.java
@@ -12,8 +12,9 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transform.*;
@@ -29,7 +30,7 @@ public class ByteArrayBase64Swap extends StringSwap<byte[]> {
 	@Override /* PojoSwap */
 	public String swap(BeanSession session, byte[] b) throws SerializeException {
 		try {
-			return StringUtils.base64Encode(b);
+			return base64Encode(b);
 		} catch (Exception e) {
 			throw new SerializeException(e);
 		}
@@ -41,7 +42,7 @@ public class ByteArrayBase64Swap extends StringSwap<byte[]> {
 	@Override /* PojoSwap */
 	public byte[] unswap(BeanSession session, String s, ClassMeta<?> hint) throws ParseException {
 		try {
-			return StringUtils.base64Decode(s);
+			return base64Decode(s);
 		} catch (Exception e) {
 			throw new ParseException(e);
 		}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java b/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
index 2b180c2..2490c99 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
@@ -12,13 +12,14 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.text.*;
 import java.util.*;
 
 import javax.xml.bind.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.ParseException;
 import org.apache.juneau.transform.*;
 
@@ -130,7 +131,7 @@ public class CalendarSwap extends StringSwap<Calendar> {
 		@Override /* PojoSwap */
 		public Calendar unswap(BeanSession session, String o, ClassMeta<?> hint) throws ParseException {
 			try {
-				if (StringUtils.isEmpty(o))
+				if (isEmpty(o))
 					return null;
 				return convert(DatatypeConverter.parseDateTime(o), hint);
 			} catch (Exception e) {
@@ -161,7 +162,7 @@ public class CalendarSwap extends StringSwap<Calendar> {
 		@Override /* PojoSwap */
 		public Calendar unswap(BeanSession session, String o, ClassMeta<?> hint) throws ParseException {
 			try {
-				if (StringUtils.isEmpty(o))
+				if (isEmpty(o))
 					return null;
 				return convert(DatatypeConverter.parseDateTime(o), hint);
 			} catch (Exception e) {
@@ -559,7 +560,7 @@ public class CalendarSwap extends StringSwap<Calendar> {
 	@Override /* PojoSwap */
 	public Calendar unswap(BeanSession session, String o, ClassMeta<?> hint) throws ParseException {
 		try {
-			if (StringUtils.isEmpty(o))
+			if (isEmpty(o))
 				return null;
 			return convert(getDateFormat(session, null).parse(o), hint, session);
 		} catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java b/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java
index 913f649..642ba1b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java
@@ -12,13 +12,14 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.text.*;
 import java.util.*;
 
 import javax.xml.bind.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.ParseException;
 import org.apache.juneau.transform.*;
 
@@ -129,7 +130,7 @@ public class DateSwap extends StringSwap<Date> {
 		@Override /* PojoSwap */
 		public Date unswap(BeanSession session, String o, ClassMeta<?> hint) throws ParseException {
 			try {
-				if (StringUtils.isEmpty(o))
+				if (isEmpty(o))
 					return null;
 				return convert(DatatypeConverter.parseDateTime(o).getTime(), hint);
 			} catch (Exception e) {
@@ -162,7 +163,7 @@ public class DateSwap extends StringSwap<Date> {
 		@Override /* PojoSwap */
 		public Date unswap(BeanSession session, String o, ClassMeta<?> hint) throws ParseException {
 			try {
-				if (StringUtils.isEmpty(o))
+				if (isEmpty(o))
 					return null;
 				return convert(DatatypeConverter.parseDateTime(o).getTime(), hint);
 			} catch (Exception e) {
@@ -560,7 +561,7 @@ public class DateSwap extends StringSwap<Date> {
 	@Override /* PojoSwap */
 	public Date unswap(BeanSession session, String o, ClassMeta<?> hint) throws ParseException {
 		try {
-			if (StringUtils.isEmpty(o))
+			if (isEmpty(o))
 				return null;
 			return convert(new Date(getDateFormat(session).parse(o).getTime()), hint);
 		} catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/transforms/ReaderSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transforms/ReaderSwap.java b/juneau-core/src/main/java/org/apache/juneau/transforms/ReaderSwap.java
index 5722e04..cbca731 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transforms/ReaderSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transforms/ReaderSwap.java
@@ -12,11 +12,12 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.html.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
@@ -97,7 +98,7 @@ public class ReaderSwap extends PojoSwap<Reader,Object> {
 	public Object swap(BeanSession session, Reader o) throws SerializeException {
 		try {
 			if (parser == null)
-				return IOUtils.read(o);
+				return read(o);
 			return parser.parse(o, Object.class);
 		} catch (IOException e) {
 			return e.getLocalizedMessage();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/transforms/XMLGregorianCalendarSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transforms/XMLGregorianCalendarSwap.java b/juneau-core/src/main/java/org/apache/juneau/transforms/XMLGregorianCalendarSwap.java
index 9808bcf..31f26d3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transforms/XMLGregorianCalendarSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transforms/XMLGregorianCalendarSwap.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import javax.xml.datatype.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transform.*;
@@ -55,7 +56,7 @@ public class XMLGregorianCalendarSwap extends StringSwap<XMLGregorianCalendar> {
 	 */
 	@Override /* PojoSwap */
 	public XMLGregorianCalendar unswap(BeanSession session, String s, ClassMeta<?> hint) throws ParseException {
-		if (StringUtils.isEmpty(s))
+		if (isEmpty(s))
 			return null;
 		return dtf.newXMLGregorianCalendar(s);
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/uon/UonParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/uon/UonParser.java b/juneau-core/src/main/java/org/apache/juneau/uon/UonParser.java
index 32ea7b4..a455178 100644
--- a/juneau-core/src/main/java/org/apache/juneau/uon/UonParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/uon/UonParser.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.uon;
 
 import static org.apache.juneau.uon.UonParserContext.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.lang.reflect.*;
 import java.util.*;
@@ -144,7 +145,7 @@ public class UonParser extends ReaderParser {
 					if ("true".equals(s) || "false".equals(s))
 						o = Boolean.valueOf(s);
 					else if (! "null".equals(s)) {
-						if (StringUtils.isNumeric(s))
+						if (isNumeric(s))
 							o = StringUtils.parseNumber(s, Number.class);
 						else
 							o = s;
@@ -647,7 +648,7 @@ public class UonParser extends ReaderParser {
 		}
 
 		if (isUrlParamValue)
-			s = StringUtils.trim(s);
+			s = trim(s);
 
 		return ("null".equals(s) ? null : session.trim(s));
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/uon/UonUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/uon/UonUtils.java b/juneau-core/src/main/java/org/apache/juneau/uon/UonUtils.java
index 0f68a77..1e22b25 100644
--- a/juneau-core/src/main/java/org/apache/juneau/uon/UonUtils.java
+++ b/juneau-core/src/main/java/org/apache/juneau/uon/UonUtils.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.uon;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import org.apache.juneau.internal.*;
 
 /**
@@ -44,7 +46,7 @@ public final class UonUtils {
 					"true".equals(s)
 					|| "false".equals(s)
 					|| "null".equals(s)
-					|| StringUtils.isNumeric(s)
+					|| isNumeric(s)
 				)
 			)
 		);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index 800129f..b19c1a6 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -13,6 +13,8 @@
 package org.apache.juneau.urlencoding;
 
 import static org.apache.juneau.uon.UonParserContext.*;
+import static org.apache.juneau.internal.ArrayUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.lang.reflect.*;
 import java.util.*;
@@ -20,7 +22,6 @@ import java.util.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.transform.*;
 import org.apache.juneau.uon.*;
@@ -111,7 +112,7 @@ public class UrlEncodingParser extends UonParser {
 			parseIntoMap(session, r, m, sType, c2);
 			c2.addAll(m.values());
 			if (sType.isArray())
-				o = ArrayUtils.toArray(c2, sType.getElementType().getInnerClass());
+				o = toArray(c2, sType.getElementType().getInnerClass());
 			else if (sType.isArgs())
 				o = c2.toArray(new Object[c2.size()]);
 			else
@@ -341,7 +342,7 @@ public class UrlEncodingParser extends UonParser {
 
 		Map<String,String[]> m = map == null ? new TreeMap<String,String[]>() : map;
 
-		if (StringUtils.isEmpty(qs))
+		if (isEmpty(qs))
 			return m;
 
 		UonReader r = new UonReader(qs, true);
@@ -410,7 +411,7 @@ public class UrlEncodingParser extends UonParser {
 			if (! b)
 				m.put(key, null);
 		} else if (b && m.get(key) != null) {
-			m.put(key, ArrayUtils.append(m.get(key), val));
+			m.put(key, append(m.get(key), val));
 		} else {
 			m.put(key, new String[]{val});
 		}
@@ -464,7 +465,7 @@ public class UrlEncodingParser extends UonParser {
 			// Shortcut - If we're returning a string and the value doesn't start with "'" or is "null", then
 			// just return the string since it's a plain value.
 			// This allows us to bypass the creation of a UonParserSession object.
-			char x = StringUtils.firstNonWhitespaceChar(in);
+			char x = firstNonWhitespaceChar(in);
 			if (x != '\'' && x != 'n' && in.indexOf('~') == -1)
 				return (T)in;
 			if (x == 'n' && "null".equals(in))

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
index db65a96..4db9313 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
@@ -14,6 +14,8 @@ package org.apache.juneau.urlencoding;
 
 import static org.apache.juneau.serializer.SerializerContext.*;
 import static org.apache.juneau.uon.UonSerializerContext.*;
+import static org.apache.juneau.internal.ArrayUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -23,7 +25,6 @@ import java.util.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transform.*;
 import org.apache.juneau.uon.*;
@@ -311,7 +312,7 @@ public class UrlEncodingSerializer extends UonSerializer implements PartSerializ
 			Object value = e.getValue();
 
 			if (session.shouldUseExpandedParams(value)) {
-				Iterator i = value instanceof Collection ? ((Collection)value).iterator() : ArrayUtils.iterator(value);
+				Iterator i = value instanceof Collection ? ((Collection)value).iterator() : iterator(value);
 				while (i.hasNext()) {
 					if (addAmp)
 						out.cr(depth).append('&');
@@ -372,7 +373,7 @@ public class UrlEncodingSerializer extends UonSerializer implements PartSerializ
 			if (value != null && session.shouldUseExpandedParams(pMeta)) {
 				// Transformed object array bean properties may be transformed resulting in ArrayLists,
 				// so we need to check type if we think it's an array.
-				Iterator i = (cMeta.isCollection() || value instanceof Collection) ? ((Collection)value).iterator() : ArrayUtils.iterator(value);
+				Iterator i = (cMeta.isCollection() || value instanceof Collection) ? ((Collection)value).iterator() : iterator(value);
 				while (i.hasNext()) {
 					if (addAmp)
 						out.cr(depth).append('&');
@@ -426,7 +427,7 @@ public class UrlEncodingSerializer extends UonSerializer implements PartSerializ
 					String s = o.toString();
 					boolean ptt = (plainTextParams != null ? plainTextParams : ctx.plainTextParams());
 					if (ptt || s.isEmpty() || ! UonUtils.needsQuotes(s))
-						return (urlEncode ? StringUtils.urlEncode(s) : s);
+						return (urlEncode ? urlEncode(s) : s);
 				}
 			}
 
@@ -462,7 +463,7 @@ public class UrlEncodingSerializer extends UonSerializer implements PartSerializ
 			case FORM_DATA: return serializePart(value, false, null);
 			case PATH: return serializePart(value, false, null);
 			case QUERY: return serializePart(value, false, null);
-			default: return StringUtils.toString(value);
+			default: return toString(value);
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/utils/Args.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/utils/Args.java b/juneau-core/src/main/java/org/apache/juneau/utils/Args.java
index 0399c39..8768d25 100644
--- a/juneau-core/src/main/java/org/apache/juneau/utils/Args.java
+++ b/juneau-core/src/main/java/org/apache/juneau/utils/Args.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.utils;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.util.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Utility class to make it easier to work with command-line arguments pass in through a <code>main(String[] args)</code> method.
@@ -109,7 +110,7 @@ public final class Args extends ObjectMap {
 		Integer i = 0;
 		while (! argList.isEmpty()) {
 			String s = argList.get(0);
-			if (StringUtils.startsWith(s,'-'))
+			if (startsWith(s,'-'))
 				break;
 			put(i.toString(), argList.remove(0));
 			i++;
@@ -119,7 +120,7 @@ public final class Args extends ObjectMap {
 		String key = null;
 		while (! argList.isEmpty()) {
 			String s = argList.remove(0);
-			if (StringUtils.startsWith(s, '-')) {
+			if (startsWith(s, '-')) {
 				key = s.substring(1);
 				if (key.matches("\\d*"))
 					throw new RuntimeException("Invalid optional key name '"+key+"'");

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/utils/IOPipe.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/utils/IOPipe.java b/juneau-core/src/main/java/org/apache/juneau/utils/IOPipe.java
index 743f7ae..86a4d68 100644
--- a/juneau-core/src/main/java/org/apache/juneau/utils/IOPipe.java
+++ b/juneau-core/src/main/java/org/apache/juneau/utils/IOPipe.java
@@ -13,6 +13,8 @@
 package org.apache.juneau.utils;
 
 import static org.apache.juneau.internal.ThrowableUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
+
 
 import java.io.*;
 import java.util.*;
@@ -161,18 +163,18 @@ public class IOPipe {
 		int c = 0;
 
 		try {
-		if (input instanceof InputStream && output instanceof OutputStream && lineProcessor == null) {
-			InputStream in = (InputStream)input;
-			OutputStream out = (OutputStream)output;
-			byte[] b = new byte[buffSize];
-			int i;
+			if (input instanceof InputStream && output instanceof OutputStream && lineProcessor == null) {
+				InputStream in = (InputStream)input;
+				OutputStream out = (OutputStream)output;
+				byte[] b = new byte[buffSize];
+				int i;
 				while ((i = in.read(b)) > 0) {
 					c += i;
 					out.write(b, 0, i);
 				}
-		} else {
-				Reader in = (input instanceof Reader ? (Reader)input : new InputStreamReader((InputStream)input, IOUtils.UTF8));
-				Writer out = (output instanceof Writer ? (Writer)output : new OutputStreamWriter((OutputStream)output, IOUtils.UTF8));
+			} else {
+				Reader in = (input instanceof Reader ? (Reader)input : new InputStreamReader((InputStream)input, UTF8));
+				Writer out = (output instanceof Writer ? (Writer)output : new OutputStreamWriter((OutputStream)output, UTF8));
 				output = out;
 				input = in;
 				if (byLines || lineProcessor != null) {
@@ -201,16 +203,16 @@ public class IOPipe {
 					}
 				}
 			}
-			} finally {
+		} finally {
 			closeQuietly(input, output);
 		}
 		return c;
 	}
 
 	private void closeQuietly(Object input, Object output) {
-					if (closeIn)
+		if (closeIn)
 			IOUtils.closeQuietly(input);
-					if (closeOut)
+		if (closeOut)
 			IOUtils.closeQuietly(output);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/utils/ManifestFile.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/utils/ManifestFile.java b/juneau-core/src/main/java/org/apache/juneau/utils/ManifestFile.java
index 3f4d9a4..dbca516 100644
--- a/juneau-core/src/main/java/org/apache/juneau/utils/ManifestFile.java
+++ b/juneau-core/src/main/java/org/apache/juneau/utils/ManifestFile.java
@@ -12,13 +12,14 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.utils;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 import java.net.*;
 import java.util.*;
 import java.util.jar.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Utility class for working with Jar manifest files.
@@ -43,9 +44,9 @@ public class ManifestFile extends ObjectMap {
 			mf.read(fis);
 			load(mf);
 		} catch (IOException e) {
-			throw new IOException("Problem detected in MANIFEST.MF.  Contents below:\n" + IOUtils.read(f), e);
+			throw new IOException("Problem detected in MANIFEST.MF.  Contents below:\n" + read(f), e);
 		} finally {
-			IOUtils.closeQuietly(fis);
+			closeQuietly(fis);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/utils/MessageBundle.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/utils/MessageBundle.java b/juneau-core/src/main/java/org/apache/juneau/utils/MessageBundle.java
index cb6dd18..2feef38 100644
--- a/juneau-core/src/main/java/org/apache/juneau/utils/MessageBundle.java
+++ b/juneau-core/src/main/java/org/apache/juneau/utils/MessageBundle.java
@@ -12,13 +12,14 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.utils;
 
+import static org.apache.juneau.internal.ThrowableUtils.*;
+
 import java.text.*;
 import java.util.*;
 import java.util.concurrent.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Wraps a {@link ResourceBundle} to provide some useful additional functionality.
@@ -136,7 +137,7 @@ public class MessageBundle extends ResourceBundle {
 	 */
 	@SuppressWarnings("hiding")
 	public MessageBundle addSearchPath(Class<?> forClass, String bundlePath) {
-		ThrowableUtils.assertSameThread(creationThreadId, "This method can only be called from the same thread that created the object.");
+		assertSameThread(creationThreadId, "This method can only be called from the same thread that created the object.");
 		MessageBundle srb = new MessageBundle(forClass, bundlePath);
 		if (srb.rb != null) {
 			allKeys.addAll(srb.keySet());

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/utils/MetadataMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/utils/MetadataMap.java b/juneau-core/src/main/java/org/apache/juneau/utils/MetadataMap.java
index 62d4623..ab03730 100644
--- a/juneau-core/src/main/java/org/apache/juneau/utils/MetadataMap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/utils/MetadataMap.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.utils;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+
 import java.lang.reflect.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Utility class for quick lookup of class metadata instances.
@@ -56,7 +57,7 @@ public class MetadataMap {
 			try {
 				for (Constructor<?> con : c.getConstructors()) {
 					Class<?>[] params = con.getParameterTypes();
-					if (params.length == 1 && ClassUtils.isParentClass(params[0], constructorArg.getClass())) {
+					if (params.length == 1 && isParentClass(params[0], constructorArg.getClass())) {
 						o = con.newInstance(constructorArg);
 						break;
 					}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java b/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java
index 4f76b5a..e93f989 100644
--- a/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java
+++ b/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.utils;
 
 import static java.util.Calendar.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.text.*;
 import java.util.*;
@@ -364,7 +365,7 @@ public final class PojoQuery {
 		List<String> columns = new ArrayList<String>(sort.keySet());
 		Collections.reverse(columns);
 		for (final String c : columns) {
-			final boolean isDesc = StringUtils.startsWith(sort.get(c).toString(), 'd');
+			final boolean isDesc = startsWith(sort.get(c).toString(), 'd');
 			Comparator comp = new Comparator<Map>() {
 				@Override /* Comparator */
 				public int compare(Map m1, Map m2) {
@@ -638,7 +639,7 @@ public final class PojoQuery {
 
 			// Make all tokens 'ORed'.  There is no way to AND numeric tokens.
 			for (int i = 0; i < s2.length; i++)
-				if (! StringUtils.startsWith(s2[i], '!'))
+				if (! startsWith(s2[i], '!'))
 					s2[i] = "^"+s2[i];
 
 			List<String> l = new LinkedList<String>();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/utils/ProcBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/utils/ProcBuilder.java b/juneau-core/src/main/java/org/apache/juneau/utils/ProcBuilder.java
index 376317b..d44831f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/utils/ProcBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/utils/ProcBuilder.java
@@ -12,6 +12,9 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.utils;
 
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 import java.lang.reflect.*;
 import java.util.*;
@@ -282,13 +285,13 @@ public class ProcBuilder {
 			throw new IOException("No command specified in ProcBuilder.");
 		try {
 			logWriters.append(divider).append('\n').flush();
-			logWriters.append(StringUtils.join(pb.command(), " ")).append('\n').flush();
+			logWriters.append(join(pb.command(), " ")).append('\n').flush();
 			p = pb.start();
 			IOPipe.create(p.getInputStream(), outWriters).lineProcessor(lp).byLines(byLines).run();
 			int rc = p.waitFor();
 			logWriters.append("Exit: ").append(String.valueOf(p.exitValue())).append('\n').flush();
 			if (rc > maxExitStatus)
-				throw new IOException("Return code "+rc+" from command " + StringUtils.join(pb.command(), " "));
+				throw new IOException("Return code "+rc+" from command " + join(pb.command(), " "));
 			return rc;
 		} finally {
 			close();
@@ -327,7 +330,7 @@ public class ProcBuilder {
 	 * This method is only needed if the {@link #getScanner()} method was used.
 	 */
 	private void close() {
-		IOUtils.closeQuietly(logWriters, outWriters);
+		closeQuietly(logWriters, outWriters);
 		if (p != null)
 			p.destroy();
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/xml/XmlClassMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlClassMeta.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlClassMeta.java
index fb0a9c2..8624c43 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlClassMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlClassMeta.java
@@ -12,6 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.xml;
 
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
+
+
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -37,10 +41,10 @@ public class XmlClassMeta extends ClassMetaExtended {
 		super(cm);
 		Class<?> c = getInnerClass();
 		this.namespace = findNamespace(c);
-		this.xml =  ReflectionUtils.getAnnotation(Xml.class, c);
+		this.xml = ReflectionUtils.getAnnotation(Xml.class, c);
 		if (xml != null) {
 			this.format = xml.format();
-			this.childName = StringUtils.nullIfEmpty(xml.childName());
+			this.childName = nullIfEmpty(xml.childName());
 
 		} else {
 			this.format = XmlFormat.DEFAULT;
@@ -99,8 +103,8 @@ public class XmlClassMeta extends ClassMetaExtended {
 		if (c == null)
 			return null;
 
-		List<Xml> xmls = ReflectionUtils.findAnnotations(Xml.class, c);
-		List<XmlSchema> schemas = ReflectionUtils.findAnnotations(XmlSchema.class, c);
+		List<Xml> xmls = findAnnotations(Xml.class, c);
+		List<XmlSchema> schemas = findAnnotations(XmlSchema.class, c);
 		return XmlUtils.findNamespace(xmls, schemas);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java
index ff216bd..098c5ee 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java
@@ -14,6 +14,7 @@ package org.apache.juneau.xml;
 
 import static javax.xml.stream.XMLStreamConstants.*;
 import static org.apache.juneau.xml.XmlParserContext.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -24,7 +25,6 @@ import javax.xml.stream.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.xml.annotation.*;
 
@@ -101,7 +101,7 @@ public class XmlParserSession extends ParserSession {
 	 */
 	public final XMLStreamReader getXmlStreamReader() throws Exception {
 		try {
-			Reader r = IOUtils.getBufferedReader(getReader());
+			Reader r = getBufferedReader(getReader());
 			XMLInputFactory factory = XMLInputFactory.newInstance();
 			factory.setProperty(XMLInputFactory.IS_VALIDATING, validating);
 			factory.setProperty(XMLInputFactory.IS_COALESCING, true);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java
index 9a499d2..aeb5fc2 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java
@@ -13,6 +13,8 @@
 package org.apache.juneau.xml;
 
 import static org.apache.juneau.xml.annotation.XmlFormat.*;
+import static org.apache.juneau.internal.ArrayUtils.*;
+
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -27,7 +29,6 @@ import javax.xml.validation.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.xml.annotation.*;
 import org.w3c.dom.bootstrap.*;
@@ -85,7 +86,7 @@ public class XmlSchemaSerializer extends XmlSerializer {
 			findNsfMappings(s, o);
 
 		Namespace xs = s.getXsNamespace();
-		Namespace[] allNs = ArrayUtils.append(new Namespace[]{s.getDefaultNamespace()}, s.getNamespaces());
+		Namespace[] allNs = append(new Namespace[]{s.getDefaultNamespace()}, s.getNamespaces());
 
 		Schemas schemas = new Schemas(s, xs, s.getDefaultNamespace(), allNs);
 		schemas.process(s, o);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
index bd99974..5ee1962 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
@@ -15,13 +15,14 @@ package org.apache.juneau.xml;
 import static org.apache.juneau.msgpack.MsgPackSerializerContext.*;
 import static org.apache.juneau.xml.NamespaceFactory.*;
 import static org.apache.juneau.xml.XmlSerializerContext.*;
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.ArrayUtils.*;
 
 import java.lang.reflect.*;
 import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.serializer.*;
 
@@ -87,7 +88,7 @@ public class XmlSerializerSession extends SerializerSession {
 	private static Namespace findDefaultNamespace(String s) {
 		if (s == null)
 			return null;
-		if (StringUtils.startsWith(s, '{'))
+		if (startsWith(s, '{'))
 			return parseNamespace(s);
 		if (! s.startsWith("http://"))
 			return get(s, "http://unknown");
@@ -115,7 +116,7 @@ public class XmlSerializerSession extends SerializerSession {
 		if (defaultNamespace != null && (ns.uri.equals(defaultNamespace.uri) || ns.name.equals(defaultNamespace.name)))
 			defaultNamespace = ns;
 		else
-			namespaces = ArrayUtils.append(namespaces, ns);
+			namespaces = append(namespaces, ns);
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/xml/XmlUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlUtils.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlUtils.java
index 483e06d..5ffef5c 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlUtils.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlUtils.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.xml;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.io.*;
 import java.net.*;
 import java.util.*;
@@ -466,7 +468,7 @@ public final class XmlUtils {
 	// Converts an integer to a hexadecimal string padded to 4 places.
 	private static final Writer appendPaddedHexChar(Writer out, int num) throws IOException {
 		out.append("_x");
-		for (char c : StringUtils.toHex(num))
+		for (char c : toHex(num))
 			out.append(c);
 		return out.append('_');
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
----------------------------------------------------------------------
diff --git a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
index 78ad06b..ea7c661 100644
--- a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
+++ b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
@@ -14,6 +14,7 @@ package org.apache.juneau.examples.rest;
 
 import static javax.servlet.http.HttpServletResponse.*;
 import static org.apache.juneau.dto.html5.HtmlBuilder.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.sql.*;
 import java.util.*;
@@ -21,7 +22,6 @@ import java.util.*;
 import org.apache.juneau.dto.*;
 import org.apache.juneau.dto.html5.*;
 import org.apache.juneau.ini.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.microservice.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
@@ -111,7 +111,7 @@ public class SqlQueryResource extends Resource {
 		List<Object> results = new LinkedList<Object>();
 
 		// Don't try to submit empty input.
-		if (StringUtils.isEmpty(in.sql))
+		if (isEmpty(in.sql))
 			return results;
 		
 		System.err.println("SQL=["+in.sql+"]");

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java
----------------------------------------------------------------------
diff --git a/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java b/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java
index c070408..6c72dde 100644
--- a/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java
+++ b/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java
@@ -13,12 +13,12 @@
 package org.apache.juneau.examples.rest;
 
 import static org.junit.Assert.*;
+import static org.apache.juneau.internal.FileUtils.*;
 
 import java.io.*;
 
 import org.apache.http.*;
 import org.apache.http.entity.mime.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.client.*;
 import org.apache.juneau.utils.*;
 import org.junit.*;
@@ -34,7 +34,7 @@ public class TestMultiPartFormPostsTest extends RestTestcase {
 	@Test
 	public void testUpload() throws Exception {
 		RestClient client = SamplesMicroservice.DEFAULT_CLIENT;
-		File f = FileUtils.createTempFile("testMultiPartFormPosts.txt");
+		File f = createTempFile("testMultiPartFormPosts.txt");
 		IOPipe.create(new StringReader("test!"), new FileWriter(f)).closeOut().run();
 		HttpEntity entity = MultipartEntityBuilder.create().addBinaryBody(f.getName(), f).build();
 		client.doPost(URL + "/upload", entity);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java b/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
index b61fc53..8c79cf7 100644
--- a/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
+++ b/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
@@ -13,6 +13,8 @@
 package org.apache.juneau.examples.rest;
 
 import static org.junit.Assert.*;
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
 import java.text.*;
@@ -26,7 +28,6 @@ import javax.xml.transform.dom.*;
 import javax.xml.transform.stream.*;
 import javax.xml.validation.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transforms.*;
@@ -252,7 +253,7 @@ public class TestUtils {
 		if (is == null) {
 			is = new FileInputStream(p);
 		}
-		String e = IOUtils.read(is);
+		String e = read(is);
 		e = e.replaceAll("\r", "");
 		return e;
 	}
@@ -268,7 +269,7 @@ public class TestUtils {
 
 	public static void debugOut(Object o) {
 		try {
-			System.err.println(StringUtils.decodeHex(JsonSerializer.DEFAULT_LAX.serialize(o)));
+			System.err.println(decodeHex(JsonSerializer.DEFAULT_LAX.serialize(o)));
 		} catch (SerializeException e) {
 			e.printStackTrace();
 		}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-microservice/src/main/java/org/apache/juneau/microservice/Microservice.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/Microservice.java b/juneau-microservice/src/main/java/org/apache/juneau/microservice/Microservice.java
index b96f01b..4ca8551 100755
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/Microservice.java
+++ b/juneau-microservice/src/main/java/org/apache/juneau/microservice/Microservice.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.microservice;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 import java.net.*;
 import java.util.*;
@@ -416,7 +418,7 @@ public abstract class Microservice {
 				try {
 					m.read(new FileInputStream(f));
 				} catch (IOException e) {
-					System.err.println("Problem detected in MANIFEST.MF.  Contents below:\n" + IOUtils.read(f));
+					System.err.println("Problem detected in MANIFEST.MF.  Contents below:\n" + read(f));
 					throw e;
 				}
 			} else {
@@ -427,7 +429,7 @@ public abstract class Microservice {
 					try {
 						m.read(url.openStream());
 					} catch (IOException e) {
-						System.err.println("Problem detected in MANIFEST.MF.  Contents below:\n" + IOUtils.read(url.openStream()));
+						System.err.println("Problem detected in MANIFEST.MF.  Contents below:\n" + read(url.openStream()));
 						throw e;
 					}
 				}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java b/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
index 9c05035..a4e4953 100755
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
+++ b/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
@@ -12,6 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.microservice;
 
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.FileUtils.*;
+import static org.apache.juneau.internal.ArrayUtils.*;
+import static org.apache.juneau.internal.ClassUtils.*;
+
 import java.io.*;
 import java.net.*;
 import java.util.*;
@@ -22,7 +27,6 @@ import javax.servlet.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.ini.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.microservice.resources.*;
 import org.apache.juneau.parser.*;
@@ -249,10 +253,10 @@ public class RestMicroservice extends Microservice {
 		ConfigFile cf = getConfig();
 		logger = Logger.getLogger("");
 		String logFile = cf.getString("Logging/logFile");
-		if (! StringUtils.isEmpty(logFile)) {
+		if (! isEmpty(logFile)) {
 			LogManager.getLogManager().reset();
 			String logDir = cf.getString("Logging/logDir", ".");
-			FileUtils.mkdirs(new File(logDir), false);
+			mkdirs(new File(logDir), false);
 			boolean append = cf.getBoolean("Logging/append");
 			int limit = cf.getInt("Logging/limit", 1024*1024);
 			int count = cf.getInt("Logging/count", 1);
@@ -361,8 +365,8 @@ public class RestMicroservice extends Microservice {
 
 			// We're using Jetty 8 that doesn't allow regular expression matching in SslContextFactory.setExcludeCipherSuites(),
 			// so to prevent having the config file list all old cipher suites, exclude the known bad ones.
-			String[] excludeCipherSuites = ArrayUtils.combine(
-				StringUtils.split("SSL_RSA_WITH_DES_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA", ','),
+			String[] excludeCipherSuites = combine(
+				split("SSL_RSA_WITH_DES_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA", ','),
 				sslContextFactory.getExcludeCipherSuites()
 			);
 			sslContextFactory.setExcludeCipherSuites(excludeCipherSuites);
@@ -480,14 +484,14 @@ public class RestMicroservice extends Microservice {
 		if (resourceMap != null && ! resourceMap.isEmpty()) {
 			for (Map.Entry<String,Object> e : resourceMap.entrySet()) {
 				Class<?> c = Class.forName(e.getValue().toString());
-				if (! ClassUtils.isParentClass(Servlet.class, c))
+				if (! isParentClass(Servlet.class, c))
 					throw new ClassNotFoundException("Invalid class specified as resource.  Must be a Servlet.  Class='"+c.getName()+"'");
 				rm.put(e.getKey(), (Class<? extends Servlet>)c);
 			}
 		} else if (resources.length > 0) {
 			for (String resource : resources) {
 				Class<?> c = Class.forName(resource);
-				if (! ClassUtils.isParentClass(Servlet.class, c))
+				if (! isParentClass(Servlet.class, c))
 					throw new ClassNotFoundException("Invalid class specified as resource.  Must be a Servlet.  Class='"+c.getName()+"'");
 				RestResource rr = c.getAnnotation(RestResource.class);
 				String path = rr == null ? "/*" : rr.path();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
index 312dff1..8731183 100644
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
+++ b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.microservice.resources;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.text.*;
 import java.util.*;
 import java.util.concurrent.*;
@@ -20,8 +22,6 @@ import java.util.logging.*;
 import java.util.logging.Formatter;
 import java.util.regex.*;
 
-import org.apache.juneau.internal.*;
-
 /**
  * Log entry formatter.
  * <p>
@@ -239,7 +239,7 @@ public class LogEntryFormatter extends Formatter {
 			r.getThreadID(),
 			r.getThrown() == null ? "" : r.getThrown().getMessage());
 		if (t != null)
-			s += String.format("%n%s", StringUtils.getStackTrace(r.getThrown()));
+			s += String.format("%n%s", getStackTrace(r.getThrown()));
 		return s;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index e39aa7a..865c35c 100755
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -15,6 +15,7 @@ package org.apache.juneau.microservice.resources;
 import static javax.servlet.http.HttpServletResponse.*;
 import static org.apache.juneau.html.HtmlDocSerializerContext.*;
 import static org.apache.juneau.rest.RestContext.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
 import java.net.*;
@@ -25,7 +26,6 @@ import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.dto.*;
 import org.apache.juneau.ini.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.microservice.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
@@ -133,7 +133,7 @@ public class LogsResource extends Resource {
 		if (f.isDirectory())
 			throw new RestException(SC_METHOD_NOT_ALLOWED, "View not available on directories");
 
-		Date startDate = StringUtils.parseISO8601Date(start), endDate = StringUtils.parseISO8601Date(end);
+		Date startDate = parseISO8601Date(start), endDate = parseISO8601Date(end);
 
 		if (! highlight) {
 			Object o = getReader(f, startDate, endDate, thread, loggers, severity);
@@ -202,7 +202,7 @@ public class LogsResource extends Resource {
 	public LogParser viewParsedEntries(RestRequest req, @PathRemainder String path, @Query("start") String start, @Query("end") String end, @Query("thread") String thread, @Query("loggers") String[] loggers, @Query("severity") String[] severity) throws Exception {
 
 		File f = getFile(path);
-		Date startDate = StringUtils.parseISO8601Date(start), endDate = StringUtils.parseISO8601Date(end);
+		Date startDate = parseISO8601Date(start), endDate = parseISO8601Date(end);
 
 		if (f.isDirectory())
 			throw new RestException(SC_METHOD_NOT_ALLOWED, "View not available on directories");



[3/3] incubator-juneau git commit: Clean up use of internal utilities.

Posted by ja...@apache.org.
Clean up use of internal utilities.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/3bdc0d85
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/3bdc0d85
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/3bdc0d85

Branch: refs/heads/master
Commit: 3bdc0d85a10acfda791dea7a9abb06a901e8ee3f
Parents: 0ccac12
Author: JamesBognar <ja...@apache.org>
Authored: Sat Jun 3 08:01:05 2017 -0400
Committer: JamesBognar <ja...@apache.org>
Committed: Sat Jun 3 08:01:05 2017 -0400

----------------------------------------------------------------------
 .../test/java/org/apache/juneau/TestUtils.java  | 10 +--
 .../juneau/ini/ConfigFileBuilderTest.java       | 24 ++++----
 .../org/apache/juneau/ini/ConfigFileTest.java   | 17 +++---
 .../juneau/json/JsonParserEdgeCasesTest.java    | 18 +++---
 .../juneau/utils/ByteArrayInOutStreamTest.java  |  5 +-
 .../org/apache/juneau/utils/ClassUtilsTest.java | 11 ++--
 .../org/apache/juneau/utils/IOPipeTest.java     |  4 +-
 .../org/apache/juneau/utils/IOUtilsTest.java    |  4 +-
 .../juneau/utils/StringVarResolverTest.java     | 10 +--
 .../java/org/apache/juneau/BeanContext.java     | 32 ++++------
 .../main/java/org/apache/juneau/BeanMeta.java   |  9 +--
 .../org/apache/juneau/BeanPropertyMeta.java     | 29 ++++-----
 .../java/org/apache/juneau/BeanRegistry.java    | 10 +--
 .../java/org/apache/juneau/BeanSession.java     | 10 +--
 .../main/java/org/apache/juneau/ClassMeta.java  | 35 +++++------
 .../org/apache/juneau/CoreObjectBuilder.java    |  8 +--
 .../juneau/InvalidDataConversionException.java  |  9 +--
 .../main/java/org/apache/juneau/ObjectMap.java  |  5 +-
 .../java/org/apache/juneau/PropertyStore.java   | 18 +++---
 .../org/apache/juneau/dto/ResultSetList.java    |  8 ++-
 .../apache/juneau/dto/jsonschema/Sample.java    |  5 +-
 .../apache/juneau/dto/swagger/HeaderInfo.java   |  7 ++-
 .../org/apache/juneau/dto/swagger/Items.java    |  7 ++-
 .../juneau/dto/swagger/ParameterInfo.java       |  9 +--
 .../juneau/dto/swagger/SecurityScheme.java      |  5 +-
 .../juneau/encoders/EncoderGroupBuilder.java    | 26 +++-----
 .../juneau/html/HtmlDocSerializerSession.java   |  4 +-
 .../apache/juneau/html/HtmlParserSession.java   |  8 +--
 .../java/org/apache/juneau/html/HtmlWriter.java |  5 +-
 .../java/org/apache/juneau/http/Accept.java     |  3 +-
 .../org/apache/juneau/http/AcceptCharset.java   |  1 +
 .../java/org/apache/juneau/ini/ConfigFile.java  |  6 +-
 .../apache/juneau/ini/ConfigFileBuilder.java    |  6 +-
 .../org/apache/juneau/ini/ConfigFileImpl.java   |  7 ++-
 .../java/org/apache/juneau/ini/Section.java     |  8 +--
 .../org/apache/juneau/ini/SectionListener.java  |  6 +-
 .../java/org/apache/juneau/ini/XorEncoder.java  | 11 ++--
 .../org/apache/juneau/internal/ClassUtils.java  | 14 +++--
 .../org/apache/juneau/json/JsonClassMeta.java   |  4 +-
 .../java/org/apache/juneau/json/JsonParser.java |  5 +-
 .../juneau/msgpack/MsgPackInputStream.java      |  5 +-
 .../java/org/apache/juneau/parser/Parser.java   |  6 +-
 .../juneau/parser/ParserGroupBuilder.java       | 12 ++--
 .../org/apache/juneau/parser/ParserSession.java | 31 +++++-----
 .../juneau/plaintext/PlainTextParser.java       |  5 +-
 .../juneau/remoteable/RemoteMethodArg.java      |  8 +--
 .../juneau/remoteable/RemoteableMeta.java       |  5 +-
 .../juneau/remoteable/RemoteableMethodMeta.java |  5 +-
 .../serializer/OutputStreamSerializer.java      |  5 +-
 .../apache/juneau/serializer/Serializer.java    |  8 ++-
 .../serializer/SerializerGroupBuilder.java      | 12 ++--
 .../juneau/serializer/SerializerSession.java    | 14 ++---
 .../org/apache/juneau/svl/DefaultingVar.java    |  4 +-
 .../org/apache/juneau/svl/MultipartVar.java     |  4 +-
 .../apache/juneau/svl/VarResolverBuilder.java   | 12 +---
 .../apache/juneau/svl/VarResolverContext.java   | 14 ++---
 .../transform/AnnotationBeanFilterBuilder.java  |  7 ++-
 .../org/apache/juneau/transform/BeanFilter.java |  7 ++-
 .../juneau/transform/BeanFilterBuilder.java     |  4 +-
 .../org/apache/juneau/transform/PojoSwap.java   | 11 ++--
 .../juneau/transforms/ByteArrayBase64Swap.java  |  7 ++-
 .../apache/juneau/transforms/CalendarSwap.java  |  9 +--
 .../org/apache/juneau/transforms/DateSwap.java  |  9 +--
 .../apache/juneau/transforms/ReaderSwap.java    |  5 +-
 .../transforms/XMLGregorianCalendarSwap.java    |  5 +-
 .../java/org/apache/juneau/uon/UonParser.java   |  5 +-
 .../java/org/apache/juneau/uon/UonUtils.java    |  4 +-
 .../juneau/urlencoding/UrlEncodingParser.java   | 11 ++--
 .../urlencoding/UrlEncodingSerializer.java      | 11 ++--
 .../main/java/org/apache/juneau/utils/Args.java |  7 ++-
 .../java/org/apache/juneau/utils/IOPipe.java    | 24 ++++----
 .../org/apache/juneau/utils/ManifestFile.java   |  7 ++-
 .../org/apache/juneau/utils/MessageBundle.java  |  5 +-
 .../org/apache/juneau/utils/MetadataMap.java    |  5 +-
 .../java/org/apache/juneau/utils/PojoQuery.java |  5 +-
 .../org/apache/juneau/utils/ProcBuilder.java    |  9 ++-
 .../org/apache/juneau/xml/XmlClassMeta.java     | 12 ++--
 .../org/apache/juneau/xml/XmlParserSession.java |  4 +-
 .../apache/juneau/xml/XmlSchemaSerializer.java  |  5 +-
 .../apache/juneau/xml/XmlSerializerSession.java |  7 ++-
 .../java/org/apache/juneau/xml/XmlUtils.java    |  4 +-
 .../juneau/examples/rest/SqlQueryResource.java  |  4 +-
 .../rest/TestMultiPartFormPostsTest.java        |  4 +-
 .../apache/juneau/examples/rest/TestUtils.java  |  7 ++-
 .../juneau/microservice/Microservice.java       |  6 +-
 .../juneau/microservice/RestMicroservice.java   | 18 +++---
 .../resources/LogEntryFormatter.java            |  6 +-
 .../microservice/resources/LogsResource.java    |  6 +-
 .../org/apache/juneau/rest/client/RestCall.java | 14 +++--
 .../juneau/rest/client/RestCallException.java   |  9 +--
 .../apache/juneau/rest/client/RestClient.java   | 11 ++--
 .../juneau/rest/client/RestClientBuilder.java   |  4 +-
 .../juneau/rest/client/RestRequestEntity.java   |  7 ++-
 .../org/apache/juneau/rest/client/SSLOpts.java  |  4 +-
 .../apache/juneau/rest/jaxrs/BaseProvider.java  |  6 +-
 .../rest/test/CharsetEncodingsResource.java     |  5 +-
 .../juneau/rest/test/FormDataResource.java      |  5 +-
 .../apache/juneau/rest/test/GroupsResource.java |  5 +-
 .../juneau/rest/test/NoParserInputResource.java |  9 +--
 .../apache/juneau/rest/test/ParamsResource.java |  7 ++-
 .../juneau/rest/test/ParsersResource.java       | 10 +--
 .../juneau/rest/test/AcceptCharsetTest.java     |  4 +-
 .../juneau/rest/test/CharsetEncodingsTest.java  | 16 ++---
 .../org/apache/juneau/rest/test/ConfigTest.java |  4 +-
 .../apache/juneau/rest/test/ContentTest.java    | 13 ++--
 .../org/apache/juneau/rest/test/GzipTest.java   |  4 +-
 .../juneau/rest/test/RequestBeanProxyTest.java  | 15 ++---
 .../apache/juneau/rest/test/RestUtilsTest.java  | 64 ++++++++++----------
 .../java/org/apache/juneau/rest/CallMethod.java | 22 +++----
 .../juneau/rest/ClientVersionMatcher.java       |  4 +-
 .../org/apache/juneau/rest/ReaderResource.java  |  8 ++-
 .../org/apache/juneau/rest/RequestBody.java     | 11 ++--
 .../org/apache/juneau/rest/RequestFormData.java |  4 +-
 .../org/apache/juneau/rest/RequestHeaders.java  |  7 ++-
 .../org/apache/juneau/rest/RequestQuery.java    |  4 +-
 .../org/apache/juneau/rest/RestCallHandler.java |  4 +-
 .../java/org/apache/juneau/rest/RestConfig.java |  6 +-
 .../org/apache/juneau/rest/RestContext.java     | 45 ++++++++------
 .../apache/juneau/rest/RestInfoProvider.java    |  4 +-
 .../org/apache/juneau/rest/RestRequest.java     |  6 +-
 .../juneau/rest/RestResourceResolver.java       |  7 ++-
 .../org/apache/juneau/rest/StreamResource.java  | 10 +--
 .../juneau/rest/response/RedirectHandler.java   |  5 +-
 .../rest/vars/SerializedRequestAttrVar.java     |  5 +-
 124 files changed, 615 insertions(+), 566 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
index c53e3bf..13ff54f 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
@@ -12,6 +12,9 @@
 // ***************************************************************************************************************************
 package org.apache.juneau;
 
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 import java.lang.reflect.*;
 import java.text.*;
@@ -24,7 +27,6 @@ import javax.xml.transform.dom.*;
 import javax.xml.transform.stream.*;
 import javax.xml.validation.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transforms.*;
@@ -259,7 +261,7 @@ public class TestUtils {
 		if (is == null) {
 			is = new FileInputStream(path);
 		}
-		String e = IOUtils.read(is);
+		String e = read(is);
 		e = e.replaceAll("\r", "");
 		if (path.endsWith(".xml")) {
 			e = e.replaceAll("(?s)\\<\\!\\-\\-(.*)\\-\\-\\>\\s*", "");
@@ -281,7 +283,7 @@ public class TestUtils {
 
 	public static void debugOut(Object o) {
 		try {
-			System.err.println(StringUtils.decodeHex(JsonSerializer.DEFAULT_LAX.serialize(o))); // NOT DEBUG
+			System.err.println(decodeHex(JsonSerializer.DEFAULT_LAX.serialize(o))); // NOT DEBUG
 		} catch (SerializeException e) {
 			e.printStackTrace();
 		}
@@ -442,7 +444,7 @@ public class TestUtils {
 		if (o instanceof String)
 			return (String)o;
 		if (o instanceof byte[])
-			return new String((byte[])o, IOUtils.UTF8);
+			return new String((byte[])o, UTF8);
 		return o.toString();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileBuilderTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileBuilderTest.java b/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileBuilderTest.java
index 3d34086..b0d4e2e 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileBuilderTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileBuilderTest.java
@@ -14,10 +14,12 @@ package org.apache.juneau.ini;
 
 import static org.apache.juneau.TestUtils.*;
 import static org.junit.Assert.*;
+import static org.apache.juneau.internal.FileUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.svl.*;
 import org.junit.*;
 
@@ -29,14 +31,14 @@ public class ConfigFileBuilderTest {
 
 	@BeforeClass
 	public static void setup() {
-		tempDir = new File(System.getProperty("java.io.tmpdir"), StringUtils.generateUUID(12));
-		FileUtils.mkdirs(tempDir, true);
+		tempDir = new File(System.getProperty("java.io.tmpdir"), generateUUID(12));
+		mkdirs(tempDir, true);
 		TEMP_DIR = new String[]{tempDir.getAbsolutePath()};
 	}
 
 	@AfterClass
 	public static void teardown() {
-		FileUtils.delete(tempDir);
+		delete(tempDir);
 	}
 
 	/**
@@ -55,7 +57,7 @@ public class ConfigFileBuilderTest {
 		assertTrue(f.exists());
 
 		cf.save();
-		assertTextEquals("[Test]|A = a|", IOUtils.read(f));
+		assertTextEquals("[Test]|A = a|", read(f));
 
 		cf = b1.build("TestGet.cfg");
 		assertObjectEquals("{'default':{},Test:{A:'a'}}", cf);
@@ -64,7 +66,7 @@ public class ConfigFileBuilderTest {
 		cf = b1.build(new StringReader(("[Test]"+NL+"A = a"+NL)));
 		assertObjectEquals("{'default':{},Test:{A:'a'}}", cf);
 
-		b1.charset(IOUtils.UTF8);
+		b1.charset(UTF8);
 		cf = b1.build("TestGet.cfg");
 		assertObjectEquals("{'default':{},Test:{A:'a'}}", cf);
 	}
@@ -95,8 +97,8 @@ public class ConfigFileBuilderTest {
 
 		f = new File(tempDir, "TestGet.cfg");
 		String NL = System.getProperty("line.separator");
-		IOUtils.write(f, new StringReader("[Test]"+NL+"A = b"+NL));
-		FileUtils.modifyTimestamp(f);
+		write(f, new StringReader("[Test]"+NL+"A = b"+NL));
+		modifyTimestamp(f);
 
 		cf.loadIfModified();
 		assertEquals("b", cf.getString("Test/A"));
@@ -178,16 +180,16 @@ public class ConfigFileBuilderTest {
 
 		ConfigFileBuilder.main(new String[]{"createBatchEnvFile", "-configFile", configFile.getAbsolutePath(), "-envFile", envFile.getAbsolutePath()});
 		String expected = "rem c1|rem c2|rem c3||set x1 = 1|set x2 = true|set x3 = null|rem c4|set s1_k1 = 1|rem c5 foo=bar|set s1_k2 = true|set s1_k3 = null|";
-		String actual = IOUtils.read(envFile);
+		String actual = read(envFile);
 		assertTextEquals(expected, actual);
 
 		ConfigFileBuilder.main(new String[]{"createShellEnvFile", "-configFile", configFile.getAbsolutePath(), "-envFile", envFile.getAbsolutePath()});
 		expected = "# c1|# c2|# c3||export x1=\"1\"|export x2=\"true\"|export x3=\"null\"|# c4|export s1_k1=\"1\"|# c5 foo=bar|export s1_k2=\"true\"|export s1_k3=\"null\"|";
-		actual = IOUtils.read(envFile);
+		actual = read(envFile);
 		assertTextEquals(expected, actual);
 
 		ConfigFileBuilder.main(new String[]{"setVals", "-configFile", configFile.getAbsolutePath(), "-vals", "x1=2", "s1/k1=2", "s2/k1=3"});
-		FileUtils.modifyTimestamp(configFile);
+		modifyTimestamp(configFile);
 		cf.loadIfModified();
 		assertObjectEquals("{'default':{x1:'2',x2:'true',x3:'null'},s1:{k1:'2',k2:'true',k3:'null'},s2:{k1:'3'}}", cf);
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileTest.java b/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileTest.java
index c4b77b3..683d2fc 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/ini/ConfigFileTest.java
@@ -14,6 +14,8 @@ package org.apache.juneau.ini;
 
 import static org.apache.juneau.TestUtils.*;
 import static org.junit.Assert.*;
+import static org.apache.juneau.internal.IOUtils.*;
+import static org.apache.juneau.internal.FileUtils.*;
 
 import java.io.*;
 import java.net.*;
@@ -22,7 +24,6 @@ import java.util.concurrent.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.svl.*;
@@ -442,14 +443,14 @@ public class ConfigFileTest {
 		assertTrue(cfw.isEncoded("s1/foo"));
 		cf.save();
 		String expected = "[s1]||foo* = {AwwJVhwUQFZEMg==}|";
-		String actual = IOUtils.read(new FileReader(f));
+		String actual = read(new FileReader(f));
 		assertTextEquals(expected, actual);
 		cf.load();
 		assertEquals("mypassword", cf.getString("s1/foo"));
 		assertEquals("mypassword", cfw.getString("s1/foo"));
 
-		IOUtils.write(f, new StringReader("[s1]\nfoo* = mypassword2\n"));
-		FileUtils.modifyTimestamp(f);
+		write(f, new StringReader("[s1]\nfoo* = mypassword2\n"));
+		modifyTimestamp(f);
 		cf.loadIfModified();
 		assertTrue(cf.isEncoded("s1/foo"));
 		assertEquals("mypassword2", cf.getString("s1/foo"));
@@ -602,8 +603,8 @@ public class ConfigFileTest {
 	@Test
 	public void testListeners() throws Exception {
 		ConfigFile[] cff = {
-			configFileBuilder.build(FileUtils.createTempFile("ConfigFileTest.cfg")).addLines(null, "a1=1").addLines("B", "b1=1"),
-			configFileBuilder.build(FileUtils.createTempFile("ConfigFileTest.cfg")).addLines(null, "a1=1").addLines("B", "b1=1").getResolving(VarResolver.DEFAULT)
+			configFileBuilder.build(createTempFile("ConfigFileTest.cfg")).addLines(null, "a1=1").addLines("B", "b1=1"),
+			configFileBuilder.build(createTempFile("ConfigFileTest.cfg")).addLines(null, "a1=1").addLines("B", "b1=1").getResolving(VarResolver.DEFAULT)
 		};
 
 		for (ConfigFile cf : cff) {
@@ -2123,7 +2124,7 @@ public class ConfigFileTest {
 
 		assertTextEquals("a = a,|\tb,|\tc|[A]|a = a,|\tb,|\tc|", cf);
 		cf.save();
-		assertTextEquals("a = a,|\tb,|\tc|[A]|a = a,|\tb,|\tc|", IOUtils.read(f));
+		assertTextEquals("a = a,|\tb,|\tc|[A]|a = a,|\tb,|\tc|", read(f));
 
 		cf.load();
 		assertEquals("a,\nb,\nc", cf.getString("a"));
@@ -2146,7 +2147,7 @@ public class ConfigFileTest {
 
 		assertTextEquals("a = a,\\u0023b,\\u003Dc|[A]|a = a,\\u0023b,\\u003Dc|", cf);
 		cf.save();
-		assertTextEquals("a = a,\\u0023b,\\u003Dc|[A]|a = a,\\u0023b,\\u003Dc|", IOUtils.read(f));
+		assertTextEquals("a = a,\\u0023b,\\u003Dc|[A]|a = a,\\u0023b,\\u003Dc|", read(f));
 
 		cf.load();
 		assertEquals("a,#b,=c", cf.getString("a"));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java b/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java
index 0f6316f..b5ab64b 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java
@@ -12,12 +12,14 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.json;
 
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
+
 import static org.junit.Assert.*;
 
 import java.io.*;
 import java.util.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.junit.*;
 import org.junit.runner.*;
@@ -30,7 +32,7 @@ public class JsonParserEdgeCasesTest {
 	@Parameterized.Parameters
 	public static Collection<Object[]> getPairs() {
 		return Arrays.asList(new Object[][] {
-			{ 0, "is_structure_500_nested_arrays", StringUtils.repeat(500, "[") + StringUtils.repeat(500, "]"), null },
+			{ 0, "is_structure_500_nested_arrays", repeat(500, "[") + repeat(500, "]"), null },
 			{ 1, "ix_object_key_lone_2nd_surrogate", "7B225C7544464141223A307D"/*{"buDFAA":0}*/, null },
 			{ 2, "ix_string_1st_surrogate_but_2nd_missing", "5B225C7544414441225D"/*["buDADA"]*/, null },
 			{ 3, "ix_string_1st_valid_surrogate_2nd_invalid", "5B225C75443838385C7531323334225D"/*["buD888bu1234"]*/, null },
@@ -187,8 +189,8 @@ public class JsonParserEdgeCasesTest {
 			{ 154, "n_structure_unclosed_array_unfinished_false", "[ true, fals", "Unrecognized syntax" },
 			{ 155, "n_structure_unclosed_array_unfinished_true", "[ false, tru", "Unrecognized syntax" },
 			{ 156, "n_structure_unclosed_object", "{\"asd\":\"asd\"", "Could not find '}'" },
-			{ 157, "ns_structure_100000_opening_arrays", StringUtils.repeat(100000, "["), "Depth too deep" },
-			{ 158, "ns_structure_open_array_object", StringUtils.repeat(50000, "[{\"\":"), "Depth too deep" },
+			{ 157, "ns_structure_100000_opening_arrays", repeat(100000, "["), "Depth too deep" },
+			{ 158, "ns_structure_open_array_object", repeat(50000, "[{\"\":"), "Depth too deep" },
 			{ 159, "nx_array_a_invalid_utf8", "5B61E55D"/*[a[fffd]]*/, null },
 			{ 160, "nx_array_invalid_utf8", "5BFF5D"/*[[fffd]]*/, null },
 			{ 161, "nx_array_newlines_unclosed", "5B2261222C0A340A2C312C"/*["a",[a]4[a],1,*/, null },
@@ -358,8 +360,8 @@ public class JsonParserEdgeCasesTest {
 
 	public JsonParserEdgeCasesTest(Integer testNum, String name, String json, String errorText) throws Exception {
 		this.name = name;
-		this.json = name.charAt(1) == 'x' ? StringUtils.fromHex(json) : json;
-		this.jsonReadable = name.charAt(1) == 'x' ? StringUtils.fromHexToUTF8(json) : json;
+		this.json = name.charAt(1) == 'x' ? fromHex(json) : json;
+		this.jsonReadable = name.charAt(1) == 'x' ? fromHexToUTF8(json) : json;
 		this.expected = name.charAt(0);
 		this.errorText = errorText;
 	}
@@ -455,9 +457,9 @@ public class JsonParserEdgeCasesTest {
 				String contents = specials.get(n);
 				if (contents == null) {
 					if (n.charAt(1) == 'x')
-						contents = '"' + StringUtils.toHex(IOUtils.readBytes(fc)) + '"' + "/*" + StringUtils.decodeHex(IOUtils.read(fc)).replaceAll("\\\\u", "bu") + "*/";
+						contents = '"' + toHex(readBytes(fc)) + '"' + "/*" + decodeHex(read(fc)).replaceAll("\\\\u", "bu") + "*/";
 					else
-						contents = '"' + IOUtils.read(fc).replaceAll("\"", "\\\\\"").trim() + '"';
+						contents = '"' + read(fc).replaceAll("\"", "\\\\\"").trim() + '"';
 				}
 				String errorText = errors.get(n);
 				if (errorText != null)

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core-test/src/test/java/org/apache/juneau/utils/ByteArrayInOutStreamTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/ByteArrayInOutStreamTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/ByteArrayInOutStreamTest.java
index 0a72c16..bd82240 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/utils/ByteArrayInOutStreamTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/ByteArrayInOutStreamTest.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.utils;
 
 import static org.junit.Assert.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
 
@@ -27,9 +28,9 @@ public class ByteArrayInOutStreamTest {
 	//====================================================================================================
 	@Test
 	public void testBasic() throws Exception {
-		InputStream is = new ByteArrayInputStream("foobar".getBytes(IOUtils.UTF8));
+		InputStream is = new ByteArrayInputStream("foobar".getBytes(UTF8));
 		ByteArrayInOutStream baios = new ByteArrayInOutStream();
 		IOPipe.create(is, baios).run();
-		assertEquals("foobar", IOUtils.read(baios.getInputStream()));
+		assertEquals("foobar", read(baios.getInputStream()));
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
index 8b5ad42..c333fa7 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
@@ -19,7 +19,6 @@ import static org.junit.Assert.*;
 
 import java.lang.annotation.*;
 
-import org.apache.juneau.internal.*;
 import org.junit.*;
 
 @SuppressWarnings("javadoc")
@@ -159,11 +158,11 @@ public class ClassUtilsTest {
 	// getMethodAnnotation
 	//====================================================================================================
 	@Test
-	public void getMethodAnnotation() throws Exception {
-		assertEquals("a1", ClassUtils.getMethodAnnotation(TestAnnotation.class, CI3.class.getMethod("a1")).value());
-		assertEquals("a2b", ClassUtils.getMethodAnnotation(TestAnnotation.class, CI3.class.getMethod("a2")).value());
-		assertEquals("a3", ClassUtils.getMethodAnnotation(TestAnnotation.class, CI3.class.getMethod("a3", CharSequence.class)).value());
-		assertEquals("a4", ClassUtils.getMethodAnnotation(TestAnnotation.class, CI3.class.getMethod("a4")).value());
+	public void getMethodAnnotations() throws Exception {
+		assertEquals("a1", getMethodAnnotation(TestAnnotation.class, CI3.class.getMethod("a1")).value());
+		assertEquals("a2b", getMethodAnnotation(TestAnnotation.class, CI3.class.getMethod("a2")).value());
+		assertEquals("a3", getMethodAnnotation(TestAnnotation.class, CI3.class.getMethod("a3", CharSequence.class)).value());
+		assertEquals("a4", getMethodAnnotation(TestAnnotation.class, CI3.class.getMethod("a4")).value());
 	}
 	
 	public static interface CI1 {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core-test/src/test/java/org/apache/juneau/utils/IOPipeTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/IOPipeTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/IOPipeTest.java
index 7399ca2..de82158 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/utils/IOPipeTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/IOPipeTest.java
@@ -13,10 +13,10 @@
 package org.apache.juneau.utils;
 
 import static org.junit.Assert.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.utils.IOPipe.*;
 import org.junit.*;
 
@@ -186,7 +186,7 @@ public class IOPipeTest {
 
 		@Override /* Object */
 		public String toString() {
-			return new String(this.toByteArray(), IOUtils.UTF8);
+			return new String(this.toByteArray(), UTF8);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core-test/src/test/java/org/apache/juneau/utils/IOUtilsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/IOUtilsTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/IOUtilsTest.java
index 0e63e18..11477af 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/utils/IOUtilsTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/IOUtilsTest.java
@@ -13,10 +13,10 @@
 package org.apache.juneau.utils;
 
 import static org.junit.Assert.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
 
-import org.apache.juneau.internal.*;
 import org.junit.*;
 
 @SuppressWarnings("javadoc")
@@ -98,7 +98,7 @@ public class IOUtilsTest {
 
 		@Override /* Object */
 		public String toString() {
-			return new String(this.toByteArray(), IOUtils.UTF8);
+			return new String(this.toByteArray(), UTF8);
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java
index 122dbd6..14d9ed5 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java
@@ -13,8 +13,8 @@
 package org.apache.juneau.utils;
 
 import static org.junit.Assert.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.svl.*;
 import org.junit.*;
 
@@ -183,7 +183,7 @@ public class StringVarResolverTest {
 		String t;
 
 		t = "$E{PATH}";
-		assertFalse(StringUtils.isEmpty(VarResolver.DEFAULT.resolve(t)));
+		assertFalse(isEmpty(VarResolver.DEFAULT.resolve(t)));
 	}
 
 	//====================================================================================================
@@ -208,7 +208,7 @@ public class StringVarResolverTest {
 		}
 		@Override /* MultipartVar */
 		public String resolve(VarResolverSession session, String[] args) {
-			return StringUtils.join(args, '+');
+			return join(args, '+');
 		}
 	}
 
@@ -225,8 +225,8 @@ public class StringVarResolverTest {
 			try {
 				vrb.vars(c);
 				fail();
-			} catch (IllegalArgumentException e) {
-				assertEquals("Invalid var name.  Must consist of only uppercase and lowercase ASCII letters.", e.getLocalizedMessage());
+			} catch (RuntimeException e) {
+				// OK.
 			}
 		}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
index 69fd415..b4d07f9 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
@@ -877,30 +877,22 @@ public class BeanContext extends Context {
 		notBeanPackagePrefixes = l2.toArray(new String[l2.size()]);
 
 		LinkedList<BeanFilter> lbf = new LinkedList<BeanFilter>();
-		try {
-			for (Class<?> c : pm.get(BEAN_beanFilters, Class[].class, new Class[0])) {
-				if (isParentClass(BeanFilter.class, c))
-					lbf.add((BeanFilter)c.newInstance());
-				else if (isParentClass(BeanFilterBuilder.class, c))
-					lbf.add(((BeanFilterBuilder)c.newInstance()).build());
-				else
-					lbf.add(new InterfaceBeanFilterBuilder(c).build());
-			}
-		} catch (Exception e) {
-			throw new RuntimeException(e);
+		for (Class<?> c : pm.get(BEAN_beanFilters, Class[].class, new Class[0])) {
+			if (isParentClass(BeanFilter.class, c))
+				lbf.add(newInstance(BeanFilter.class, c));
+			else if (isParentClass(BeanFilterBuilder.class, c))
+				lbf.add(newInstance(BeanFilterBuilder.class, c).build());
+			else
+				lbf.add(new InterfaceBeanFilterBuilder(c).build());
 		}
 		beanFilters = lbf.toArray(new BeanFilter[0]);
 
 		LinkedList<PojoSwap<?,?>> lpf = new LinkedList<PojoSwap<?,?>>();
-		try {
-			for (Class<?> c : pm.get(BEAN_pojoSwaps, Class[].class, new Class[0])) {
-				if (isParentClass(PojoSwap.class, c))
-					lpf.add((PojoSwap<?,?>)c.newInstance());
-				else
-					lpf.addAll(SurrogateSwap.findPojoSwaps(c));
-			}
-		} catch (Exception e) {
-			throw new RuntimeException(e);
+		for (Class<?> c : pm.get(BEAN_pojoSwaps, Class[].class, new Class[0])) {
+			if (isParentClass(PojoSwap.class, c))
+				lpf.add(newInstance(PojoSwap.class, c));
+			else
+				lpf.addAll(SurrogateSwap.findPojoSwaps(c));
 		}
 		pojoSwaps = lpf.toArray(new PojoSwap[0]);
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java b/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
index be80772..bcbf705 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
@@ -14,6 +14,8 @@ package org.apache.juneau;
 
 import static org.apache.juneau.Visibility.*;
 import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.beans.*;
 import java.io.*;
@@ -21,7 +23,6 @@ import java.lang.reflect.*;
 import java.util.*;
 
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.transform.*;
 import org.apache.juneau.utils.*;
 
@@ -174,7 +175,7 @@ public class BeanMeta<T> {
 				}
 				this.beanRegistry = new BeanRegistry(ctx, null, bdClasses.toArray(new Class<?>[bdClasses.size()]));
 
-				for (Bean b : ReflectionUtils.findAnnotationsParentFirst(Bean.class, classMeta.innerClass))
+				for (Bean b : findAnnotationsParentFirst(Bean.class, classMeta.innerClass))
 					if (! b.typePropertyName().isEmpty())
 						typePropertyName = b.typePropertyName();
 				if (typePropertyName == null)
@@ -210,7 +211,7 @@ public class BeanMeta<T> {
 						if (constructor != null)
 							throw new BeanRuntimeException(c, "Multiple instances of '@BeanConstructor' found.");
 						constructor = (Constructor<T>)x;
-						constructorArgs = StringUtils.split(x.getAnnotation(BeanConstructor.class).properties(), ',');
+						constructorArgs = split(x.getAnnotation(BeanConstructor.class).properties(), ',');
 						if (constructorArgs.length != x.getParameterTypes().length)
 							throw new BeanRuntimeException(c, "Number of properties defined in '@BeanConstructor' annotation does not match number of parameters in constructor.");
 						if (! setAccessible(constructor))
@@ -394,7 +395,7 @@ public class BeanMeta<T> {
 			} catch (BeanRuntimeException e) {
 				throw e;
 			} catch (Exception e) {
-				return "Exception:  " + StringUtils.getStackTrace(e);
+				return "Exception:  " + getStackTrace(e);
 			}
 
 			return null;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java b/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index e520799..c8af40e 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -16,6 +16,8 @@ import static org.apache.juneau.Visibility.*;
 import static org.apache.juneau.internal.ClassUtils.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
 import static org.apache.juneau.internal.ReflectionUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.ArrayUtils.*;
 
 import java.lang.annotation.*;
 import java.lang.reflect.*;
@@ -126,7 +128,7 @@ public class BeanPropertyMeta {
 				if (p != null) {
 					swap = getPropertyPojoSwap(p);
 					if (! p.properties().isEmpty())
-						properties = StringUtils.split(p.properties(), ',');
+						properties = split(p.properties(), ',');
 					bdClasses.addAll(Arrays.asList(p.beanDictionary()));
 				}
 			}
@@ -140,7 +142,7 @@ public class BeanPropertyMeta {
 					if (swap == null)
 						swap = getPropertyPojoSwap(p);
 					if (properties != null && ! p.properties().isEmpty())
-						properties = StringUtils.split(p.properties(), ',');
+						properties = split(p.properties(), ',');
 					bdClasses.addAll(Arrays.asList(p.beanDictionary()));
 				}
 			}
@@ -154,7 +156,7 @@ public class BeanPropertyMeta {
 					if (swap == null)
 						swap = getPropertyPojoSwap(p);
 					if (properties != null && ! p.properties().isEmpty())
-						properties = StringUtils.split(p.properties(), ',');
+						properties = split(p.properties(), ',');
 					bdClasses.addAll(Arrays.asList(p.beanDictionary()));
 				}
 			}
@@ -219,18 +221,13 @@ public class BeanPropertyMeta {
 			return new BeanPropertyMeta(this);
 		}
 
-		private PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {
+		private static PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {
 			Class<?> c = p.swap();
 			if (c == Null.class)
 				return null;
-			try {
-				if (isParentClass(PojoSwap.class, c)) {
-					return (PojoSwap)c.newInstance();
-				}
-				throw new RuntimeException("TODO - Surrogate swaps not yet supported.");
-			} catch (Exception e) {
-				throw new BeanRuntimeException(this.beanMeta.c, "Could not instantiate PojoSwap ''{0}'' for bean property ''{1}''", c.getName(), this.name).initCause(e);
-			}
+			if (isParentClass(PojoSwap.class, c))
+				return newInstance(PojoSwap.class, c);
+			throw new RuntimeException("TODO - Surrogate swaps not yet supported.");
 		}
 
 		BeanPropertyMeta.Builder setGetter(Method getter) {
@@ -548,7 +545,7 @@ public class BeanPropertyMeta {
 						}
 					} else {
 						if (propMap == null) {
-							propMap = (Map)propertyClass.newInstance();
+							propMap = newInstance(Map.class, propertyClass);
 							invokeSetter(bean, pName, propMap);
 						} else {
 							propMap.clear();
@@ -603,7 +600,7 @@ public class BeanPropertyMeta {
 						propList.clear();
 					} else {
 						if (propList == null) {
-							propList = (Collection)propertyClass.newInstance();
+							propList = newInstance(Collection.class, propertyClass);
 							invokeSetter(bean, pName, propList);
 						} else {
 							propList.clear();
@@ -717,7 +714,7 @@ public class BeanPropertyMeta {
 	 * @throws InvocationTargetException Thrown by method invocation.
 	 */
 	protected void setArray(Object bean, List l) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
-		Object array = ArrayUtils.toArray(l, this.rawTypeMeta.getElementType().getInnerClass());
+		Object array = toArray(l, this.rawTypeMeta.getElementType().getInnerClass());
 		invokeSetter(bean, name, array);
 	}
 
@@ -785,7 +782,7 @@ public class BeanPropertyMeta {
 
 					// Copy any existing array values into the temporary list.
 					Object oldArray = invokeGetter(bean, pName);
-					ArrayUtils.copyToList(oldArray, l);
+					copyToList(oldArray, l);
 				}
 
 				// Add new entry to our array.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java b/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java
index f966565..c644ec0 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+
 import java.lang.reflect.*;
 import java.util.*;
 import java.util.concurrent.*;
@@ -57,17 +59,17 @@ public class BeanRegistry {
 	private void addClass(Class<?> c) {
 		try {
 			if (c != null) {
-				if (ClassUtils.isParentClass(Collection.class, c)) {
+				if (isParentClass(Collection.class, c)) {
 					@SuppressWarnings("rawtypes")
-					Collection cc = (Collection)c.newInstance();
+					Collection cc = newInstance(Collection.class, c);
 					for (Object o : cc) {
 						if (o instanceof Class)
 							addClass((Class<?>)o);
 						else
 							throw new BeanRuntimeException("Collection class ''{0}'' passed to BeanRegistry does not contain Class objects.", c.getName());
 					}
-				} else if (ClassUtils.isParentClass(Map.class, c)) {
-					Map<?,?> m = (Map<?,?>)c.newInstance();
+				} else if (isParentClass(Map.class, c)) {
+					Map<?,?> m = newInstance(Map.class, c);
 					for (Map.Entry<?,?> e : m.entrySet()) {
 						String typeName = StringUtils.toString(e.getKey());
 						Object v = e.getValue();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/BeanSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanSession.java b/juneau-core/src/main/java/org/apache/juneau/BeanSession.java
index 1a2baca..81557dc 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanSession.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanSession.java
@@ -15,13 +15,13 @@ package org.apache.juneau;
 import static org.apache.juneau.BeanContext.*;
 import static org.apache.juneau.internal.ClassUtils.*;
 import static org.apache.juneau.internal.ThrowableUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.lang.reflect.*;
 import java.util.*;
 import java.util.concurrent.atomic.*;
 
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
@@ -482,7 +482,7 @@ public class BeanSession extends Session {
 					return (T)toArray(type, (Collection)value);
 				else if (vt.isArray())
 					return (T)toArray(type, Arrays.asList((Object[])value));
-				else if (StringUtils.startsWith(value.toString(), '['))
+				else if (startsWith(value.toString(), '['))
 					return (T)toArray(type, new ObjectList(value.toString()).setBeanSession(this));
 			}
 
@@ -550,7 +550,7 @@ public class BeanSession extends Session {
 					if (JsonSerializer.DEFAULT_LAX != null)
 						return (T)JsonSerializer.DEFAULT_LAX.serialize(value);
 				} else if (vt.isClass()) {
-					return (T)ClassUtils.getReadableClassName((Class<?>)value);
+					return (T)getReadableClassName((Class<?>)value);
 				}
 				return (T)value.toString();
 			}
@@ -584,7 +584,7 @@ public class BeanSession extends Session {
 					String typeName = m2.getString(getBeanTypePropertyName(type));
 					if (typeName != null) {
 						ClassMeta cm = type.getBeanRegistry().getClassMeta(typeName);
-						if (cm != null && ClassUtils.isParentClass(type.innerClass, cm.innerClass))
+						if (cm != null && isParentClass(type.innerClass, cm.innerClass))
 							return (T)m2.cast(cm);
 					}
 				}
@@ -1030,7 +1030,7 @@ public class BeanSession extends Session {
 	public boolean close() throws BeanRuntimeException {
 		if (super.close()) {
 			if (debug && hasWarnings())
-				throw new BeanRuntimeException("Warnings occurred in session: \n" + StringUtils.join(getWarnings(), "\n"));
+				throw new BeanRuntimeException("Warnings occurred in session: \n" + join(getWarnings(), "\n"));
 			return true;
 		}
 		return false;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java b/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
index e560080..8313709 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
@@ -14,6 +14,7 @@ package org.apache.juneau;
 
 import static org.apache.juneau.ClassMeta.ClassCategory.*;
 import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.ReflectionUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -501,7 +502,7 @@ public final class ClassMeta<T> implements Type {
 							swapConstructor = cs;
 						else if (cc != NUMBER && (Number.class.isAssignableFrom(arg) || (arg.isPrimitive() && (arg == int.class || arg == short.class || arg == long.class || arg == float.class || arg == double.class)))) {
 							numberConstructor = cs;
-							numberConstructorType = ClassUtils.getWrapperIfPrimitive(arg);
+							numberConstructorType = getWrapperIfPrimitive(arg);
 						}
 					}
 				}
@@ -545,9 +546,9 @@ public final class ClassMeta<T> implements Type {
 
 			for (Method m : c.getMethods())
 				if (isPublic(m) && isNotDeprecated(m))
-					publicMethods.put(ClassUtils.getMethodSignature(m), m);
+					publicMethods.put(getMethodSignature(m), m);
 
-			Map<Class<?>,Remoteable> remoteableMap = ReflectionUtils.findAnnotationsMap(Remoteable.class, c);
+			Map<Class<?>,Remoteable> remoteableMap = findAnnotationsMap(Remoteable.class, c);
 			if (! remoteableMap.isEmpty()) {
 				Map.Entry<Class<?>,Remoteable> e = remoteableMap.entrySet().iterator().next();  // Grab the first one.
 				Class<?> ic = e.getKey();
@@ -558,7 +559,7 @@ public final class ClassMeta<T> implements Type {
 					if (isPublic(m)) {
 						RemoteMethod rm = m.getAnnotation(RemoteMethod.class);
 						if (rm != null || ! "ANNOTATED".equals(expose)) {
-							String path = "NAME".equals(methodPaths) ? m.getName() : ClassUtils.getMethodSignature(m);
+							String path = "NAME".equals(methodPaths) ? m.getName() : getMethodSignature(m);
 							remoteableMethods.put(path, m);
 						}
 					}
@@ -677,7 +678,7 @@ public final class ClassMeta<T> implements Type {
 
 		private BeanFilter findBeanFilter() {
 			try {
-				Map<Class<?>,Bean> ba = ReflectionUtils.findAnnotationsMap(Bean.class, innerClass);
+				Map<Class<?>,Bean> ba = findAnnotationsMap(Bean.class, innerClass);
 				if (! ba.isEmpty())
 					return new AnnotationBeanFilterBuilder(innerClass, ba).build();
 			} catch (Exception e) {
@@ -687,20 +688,16 @@ public final class ClassMeta<T> implements Type {
 		}
 
 		private PojoSwap<T,?> findPojoSwap() {
-			try {
-				Pojo p = innerClass.getAnnotation(Pojo.class);
-				if (p != null) {
-					Class<?> c = p.swap();
-					if (c != Null.class) {
-						if (ClassUtils.isParentClass(PojoSwap.class, c))
-							return (PojoSwap<T,?>)c.newInstance();
-						throw new RuntimeException("TODO - Surrogate classes not yet supported.");
-					}
+			Pojo p = innerClass.getAnnotation(Pojo.class);
+			if (p != null) {
+				Class<?> c = p.swap();
+				if (c != Null.class) {
+					if (isParentClass(PojoSwap.class, c))
+						return ClassUtils.newInstance(PojoSwap.class, c);
+					throw new RuntimeException("TODO - Surrogate classes not yet supported.");
 				}
-				return null;
-			} catch (Exception e) {
-				throw new RuntimeException(e);
 			}
+			return null;
 		}
 
 		private ClassMeta<?> findClassMeta(Class<?> c) {
@@ -1612,7 +1609,7 @@ public final class ClassMeta<T> implements Type {
 	 */
 	public boolean isInstance(Object o) {
 		if (o != null)
-			return ClassUtils.isParentClass(this.innerClass, o.getClass());
+			return isParentClass(this.innerClass, o.getClass());
 		return false;
 	}
 
@@ -1622,7 +1619,7 @@ public final class ClassMeta<T> implements Type {
 	 * @return The readable name for this class.
 	 */
 	public String getReadableName() {
-		return ClassUtils.getReadableClassName(this.innerClass);
+		return getReadableClassName(this.innerClass);
 	}
 
 	private static class LocaleAsString {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/CoreObjectBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/CoreObjectBuilder.java b/juneau-core/src/main/java/org/apache/juneau/CoreObjectBuilder.java
index f566a92..f1fb525 100644
--- a/juneau-core/src/main/java/org/apache/juneau/CoreObjectBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/CoreObjectBuilder.java
@@ -13,6 +13,7 @@
 package org.apache.juneau;
 
 import static org.apache.juneau.BeanContext.*;
+import static org.apache.juneau.internal.ClassUtils.*;
 
 import java.beans.*;
 import java.io.*;
@@ -74,12 +75,9 @@ public abstract class CoreObjectBuilder {
 	 * @param c The subclass of {@link CoreObject} to instantiate.
 	 * @return A new object using the settings defined in this builder.
 	 */
+	@SuppressWarnings("unchecked")
 	public <T extends CoreObject> T build(Class<T> c) {
-		try {
-			return c.getConstructor(PropertyStore.class).newInstance(propertyStore);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
+		return (T)newInstance(CoreObject.class, c, propertyStore);
 	}
 
 	//--------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/InvalidDataConversionException.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/InvalidDataConversionException.java b/juneau-core/src/main/java/org/apache/juneau/InvalidDataConversionException.java
index 1336fb0..2b4a0a1 100644
--- a/juneau-core/src/main/java/org/apache/juneau/InvalidDataConversionException.java
+++ b/juneau-core/src/main/java/org/apache/juneau/InvalidDataConversionException.java
@@ -12,9 +12,10 @@
 // ***************************************************************************************************************************
 package org.apache.juneau;
 
+import static org.apache.juneau.internal.ClassUtils.*;
+
 import java.text.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 
 /**
@@ -32,7 +33,7 @@ public final class InvalidDataConversionException extends RuntimeException {
 	 * @param value The value being converted.
 	 */
 	public InvalidDataConversionException(Object value, Class<?> toType, Exception cause) {
-		super(MessageFormat.format("Invalid data conversion from type ''{0}'' to type ''{1}''.  Value={2}.", ClassUtils.getReadableClassNameForObject(value), ClassUtils.getReadableClassName(toType), getValue(value)), cause);
+		super(MessageFormat.format("Invalid data conversion from type ''{0}'' to type ''{1}''.  Value={2}.", getReadableClassNameForObject(value), getReadableClassName(toType), getValue(value)), cause);
 	}
 
 	/**
@@ -41,12 +42,12 @@ public final class InvalidDataConversionException extends RuntimeException {
 	 * @param value The value being converted.
 	 */
 	public InvalidDataConversionException(Object value, ClassMeta<?> toType, Exception cause) {
-		super(MessageFormat.format("Invalid data conversion from type ''{0}'' to type ''{1}''.  Value={2}.", ClassUtils.getReadableClassNameForObject(value), toType.toString(), getValue(value)), cause);
+		super(MessageFormat.format("Invalid data conversion from type ''{0}'' to type ''{1}''.  Value={2}.", getReadableClassNameForObject(value), toType.toString(), getValue(value)), cause);
 	}
 
 	private static String getValue(Object o) {
 		if (o instanceof Class)
-			return "'" + ClassUtils.getReadableClassName((Class<?>)o) + "'";
+			return "'" + getReadableClassName((Class<?>)o) + "'";
 		return JsonSerializer.DEFAULT_LAX == null ? "'" + o.toString() + "'" : JsonSerializer.DEFAULT_LAX.toString(o);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java b/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java
index 1cfccb7..8b057ed 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java
@@ -13,6 +13,7 @@
 package org.apache.juneau;
 
 import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
 import java.util.*;
@@ -591,7 +592,7 @@ public class ObjectMap extends LinkedHashMap<String,Object> {
 	 */
 	public String[] getStringArray(String key) {
 		String s = get(String.class, key);
-		return (s == null ? new String[0] : StringUtils.split(s, ','));
+		return (s == null ? new String[0] : split(s, ','));
 	}
 
 	/**
@@ -603,7 +604,7 @@ public class ObjectMap extends LinkedHashMap<String,Object> {
 	 */
 	public String[] getStringArray(String key, String[] def) {
 		String s = get(String.class, key);
-		String[] r = (s == null ? new String[0] : StringUtils.split(s, ','));
+		String[] r = (s == null ? new String[0] : split(s, ','));
 		return (r.length == 0 ? def : r);
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/PropertyStore.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/PropertyStore.java b/juneau-core/src/main/java/org/apache/juneau/PropertyStore.java
index 91af225..dc5f064 100644
--- a/juneau-core/src/main/java/org/apache/juneau/PropertyStore.java
+++ b/juneau-core/src/main/java/org/apache/juneau/PropertyStore.java
@@ -13,6 +13,8 @@
 package org.apache.juneau;
 
 import static org.apache.juneau.BeanContext.*;
+import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.lang.reflect.*;
 import java.util.*;
@@ -556,7 +558,7 @@ public final class PropertyStore {
 					ConcurrentHashMap<Class<? extends Context>, Context> cacheForThisConfig = globalContextCache.get(key);
 
 					if (! cacheForThisConfig.containsKey(c))
-						cacheForThisConfig.putIfAbsent(c, c.getConstructor(PropertyStore.class).newInstance(this));
+						cacheForThisConfig.putIfAbsent(c, newInstance(c, c, this));
 
 					contexts.put(c, cacheForThisConfig.get(c));
 				}
@@ -634,7 +636,7 @@ public final class PropertyStore {
 			if (pm != null)
 				return pm.get(name, type, def);
 			String s = System.getProperty(name);
-			if ((! StringUtils.isEmpty(s)) && isBeanSessionAvailable())
+			if ((! isEmpty(s)) && isBeanSessionAvailable())
 				return getBeanSession().convertToType(s, type);
 			return def;
 		} finally {
@@ -1074,19 +1076,19 @@ public final class PropertyStore {
 		}
 
 		void add(Object val) {
-			throw new ConfigException("Cannot add value {0} ({1}) to property ''{2}'' ({3}).", JsonSerializer.DEFAULT_LAX.toString(val), ClassUtils.getReadableClassNameForObject(val), name, type);
+			throw new ConfigException("Cannot add value {0} ({1}) to property ''{2}'' ({3}).", JsonSerializer.DEFAULT_LAX.toString(val), getReadableClassNameForObject(val), name, type);
 		}
 
 		void remove(Object val) {
-			throw new ConfigException("Cannot remove value {0} ({1}) from property ''{2}'' ({3}).", JsonSerializer.DEFAULT_LAX.toString(val), ClassUtils.getReadableClassNameForObject(val), name, type);
+			throw new ConfigException("Cannot remove value {0} ({1}) from property ''{2}'' ({3}).", JsonSerializer.DEFAULT_LAX.toString(val), getReadableClassNameForObject(val), name, type);
 		}
 
 		void put(Object val) {
-			throw new ConfigException("Cannot put value {0} ({1}) to property ''{2}'' ({3}).", JsonSerializer.DEFAULT_LAX.toString(val), ClassUtils.getReadableClassNameForObject(val), name, type);
+			throw new ConfigException("Cannot put value {0} ({1}) to property ''{2}'' ({3}).", JsonSerializer.DEFAULT_LAX.toString(val), getReadableClassNameForObject(val), name, type);
 		}
 
 		void put(Object key, Object val) {
-			throw new ConfigException("Cannot put value {0}({1})->{2}({3}) to property ''{4}'' ({5}).", JsonSerializer.DEFAULT_LAX.toString(key), ClassUtils.getReadableClassNameForObject(key), JsonSerializer.DEFAULT_LAX.toString(val), ClassUtils.getReadableClassNameForObject(val), name, type);
+			throw new ConfigException("Cannot put value {0}({1})->{2}({3}) to property ''{4}'' ({5}).", JsonSerializer.DEFAULT_LAX.toString(key), getReadableClassNameForObject(key), JsonSerializer.DEFAULT_LAX.toString(val), getReadableClassNameForObject(val), name, type);
 		}
 
 		protected Object value() {
@@ -1363,8 +1365,8 @@ public final class PropertyStore {
 		if (o == null)
 			return null;
 		if (o instanceof Class)
-			return ClassUtils.getReadableClassName((Class<?>)o);
-		return ClassUtils.getReadableClassName(o.getClass());
+			return getReadableClassName((Class<?>)o);
+		return getReadableClassName(o.getClass());
 	}
 
 	@Override /* Object */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/dto/ResultSetList.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/ResultSetList.java b/juneau-core/src/main/java/org/apache/juneau/dto/ResultSetList.java
index d33afec..4f99c0d 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/ResultSetList.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/ResultSetList.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.dto;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.sql.*;
 import java.util.*;
 
@@ -90,11 +92,11 @@ public final class ResultSetList extends LinkedList<Map<String,Object>> {
 					Clob c = rs.getClob(col);
 					return "clob["+c.length()+"]";
 				case Types.LONGVARBINARY:
-					return "longvarbinary["+IOUtils.count(rs.getBinaryStream(col))+"]";
+					return "longvarbinary["+count(rs.getBinaryStream(col))+"]";
 				case Types.LONGVARCHAR:
-					return "longvarchar["+IOUtils.count(rs.getAsciiStream(col))+"]";
+					return "longvarchar["+count(rs.getAsciiStream(col))+"]";
 				case Types.LONGNVARCHAR:
-					return "longnvarchar["+IOUtils.count(rs.getCharacterStream(col))+"]";
+					return "longnvarchar["+count(rs.getCharacterStream(col))+"]";
 				case Types.TIMESTAMP:
 					return rs.getTimestamp(col);  // Oracle returns com.oracle.TIMESTAMP objects from getObject() which isn't a Timestamp.
 				default:

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Sample.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Sample.java b/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Sample.java
index a9aa605..728cf18 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Sample.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Sample.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.dto.jsonschema;
 
+import static org.apache.juneau.internal.IOUtils.*;
+
 import java.io.*;
 import java.net.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 
 @SuppressWarnings("serial")
@@ -30,7 +31,7 @@ class Sample {
 			public Schema load(URI uri) {
 				Reader r = null;
 				try {
-					r = new InputStreamReader(uri.toURL().openStream(), IOUtils.UTF8);
+					r = new InputStreamReader(uri.toURL().openStream(), UTF8);
 					Schema s = JsonParser.DEFAULT.parse(r, Schema.class);
 					return s;
 				} catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java b/juneau-core/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
index e9ff2d7..434598b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.dto.swagger;
 
+import static org.apache.juneau.internal.ArrayUtils.*;
+
 import java.util.*;
 
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 
 /**
@@ -126,7 +127,7 @@ public class HeaderInfo extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public HeaderInfo setType(String type) {
-		if (isStrict() && ! ArrayUtils.contains(type, VALID_TYPES))
+		if (isStrict() && ! contains(type, VALID_TYPES))
 			throw new RuntimeException("Invalid value passed in to setType(String).  Value='"+type+"', valid values=" + JsonSerializer.DEFAULT_LAX.toString(VALID_TYPES));
 		this.type = type;
 		return this;
@@ -252,7 +253,7 @@ public class HeaderInfo extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public HeaderInfo setCollectionFormat(String collectionFormat) {
-		if (isStrict() && ! ArrayUtils.contains(collectionFormat, VALID_COLLECTION_FORMATS))
+		if (isStrict() && ! contains(collectionFormat, VALID_COLLECTION_FORMATS))
 			throw new RuntimeException("Invalid value passed in to setCollectionFormat(String).  Value='"+collectionFormat+"', valid values=" + JsonSerializer.DEFAULT_LAX.toString(VALID_COLLECTION_FORMATS));
 		this.collectionFormat = collectionFormat;
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/dto/swagger/Items.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/swagger/Items.java b/juneau-core/src/main/java/org/apache/juneau/dto/swagger/Items.java
index 2f178f3..ca63e71 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/swagger/Items.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/swagger/Items.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.dto.swagger;
 
+import static org.apache.juneau.internal.ArrayUtils.*;
+
 import java.util.*;
 
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 
 /**
@@ -91,7 +92,7 @@ public class Items extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public Items setType(String type) {
-		if (isStrict() && ! ArrayUtils.contains(type, VALID_TYPES))
+		if (isStrict() && ! contains(type, VALID_TYPES))
 			throw new RuntimeException("Invalid value passed in to setType(String).  Value='"+type+"', valid values=" + JsonSerializer.DEFAULT_LAX.toString(VALID_TYPES));
 		this.type = type;
 		return this;
@@ -217,7 +218,7 @@ public class Items extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public Items setCollectionFormat(String collectionFormat) {
-		if (isStrict() && ! ArrayUtils.contains(collectionFormat, VALID_COLLECTION_FORMATS))
+		if (isStrict() && ! contains(collectionFormat, VALID_COLLECTION_FORMATS))
 			throw new RuntimeException("Invalid value passed in to setCollectionFormat(String).  Value='"+collectionFormat+"', valid values=" + JsonSerializer.DEFAULT_LAX.toString(VALID_COLLECTION_FORMATS));
 		this.collectionFormat = collectionFormat;
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java b/juneau-core/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
index 868e398..692ad34 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.dto.swagger;
 
+import static org.apache.juneau.internal.ArrayUtils.*;
+
 import java.util.*;
 
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 
 /**
@@ -162,7 +163,7 @@ public class ParameterInfo extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public ParameterInfo setIn(String in) {
-		if (isStrict() && ! ArrayUtils.contains(in, VALID_IN))
+		if (isStrict() && ! contains(in, VALID_IN))
 			throw new RuntimeException("Invalid value passed in to setIn(String).  Value='"+in+"', valid values=" + JsonSerializer.DEFAULT_LAX.toString(VALID_IN));
 		this.in = in;
 		if ("path".equals(in))
@@ -316,7 +317,7 @@ public class ParameterInfo extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public ParameterInfo setType(String type) {
-		if (isStrict() && ! ArrayUtils.contains(type, VALID_TYPES))
+		if (isStrict() && ! contains(type, VALID_TYPES))
 			throw new RuntimeException("Invalid value passed in to setType(String).  Value='"+type+"', valid values=" + JsonSerializer.DEFAULT_LAX.toString(VALID_TYPES));
 		this.type = type;
 		return this;
@@ -486,7 +487,7 @@ public class ParameterInfo extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public ParameterInfo setCollectionFormat(String collectionFormat) {
-		if (isStrict() && ! ArrayUtils.contains(collectionFormat, VALID_COLLECTION_FORMATS))
+		if (isStrict() && ! contains(collectionFormat, VALID_COLLECTION_FORMATS))
 			throw new RuntimeException("Invalid value passed in to setCollectionFormat(String).  Value='"+collectionFormat+"', valid values=" + JsonSerializer.DEFAULT_LAX.toString(VALID_COLLECTION_FORMATS));
 		this.collectionFormat = collectionFormat;
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java b/juneau-core/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
index 5af2fb1..8856db2 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.dto.swagger;
 
+import static org.apache.juneau.internal.ArrayUtils.*;
+
 import java.util.*;
 
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 
 /**
@@ -101,7 +102,7 @@ public class SecurityScheme extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public SecurityScheme setType(String type) {
-		if (isStrict() && ! ArrayUtils.contains(type, VALID_TYPES))
+		if (isStrict() && ! contains(type, VALID_TYPES))
 			throw new RuntimeException("Invalid value passed in to setType(String).  Value='"+type+"', valid values=" + JsonSerializer.DEFAULT_LAX.toString(VALID_TYPES));
 		this.type = type;
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java b/juneau-core/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java
index be4546b..4f4de06 100644
--- a/juneau-core/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.encoders;
 
 import static org.apache.juneau.internal.CollectionUtils.*;
+import static org.apache.juneau.internal.ClassUtils.*;
 
 import java.util.*;
 
@@ -46,13 +47,8 @@ public class EncoderGroupBuilder {
 	 * @return This object (for method chaining).
 	 */
 	public EncoderGroupBuilder append(Class<?>...e) {
-		for (int i = e.length-1; i >= 0; i--) {
-			try {
-				encoders.add((Encoder)((Class<?>)e[i]).newInstance());
-			} catch (Exception x) {
-				throw new RuntimeException(x);
-			}
-		}
+		for (int i = e.length-1; i >= 0; i--)
+			encoders.add(newInstance(Encoder.class, e[i]));
 		return this;
 	}
 
@@ -96,17 +92,11 @@ public class EncoderGroupBuilder {
 	 *
 	 * @return A new {@link EncoderGroup} object.
 	 */
-	@SuppressWarnings("unchecked")
 	public EncoderGroup build() {
-		try {
-			List<Encoder> l = new ArrayList<Encoder>();
-			for (Object e : encoders) {
-				l.add(e instanceof Class ? ((Class<? extends Encoder>)e).getConstructor().newInstance() : (Encoder)e);
-			}
-			Collections.reverse(l);
-			return new EncoderGroup(l.toArray(new Encoder[l.size()]));
-		} catch (Exception x) {
-			throw new RuntimeException("Could not instantiate encoder.", x);
-		}
+		List<Encoder> l = new ArrayList<Encoder>();
+		for (Object e : encoders)
+			l.add(e instanceof Class ? newInstance(Encoder.class, (Class<?>)e) : (Encoder)e);
+		Collections.reverse(l);
+		return new EncoderGroup(l.toArray(new Encoder[l.size()]));
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
index 5490265..c9c69b7 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
@@ -13,13 +13,13 @@
 package org.apache.juneau.html;
 
 import static org.apache.juneau.html.HtmlDocSerializerContext.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.lang.reflect.*;
 import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.serializer.*;
 
@@ -69,7 +69,7 @@ public final class HtmlDocSerializerSession extends HtmlSerializerSession {
 			text = op.getString(HTMLDOC_text, ctx.text);
 			links = new LinkedHashMap(op.getMap(HTMLDOC_links, ctx.links));
 			cssUrl = op.getString(HTMLDOC_cssUrl, ctx.cssUrl);
-			cssImports = StringUtils.split(op.getString(HTMLDOC_cssImports, null), ',');
+			cssImports = split(op.getString(HTMLDOC_cssImports, null), ',');
 			nowrap = op.getBoolean(HTMLDOC_cssUrl, ctx.nowrap);
 		}
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserSession.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserSession.java
index 2bf5e25..092aa0c 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserSession.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserSession.java
@@ -14,6 +14,7 @@ package org.apache.juneau.html;
 
 import static javax.xml.stream.XMLStreamConstants.*;
 import static org.apache.juneau.html.HtmlTag.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -23,7 +24,6 @@ import javax.xml.stream.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.xml.*;
 
 /**
@@ -93,7 +93,7 @@ public final class HtmlParserSession extends XmlParserSession {
 			if (et == START_ELEMENT) {
 				if (characters != null) {
 					if (sb.length() == 0)
-						characters = StringUtils.trimStart(characters);
+						characters = trimStart(characters);
 					sb.append(characters);
 					characters = null;
 				}
@@ -135,9 +135,9 @@ public final class HtmlParserSession extends XmlParserSession {
 			} else if (et == END_ELEMENT) {
 				if (characters != null) {
 					if (sb.length() == 0)
-						characters = StringUtils.trimStart(characters);
+						characters = trimStart(characters);
 					if (depth == 0)
-						characters = StringUtils.trimEnd(characters);
+						characters = trimEnd(characters);
 					sb.append(characters);
 					characters = null;
 				}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/html/HtmlWriter.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlWriter.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlWriter.java
index 0ea9ccf..d8648b4 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlWriter.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlWriter.java
@@ -12,10 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.html;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import java.io.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.xml.*;
 
 /**
@@ -89,7 +90,7 @@ public class HtmlWriter extends XmlWriter {
 				else if (test == ' ')
 					append("<sp> </sp>");
 				else
-					append("<sp>&#x").append(StringUtils.toHex(test)).append(";</sp>");
+					append("<sp>&#x").append(toHex(test)).append(";</sp>");
 			}
 			else if (Character.isISOControl(test))
 				append("&#" + (int) test + ";");

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/http/Accept.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/http/Accept.java b/juneau-core/src/main/java/org/apache/juneau/http/Accept.java
index c30d76b..9fa6971 100644
--- a/juneau-core/src/main/java/org/apache/juneau/http/Accept.java
+++ b/juneau-core/src/main/java/org/apache/juneau/http/Accept.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.http;
 
 import static org.apache.juneau.http.Constants.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.util.*;
 
@@ -232,6 +233,6 @@ public final class Accept {
 
 	@Override /* Object */
 	public String toString() {
-		return StringUtils.join(mediaRanges, ',');
+		return join(mediaRanges, ',');
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/http/AcceptCharset.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/http/AcceptCharset.java b/juneau-core/src/main/java/org/apache/juneau/http/AcceptCharset.java
index 28964fd..d208291 100644
--- a/juneau-core/src/main/java/org/apache/juneau/http/AcceptCharset.java
+++ b/juneau-core/src/main/java/org/apache/juneau/http/AcceptCharset.java
@@ -16,6 +16,7 @@ import static org.apache.juneau.http.Constants.*;
 
 import org.apache.juneau.internal.*;
 
+
 /**
  * Represents a parsed <l>Accept-Charset</l> HTTP request header.
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFile.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFile.java b/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFile.java
index da2e09f..d2a7e6a 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFile.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFile.java
@@ -16,6 +16,8 @@ import static java.lang.reflect.Modifier.*;
 import static org.apache.juneau.ini.ConfigFileFormat.*;
 import static org.apache.juneau.ini.ConfigUtils.*;
 import static org.apache.juneau.internal.ThrowableUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.ArrayUtils.*;
 
 import java.beans.*;
 import java.io.*;
@@ -461,7 +463,7 @@ public abstract class ConfigFile implements Map<String,Section> {
 		String s = getString(key);
 		if (s == null)
 			return def;
-		String[] r = StringUtils.isEmpty(s) ? new String[0] : StringUtils.split(s, ',');
+		String[] r = StringUtils.isEmpty(s) ? new String[0] : split(s, ',');
 		return r.length == 0 ? def : r;
 	}
 
@@ -607,7 +609,7 @@ public abstract class ConfigFile implements Map<String,Section> {
 				int mod = m.getModifiers();
 				if (isPublic(mod) && (!isStatic(mod)) && m.getName().startsWith("set") && m.getParameterTypes().length == 1) {
 					Class<?> pt = m.getParameterTypes()[0];
-					if (permittedPropertyTypes == null || permittedPropertyTypes.length == 0 || ArrayUtils.contains(pt, permittedPropertyTypes)) {
+					if (permittedPropertyTypes == null || permittedPropertyTypes.length == 0 || contains(pt, permittedPropertyTypes)) {
 						String propName = Introspector.decapitalize(m.getName().substring(3));
 						Object value = getObject(sectionName, propName, pt);
 						if (value != null) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java b/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java
index 67a1693..0f50328 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java
@@ -13,12 +13,12 @@
 package org.apache.juneau.ini;
 
 import static org.apache.juneau.ini.ConfigFileFormat.*;
+import static org.apache.juneau.internal.FileUtils.*;
 
 import java.io.*;
 import java.nio.charset.*;
 import java.util.*;
 
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
@@ -188,7 +188,7 @@ public class ConfigFileBuilder {
 		File f = new File(path);
 		if (f.isAbsolute()) {
 			if (createIfNotExists)
-				FileUtils.create(f);
+				create(f);
 			if (f.exists())
 				return f;
 			throw new FileNotFoundException("Could not find config file '"+path+"'");
@@ -206,7 +206,7 @@ public class ConfigFileBuilder {
 
 		if (createIfNotExists) {
 			f = new File(searchPaths.get(0).getAbsolutePath() + "/" + path);
-			FileUtils.create(f);
+			create(f);
 			return f;
 		}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java b/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
index dc784b5..0e08db2 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
@@ -14,6 +14,7 @@ package org.apache.juneau.ini;
 
 import static org.apache.juneau.ini.ConfigUtils.*;
 import static org.apache.juneau.internal.ThrowableUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
@@ -161,7 +162,7 @@ public final class ConfigFileImpl extends ConfigFile {
 							section.addLines(null, lines.toArray(new String[lines.size()]));
 							lines.clear();
 							canAppend = false;
-							String sn = StringUtils.replaceUnicodeSequences(line.substring(line.indexOf('[')+1, line.indexOf(']')).trim());
+							String sn = replaceUnicodeSequences(line.substring(line.indexOf('[')+1, line.indexOf(']')).trim());
 							section = getSection(sn, true).addHeaderComments(section.removeTrailingComments());
 						} else {
 							char c = line.isEmpty() ? 0 : line.charAt(0);
@@ -219,7 +220,7 @@ public final class ConfigFileImpl extends ConfigFile {
 		if (isSimpleType(type))
 			return (T)pBeanSession.convertToType(s, (Class<?>)type);
 
-		char s1 = StringUtils.charAt(s, 0);
+		char s1 = charAt(s, 0);
 		if (s1 != '[' && s1 != '{' && ! "null".equals(s))
 			s = '\'' + s + '\'';
 
@@ -774,7 +775,7 @@ public final class ConfigFileImpl extends ConfigFile {
 	}
 
 	private static void addChange(Set<String> changes, String section, String key, String oldVal, String newVal) {
-		if (! StringUtils.isEquals(oldVal, newVal))
+		if (! isEquals(oldVal, newVal))
 			changes.add(getFullKey(section, key));
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/ini/Section.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ini/Section.java b/juneau-core/src/main/java/org/apache/juneau/ini/Section.java
index 8a53d3a..04a516c 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ini/Section.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ini/Section.java
@@ -14,13 +14,13 @@ package org.apache.juneau.ini;
 
 import static org.apache.juneau.ini.ConfigFileFormat.*;
 import static org.apache.juneau.ini.ConfigUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
 import java.util.*;
 import java.util.concurrent.locks.*;
 
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 
 /**
  * Defines a section in a config file.
@@ -476,8 +476,8 @@ public class Section implements Map<String,String> {
 					this.lines.add(line);
 				else if (isAssignment(line)) {
 					// Key/value pairs are stored as either ">key" or "*key";
-					String key = StringUtils.replaceUnicodeSequences(line.substring(0, line.indexOf('=')).trim());
-					String val = StringUtils.replaceUnicodeSequences(line.substring(line.indexOf('=')+1).trim());
+					String key = replaceUnicodeSequences(line.substring(0, line.indexOf('=')).trim());
+					String val = replaceUnicodeSequences(line.substring(line.indexOf('=')+1).trim());
 					boolean encoded = key.length() > 1 && key.endsWith("*");
 					if (encoded) {
 						key = key.substring(0, key.lastIndexOf('*'));
@@ -566,7 +566,7 @@ public class Section implements Map<String,String> {
 
 	private void addChange(Set<String> changes, String key, String oldVal, String newVal) {
 		if (changes != null)
-			if (! StringUtils.isEquals(oldVal, newVal))
+			if (! isEquals(oldVal, newVal))
 				changes.add(getFullKey(name, key));
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/ini/SectionListener.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ini/SectionListener.java b/juneau-core/src/main/java/org/apache/juneau/ini/SectionListener.java
index 7ceef7a..4c6c1e4 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ini/SectionListener.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ini/SectionListener.java
@@ -12,9 +12,9 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.ini;
 
-import java.util.*;
+import static org.apache.juneau.internal.StringUtils.*;
 
-import org.apache.juneau.internal.*;
+import java.util.*;
 
 /**
  * Listener that can be used to listen for change events for a specific section in a config file.
@@ -32,7 +32,7 @@ public class SectionListener extends ConfigFileListener {
 	 * @param section The name of the section in the config file to listen to.
 	 */
 	public SectionListener(String section) {
-		isDefault = StringUtils.isEmpty(section);
+		isDefault = isEmpty(section);
 		prefix = isDefault ? null : (section + '/');
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/ini/XorEncoder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ini/XorEncoder.java b/juneau-core/src/main/java/org/apache/juneau/ini/XorEncoder.java
index b844d13..ae2c0db 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ini/XorEncoder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ini/XorEncoder.java
@@ -12,7 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.ini;
 
-import org.apache.juneau.internal.*;
+import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.IOUtils.*;
 
 /**
  * Simply XOR+Base64 encoder for obscuring passwords and other sensitive data in INI config files.
@@ -28,21 +29,21 @@ public final class XorEncoder implements Encoder {
 
 	@Override /* Encoder */
 	public String encode(String fieldName, String in) {
-		byte[] b = in.getBytes(IOUtils.UTF8);
+		byte[] b = in.getBytes(UTF8);
 		for (int i = 0; i < b.length; i++) {
 				int j = i % key.length();
 			b[i] = (byte)(b[i] ^ key.charAt(j));
 		}
-		return StringUtils.base64Encode(b);
+		return base64Encode(b);
 	}
 
 	@Override /* Encoder */
 	public String decode(String fieldName, String in) {
-		byte[] b = StringUtils.base64Decode(in);
+		byte[] b = base64Decode(in);
 		for (int i = 0; i < b.length; i++) {
 			int j = i % key.length();
 			b[i] = (byte)(b[i] ^ key.charAt(j));
 	}
-		return new String(b, IOUtils.UTF8);
+		return new String(b, UTF8);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/internal/ClassUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/internal/ClassUtils.java b/juneau-core/src/main/java/org/apache/juneau/internal/ClassUtils.java
index f3163d3..ef46ffc 100644
--- a/juneau-core/src/main/java/org/apache/juneau/internal/ClassUtils.java
+++ b/juneau-core/src/main/java/org/apache/juneau/internal/ClassUtils.java
@@ -743,20 +743,22 @@ public final class ClassUtils {
 	/**
 	 * Creates an instance of the specified class without throwing exceptions.
 	 *
-	 * @param c The class to instantiate.
+	 * @param c The class to cast to.
+	 * @param c2 The class to instantiate.
 	 * @param args The arguments to pass to the constructor.
 	 * @return The new class instance, or <jk>null</jk> if the class was <jk>null</jk>.
 	 * @throws RuntimeException if constructor could not be found or called.
 	 */
-	public static <T> T newInstance(Class<T> c, Object...args) {
-		if (c == null)
+	@SuppressWarnings("unchecked")
+	public static <T> T newInstance(Class<T> c, Class<?> c2, Object...args) {
+		if (c2 == null)
 			return null;
 		try {
 			if (args.length == 0)
-				return c.newInstance();
-			return c.getConstructor(getClasses(args)).newInstance(args);
+				return (T)c2.newInstance();
+			return (T)c2.getConstructor(getClasses(args)).newInstance(args);
 		} catch (Exception e) {
-			throw new RuntimeException(e);
+			throw new RuntimeException("Could not instantiate class " + c.getName(), e);
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3bdc0d85/juneau-core/src/main/java/org/apache/juneau/json/JsonClassMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonClassMeta.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonClassMeta.java
index 0dff9ba..b274365 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonClassMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonClassMeta.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.json;
 
+import static org.apache.juneau.internal.StringUtils.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.json.annotation.*;
@@ -33,7 +35,7 @@ public class JsonClassMeta extends ClassMetaExtended {
 		super(cm);
 		this.json = ReflectionUtils.getAnnotation(Json.class, getInnerClass());
 		if (json != null) {
-			wrapperAttr = StringUtils.nullIfEmpty(json.wrapperAttr());
+			wrapperAttr = nullIfEmpty(json.wrapperAttr());
 		} else {
 			wrapperAttr = null;
 		}