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:12 UTC

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

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");