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/10/26 23:22:04 UTC

[1/8] juneau git commit: Update code to reflect changes in Java 7.

Repository: juneau
Updated Branches:
  refs/heads/master 7aa1d47e3 -> d1258753a


http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 5515e48..c3ad49b 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -129,10 +129,10 @@ public final class RestContext extends Context {
 		destroyMethodParams;
 
 	// In-memory cache of images and stylesheets in the org.apache.juneau.rest.htdocs package.
-	private final Map<String,StreamResource> staticFilesCache = new ConcurrentHashMap<String,StreamResource>();
+	private final Map<String,StreamResource> staticFilesCache = new ConcurrentHashMap<>();
 
 	private final ResourceFinder resourceFinder;
-	private final ConcurrentHashMap<Integer,AtomicInteger> stackTraceHashes = new ConcurrentHashMap<Integer,AtomicInteger>();
+	private final ConcurrentHashMap<Integer,AtomicInteger> stackTraceHashes = new ConcurrentHashMap<>();
 
 
 	/**
@@ -197,26 +197,26 @@ public final class RestContext extends Context {
 			// Initialize the child resources.
 			// Done after initializing fields above since we pass this object to the child resources.
 			//----------------------------------------------------------------------------------------------------
-			List<String> methodsFound = new LinkedList<String>();   // Temporary to help debug transient duplicate method issue.
-			Map<String,CallRouter.Builder> routers = new LinkedHashMap<String,CallRouter.Builder>();
-			Map<String,CallMethod> _javaRestMethods = new LinkedHashMap<String,CallMethod>();
+			List<String> methodsFound = new LinkedList<>();   // Temporary to help debug transient duplicate method issue.
+			Map<String,CallRouter.Builder> routers = new LinkedHashMap<>();
+			Map<String,CallMethod> _javaRestMethods = new LinkedHashMap<>();
 			Map<String,Method>
-				_startCallMethods = new LinkedHashMap<String,Method>(),
-				_preCallMethods = new LinkedHashMap<String,Method>(),
-				_postCallMethods = new LinkedHashMap<String,Method>(),
-				_endCallMethods = new LinkedHashMap<String,Method>(),
-				_postInitMethods = new LinkedHashMap<String,Method>(),
-				_postInitChildFirstMethods = new LinkedHashMap<String,Method>(),
-				_destroyMethods = new LinkedHashMap<String,Method>();
+				_startCallMethods = new LinkedHashMap<>(),
+				_preCallMethods = new LinkedHashMap<>(),
+				_postCallMethods = new LinkedHashMap<>(),
+				_endCallMethods = new LinkedHashMap<>(),
+				_postInitMethods = new LinkedHashMap<>(),
+				_postInitChildFirstMethods = new LinkedHashMap<>(),
+				_destroyMethods = new LinkedHashMap<>();
 			List<RestParam[]>
-				_preCallMethodParams = new ArrayList<RestParam[]>(),
-				_postCallMethodParams = new ArrayList<RestParam[]>();
+				_preCallMethodParams = new ArrayList<>(),
+				_postCallMethodParams = new ArrayList<>();
 			List<Class<?>[]>
-				_startCallMethodParams = new ArrayList<Class<?>[]>(),
-				_endCallMethodParams = new ArrayList<Class<?>[]>(),
-				_postInitMethodParams = new ArrayList<Class<?>[]>(),
-				_postInitChildFirstMethodParams = new ArrayList<Class<?>[]>(),
-				_destroyMethodParams = new ArrayList<Class<?>[]>();
+				_startCallMethodParams = new ArrayList<>(),
+				_endCallMethodParams = new ArrayList<>(),
+				_postInitMethodParams = new ArrayList<>(),
+				_postInitChildFirstMethodParams = new ArrayList<>(),
+				_destroyMethodParams = new ArrayList<>();
 
 			for (java.lang.reflect.Method method : resource.getClass().getMethods()) {
 				if (method.isAnnotationPresent(RestMethod.class)) {
@@ -263,9 +263,10 @@ public final class RestContext extends Context {
 											try {
 												// Parse the args and invoke the method.
 												Parser p = req.getBody().getParser();
-												Object input = p.isReaderParser() ? req.getReader() : req.getInputStream();
-												Object output = m.invoke(o, p.parseArgs(input, m.getGenericParameterTypes()));
-												res.setOutput(output);
+												try (Closeable in = p.isReaderParser() ? req.getReader() : req.getInputStream()) {
+													Object output = m.invoke(o, p.parseArgs(in, m.getGenericParameterTypes()));
+													res.setOutput(output);
+												}
 												return SC_OK;
 											} catch (Exception e) {
 												throw new RestException(SC_INTERNAL_SERVER_ERROR, e);
@@ -377,7 +378,7 @@ public final class RestContext extends Context {
 			this.postInitChildFirstMethodParams = _postInitChildFirstMethodParams.toArray(new Class[_postInitChildFirstMethodParams.size()][]);
 			this.destroyMethodParams = _destroyMethodParams.toArray(new Class[_destroyMethodParams.size()][]);
 
-			Map<String,CallRouter> _callRouters = new LinkedHashMap<String,CallRouter>();
+			Map<String,CallRouter> _callRouters = new LinkedHashMap<>();
 			for (CallRouter.Builder crb : routers.values())
 				_callRouters.put(crb.getHttpMethodName(), crb.build());
 			this.callRouters = Collections.unmodifiableMap(_callRouters);
@@ -450,7 +451,7 @@ public final class RestContext extends Context {
 		ObjectMap properties;
 		Class<?>[] beanFilters;
 		Class<?>[] pojoSwaps;
-		Map<Class<?>,RestParam> paramResolvers = new HashMap<Class<?>,RestParam>();
+		Map<Class<?>,RestParam> paramResolvers = new HashMap<>();
 		SerializerGroup serializers;
 		ParserGroup parsers;
 		UrlEncodingSerializer urlEncodingSerializer;
@@ -459,17 +460,17 @@ public final class RestContext extends Context {
 		String clientVersionHeader = "", defaultCharset, paramFormat;
 
 		List<MediaType> supportedContentTypes, supportedAcceptTypes;
-		Map<String,String> defaultRequestHeaders = new TreeMap<String,String>(String.CASE_INSENSITIVE_ORDER);
+		Map<String,String> defaultRequestHeaders = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
 		Map<String,Object> defaultResponseHeaders;
 		BeanContext beanContext;
-		List<RestConverter> converters = new ArrayList<RestConverter>();
-		List<RestGuard> guards = new ArrayList<RestGuard>();
-		List<ResponseHandler> responseHandlers = new ArrayList<ResponseHandler>();
+		List<RestConverter> converters = new ArrayList<>();
+		List<RestGuard> guards = new ArrayList<>();
+		List<ResponseHandler> responseHandlers = new ArrayList<>();
 		MimetypesFileTypeMap mimetypesFileTypeMap;
 		Map<String,String> staticFilesMap;
 		String[] staticFilesPrefixes;
 		MessageBundle messageBundle;
-		Set<String> allowMethodParams = new LinkedHashSet<String>();
+		Set<String> allowMethodParams = new LinkedHashSet<>();
 		RestLogger logger;
 		String fullPath;
 		Map<String,Widget> widgets;
@@ -541,7 +542,7 @@ public final class RestContext extends Context {
 			supportedContentTypes = sc.supportedContentTypes != null ? sc.supportedContentTypes : serializers.getSupportedMediaTypes();
 			supportedAcceptTypes = sc.supportedAcceptTypes != null ? sc.supportedAcceptTypes : parsers.getSupportedMediaTypes();
 			defaultRequestHeaders.putAll(sc.defaultRequestHeaders);
-			defaultResponseHeaders = Collections.unmodifiableMap(new LinkedHashMap<String,Object>(sc.defaultResponseHeaders));
+			defaultResponseHeaders = Collections.unmodifiableMap(new LinkedHashMap<>(sc.defaultResponseHeaders));
 			beanContext = ps.getBeanContext();
 			contextPath = sc.contextPath;
 
@@ -558,7 +559,7 @@ public final class RestContext extends Context {
 
 			VarResolver vr = sc.getVarResolverBuilder().build();
 
-			staticFilesMap = new LinkedHashMap<String,String>();
+			staticFilesMap = new LinkedHashMap<>();
 			if (sc.staticFiles != null) {
 				for (Object o : sc.staticFiles) {
 					if (o instanceof Pair) {
@@ -578,7 +579,7 @@ public final class RestContext extends Context {
 
 			HtmlDocBuilder hdb = new HtmlDocBuilder(sc.properties);
 
-			this.widgets = new LinkedHashMap<String,Widget>();
+			this.widgets = new LinkedHashMap<>();
 
 			for (Class<? extends Widget> wc : sc.widgets) {
 				Widget w = resolve(resource, Widget.class, wc);
@@ -741,17 +742,14 @@ public final class RestContext extends Context {
 					String remainder = (p.equals(key) ? "" : p.substring(key.length()));
 					if (remainder.isEmpty() || remainder.startsWith("/")) {
 						String p2 = trimSlashes(e.getValue()) + remainder;
-						InputStream is = getResource(p2, null);
-						if (is != null) {
-							try {
+						try (InputStream is = getResource(p2, null)) {
+							if (is != null) {
 								int i = p2.lastIndexOf('/');
 								String name = (i == -1 ? p2 : p2.substring(i+1));
 								String mediaType = mimetypesFileTypeMap.getContentType(name);
 								ObjectMap headers = new ObjectMap().append("Cache-Control", "max-age=86400, public");
 								staticFilesCache.put(pathInfo, new StreamResource(MediaType.forString(mediaType), headers, is));
 								return staticFilesCache.get(pathInfo);
-							} finally {
-								is.close();
 							}
 						}
 					}
@@ -822,9 +820,9 @@ public final class RestContext extends Context {
 			Parser p = parsers.getParser(mediaType);
 			if (p != null) {
 				try {
-					if (p.isReaderParser())
-						return p.parse(new InputStreamReader(is, UTF8), c);
-					return p.parse(is, c);
+					try (Closeable in = p.isReaderParser() ? new InputStreamReader(is, UTF8) : is) {
+						return p.parse(in, c);
+					}
 				} catch (ParseException e) {
 					throw new ServletException("Could not parse resource '' as media type '"+mediaType+"'.");
 				}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestInfoProvider.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestInfoProvider.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestInfoProvider.java
index 07fac20..4bc5592 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestInfoProvider.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestInfoProvider.java
@@ -53,7 +53,7 @@ public class RestInfoProvider {
 		version,
 		tags,
 		externalDocs;
-	private final ConcurrentHashMap<Locale,Swagger> swaggers = new ConcurrentHashMap<Locale,Swagger>();
+	private final ConcurrentHashMap<Locale,Swagger> swaggers = new ConcurrentHashMap<>();
 
 	/**
 	 * Constructor.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestParamDefaults.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
index cc0c5b3..11ff785 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
@@ -45,7 +45,7 @@ class RestParamDefaults {
 	static final Map<Class<?>,RestParam> STANDARD_RESOLVERS;
 
 	static {
-		Map<Class<?>,RestParam> m = new HashMap<Class<?>,RestParam>();
+		Map<Class<?>,RestParam> m = new HashMap<>();
 
 		@SuppressWarnings("rawtypes")
 		Class[] r = new Class[] {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index 17c5bb5..c610318 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -1093,7 +1093,7 @@ public final class RestRequest extends HttpServletRequestWrapper {
 				sb.append("---Body UTF-8---\n");
 				sb.append(body.asString()).append("\n");
 				sb.append("---Body Hex---\n");
-				sb.append(body.asHex()).append("\n");
+				sb.append(body.asSpacedHex()).append("\n");
 			} catch (Exception e1) {
 				sb.append(e1.getLocalizedMessage());
 				context.getLogger().log(WARNING, e1, "Error occurred while trying to read debug input.");

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
index 07be1fb..702bd99 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
@@ -300,6 +300,7 @@ public final class RestResponse extends HttpServletResponseWrapper {
 			}
 			os = getOutputStream();
 			if (encoder != null) {
+				@SuppressWarnings("resource")
 				final OutputStream os2 = encoder.getOutputStream(os);
 				os = new ServletOutputStream(){
 					@Override /* OutputStream */

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestUtils.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestUtils.java
index aa90a63..6450991 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestUtils.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestUtils.java
@@ -190,7 +190,7 @@ public final class RestUtils {
 		if (value.length == 0)
 			return fromParent;
 
-		List<String> l = new ArrayList<String>();
+		List<String> l = new ArrayList<>();
 		for (String v : value) {
 			if (! "INHERIT".equals(v))
 				l.add(v);
@@ -206,7 +206,7 @@ public final class RestUtils {
 		if (links.length == 0)
 			return parentLinks;
 
-		List<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<>();
 		for (String l : links) {
 			if ("INHERIT".equals(l))
 				list.addAll(Arrays.asList(parentLinks));
@@ -228,7 +228,7 @@ public final class RestUtils {
 		if (content.length == 0)
 			return parentContent;
 
-		List<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<>();
 		for (String l : content) {
 			if ("INHERIT".equals(l)) {
 				list.addAll(Arrays.asList(parentContent));

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResource.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResource.java
index 75552ba..0203008 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResource.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResource.java
@@ -82,7 +82,7 @@ public class StreamResource implements Streamable {
 	public StreamResource(MediaType mediaType, Map<String,Object> headers, Object...contents) throws IOException {
 		this.mediaType = mediaType;
 
-		Map<String,String> m = new LinkedHashMap<String,String>();
+		Map<String,String> m = new LinkedHashMap<>();
 		if (headers != null)
 			for (Map.Entry<String,Object> e : headers.entrySet())
 				m.put(e.getKey(), StringUtils.toString(e.getValue()));
@@ -112,9 +112,9 @@ public class StreamResource implements Streamable {
 	 * Builder class for constructing {@link StreamResource} objects.
 	 */
 	public static class Builder {
-		ArrayList<Object> contents = new ArrayList<Object>();
+		ArrayList<Object> contents = new ArrayList<>();
 		MediaType mediaType;
-		Map<String,String> headers = new LinkedHashMap<String,String>();
+		Map<String,String> headers = new LinkedHashMap<>();
 
 		/**
 		 * Specifies the resource media type string.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/UrlPathPattern.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/UrlPathPattern.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/UrlPathPattern.java
index b704d3b..91245c0 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/UrlPathPattern.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/UrlPathPattern.java
@@ -49,7 +49,7 @@ public final class UrlPathPattern implements Comparable<UrlPathPattern> {
 	class Builder {
 		boolean isDotAll, isOnlyDotAll;
 		Pattern pattern;
-		List<String> vars = new LinkedList<String>();
+		List<String> vars = new LinkedList<>();
 
 		private Builder(String patternString) {
 			if (! startsWith(patternString, '/'))

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/RemoteableServlet.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/RemoteableServlet.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/RemoteableServlet.java
index eb015c9..21d9a72 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/RemoteableServlet.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/RemoteableServlet.java
@@ -39,7 +39,7 @@ import org.apache.juneau.rest.annotation.*;
 @SuppressWarnings("serial")
 public abstract class RemoteableServlet extends RestServletDefault {
 
-	private final Map<String,Class<?>> classNameMap = new ConcurrentHashMap<String,Class<?>>();
+	private final Map<String,Class<?>> classNameMap = new ConcurrentHashMap<>();
 
 	//--------------------------------------------------------------------------------
 	// Abstract methods
@@ -69,7 +69,7 @@ public abstract class RemoteableServlet extends RestServletDefault {
 	 */
 	@RestMethod(name=GET, path="/")
 	public List<LinkString> getInterfaces(RestRequest req) throws Exception {
-		List<LinkString> l = new LinkedList<LinkString>();
+		List<LinkString> l = new LinkedList<>();
 		boolean useAll = ! useOnlyAnnotated();
 		for (Class<?> c : getServiceMap().keySet()) {
 			if (useAll || getContext().getBeanContext().getClassMeta(c).isRemoteable())

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java
index b5b16b5..70b24a8 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java
@@ -38,6 +38,7 @@ import org.apache.juneau.serializer.*;
  */
 public class DefaultHandler implements ResponseHandler {
 
+	@SuppressWarnings("resource")
 	@Override /* ResponseHandler */
 	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
 		SerializerGroup g = res.getSerializerGroup();
@@ -67,7 +68,7 @@ public class DefaultHandler implements ResponseHandler {
 						Writer w = res.getNegotiatedWriter();
 						ByteArrayOutputStream baos = new ByteArrayOutputStream();
 						session.serialize(baos, output);
-						w.write(StringUtils.toHex(baos.toByteArray()));
+						w.write(StringUtils.toSpacedHex(baos.toByteArray()));
 						w.close();  // Leave open if exception occurs.
 					} else {
 						OutputStream os = res.getNegotiatedOutputStream();

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/InputStreamHandler.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/InputStreamHandler.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/InputStreamHandler.java
index a2c91b2..073e030 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/InputStreamHandler.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/InputStreamHandler.java
@@ -32,8 +32,9 @@ public final class InputStreamHandler implements ResponseHandler {
 	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
 		if (output instanceof InputStream) {
 			res.setHeader("Content-Type", res.getContentType());
-			OutputStream os = res.getNegotiatedOutputStream();
-			IOPipe.create(output, os).closeOut().run();
+			try (OutputStream os = res.getNegotiatedOutputStream()) {
+				IOPipe.create(output, os).run();
+			}
 			return true;
 		}
 		return false;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ReaderHandler.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ReaderHandler.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ReaderHandler.java
index e231b2c..06b04f8 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ReaderHandler.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ReaderHandler.java
@@ -28,8 +28,9 @@ public final class ReaderHandler implements ResponseHandler {
 	@Override /* ResponseHandler */
 	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
 		if (output instanceof Reader) {
-			Writer w = res.getNegotiatedWriter();
-			IOPipe.create(output, w).closeOut().run();
+			try (Writer w = res.getNegotiatedWriter()) {
+				IOPipe.create(output, w).run();
+			}
 			return true;
 		}
 		return false;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/StreamableHandler.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/StreamableHandler.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/StreamableHandler.java
index 1bcc153..bfc5db1 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/StreamableHandler.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/StreamableHandler.java
@@ -39,10 +39,9 @@ public final class StreamableHandler implements ResponseHandler {
 				for (Map.Entry<String,String> h : r.getHeaders().entrySet())
 					res.setHeader(h.getKey(), h.getValue());
 			}
-			OutputStream os = res.getOutputStream();
-			((Streamable)output).streamTo(os);
-			os.flush();
-			os.close();
+			try (OutputStream os = res.getOutputStream()) {
+				((Streamable)output).streamTo(os);
+			}
 			return true;
 		}
 		return false;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/WritableHandler.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/WritableHandler.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/WritableHandler.java
index 46e4a79..684c1c2 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/WritableHandler.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/WritableHandler.java
@@ -38,10 +38,9 @@ public final class WritableHandler implements ResponseHandler {
 				for (Map.Entry<String,String> h : r.getHeaders().entrySet())
 					res.setHeader(h.getKey(), h.getValue());
 			}
-			Writer w = res.getNegotiatedWriter();
-			((Writable)output).writeTo(w);
-			w.flush();
-			w.close();
+			try (Writer w = res.getNegotiatedWriter()) {
+				((Writable)output).writeTo(w);
+			}
 			return true;
 		}
 		return false;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ZipFileListResponseHandler.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ZipFileListResponseHandler.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ZipFileListResponseHandler.java
index 5f895a4..5a5c452 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ZipFileListResponseHandler.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ZipFileListResponseHandler.java
@@ -44,20 +44,13 @@ public class ZipFileListResponseHandler implements ResponseHandler {
 			ZipFileList m = (ZipFileList)output;
 			res.setContentType("application/zip");
 			res.setHeader("Content-Disposition", "attachment;filename=" + m.fileName); //$NON-NLS-2$
-			OutputStream os = res.getOutputStream();
-			try {
-				ZipOutputStream zos = new ZipOutputStream(os);
-				try {
+			try (OutputStream os = res.getOutputStream()) {
+				try (ZipOutputStream zos = new ZipOutputStream(os)) {
 					for (ZipFileEntry e : m)
 						e.write(zos);
 				} catch (Exception e) {
 					e.printStackTrace();
-				} finally {
-					zos.flush();
-					zos.close();
 				}
-			} finally {
-				os.flush();
 			}
 			return true;
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
index c5f0d8f..57d8324 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
@@ -67,7 +67,7 @@ public class ContentTypeMenuItem extends MenuItemWidget {
 	@Override /* MenuItemWidget */
 	public Div getContent(RestRequest req) {
 		Div div = div();
-		Set<MediaType> l = new TreeSet<MediaType>();
+		Set<MediaType> l = new TreeSet<>();
 		for (Serializer s : req.getSerializerGroup().getSerializers())
 			l.add(s.getMediaTypes()[0]);
 		for (MediaType mt : l) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
index 3671573..2117e97 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
@@ -82,19 +82,17 @@ public abstract class MenuItemWidget extends Widget {
 			+ "\n\t<div class='popup-content'>\n"
 		);
 		Object o = getContent(req);
-		if (o instanceof Reader)
-			IOUtils.pipe((Reader)o, new StringBuilderWriter(sb));
-		else if (o instanceof CharSequence)
+		if (o instanceof Reader) {
+			try (Reader r = (Reader)o; Writer w = new StringBuilderWriter(sb)) {
+				IOUtils.pipe(r, w);
+			}
+		} else if (o instanceof CharSequence) {
 			sb.append((CharSequence)o);
-		else {
+		} else {
 			SerializerSessionArgs args = new SerializerSessionArgs(req.getProperties(), null, req.getLocale(), null, null, req.getUriContext());
 			WriterSerializerSession session = HtmlSerializer.DEFAULT.createSession(args);
-			try {
-				session.indent = 2;
-				session.serialize(sb, o);
-			} finally {
-				session.close();
-			}
+			session.indent = 2;
+			session.serialize(sb, o);
 		}
 		sb.append(""
 			+ "\n\t</div>"

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Tooltip.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Tooltip.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Tooltip.java
index 2eb2793..27cc13d 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Tooltip.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Tooltip.java
@@ -76,7 +76,7 @@ public class Tooltip {
     */
    public Tooltip(String display, Object...content) {
    	this.display = display;
-   	this.content = new ArrayList<Object>(Arrays.asList(content));
+   	this.content = new ArrayList<>(Arrays.asList(content));
    }
 
    /**


[4/8] juneau git commit: Update code to reflect changes in Java 7.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-svl/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-svl/.settings/org.eclipse.jdt.core.prefs b/juneau-core/juneau-svl/.settings/org.eclipse.jdt.core.prefs
index 8bd7d89..fb1af7a 100644
--- a/juneau-core/juneau-svl/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-core/juneau-svl/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,10 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -7,9 +13,105 @@ org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-svl/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-svl/.settings/org.eclipse.jdt.ui.prefs b/juneau-core/juneau-svl/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-core/juneau-svl/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-core/juneau-svl/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java b/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java
index 2ca0025..5ceef57 100644
--- a/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java
+++ b/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverBuilder.java
@@ -23,15 +23,14 @@ import org.apache.juneau.svl.vars.*;
  */
 public class VarResolverBuilder {
 
-	private final List<Class<? extends Var>> vars = new ArrayList<Class<? extends Var>>();
-	private final Map<String,Object> contextObjects = new HashMap<String,Object>();
+	private final List<Class<? extends Var>> vars = new ArrayList<>();
+	private final Map<String,Object> contextObjects = new HashMap<>();
 
 	/**
 	 * Create a new var resolver using the settings in this builder.
 	 *
 	 * @return A new var resolver.
 	 */
-	@SuppressWarnings("unchecked")
 	public VarResolver build() {
 		return new VarResolver(vars.toArray(new Class[vars.size()]), contextObjects);
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverContext.java b/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverContext.java
index c39d383..f0eecf6 100644
--- a/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverContext.java
+++ b/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverContext.java
@@ -41,7 +41,7 @@ public class VarResolverContext {
 
 		this.vars = Arrays.copyOf(vars, vars.length);
 
-		Map<String,Var> m = new ConcurrentSkipListMap<String,Var>();
+		Map<String,Var> m = new ConcurrentSkipListMap<>();
 		for (Class<?> c : vars) {
 			if (! isParentClass(Var.class, c))
 				throw new RuntimeException("Invalid variable class.  Must extend from Var");
@@ -50,7 +50,7 @@ public class VarResolverContext {
 		}
 
 		this.varMap = Collections.unmodifiableMap(m);
-		this.contextObjects = contextObjects == null ? null : Collections.unmodifiableMap(new ConcurrentHashMap<String,Object>(contextObjects));
+		this.contextObjects = contextObjects == null ? null : Collections.unmodifiableMap(new ConcurrentHashMap<>(contextObjects));
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-doc/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-doc/.settings/org.eclipse.jdt.core.prefs b/juneau-doc/.settings/org.eclipse.jdt.core.prefs
index 3b7e03d..cc96009 100644
--- a/juneau-doc/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-doc/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,117 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-doc/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-doc/.settings/org.eclipse.jdt.ui.prefs b/juneau-doc/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-doc/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-doc/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-doc/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index 15cdc1d..f98ab84 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -7374,7 +7374,7 @@
 	
 	<h5 class='toc'>What's new in each release</h5>
 	<ul class='toc'>
-		<li><p><a class='doclink' href='#7.0.0'>7.0.0 (TBD)</a></p>
+		<li><p><a class='doclink' href='#7.0.0'>7.0.0 (Oct 25, 2017)</a></p>
 		<li><p><a class='doclink' href='#6.4.0'>6.4.0 (Oct 5, 2017)</a></p>
 		<li><p><a class='doclink' href='#6.3.1'>6.3.1 (Aug 1, 2017)</a></p>
 		<li><p><a class='doclink' href='#6.3.0'>6.3.0 (Jun 30, 2017)</a></p>
@@ -7446,7 +7446,7 @@
 
 	<!-- =========================================================================================================== -->
 	<a id="7.0.0"></a>
-	<h3 class='topic' onclick='toggle(this)'>7.0.0 (TBD)</h3>
+	<h3 class='topic' onclick='toggle(this)'>7.0.0 (Oct 25, 2017)</h3>
 	<div class='topic'>
 		<p>
 			This release ups the Java prerequisite to Java 7.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.core.prefs b/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.core.prefs
index 68d351b..9df3fab 100644
--- a/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.core.prefs
@@ -1,16 +1,118 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=disabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.ui.prefs b/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-examples/juneau-examples-core/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.core.prefs b/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.core.prefs
index 68d351b..9df3fab 100644
--- a/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.core.prefs
@@ -1,16 +1,118 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=disabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.ui.prefs b/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-examples/juneau-examples-rest/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/AddressBook.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/AddressBook.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/AddressBook.java
index 72c1473..dbc27d5 100755
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/AddressBook.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/AddressBook.java
@@ -97,11 +97,11 @@ public class AddressBook extends LinkedList<Person> implements IAddressBook {
 
 	@Override /* IAddressBook */
 	public List<Address> getAddresses() {
-		Set<Address> s = new LinkedHashSet<Address>();
+		Set<Address> s = new LinkedHashSet<>();
 		for (Person p : this)
 			for (Address a : p.addresses)
 				s.add(a);
-		return new ArrayList<Address>(s);
+		return new ArrayList<>(s);
 	}
 
 	@Override /* IAddressBook */

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/CreatePerson.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/CreatePerson.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/CreatePerson.java
index 03cc416..c3c3a99 100755
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/CreatePerson.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/CreatePerson.java
@@ -33,7 +33,7 @@ public class CreatePerson {
 	@Swap(CalendarSwap.DateMedium.class) 
 	public Calendar birthDate;
 	
-	public LinkedList<CreateAddress> addresses = new LinkedList<CreateAddress>();
+	public LinkedList<CreateAddress> addresses = new LinkedList<>();
 
 	/** Bean constructor - Needed for instantiating on server side */
 	public CreatePerson() {}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/Person.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/Person.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/Person.java
index c298333..2ac6472 100755
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/Person.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/addressbook/Person.java
@@ -43,7 +43,7 @@ public class Person {
 	@Swap(CalendarSwap.DateMedium.class) 
 	public Calendar birthDate;
 	
-	public LinkedList<Address> addresses = new LinkedList<Address>();
+	public LinkedList<Address> addresses = new LinkedList<>();
 
 	/** Bean constructor - Needed for instantiating on server side */
 	public Person() {}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
index db1dfda..fd11b10 100644
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
@@ -103,7 +103,7 @@ public class DirectoryResource extends Resource {
 		properties.put("path", f.getAbsolutePath());
 
 		if (f.isDirectory()) {
-			List<FileResource> l = new LinkedList<FileResource>();
+			List<FileResource> l = new LinkedList<>();
 			File[] lfc = f.listFiles();
 			if (lfc != null) {
 				for (File fc : lfc) {
@@ -141,14 +141,16 @@ public class DirectoryResource extends Resource {
 
 		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
 		String parentSubPath = f.getParentFile().getAbsolutePath().substring(rootDir.getAbsolutePath().length());
-		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f));
-		IOPipe.create(req.getInputStream(), bos).closeOut().run();
+		try (InputStream is = req.getInputStream(); OutputStream os = new BufferedOutputStream(new FileOutputStream(f))) {
+			IOPipe.create(is, os).run();
+		}
 		if (req.getContentType().contains("html"))
 			return new Redirect(parentSubPath);
 		return "File added";
 	}
 
 	/** VIEW request handler (overloaded GET for viewing file contents) */
+	@SuppressWarnings("resource")
 	@RestMethod(name="VIEW", path="/*")
 	public void doView(RestRequest req, RestResponse res) throws Exception {
 
@@ -167,6 +169,7 @@ public class DirectoryResource extends Resource {
 	}
 
 	/** DOWNLOAD request handler (overloaded GET for downloading file contents) */
+	@SuppressWarnings("resource")
 	@RestMethod(name="DOWNLOAD")
 	public void doDownload(RestRequest req, RestResponse res) throws Exception {
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
index 7b83e62..0f9f4f5 100644
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
@@ -61,13 +61,11 @@ public class PhotosResource extends Resource {
 	private static final long serialVersionUID = 1L;
 
 	// Our cache of photos
-	private Map<String,Photo> photos = new TreeMap<String,Photo>();
+	private Map<String,Photo> photos = new TreeMap<>();
 
 	@Override /* Servlet */
 	public void init() {
-		try {
-			// Preload an image.
-			InputStream is = getClass().getResourceAsStream("averycutecat.jpg");
+		try (InputStream is = getClass().getResourceAsStream("averycutecat.jpg")) {
 			BufferedImage image = ImageIO.read(is);
 			Photo photo = new Photo("cat", image);
 			photos.put(photo.id, photo);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SampleRemoteableServlet.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SampleRemoteableServlet.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SampleRemoteableServlet.java
index 0c70ce2..6d61e7c 100644
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SampleRemoteableServlet.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SampleRemoteableServlet.java
@@ -52,7 +52,7 @@ public class SampleRemoteableServlet extends RemoteableServlet {
 
 	@Override /* RemoteableServlet */
 	protected Map<Class<?>,Object> getServiceMap() throws Exception {
-		Map<Class<?>,Object> m = new LinkedHashMap<Class<?>,Object>();
+		Map<Class<?>,Object> m = new LinkedHashMap<>();
 
 		// In this simplified example, we expose the same POJO service under two different interfaces.
 		// One is IAddressBook which only exposes methods defined on that interface, and

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
index d65fada..95dcaf8 100644
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
@@ -132,7 +132,7 @@ public class SqlQueryResource extends Resource {
 	@RestMethod(name=POST, path="/", summary="Execute one or more queries")
 	public List<Object> doPost(@Body PostInput in) throws Exception {
 
-		List<Object> results = new LinkedList<Object>();
+		List<Object> results = new LinkedList<>();
 
 		// Don't try to submit empty input.
 		if (isEmpty(in.sql))
@@ -143,30 +143,32 @@ public class SqlQueryResource extends Resource {
 		if (in.limit < 1 || in.limit > 10000)
 			throw new RestException(SC_BAD_REQUEST, "Invalid value for limit.  Must be between 1-10000");
 
-		// Create a connection and statement.
-		// If these fais, let the exception filter up as a 500 error.
-		Connection c = DriverManager.getConnection(connectionUrl);
-		c.setAutoCommit(false);
-		Statement st = c.createStatement();
 		String sql = null;
 
-		try {
-			for (String s : in.sql.split(";")) {
-				sql = s.trim();
-				if (! sql.isEmpty()) {
-					Object o = null;
-					if (allowUpdates || (allowTempUpdates && ! sql.matches("(?:i)commit.*"))) {
-						if (st.execute(sql)) {
-							ResultSet rs = st.getResultSet();
-							o = new ResultSetList(rs, in.pos, in.limit, includeRowNums);
+		// Create a connection and statement.
+		// If these fais, let the exception filter up as a 500 error.
+		try (Connection c = DriverManager.getConnection(connectionUrl)) {
+			c.setAutoCommit(false);
+			try (Statement st = c.createStatement()) {
+				for (String s : in.sql.split(";")) {
+					sql = s.trim();
+					if (! sql.isEmpty()) {
+						Object o = null;
+						if (allowUpdates || (allowTempUpdates && ! sql.matches("(?:i)commit.*"))) {
+							if (st.execute(sql)) {
+								try (ResultSet rs = st.getResultSet()) {
+									o = new ResultSetList(rs, in.pos, in.limit, includeRowNums);
+								}
+							} else {
+								o = st.getUpdateCount();
+							}
 						} else {
-							o = st.getUpdateCount();
+							try (ResultSet rs = st.executeQuery(sql)) {
+								o = new ResultSetList(rs, in.pos, in.limit, includeRowNums);
+							}
 						}
-					} else {
-						ResultSet rs = st.executeQuery(sql);
-						o = new ResultSetList(rs, in.pos, in.limit, includeRowNums);
+						results.add(o);
 					}
-					results.add(o);
 				}
 			}
 			if (allowUpdates)
@@ -174,10 +176,7 @@ public class SqlQueryResource extends Resource {
 			else if (allowTempUpdates)
 				c.rollback();
 		} catch (SQLException e) {
-			c.rollback();
 			throw new RestException(SC_BAD_REQUEST, "Invalid query:  {0}", sql).initCause(e);
-		} finally {
-			c.close();
 		}
 
 		return results;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
index c37f4c3..bcd3e74 100644
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
@@ -88,7 +88,9 @@ public class TempDirResource extends DirectoryResource {
 			FileItemStream item = iter.next();
 			if (item.getFieldName().equals("contents")) {
 				File f = new File(getRootDir(), item.getName());
-				IOPipe.create(item.openStream(), new FileOutputStream(f)).closeOut().run();
+				try (FileOutputStream fos = new FileOutputStream(f)) {
+					IOPipe.create(item.openStream(), fos).run();
+				}
 			}
 		}
 		return new Redirect(); // Redirect to the servlet root.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java
index 6c72dde..051ba65 100644
--- a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java
+++ b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestMultiPartFormPostsTest.java
@@ -35,7 +35,9 @@ public class TestMultiPartFormPostsTest extends RestTestcase {
 	public void testUpload() throws Exception {
 		RestClient client = SamplesMicroservice.DEFAULT_CLIENT;
 		File f = createTempFile("testMultiPartFormPosts.txt");
-		IOPipe.create(new StringReader("test!"), new FileWriter(f)).closeOut().run();
+		try (FileWriter fw = new FileWriter(f)) {
+			IOPipe.create(new StringReader("test!"), fw).run();
+		}
 		HttpEntity entity = MultipartEntityBuilder.create().addBinaryBody(f.getName(), f).build();
 		client.doPost(URL + "/upload", entity);
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
index a38e4ed..3f2d420 100644
--- a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
+++ b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
@@ -175,7 +175,7 @@ public class TestUtils {
 		if (xmlSchema.indexOf('\u0000') != -1) {
 
 			// Break it up into a map of namespaceURI->schema document
-			final Map<String,String> schemas = new HashMap<String,String>();
+			final Map<String,String> schemas = new HashMap<>();
 			String[] ss = xmlSchema.split("\u0000");
 			xmlSchema = ss[0];
 			for (String s : ss) {
@@ -253,9 +253,11 @@ public class TestUtils {
 		if (is == null) {
 			is = new FileInputStream(p);
 		}
-		String e = read(is);
-		e = e.replaceAll("\r", "");
-		return e;
+		try (InputStream is2 = is) {
+			String e = read(is2);
+			e = e.replaceAll("\r", "");
+			return e;
+		}
 	}
 
 	final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();


[8/8] juneau git commit: Update code to reflect changes in Java 7.

Posted by ja...@apache.org.
Update code to reflect changes in Java 7.

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

Branch: refs/heads/master
Commit: d1258753a5a851d762938aad18e87b2d969db094
Parents: 7aa1d47
Author: JamesBognar <ja...@apache.org>
Authored: Thu Oct 26 19:21:47 2017 -0400
Committer: JamesBognar <ja...@apache.org>
Committed: Thu Oct 26 19:21:47 2017 -0400

----------------------------------------------------------------------
 .../.settings/org.eclipse.jdt.core.prefs        | 102 +++++
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../java/org/apache/juneau/ini/ConfigFile.java  |   2 +-
 .../apache/juneau/ini/ConfigFileBuilder.java    |  13 +-
 .../org/apache/juneau/ini/ConfigFileImpl.java   |  21 +-
 .../java/org/apache/juneau/ini/Section.java     |  10 +-
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../juneau/json/JsonParserEdgeCasesTest.java    | 232 +++++------
 .../.settings/org.eclipse.jdt.core.prefs        | 102 +++++
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../org/apache/juneau/dto/cognos/DataSet.java   |   4 +-
 .../apache/juneau/dto/html5/HtmlElement.java    |   4 +-
 .../juneau/dto/html5/HtmlElementContainer.java  |   4 +-
 .../juneau/dto/html5/HtmlElementMixed.java      |   2 +-
 .../apache/juneau/dto/jsonschema/Schema.java    |  22 +-
 .../apache/juneau/dto/jsonschema/SchemaMap.java |  13 +-
 .../apache/juneau/dto/swagger/HeaderInfo.java   |   2 +-
 .../org/apache/juneau/dto/swagger/Items.java    |   2 +-
 .../apache/juneau/dto/swagger/Operation.java    |  18 +-
 .../juneau/dto/swagger/ParameterInfo.java       |   2 +-
 .../apache/juneau/dto/swagger/ResponseInfo.java |   4 +-
 .../apache/juneau/dto/swagger/SchemaInfo.java   |  10 +-
 .../juneau/dto/swagger/SecurityScheme.java      |   2 +-
 .../org/apache/juneau/dto/swagger/Swagger.java  |  24 +-
 .../.settings/org.eclipse.jdt.core.prefs        | 102 +++++
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../apache/juneau/jena/RdfParserContext.java    |   2 +-
 .../apache/juneau/jena/RdfParserSession.java    |   8 +-
 .../juneau/jena/RdfSerializerContext.java       |   2 +-
 .../juneau/jena/RdfSerializerSession.java       |   4 +-
 .../.settings/org.eclipse.jdt.core.prefs        | 102 +++++
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 juneau-core/juneau-marshall/TODO.txt            |  14 +
 .../java/org/apache/juneau/BeanContext.java     |  26 +-
 .../main/java/org/apache/juneau/BeanMap.java    |   8 +-
 .../main/java/org/apache/juneau/BeanMeta.java   |  28 +-
 .../org/apache/juneau/BeanPropertyMeta.java     |   6 +-
 .../juneau/BeanProxyInvocationHandler.java      |   2 +-
 .../java/org/apache/juneau/BeanRegistry.java    |   4 +-
 .../java/org/apache/juneau/BeanSession.java     |  16 +-
 .../main/java/org/apache/juneau/ClassMeta.java  |  10 +-
 .../main/java/org/apache/juneau/ObjectMap.java  |   4 +-
 .../java/org/apache/juneau/PropertyStore.java   |  20 +-
 .../main/java/org/apache/juneau/Session.java    |  28 +-
 .../main/java/org/apache/juneau/Visibility.java |   2 +-
 .../org/apache/juneau/csv/CsvParserSession.java |  10 +-
 .../apache/juneau/csv/CsvSerializerSession.java |  51 +--
 .../apache/juneau/encoders/EncoderGroup.java    |   8 +-
 .../juneau/encoders/EncoderGroupBuilder.java    |   6 +-
 .../juneau/html/HtmlBeanPropertyMeta.java       |   2 +-
 .../juneau/html/HtmlDocSerializerSession.java   |  28 +-
 .../apache/juneau/html/HtmlParserSession.java   |   6 +-
 .../html/HtmlSchemaDocSerializerSession.java    |   2 +-
 .../juneau/html/HtmlSerializerSession.java      |  10 +-
 .../html/HtmlStrippedDocSerializerSession.java  |  15 +-
 .../java/org/apache/juneau/html/HtmlTag.java    |   2 +-
 .../java/org/apache/juneau/http/Accept.java     |   2 +-
 .../org/apache/juneau/http/AcceptCharset.java   |   2 +-
 .../org/apache/juneau/http/AcceptEncoding.java  |   2 +-
 .../org/apache/juneau/http/AcceptLanguage.java  |   2 +-
 .../org/apache/juneau/http/ContentType.java     |   2 +-
 .../java/org/apache/juneau/http/HttpMethod.java |   2 +-
 .../java/org/apache/juneau/http/MediaType.java  |   9 +-
 .../org/apache/juneau/http/MediaTypeRange.java  |  15 +-
 .../org/apache/juneau/http/StringRange.java     |   5 +-
 .../main/java/org/apache/juneau/http/TE.java    |   2 +-
 .../org/apache/juneau/internal/ArrayUtils.java  |   4 +-
 .../apache/juneau/internal/ByteArrayCache.java  |  10 +-
 .../java/org/apache/juneau/internal/Cache.java  |   2 +-
 .../org/apache/juneau/internal/ClassUtils.java  |  12 +-
 .../apache/juneau/internal/CollectionUtils.java |   6 +-
 .../org/apache/juneau/internal/DateUtils.java   |   4 +-
 .../apache/juneau/internal/DelegateBeanMap.java |   8 +-
 .../juneau/internal/FileReaderBuilder.java      | 116 ++++++
 .../juneau/internal/FileWriterBuilder.java      | 123 ++++++
 .../org/apache/juneau/internal/FilteredMap.java |   4 +-
 .../org/apache/juneau/internal/IOUtils.java     |  24 +-
 .../apache/juneau/internal/JuneauLogger.java    |   2 +-
 .../apache/juneau/internal/MultiIterable.java   |   2 +-
 .../org/apache/juneau/internal/MultiSet.java    |   2 +-
 .../juneau/internal/NoCloseOutputStream.java    |  60 +++
 .../apache/juneau/internal/NoCloseWriter.java   |  85 ++++
 .../apache/juneau/internal/ReflectionUtils.java |   4 +-
 .../org/apache/juneau/internal/StringUtils.java |  62 ++-
 .../apache/juneau/internal/TeeOutputStream.java |   2 +-
 .../org/apache/juneau/internal/TeeWriter.java   |   2 +-
 .../apache/juneau/jso/JsoSerializerSession.java |   7 +-
 .../apache/juneau/json/JsonParserSession.java   |  33 +-
 .../json/JsonSchemaSerializerSession.java       |   2 +-
 .../juneau/msgpack/MsgPackParserSession.java    |   8 +-
 .../msgpack/MsgPackSerializerSession.java       |   8 +-
 .../java/org/apache/juneau/parser/Parser.java   |  42 +-
 .../org/apache/juneau/parser/ParserContext.java |   1 -
 .../org/apache/juneau/parser/ParserGroup.java   |   8 +-
 .../juneau/parser/ParserGroupBuilder.java       |   8 +-
 .../org/apache/juneau/parser/ParserPipe.java    |   6 +-
 .../org/apache/juneau/parser/ParserSession.java |  36 +-
 .../juneau/remoteable/RemoteableMeta.java       |   2 +-
 .../juneau/remoteable/RemoteableMethodMeta.java |  12 +-
 .../apache/juneau/serializer/Serializer.java    |  18 +-
 .../juneau/serializer/SerializerContext.java    |   1 -
 .../juneau/serializer/SerializerGroup.java      |   8 +-
 .../serializer/SerializerGroupBuilder.java      |   8 +-
 .../juneau/serializer/SerializerPipe.java       |  21 +-
 .../juneau/serializer/SerializerSession.java    |  19 +-
 .../juneau/soap/SoapXmlSerializerSession.java   |  29 +-
 .../transform/AnnotationBeanFilterBuilder.java  |   2 +-
 .../juneau/transform/BeanFilterBuilder.java     |   4 +-
 .../transform/InterfaceBeanFilterBuilder.java   |   2 +-
 .../apache/juneau/transform/SurrogateSwap.java  |   2 +-
 .../org/apache/juneau/uon/UonParserSession.java |  29 +-
 .../juneau/urlencoding/UrlEncodingParser.java   | 120 +++---
 .../urlencoding/UrlEncodingParserSession.java   |  19 +-
 .../UrlEncodingSerializerSession.java           |   4 +-
 .../main/java/org/apache/juneau/utils/Args.java |   2 +-
 .../org/apache/juneau/utils/CalendarUtils.java  |   4 +-
 .../java/org/apache/juneau/utils/IOPipe.java    |   7 +-
 .../org/apache/juneau/utils/ManifestFile.java   |   5 +-
 .../org/apache/juneau/utils/MessageBundle.java  |  14 +-
 .../java/org/apache/juneau/utils/PojoQuery.java |  20 +-
 .../org/apache/juneau/utils/ProcBuilder.java    |   4 +-
 .../org/apache/juneau/utils/ResourceFinder.java |   8 +-
 .../org/apache/juneau/utils/SearchArgs.java     |  12 +-
 .../org/apache/juneau/utils/ZipFileList.java    |   4 +-
 .../org/apache/juneau/xml/NamespaceFactory.java |   2 +-
 .../java/org/apache/juneau/xml/XmlBeanMeta.java |   6 +-
 .../juneau/xml/XmlDocSerializerSession.java     |  15 +-
 .../org/apache/juneau/xml/XmlParserSession.java |   6 +-
 .../java/org/apache/juneau/xml/XmlReader.java   |   1 +
 .../xml/XmlSchemaDocSerializerSession.java      |  15 +-
 .../juneau/xml/XmlSchemaSerializerSession.java  |  14 +-
 .../java/org/apache/juneau/xml/XmlUtils.java    |   4 +-
 .../juneau/yaml/proto/YamlParserSession.java    |  33 +-
 .../yaml/proto/YamlSerializerSession.java       |   4 +-
 .../.settings/org.eclipse.jdt.core.prefs        | 102 +++++
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../apache/juneau/svl/VarResolverBuilder.java   |   5 +-
 .../apache/juneau/svl/VarResolverContext.java   |   4 +-
 juneau-doc/.settings/org.eclipse.jdt.core.prefs | 110 +++++
 juneau-doc/.settings/org.eclipse.jdt.ui.prefs   |   6 +
 juneau-doc/src/main/javadoc/overview.html       |   4 +-
 .../.settings/org.eclipse.jdt.core.prefs        | 108 ++++-
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../.settings/org.eclipse.jdt.core.prefs        | 108 ++++-
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../examples/addressbook/AddressBook.java       |   4 +-
 .../examples/addressbook/CreatePerson.java      |   2 +-
 .../juneau/examples/addressbook/Person.java     |   2 +-
 .../juneau/examples/rest/DirectoryResource.java |   9 +-
 .../juneau/examples/rest/PhotosResource.java    |   6 +-
 .../examples/rest/SampleRemoteableServlet.java  |   2 +-
 .../juneau/examples/rest/SqlQueryResource.java  |  45 +--
 .../juneau/examples/rest/TempDirResource.java   |   4 +-
 .../rest/TestMultiPartFormPostsTest.java        |   4 +-
 .../apache/juneau/examples/rest/TestUtils.java  |  10 +-
 .../.settings/org.eclipse.jdt.core.prefs        | 108 ++++-
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../juneau/microservice/Microservice.java       |   5 +-
 .../juneau/microservice/RestMicroservice.java   |  10 +-
 .../microservice/resources/DebugResource.java   |   4 +-
 .../resources/DirectoryResource.java            |   7 +-
 .../resources/LogEntryFormatter.java            |   4 +-
 .../microservice/resources/LogParser.java       |  14 +-
 .../microservice/resources/LogsResource.java    |  19 +-
 .../.settings/org.eclipse.jdt.core.prefs        | 108 ++++-
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../.settings/org.eclipse.jdt.core.prefs        | 401 ++++++++++++++++++-
 .../microservice/sample/HelloWorldResource.java |   5 +-
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../juneau/rest/test/AcceptCharsetResource.java |   6 +-
 .../.settings/org.eclipse.jdt.core.prefs        | 102 +++++
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../org/apache/juneau/rest/client/RestCall.java |  32 +-
 .../apache/juneau/rest/client/RestClient.java   |   9 +-
 .../juneau/rest/client/RestClientBuilder.java   |   6 +-
 .../juneau/rest/client/RestRequestEntity.java   |  22 +-
 .../.settings/org.eclipse.jdt.core.prefs        | 102 +++++
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../apache/juneau/rest/jaxrs/BaseProvider.java  |  20 +-
 .../.settings/org.eclipse.jdt.core.prefs        | 102 +++++
 .../.settings/org.eclipse.jdt.ui.prefs          |   6 +
 .../java/org/apache/juneau/rest/CallMethod.java |  23 +-
 .../java/org/apache/juneau/rest/CallRouter.java |   4 +-
 .../org/apache/juneau/rest/HtmlDocBuilder.java  |   2 +-
 .../org/apache/juneau/rest/ReaderResource.java  |   6 +-
 .../org/apache/juneau/rest/RequestBody.java     |  18 +-
 .../org/apache/juneau/rest/RestCallHandler.java |  21 +-
 .../java/org/apache/juneau/rest/RestConfig.java |  30 +-
 .../org/apache/juneau/rest/RestContext.java     |  78 ++--
 .../apache/juneau/rest/RestInfoProvider.java    |   2 +-
 .../apache/juneau/rest/RestParamDefaults.java   |   2 +-
 .../org/apache/juneau/rest/RestRequest.java     |   2 +-
 .../org/apache/juneau/rest/RestResponse.java    |   1 +
 .../java/org/apache/juneau/rest/RestUtils.java  |   6 +-
 .../org/apache/juneau/rest/StreamResource.java  |   6 +-
 .../org/apache/juneau/rest/UrlPathPattern.java  |   2 +-
 .../rest/remoteable/RemoteableServlet.java      |   4 +-
 .../juneau/rest/response/DefaultHandler.java    |   3 +-
 .../rest/response/InputStreamHandler.java       |   5 +-
 .../juneau/rest/response/ReaderHandler.java     |   5 +-
 .../juneau/rest/response/StreamableHandler.java |   7 +-
 .../juneau/rest/response/WritableHandler.java   |   7 +-
 .../response/ZipFileListResponseHandler.java    |  11 +-
 .../juneau/rest/widget/ContentTypeMenuItem.java |   2 +-
 .../juneau/rest/widget/MenuItemWidget.java      |  18 +-
 .../org/apache/juneau/rest/widget/Tooltip.java  |   2 +-
 206 files changed, 3229 insertions(+), 1082 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-config/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-config/.settings/org.eclipse.jdt.core.prefs b/juneau-core/juneau-config/.settings/org.eclipse.jdt.core.prefs
index 8bd7d89..fb1af7a 100644
--- a/juneau-core/juneau-config/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-core/juneau-config/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,10 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -7,9 +13,105 @@ org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-config/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-config/.settings/org.eclipse.jdt.ui.prefs b/juneau-core/juneau-config/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-core/juneau-config/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-core/juneau-config/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java
index 5a956a5..951008b 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java
@@ -839,7 +839,7 @@ public abstract class ConfigFile implements Map<String,Section> {
 			Set<String> keys = getSectionKeys(sectionName);
 			if (keys == null)
 				throw new IllegalArgumentException("Section not found");
-			keys = new LinkedHashSet<String>(keys);
+			keys = new LinkedHashSet<>(keys);
 			for (Method m : bean.getClass().getMethods()) {
 				int mod = m.getModifiers();
 				if (isPublic(mod) && (!isStatic(mod)) && m.getName().startsWith("set") && m.getParameterTypes().length == 1) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java
index e3db946..887463c 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileBuilder.java
@@ -20,6 +20,7 @@ import java.nio.charset.*;
 import java.util.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.internal.FileWriterBuilder;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
@@ -112,7 +113,7 @@ public class ConfigFileBuilder {
 	 * @return This object (for method chaining).
 	 */
 	public ConfigFileBuilder paths(String...searchPaths) {
-		this.searchPaths = new LinkedList<File>();
+		this.searchPaths = new LinkedList<>();
 		for (String p : searchPaths)
 			this.searchPaths.add(new File(p));
 		return this;
@@ -296,20 +297,14 @@ public class ConfigFileBuilder {
 					return;
 
 				} else if (command.equalsIgnoreCase("createBatchEnvFile")) {
-					Writer fw = new OutputStreamWriter(new FileOutputStream(envFile), Charset.defaultCharset());
-					try {
+					try (Writer fw = FileWriterBuilder.create(envFile).build()) {
 						cf.serializeTo(fw, BATCH);
-					} finally {
-						fw.close();
 					}
 					return;
 
 				} else if (command.equalsIgnoreCase("createShellEnvFile")) {
-					Writer fw = new OutputStreamWriter(new FileOutputStream(envFile), Charset.defaultCharset());
-					try {
+					try (Writer fw = FileWriterBuilder.create(envFile).build()) {
 						cf.serializeTo(fw, SHELL);
-					} finally {
-						fw.close();
 					}
 					return;
 				}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
index 6a3c8b0..5e2e3b2 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
@@ -143,15 +143,8 @@ public final class ConfigFileImpl extends ConfigFile {
 
 	@Override /* ConfigFile */
 	public ConfigFileImpl load() throws IOException {
-		Reader r = null;
-		if (file != null && file.exists())
-			r = new InputStreamReader(new FileInputStream(file), charset);
-		else
-			r = new StringReader("");
-		try {
+		try (Reader r = FileReaderBuilder.create(file).charset(charset).allowNoFile().build()) {
 			load(r);
-		} finally {
-			r.close();
 		}
 		return this;
 	}
@@ -162,15 +155,14 @@ public final class ConfigFileImpl extends ConfigFile {
 		writeLock();
 		try {
 			this.sections = Collections.synchronizedMap(new LinkedHashMap<String,Section>());
-			BufferedReader in = new BufferedReader(r);
-			try {
+			try (BufferedReader in = new BufferedReader(r)) {
 				writeLock();
 				hasBeenModified = false;
 				try {
 					sections.clear();
 					String line = null;
 					Section section = getSection(null, true);
-					ArrayList<String> lines = new ArrayList<String>();
+					ArrayList<String> lines = new ArrayList<>();
 					boolean canAppend = false;
 					while ((line = in.readLine()) != null) {
 						if (isSection(line)) {
@@ -201,8 +193,6 @@ public final class ConfigFileImpl extends ConfigFile {
 				} finally {
 					writeUnlock();
 				}
-			} finally {
-				in.close();
 			}
 		} finally {
 			writeUnlock();
@@ -648,13 +638,10 @@ public final class ConfigFileImpl extends ConfigFile {
 		try {
 			if (file == null)
 				throw new UnsupportedOperationException("No backing file specified for config file.");
-			Writer out = new OutputStreamWriter(new FileOutputStream(file), charset);
-			try {
+			try (Writer out = FileWriterBuilder.create(file).charset(charset).build()) {
 				serializeTo(out);
 				hasBeenModified = false;
 				modifiedTimestamp = file.lastModified();
-			} finally {
-				out.close();
 			}
 			for (ConfigFileListener l : listeners)
 				l.onSave(this);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/Section.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/Section.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/Section.java
index 39108a3..aa91e8e 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/Section.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/Section.java
@@ -32,8 +32,8 @@ public class Section implements Map<String,String> {
 
 	// The data structures that make up this object.
 	// These must be kept synchronized.
-	private LinkedList<String> lines = new LinkedList<String>();
-	private List<String> headerComments = new LinkedList<String>();
+	private LinkedList<String> lines = new LinkedList<>();
+	private List<String> headerComments = new LinkedList<>();
 	private Map<String,String> entries;
 
 	private ReadWriteLock lock = new ReentrantReadWriteLock();
@@ -43,7 +43,7 @@ public class Section implements Map<String,String> {
 	 * Constructor.
 	 */
 	public Section() {
-		this.entries = new LinkedHashMap<String,String>();
+		this.entries = new LinkedHashMap<>();
 	}
 
 	/**
@@ -52,7 +52,7 @@ public class Section implements Map<String,String> {
 	 * @param contents Predefined contents to copy into this section.
 	 */
 	public Section(Map<String,String> contents) {
-		this.entries = new LinkedHashMap<String,String>(contents);
+		this.entries = new LinkedHashMap<>(contents);
 	}
 
 	Section setReadOnly() {
@@ -512,7 +512,7 @@ public class Section implements Map<String,String> {
 	 * be associated with the next section.
 	 */
 	List<String> removeTrailingComments() {
-		LinkedList<String> l = new LinkedList<String>();
+		LinkedList<String> l = new LinkedList<>();
 		while ((! lines.isEmpty()) && lines.getLast().startsWith("#"))
 			l.addFirst(lines.removeLast());
 		return l;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-core-test/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/.settings/org.eclipse.jdt.ui.prefs b/juneau-core/juneau-core-test/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-core/juneau-core-test/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-core/juneau-core-test/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java
index 3b0b7cc..320fcf9 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonParserEdgeCasesTest.java
@@ -33,25 +33,25 @@ public class JsonParserEdgeCasesTest {
 	public static Collection<Object[]> getPairs() {
 		return Arrays.asList(new Object[][] {
 			{ 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 },
-			{ 4, "ix_string_incomplete_surrogate_and_escape_valid", "5B225C75443830305C6E225D"/*["buD800\n"]*/, null },
-			{ 5, "ix_string_incomplete_surrogate_pair", "5B225C754464316561225D"/*["buDd1ea"]*/, null },
-			{ 6, "ix_string_incomplete_surrogates_escape_valid", "5B225C75443830305C75443830305C6E225D"/*["buD800buD800\n"]*/, null },
-			{ 7, "ix_string_invalid_lonely_surrogate", "5B225C7564383030225D"/*["bud800"]*/, null },
-			{ 8, "ix_string_invalid_surrogate", "5B225C7564383030616263225D"/*["bud800abc"]*/, null },
-			{ 9, "ix_string_inverted_surrogates_U+1D11E", "5B225C75446431655C7544383334225D"/*["buDd1ebuD834"]*/, null },
-			{ 10, "ix_string_lone_second_surrogate", "5B225C7544464141225D"/*["buDFAA"]*/, null },
-			{ 11, "ix_string_not_in_unicode_range", "5B22F4BFBFBF225D"/*["[fffd][fffd][fffd][fffd]"]*/, "I/O exception occurred.  exception=MalformedInputException" },
-			{ 12, "ix_string_truncated-utf-8", "5B22E0FF225D"/*["[fffd][fffd]"]*/, "I/O exception occurred.  exception=MalformedInputException" },
-			{ 13, "ix_string_unicode_U+10FFFE_nonchar", "5B225C75444246465C7544464645225D"/*["buDBFFbuDFFE"]*/, null },
-			{ 14, "ix_string_unicode_U+1FFFE_nonchar", "5B225C75443833465C7544464645225D"/*["buD83FbuDFFE"]*/, null },
-			{ 15, "ix_string_unicode_U+FDD0_nonchar", "5B225C7546444430225D"/*["buFDD0"]*/, null },
-			{ 16, "ix_string_unicode_U+FFFE_nonchar", "5B225C7546464645225D"/*["buFFFE"]*/, null },
-			{ 17, "ix_string_UTF-16LE_with_BOM", "FFFE5B002200E90022005D00"/*[fffd][fffd][[0]"[0][fffd][0]"[0]][0]*/, null },
-			{ 18, "ix_string_UTF-8_invalid_sequence", "5B22E697A5D188FA225D"/*["[65e5][448][fffd]"]*/, null },
-			{ 19, "ix_structure_UTF-8_BOM_empty_object", "EFBBBF7B7D"/*[feff]{}*/, "Unrecognized syntax" },
+			{ 1, "ix_object_key_lone_2nd_surrogate", "7B 22 5C 75 44 46 41 41 22 3A 30 7D"/*{"buDFAA":0}*/, null },
+			{ 2, "ix_string_1st_surrogate_but_2nd_missing", "5B 22 5C 75 44 41 44 41 22 5D"/*["buDADA"]*/, null },
+			{ 3, "ix_string_1st_valid_surrogate_2nd_invalid", "5B 22 5C 75 44 38 38 38 5C 75 31 32 33 34 22 5D"/*["buD888bu1234"]*/, null },
+			{ 4, "ix_string_incomplete_surrogate_and_escape_valid", "5B 22 5C 75 44 38 30 30 5C 6E 22 5D"/*["buD800\n"]*/, null },
+			{ 5, "ix_string_incomplete_surrogate_pair", "5B 22 5C 75 44 64 31 65 61 22 5D"/*["buDd1ea"]*/, null },
+			{ 6, "ix_string_incomplete_surrogates_escape_valid", "5B 22 5C 75 44 38 30 30 5C 75 44 38 30 30 5C 6E 22 5D"/*["buD800buD800\n"]*/, null },
+			{ 7, "ix_string_invalid_lonely_surrogate", "5B 22 5C 75 64 38 30 30 22 5D"/*["bud800"]*/, null },
+			{ 8, "ix_string_invalid_surrogate", "5B 22 5C 75 64 38 30 30 61 62 63 22 5D"/*["bud800abc"]*/, null },
+			{ 9, "ix_string_inverted_surrogates_U+1D11E", "5B 22 5C 75 44 64 31 65 5C 75 44 38 33 34 22 5D"/*["buDd1ebuD834"]*/, null },
+			{ 10, "ix_string_lone_second_surrogate", "5B 22 5C 75 44 46 41 41 22 5D"/*["buDFAA"]*/, null },
+			{ 11, "ix_string_not_in_unicode_range", "5B 22 F4 BF BF BF 22 5D"/*["[fffd][fffd][fffd][fffd]"]*/, "I/O exception occurred.  exception=MalformedInputException" },
+			{ 12, "ix_string_truncated-utf-8", "5B 22 E0 FF 22 5D"/*["[fffd][fffd]"]*/, "I/O exception occurred.  exception=MalformedInputException" },
+			{ 13, "ix_string_unicode_U+10FFFE_nonchar", "5B 22 5C 75 44 42 46 46 5C 75 44 46 46 45 22 5D"/*["buDBFFbuDFFE"]*/, null },
+			{ 14, "ix_string_unicode_U+1FFFE_nonchar", "5B 22 5C 75 44 38 33 46 5C 75 44 46 46 45 22 5D"/*["buD83FbuDFFE"]*/, null },
+			{ 15, "ix_string_unicode_U+FDD0_nonchar", "5B 22 5C 75 46 44 44 30 22 5D"/*["buFDD0"]*/, null },
+			{ 16, "ix_string_unicode_U+FFFE_nonchar", "5B 22 5C 75 46 46 46 45 22 5D"/*["buFFFE"]*/, null },
+			{ 17, "ix_string_UTF-16LE_with_BOM", "FF FE 5B 00 22 00 E9 00 22 00 5D 00"/*[fffd][fffd][[0]"[0][fffd][0]"[0]][0]*/, null },
+			{ 18, "ix_string_UTF-8_invalid_sequence", "5B 22 E6 97 A5 D1 88 FA 22 5D"/*["[65e5][448][fffd]"]*/, null },
+			{ 19, "ix_structure_UTF-8_BOM_empty_object", "EF BB BF 7B 7D"/*[feff]{}*/, "Unrecognized syntax" },
 			{ 20, "n_array_1_true_without_comma", "[1 true]", "Expected ',' or ']'" },
 			{ 21, "n_array_colon_instead_of_comma", "[\"\": 1]", "Expected ',' or ']'" },
 			{ 22, "n_array_comma_after_close", "[\"\"],", "Remainder after parse: ','" },
@@ -191,62 +191,62 @@ public class JsonParserEdgeCasesTest {
 			{ 156, "n_structure_unclosed_object", "{\"asd\":\"asd\"", "Could not find '}'" },
 			{ 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 },
-			{ 162, "nx_array_spaces_vertical_tab_formfeed", "5B220B61225C665D"/*["[b]a"\f]*/, null },
-			{ 163, "nx_array_unclosed_with_new_lines", "5B312C0A310A2C31"/*[1,[a]1[a],1*/, null },
-			{ 164, "nx_multidigit_number_then_00", "31323300"/*123[0]*/, null },
-			{ 165, "nx_number_invalid-utf-8-in-bigger-int", "5B313233E55D"/*[123[fffd]]*/, null },
-			{ 166, "nx_number_invalid-utf-8-in-exponent", "5B316531E55D"/*[1e1[fffd]]*/, null },
-			{ 167, "nx_number_invalid-utf-8-in-int", "5B30E55D0A"/*[0[fffd]][a]*/, null },
-			{ 168, "nx_number_real_with_invalid_utf8_after_e", "5B3165E55D"/*[1e[fffd]]*/, null },
-			{ 169, "nx_object_bracket_key", "7B5B3A202278227D0A"/*{[: "x"}[a]*/, null },
-			{ 170, "nx_object_emoji", "7BF09F87A8F09F87AD7D"/*{[d83c][dde8][d83c][dded]}*/, null },
-			{ 171, "nx_object_pi_in_key_and_trailing_comma", "7B22B9223A2230222C7D"/*{"[fffd]":"0",}*/, null },
-			{ 172, "nx_string_1_surrogate_then_escape u", "5B225C75443830305C75225D"/*["buD800bu"]*/, "Invalid Unicode escape sequence in string" },
-			{ 173, "nx_string_1_surrogate_then_escape u1", "5B225C75443830305C7531225D"/*["buD800bu1"]*/, "Invalid Unicode escape sequence in string" },
-			{ 174, "nx_string_1_surrogate_then_escape u1x", "5B225C75443830305C753178225D"/*["buD800bu1x"]*/, "Invalid Unicode escape sequence in string" },
-			{ 175, "nx_string_1_surrogate_then_escape", "5B225C75443830305C225D"/*["buD800\"]*/, null },
-			{ 176, "nx_string_accentuated_char_no_quotes", "5BC3A95D"/*[[e9]]*/, "Unrecognized syntax" },
-			{ 177, "nx_string_backslash_00", "5B225C00225D"/*["\[0]"]*/, null },
-			{ 178, "nx_string_escape_x", "5B225C783030225D"/*["\x00"]*/, "Invalid escape sequence in string" },
-			{ 179, "nx_string_escaped_backslash_bad", "5B225C5C5C225D"/*["\\\"]*/, null },
-			{ 180, "nx_string_escaped_ctrl_char_tab", "5B225C09225D"/*["\[9]"]*/, null },
-			{ 181, "nx_string_escaped_emoji", "5B225CF09F8C80225D"/*["\[d83c][df00]"]*/, "Invalid escape sequence in string" },
-			{ 182, "nx_string_incomplete_escape", "5B225C225D"/*["\"]*/, null },
-			{ 183, "nx_string_incomplete_escaped_character", "5B225C75303041225D"/*["bu00A"]*/, "Invalid Unicode escape sequence in string" },
-			{ 184, "nx_string_incomplete_surrogate", "5B225C75443833345C754464225D"/*["buD834buDd"]*/, "Invalid Unicode escape sequence in string" },
-			{ 185, "nx_string_incomplete_surrogate_escape_invalid", "5B225C75443830305C75443830305C78225D"/*["buD800buD800\x"]*/, "Invalid escape sequence" },
-			{ 186, "nx_string_invalid-utf-8-in-escape", "5B225C75E5225D"/*["bu[fffd]"]*/, null },
-			{ 187, "nx_string_invalid_backslash_esc", "5B225C61225D"/*["\a"]*/, "Invalid escape sequence" },
-			{ 188, "nx_string_invalid_unicode_escape", "5B225C7571717171225D"/*["buqqqq"]*/, "Invalid Unicode escape sequence in string" },
-			{ 189, "nx_string_invalid_utf-8", "5B22FF225D"/*["[fffd]"]*/, "MalformedInputException" },
-			{ 190, "nx_string_invalid_utf8_after_escape", "5B225CE5225D"/*["\[fffd]"]*/, null },
-			{ 191, "nx_string_iso_latin_1", "5B22E9225D"/*["[fffd]"]*/, "MalformedInputException" },
-			{ 192, "nx_string_leading_uescaped_thinspace", "5B5C753030323022617364225D"/*[bu0020"asd"]*/, "Unrecognized syntax" },
-			{ 193, "nx_string_lone_utf8_continuation_byte", "5B2281225D"/*["[fffd]"]*/, "MalformedInputException" },
-			{ 194, "nx_string_no_quotes_with_bad_escape", "5B5C6E5D"/*[\n]*/, "Unrecognized syntax" },
-			{ 195, "nx_string_overlong_sequence_2_bytes", "5B22C0AF225D"/*["[fffd][fffd]"]*/, "MalformedInputException" },
-			{ 196, "nx_string_overlong_sequence_6_bytes", "5B22FC83BFBFBFBF225D"/*["[fffd][fffd][fffd][fffd][fffd][fffd]"]*/, "MalformedInputException" },
-			{ 197, "nx_string_overlong_sequence_6_bytes_null", "5B22FC8080808080225D"/*["[fffd][fffd][fffd][fffd][fffd][fffd]"]*/, "MalformedInputException" },
-			{ 198, "nx_string_start_escape_unclosed", "5B225C"/*["\*/, null },
-			{ 199, "nx_string_unescaped_crtl_char", "5B22610061225D"/*["a[0]a"]*/, null },
-			{ 200, "nx_string_unescaped_newline", "5B226E65770A6C696E65225D"/*["new[a]line"]*/, null },
-			{ 201, "nx_string_unescaped_tab", "5B2209225D"/*["[9]"]*/, null },
-			{ 202, "nx_string_unicode_CapitalU", "225C554136364422"/*"\UA66D"*/, "Invalid escape sequence" },
-			{ 203, "ix_string_UTF8_surrogate_U+D800", "5B22EDA080225D"/*["[fffd]"]*/, null },  // Succeeds on Java 8, fails on Java 6 & 7.
-			{ 204, "nx_structure_ascii-unicode-identifier", "61C3A5"/*a[e5]*/, "Unrecognized syntax" },
-			{ 205, "nx_structure_incomplete_UTF8_BOM", "EFBB7B7D"/*[fffd]{}*/, null },
+			{ 159, "nx_array_a_invalid_utf8", "5B 61 E5 5D"/*[a[fffd]]*/, null },
+			{ 160, "nx_array_invalid_utf8", "5B FF 5D"/*[[fffd]]*/, null },
+			{ 161, "nx_array_newlines_unclosed", "5B 22 61 22 2C 0A 34 0A 2C 31 2C"/*["a",[a]4[a],1,*/, null },
+			{ 162, "nx_array_spaces_vertical_tab_formfeed", "5B 22 0B 61 22 5C 66 5D"/*["[b]a"\f]*/, null },
+			{ 163, "nx_array_unclosed_with_new_lines", "5B 31 2C 0A 31 0A 2C 31"/*[1,[a]1[a],1*/, null },
+			{ 164, "nx_multidigit_number_then_00", "31 32 33 00"/*123[0]*/, null },
+			{ 165, "nx_number_invalid-utf-8-in-bigger-int", "5B 31 32 33 E5 5D"/*[123[fffd]]*/, null },
+			{ 166, "nx_number_invalid-utf-8-in-exponent", "5B 31 65 31 E5 5D"/*[1e1[fffd]]*/, null },
+			{ 167, "nx_number_invalid-utf-8-in-int", "5B 30 E5 5D 0A"/*[0[fffd]][a]*/, null },
+			{ 168, "nx_number_real_with_invalid_utf8_after_e", "5B 31 65 E5 5D"/*[1e[fffd]]*/, null },
+			{ 169, "nx_object_bracket_key", "7B 5B 3A 20 22 78 22 7D 0A"/*{[: "x"}[a]*/, null },
+			{ 170, "nx_object_emoji", "7B F0 9F 87 A8 F0 9F 87 AD 7D"/*{[d83c][dde8][d83c][dded]}*/, null },
+			{ 171, "nx_object_pi_in_key_and_trailing_comma", "7B 22 B9 22 3A 22 30 22 2C 7D"/*{"[fffd]":"0",}*/, null },
+			{ 172, "nx_string_1_surrogate_then_escape u", "5B 22 5C 75 44 38 30 30 5C 75 22 5D"/*["buD800bu"]*/, "Invalid Unicode escape sequence in string" },
+			{ 173, "nx_string_1_surrogate_then_escape u1", "5B 22 5C 75 44 38 30 30 5C 75 31 22 5D"/*["buD800bu1"]*/, "Invalid Unicode escape sequence in string" },
+			{ 174, "nx_string_1_surrogate_then_escape u1x", "5B 22 5C 75 44 38 30 30 5C 75 31 78 22 5D"/*["buD800bu1x"]*/, "Invalid Unicode escape sequence in string" },
+			{ 175, "nx_string_1_surrogate_then_escape", "5B 22 5C 75 44 38 30 30 5C 22 5D"/*["buD800\"]*/, null },
+			{ 176, "nx_string_accentuated_char_no_quotes", "5B C3 A9 5D"/*[[e9]]*/, "Unrecognized syntax" },
+			{ 177, "nx_string_backslash_00", "5B 22 5C 00 22 5D"/*["\[0]"]*/, null },
+			{ 178, "nx_string_escape_x", "5B 22 5C 78 30 30 22 5D"/*["\x00"]*/, "Invalid escape sequence in string" },
+			{ 179, "nx_string_escaped_backslash_bad", "5B 22 5C 5C 5C 22 5D"/*["\\\"]*/, null },
+			{ 180, "nx_string_escaped_ctrl_char_tab", "5B 22 5C 09 22 5D"/*["\[9]"]*/, null },
+			{ 181, "nx_string_escaped_emoji", "5B 22 5C F0 9F 8C 80 22 5D"/*["\[d83c][df00]"]*/, "Invalid escape sequence in string" },
+			{ 182, "nx_string_incomplete_escape", "5B 22 5C 22 5D"/*["\"]*/, null },
+			{ 183, "nx_string_incomplete_escaped_character", "5B 22 5C 75 30 30 41 22 5D"/*["bu00A"]*/, "Invalid Unicode escape sequence in string" },
+			{ 184, "nx_string_incomplete_surrogate", "5B 22 5C 75 44 38 33 34 5C 75 44 64 22 5D"/*["buD834buDd"]*/, "Invalid Unicode escape sequence in string" },
+			{ 185, "nx_string_incomplete_surrogate_escape_invalid", "5B 22 5C 75 44 38 30 30 5C 75 44 38 30 30 5C 78 22 5D"/*["buD800buD800\x"]*/, "Invalid escape sequence" },
+			{ 186, "nx_string_invalid-utf-8-in-escape", "5B 22 5C 75 E5 22 5D"/*["bu[fffd]"]*/, null },
+			{ 187, "nx_string_invalid_backslash_esc", "5B 22 5C 61 22 5D"/*["\a"]*/, "Invalid escape sequence" },
+			{ 188, "nx_string_invalid_unicode_escape", "5B 22 5C 75 71 71 71 71 22 5D"/*["buqqqq"]*/, "Invalid Unicode escape sequence in string" },
+			{ 189, "nx_string_invalid_utf-8", "5B 22 FF 22 5D"/*["[fffd]"]*/, "MalformedInputException" },
+			{ 190, "nx_string_invalid_utf8_after_escape", "5B 22 5C E5225D"/*["\[fffd]"]*/, null },
+			{ 191, "nx_string_iso_latin_1", "5B 22 E9 22 5D"/*["[fffd]"]*/, "MalformedInputException" },
+			{ 192, "nx_string_leading_uescaped_thinspace", "5B 5C 75 30 30 32 30 22 61 73 64 22 5D"/*[bu0020"asd"]*/, "Unrecognized syntax" },
+			{ 193, "nx_string_lone_utf8_continuation_byte", "5B 22 81 22 5D"/*["[fffd]"]*/, "MalformedInputException" },
+			{ 194, "nx_string_no_quotes_with_bad_escape", "5B 5C 6E 5D"/*[\n]*/, "Unrecognized syntax" },
+			{ 195, "nx_string_overlong_sequence_2_bytes", "5B 22 C0 AF 22 5D"/*["[fffd][fffd]"]*/, "MalformedInputException" },
+			{ 196, "nx_string_overlong_sequence_6_bytes", "5B 22 FC 83 BF BF BF BF 22 5D"/*["[fffd][fffd][fffd][fffd][fffd][fffd]"]*/, "MalformedInputException" },
+			{ 197, "nx_string_overlong_sequence_6_bytes_null", "5B 22 FC 80 80 80 80 80 22 5D"/*["[fffd][fffd][fffd][fffd][fffd][fffd]"]*/, "MalformedInputException" },
+			{ 198, "nx_string_start_escape_unclosed", "5B 22 5C"/*["\*/, null },
+			{ 199, "nx_string_unescaped_crtl_char", "5B 22 61 00 61 22 5D"/*["a[0]a"]*/, null },
+			{ 200, "nx_string_unescaped_newline", "5B 22 6E 65 77 0A 6C 69 6E 65 22 5D"/*["new[a]line"]*/, null },
+			{ 201, "nx_string_unescaped_tab", "5B 22 09 22 5D"/*["[9]"]*/, null },
+			{ 202, "nx_string_unicode_CapitalU", "22 5C 55 41 36 36 44 22"/*"\UA66D"*/, "Invalid escape sequence" },
+			{ 203, "ix_string_UTF8_surrogate_U+D800", "5B 22 ED A0 80 22 5D"/*["[fffd]"]*/, null },  // Succeeds on Java 8, fails on Java 6 & 7.
+			{ 204, "nx_structure_ascii-unicode-identifier", "61 C3 A5"/*a[e5]*/, "Unrecognized syntax" },
+			{ 205, "nx_structure_incomplete_UTF8_BOM", "EF BB 7B 7D"/*[fffd]{}*/, null },
 			{ 206, "nx_structure_lone-invalid-utf-8", "E5"/*[fffd]*/, null },
-			{ 207, "nx_structure_open_open", "5B225C7B5B225C7B5B225C7B5B225C7B"/*["\{["\{["\{["\{*/, "Invalid escape sequence" },
+			{ 207, "nx_structure_open_open", "5B 22 5C 7B 5B 22 5C 7B 5B 22 5C 7B 5B 22 5C 7B"/*["\{["\{["\{["\{*/, "Invalid escape sequence" },
 			{ 208, "nx_structure_single_point", "E9"/*[fffd]*/, null },
-			{ 209, "nx_structure_U+2060_word_joined", "5BE281A05D"/*[[2060]]*/, "Unrecognized syntax" },
-			{ 210, "nx_structure_uescaped_LF_before_string", "5B5C753030304122225D"/*[bu000A""]*/, "Unrecognized syntax" },
-			{ 211, "nx_structure_unicode-identifier", "C3A5"/*[e5]*/, "Unrecognized syntax" },
-			{ 212, "nx_structure_UTF8_BOM_no_data", "EFBBBF"/*[feff]*/, "Unrecognized syntax" },
-			{ 213, "nx_structure_whitespace_formfeed", "5B0C5D"/*[[c]]*/, "Unrecognized syntax" },
-			{ 214, "nx_structure_whitespace_U+2060_word_joiner", "5BE281A05D"/*[[2060]]*/, "Unrecognized syntax" },
+			{ 209, "nx_structure_U+2060_word_joined", "5B E2 81 A0 5D"/*[[2060]]*/, "Unrecognized syntax" },
+			{ 210, "nx_structure_uescaped_LF_before_string", "5B 5C 75 30 30 30 41 22 22 5D"/*[bu000A""]*/, "Unrecognized syntax" },
+			{ 211, "nx_structure_unicode-identifier", "C3 A5"/*[e5]*/, "Unrecognized syntax" },
+			{ 212, "nx_structure_UTF8_BOM_no_data", "EF BB BF"/*[feff]*/, "Unrecognized syntax" },
+			{ 213, "nx_structure_whitespace_formfeed", "5B 0C 5D"/*[[c]]*/, "Unrecognized syntax" },
+			{ 214, "nx_structure_whitespace_U+2060_word_joiner", "5B E2 81 A0 5D"/*[[2060]]*/, "Unrecognized syntax" },
 			{ 215, "y_array_arraysWithSpaces", "[[]   ]", null },
 			{ 216, "y_array_empty-string", "[\"\"]", null },
 			{ 217, "y_array_empty", "[]", null },
@@ -309,47 +309,47 @@ public class JsonParserEdgeCasesTest {
 			{ 274, "y_structure_string_empty", "\"\"", null },
 			{ 275, "y_structure_true_in_array", "[true]", null },
 			{ 276, "y_structure_whitespace_array", "[]", null },
-			{ 277, "yx_array_with_1_and_newline", "5B310A5D"/*[1[a]]*/, null },
-			{ 278, "yx_object_escaped_null_in_key", "7B22666F6F5C7530303030626172223A2034327D"/*{"foobu0000bar": 42}*/, null },
-			{ 279, "yx_object_string_unicode", "7B227469746C65223A225C75303431665C75303433655C75303433625C75303434325C75303433655C75303434305C7530343330205C75303431375C75303433355C75303433635C75303433625C75303433355C75303433615C75303433655C75303433665C753034333022207D"/*{"title":"bu041fbu043ebu043bbu0442bu043ebu0440bu0430 bu0417bu0435bu043cbu043bbu0435bu043abu043ebu043fbu0430" }*/, null },
-			{ 280, "yx_object_with_newlines", "7B0A2261223A202262220A7D"/*{[a]"a": "b"[a]}*/, null },
-			{ 281, "yx_string_1_2_3_bytes_UTF-8_sequences", "5B225C75303036305C75303132615C7531324142225D"/*["bu0060bu012abu12AB"]*/, null },
-			{ 282, "yx_string_accepted_surrogate_pair", "5B225C75443830315C7564633337225D"/*["buD801budc37"]*/, null },
-			{ 283, "yx_string_accepted_surrogate_pairs", "5B225C75643833645C75646533395C75643833645C7564633864225D"/*["bud83dbude39bud83dbudc8d"]*/, null },
-			{ 284, "yx_string_allowed_escapes", "5B225C225C5C5C2F5C625C665C6E5C725C74225D"/*["\"\\\/\b\f\n\r\t"]*/, null },
-			{ 285, "yx_string_backslash_and_u_escaped_zero", "5B225C5C7530303030225D"/*["\bu0000"]*/, null },
-			{ 286, "yx_string_backslash_doublequotes", "5B225C22225D"/*["\""]*/, null },
-			{ 287, "yx_string_double_escape_a", "5B225C5C61225D"/*["\\a"]*/, null },
-			{ 288, "yx_string_double_escape_n", "5B225C5C6E225D"/*["\\n"]*/, null },
-			{ 289, "yx_string_escaped_control_character", "5B225C7530303132225D"/*["bu0012"]*/, null },
-			{ 290, "yx_string_escaped_noncharacter", "5B225C7546464646225D"/*["buFFFF"]*/, null },
-			{ 291, "yx_string_last_surrogates_1_and_2", "5B225C75444246465C7544464646225D"/*["buDBFFbuDFFF"]*/, null },
-			{ 292, "yx_string_nbsp_uescaped", "5B226E65775C75303041306C696E65225D"/*["newbu00A0line"]*/, null },
-			{ 293, "yx_string_nonCharacterInUTF-8_U+10FFFF", "5B22F48FBFBF225D"/*["[dbff][dfff]"]*/, null },
-			{ 294, "yx_string_nonCharacterInUTF-8_U+1FFFF", "5B22F09BBFBF225D"/*["[d82f][dfff]"]*/, null },
-			{ 295, "yx_string_nonCharacterInUTF-8_U+FFFF", "5B22EFBFBF225D"/*["[ffff]"]*/, null },
-			{ 296, "yx_string_null_escape", "5B225C7530303030225D"/*["bu0000"]*/, null },
-			{ 297, "yx_string_one-byte-utf-8", "5B225C7530303263225D"/*["bu002c"]*/, null },
-			{ 298, "yx_string_pi", "5B22CF80225D"/*["[3c0]"]*/, null },
-			{ 299, "yx_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF", "5B225C75443833345C7544643165225D"/*["buD834buDd1e"]*/, null },
-			{ 300, "yx_string_three-byte-utf-8", "5B225C7530383231225D"/*["bu0821"]*/, null },
-			{ 301, "yx_string_two-byte-utf-8", "5B225C7530313233225D"/*["bu0123"]*/, null },
-			{ 302, "yx_string_u+2028_line_sep", "5B22E280A8225D"/*["[2028]"]*/, null },
-			{ 303, "yx_string_u+2029_par_sep", "5B22E280A9225D"/*["[2029]"]*/, null },
-			{ 304, "yx_string_uEscape", "5B225C75303036315C75333061665C75333045415C7533306239225D"/*["bu0061bu30afbu30EAbu30b9"]*/, null },
-			{ 305, "yx_string_uescaped_newline", "5B226E65775C75303030416C696E65225D"/*["newbu000Aline"]*/, null },
-			{ 306, "yx_string_unescaped_char_delete", "5B227F225D"/*["[7f]"]*/, null },
-			{ 307, "yx_string_unicode", "5B225C7541363644225D"/*["buA66D"]*/, null },
-			{ 308, "yx_string_unicode_2", "5B22E28D82E388B4E28D82225D"/*["[2342][3234][2342]"]*/, null },
-			{ 309, "yx_string_unicode_escaped_double_quote", "5B225C7530303232225D"/*["bu0022"]*/, null },
-			{ 310, "yx_string_unicode_U+200B_ZERO_WIDTH_SPACE", "5B225C7532303042225D"/*["bu200B"]*/, null },
-			{ 311, "yx_string_unicode_U+2064_invisible_plus", "5B225C7532303634225D"/*["bu2064"]*/, null },
-			{ 312, "yx_string_unicodeEscapedBackslash", "5B225C7530303543225D"/*["bu005C"]*/, null },
-			{ 313, "yx_string_utf16BE_no_BOM", "005B002200E90022005D"/*[0][[0]"[0][fffd][0]"[0]]*/, null },
-			{ 314, "yx_string_utf16LE_no_BOM", "5B002200E90022005D00"/*[[0]"[0][fffd][0]"[0]][0]*/, null },
-			{ 315, "yx_string_utf8", "5B22E282ACF09D849E225D"/*["[20ac][d834][dd1e]"]*/, null },
-			{ 316, "yx_string_with_del_character", "5B22617F61225D"/*["a[7f]a"]*/, null },
-			{ 317, "yx_structure_trailing_newline", "5B2261225D0A"/*["a"][a]*/, null },
+			{ 277, "yx_array_with_1_and_newline", "5B 31 0A 5D"/*[1[a]]*/, null },
+			{ 278, "yx_object_escaped_null_in_key", "7B 22 66 6F 6F 5C 75 30 30 30 30 62 61 72 22 3A 20 34 32 7D"/*{"foobu0000bar": 42}*/, null },
+			{ 279, "yx_object_string_unicode", "7B 22 74 69 74 6C 65 22 3A 22 5C 75 30 34 31 66 5C 75 30 34 33 65 5C 75 30 34 33 62 5C 75 30 34 34 32 5C 75 30 34 33 65 5C 75 30 34 34 30 5C 75 30 34 33 30 20 5C 75 30 34 31 37 5C 75 30 34 33 35 5C 75 30 34 33 63 5C 75 30 34 33 62 5C 75 30 34 33 35 5C 75 30 34 33 61 5C 75 30 34 33 65 5C 75 30 34 33 66 5C 75 30 34 33 30 22 20 7D"/*{"title":"bu041fbu043ebu043bbu0442bu043ebu0440bu0430 bu0417bu0435bu043cbu043bbu0435bu043abu043ebu043fbu0430" }*/, null },
+			{ 280, "yx_object_with_newlines", "7B 0A 22 61 22 3A 20 22 62 22 0A 7D"/*{[a]"a": "b"[a]}*/, null },
+			{ 281, "yx_string_1_2_3_bytes_UTF-8_sequences", "5B 22 5C 75 30 30 36 30 5C 75 30 31 32 61 5C 75 31 32 41 42 22 5D"/*["bu0060bu012abu12AB"]*/, null },
+			{ 282, "yx_string_accepted_surrogate_pair", "5B 22 5C 75 44 38 30 31 5C 75 64 63 33 37 22 5D"/*["buD801budc37"]*/, null },
+			{ 283, "yx_string_accepted_surrogate_pairs", "5B 22 5C 75 64 38 33 64 5C 75 64 65 33 39 5C 75 64 38 33 64 5C 75 64 63 38 64 22 5D"/*["bud83dbude39bud83dbudc8d"]*/, null },
+			{ 284, "yx_string_allowed_escapes", "5B 22 5C 22 5C 5C 5C 2F 5C 62 5C 66 5C 6E 5C 72 5C 74 22 5D"/*["\"\\\/\b\f\n\r\t"]*/, null },
+			{ 285, "yx_string_backslash_and_u_escaped_zero", "5B 22 5C 5C 75 30 30 30 30 22 5D"/*["\bu0000"]*/, null },
+			{ 286, "yx_string_backslash_doublequotes", "5B 22 5C 22 22 5D"/*["\""]*/, null },
+			{ 287, "yx_string_double_escape_a", "5B 22 5C 5C 61 22 5D"/*["\\a"]*/, null },
+			{ 288, "yx_string_double_escape_n", "5B 22 5C 5C 6E 22 5D"/*["\\n"]*/, null },
+			{ 289, "yx_string_escaped_control_character", "5B 22 5C 75 30 30 31 32 22 5D"/*["bu0012"]*/, null },
+			{ 290, "yx_string_escaped_noncharacter", "5B 22 5C 75 46 46 46 46 22 5D"/*["buFFFF"]*/, null },
+			{ 291, "yx_string_last_surrogates_1_and_2", "5B 22 5C 75 44 42 46 46 5C 75 44 46 46 46 22 5D"/*["buDBFFbuDFFF"]*/, null },
+			{ 292, "yx_string_nbsp_uescaped", "5B 22 6E 65 77 5C 75 30 30 41 30 6C 69 6E 65 22 5D"/*["newbu00A0line"]*/, null },
+			{ 293, "yx_string_nonCharacterInUTF-8_U+10FFFF", "5B 22 F4 8F BF BF 22 5D"/*["[dbff][dfff]"]*/, null },
+			{ 294, "yx_string_nonCharacterInUTF-8_U+1FFFF", "5B 22 F0 9B BF BF 22 5D"/*["[d82f][dfff]"]*/, null },
+			{ 295, "yx_string_nonCharacterInUTF-8_U+FFFF", "5B 22 EF BF BF 22 5D"/*["[ffff]"]*/, null },
+			{ 296, "yx_string_null_escape", "5B 22 5C 75 30 30 30 30 22 5D"/*["bu0000"]*/, null },
+			{ 297, "yx_string_one-byte-utf-8", "5B 22 5C 75 30 30 32 63 22 5D"/*["bu002c"]*/, null },
+			{ 298, "yx_string_pi", "5B 22 CF 80 22 5D"/*["[3c0]"]*/, null },
+			{ 299, "yx_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF", "5B 22 5C 75 44 38 33 34 5C 75 44 64 31 65 22 5D"/*["buD834buDd1e"]*/, null },
+			{ 300, "yx_string_three-byte-utf-8", "5B 22 5C 75 30 38 32 31 22 5D"/*["bu0821"]*/, null },
+			{ 301, "yx_string_two-byte-utf-8", "5B 22 5C 75 30 31 32 33 22 5D"/*["bu0123"]*/, null },
+			{ 302, "yx_string_u+2028_line_sep", "5B 22 E2 80 A8 22 5D"/*["[2028]"]*/, null },
+			{ 303, "yx_string_u+2029_par_sep", "5B 22 E2 80 A9 22 5D"/*["[2029]"]*/, null },
+			{ 304, "yx_string_uEscape", "5B 22 5C 75 30 30 36 31 5C 75 33 30 61 66 5C 75 33 30 45 41 5C 75 33 30 62 39 22 5D"/*["bu0061bu30afbu30EAbu30b9"]*/, null },
+			{ 305, "yx_string_uescaped_newline", "5B 22 6E 65 77 5C 75 30 30 30 41 6C 69 6E 65 22 5D"/*["newbu000Aline"]*/, null },
+			{ 306, "yx_string_unescaped_char_delete", "5B 22 7F 22 5D"/*["[7f]"]*/, null },
+			{ 307, "yx_string_unicode", "5B 22 5C 75 41 36 36 44 22 5D"/*["buA66D"]*/, null },
+			{ 308, "yx_string_unicode_2", "5B 22 E2 8D 82 E3 88 B4 E2 8D 82 22 5D"/*["[2342][3234][2342]"]*/, null },
+			{ 309, "yx_string_unicode_escaped_double_quote", "5B 22 5C 75 30 30 32 32 22 5D"/*["bu0022"]*/, null },
+			{ 310, "yx_string_unicode_U+200B_ZERO_WIDTH_SPACE", "5B 22 5C 75 32 30 30 42 22 5D"/*["bu200B"]*/, null },
+			{ 311, "yx_string_unicode_U+2064_invisible_plus", "5B 22 5C 75 32 30 36 34 22 5D"/*["bu2064"]*/, null },
+			{ 312, "yx_string_unicodeEscapedBackslash", "5B 22 5C 75 30 30 35 43 22 5D"/*["bu005C"]*/, null },
+			{ 313, "yx_string_utf16BE_no_BOM", "00 5B 00 22 00 E9 00 22 00 5D"/*[0][[0]"[0][fffd][0]"[0]]*/, null },
+			{ 314, "yx_string_utf16LE_no_BOM", "5B 00 22 00 E9 00 22 00 5D 00"/*[[0]"[0][fffd][0]"[0]][0]*/, null },
+			{ 315, "yx_string_utf8", "5B 22 E2 82 AC F0 9D 84 9E 22 5D"/*["[20ac][d834][dd1e]"]*/, null },
+			{ 316, "yx_string_with_del_character", "5B 22 61 7F 61 22 5D"/*["a[7f]a"]*/, null },
+			{ 317, "yx_structure_trailing_newline", "5B 22 61 22 5D 0A"/*["a"][a]*/, null },
 		});
 	}
 
@@ -360,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' ? fromHex(json) : json;
-		this.jsonReadable = name.charAt(1) == 'x' ? fromHexToUTF8(json) : json;
+		this.json = name.charAt(1) == 'x' ? fromSpacedHex(json) : json;
+		this.jsonReadable = name.charAt(1) == 'x' ? fromSpacedHexToUTF8(json) : json;
 		this.expected = name.charAt(0);
 		this.errorText = errorText;
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/.settings/org.eclipse.jdt.core.prefs b/juneau-core/juneau-dto/.settings/org.eclipse.jdt.core.prefs
index 8bd7d89..fb1af7a 100644
--- a/juneau-core/juneau-dto/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-core/juneau-dto/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,10 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -7,9 +13,105 @@ org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/.settings/org.eclipse.jdt.ui.prefs b/juneau-core/juneau-dto/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-core/juneau-dto/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-core/juneau-dto/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>


[5/8] juneau git commit: Update code to reflect changes in Java 7.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
index 9d78570..6cf30aa 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
@@ -381,12 +381,7 @@ public abstract class Parser extends CoreObject {
 	 * @see BeanSession#getClassMeta(Type,Type...) for argument syntax for maps and collections.
 	 */
 	public final <T> T parse(Object input, Type type, Type...args) throws ParseException {
-		ParserSession session = createSession();
-		try {
-			return session.parse(input, type, args);
-		} finally {
-			session.close();
-		}
+		return createSession().parse(input, type, args);
 	}
 
 	/**
@@ -425,12 +420,7 @@ public abstract class Parser extends CoreObject {
 	 * 	If the input contains a syntax error or is malformed, or is not valid for the specified type.
 	 */
 	public final <T> T parse(Object input, Class<T> type) throws ParseException {
-		ParserSession session = createSession();
-		try {
-			return session.parse(input, type);
-		} finally {
-			session.close();
-		}
+		return createSession().parse(input, type);
 	}
 
 	/**
@@ -450,12 +440,7 @@ public abstract class Parser extends CoreObject {
 	 * 	If the input contains a syntax error or is malformed, or is not valid for the specified type.
 	 */
 	public final <T> T parse(Object input, ClassMeta<T> type) throws ParseException {
-		ParserSession session = createSession();
-		try {
-			return session.parse(input, type);
-		} finally {
-			session.close();
-		}
+		return createSession().parse(input, type);
 	}
 
 	/**
@@ -510,12 +495,7 @@ public abstract class Parser extends CoreObject {
 	 * @throws UnsupportedOperationException If not implemented.
 	 */
 	public final <K,V> Map<K,V> parseIntoMap(Object input, Map<K,V> m, Type keyType, Type valueType) throws ParseException {
-		ParserSession session = createSession();
-		try {
-			return session.parseIntoMap(input, m, keyType, valueType);
-		} finally {
-			session.close();
-		}
+		return createSession().parseIntoMap(input, m, keyType, valueType);
 	}
 
 	/**
@@ -539,12 +519,7 @@ public abstract class Parser extends CoreObject {
 	 * @throws UnsupportedOperationException If not implemented.
 	 */
 	public final <E> Collection<E> parseIntoCollection(Object input, Collection<E> c, Type elementType) throws ParseException {
-		ParserSession session = createSession();
-		try {
-			return session.parseIntoCollection(input, c, elementType);
-		} finally {
-			session.close();
-		}
+		return createSession().parseIntoCollection(input, c, elementType);
 	}
 
 	/**
@@ -571,12 +546,7 @@ public abstract class Parser extends CoreObject {
 	public final Object[] parseArgs(Object input, Type[] argTypes) throws ParseException {
 		if (argTypes == null || argTypes.length == 0)
 			return new Object[0];
-		ParserSession session = createSession();
-		try {
-			return session.parseArgs(input, argTypes);
-		} finally {
-			session.close();
-		}
+		return createSession().parseArgs(input, argTypes);
 	}
 
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java
index 6443ec5..fe82d59 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java
@@ -36,7 +36,6 @@ public class ParserContext extends BeanContext {
 	 *
 	 * @param ps The property store that created this context.
 	 */
-	@SuppressWarnings("unchecked")
 	public ParserContext(PropertyStore ps) {
 		super(ps);
 		this.trimStrings = ps.getProperty(PARSER_trimStrings, boolean.class, false);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
index d9ee830..775dbbe 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
@@ -72,7 +72,7 @@ import org.apache.juneau.http.*;
 public final class ParserGroup {
 
 	// Maps Content-Type headers to matches.
-	private final ConcurrentHashMap<String,ParserMatch> cache = new ConcurrentHashMap<String,ParserMatch>();
+	private final ConcurrentHashMap<String,ParserMatch> cache = new ConcurrentHashMap<>();
 
 	private final MediaType[] mediaTypes;            // List of media types
 	private final List<MediaType> mediaTypesList;
@@ -93,10 +93,10 @@ public final class ParserGroup {
 	 */
 	public ParserGroup(PropertyStore propertyStore, Parser[] parsers) {
 		this.propertyStore = propertyStore.copy();
-		this.parsers = Collections.unmodifiableList(new ArrayList<Parser>(Arrays.asList(parsers)));
+		this.parsers = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(parsers)));
 
-		List<MediaType> lmt = new ArrayList<MediaType>();
-		List<Parser> l = new ArrayList<Parser>();
+		List<MediaType> lmt = new ArrayList<>();
+		List<Parser> l = new ArrayList<>();
 		for (Parser p : parsers) {
 			for (MediaType m: p.getMediaTypes()) {
 				lmt.add(m);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
index a9b6d29..cf0568e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
@@ -34,7 +34,7 @@ public class ParserGroupBuilder {
 	 * Create an empty parser group builder.
 	 */
 	public ParserGroupBuilder() {
-		this.parsers = new ArrayList<Object>();
+		this.parsers = new ArrayList<>();
 		this.propertyStore = PropertyStore.create();
 	}
 
@@ -47,7 +47,7 @@ public class ParserGroupBuilder {
 	 * @param propertyStore The property store containing all settings common to all parsers in this group.
 	 */
 	public ParserGroupBuilder(PropertyStore propertyStore) {
-		this.parsers = new ArrayList<Object>();
+		this.parsers = new ArrayList<>();
 		this.propertyStore = propertyStore;
 	}
 
@@ -57,7 +57,7 @@ public class ParserGroupBuilder {
 	 * @param copyFrom The parser group that we're copying settings and parsers from.
 	 */
 	public ParserGroupBuilder(ParserGroup copyFrom) {
-		this.parsers = new ArrayList<Object>();
+		this.parsers = new ArrayList<>();
 		addReverse(parsers, copyFrom.getParsers());
 		this.propertyStore = copyFrom.createPropertyStore();
 	}
@@ -104,7 +104,7 @@ public class ParserGroupBuilder {
 	 * @return A new {@link ParserGroup} object.
 	 */
 	public ParserGroup build() {
-		List<Parser> l = new ArrayList<Parser>();
+		List<Parser> l = new ArrayList<>();
 		for (Object p : parsers) {
 			Class<?> c = null;
 			PropertyStore ps = propertyStore;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserPipe.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserPipe.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserPipe.java
index 4faf988..f14f46e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserPipe.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserPipe.java
@@ -49,7 +49,7 @@ import org.apache.juneau.internal.*;
  * Note that Readers and InputStreams will NOT be automatically closed when {@link #close()} is called, but
  * streams and readers created from other types (e.g. Files) WILL be automatically closed.
  */
-public final class ParserPipe {
+public final class ParserPipe implements Closeable {
 
 	private final Object input;
 	private final boolean debug, strict;
@@ -265,9 +265,7 @@ public final class ParserPipe {
 		return inputString != null;
 	}
 
-	/**
-	 * Perform cleanup on this context object if necessary.
-	 */
+	@Override /* Closeable */
 	public void close() {
 		try {
 			IOUtils.close(reader, inputStream);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
index d06f857..faefe6a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -420,11 +420,8 @@ public abstract class ParserSession extends BeanSession {
 	 */
 	@SuppressWarnings("unchecked")
 	public final <T> T parse(Object input, Type type, Type...args) throws ParseException {
-		ParserPipe pipe = createPipe(input);
-		try {
+		try (ParserPipe pipe = createPipe(input)) {
 			return (T)parseInner(pipe, getClassMeta(type, args));
-		} finally {
-			pipe.close();
 		}
 	}
 
@@ -464,11 +461,8 @@ public abstract class ParserSession extends BeanSession {
 	 * 	If the input contains a syntax error or is malformed, or is not valid for the specified type.
 	 */
 	public final <T> T parse(Object input, Class<T> type) throws ParseException {
-		ParserPipe pipe = createPipe(input);
-		try {
+		try (ParserPipe pipe = createPipe(input)) {
 			return parseInner(pipe, getClassMeta(type));
-		} finally {
-			pipe.close();
 		}
 	}
 
@@ -489,11 +483,8 @@ public abstract class ParserSession extends BeanSession {
 	 * 	If the input contains a syntax error or is malformed, or is not valid for the specified type.
 	 */
 	public final <T> T parse(Object input, ClassMeta<T> type) throws ParseException {
-		ParserPipe pipe = createPipe(input);
-		try {
+		try (ParserPipe pipe = createPipe(input)) {
 			return parseInner(pipe, type);
-		} finally {
-			pipe.close();
 		}
 	}
 
@@ -512,9 +503,9 @@ public abstract class ParserSession extends BeanSession {
 	 * 	If the input contains a syntax error or is malformed, or is not valid for the specified type.
 	 */
 	private <T> T parseInner(ParserPipe pipe, ClassMeta<T> type) throws ParseException {
+		if (type.isVoid())
+			return null;
 		try {
-			if (type.isVoid())
-				return null;
 			return doParse(pipe, type);
 		} catch (ParseException e) {
 			throw e;
@@ -526,6 +517,8 @@ public abstract class ParserSession extends BeanSession {
 		} catch (Exception e) {
 			throw new ParseException(getLastLocation(), "Exception occurred.  exception={0}, message={1}.",
 				e.getClass().getSimpleName(), e.getLocalizedMessage()).initCause(e);
+		} finally {
+			checkForWarnings();
 		}
 	}
 
@@ -554,15 +547,14 @@ public abstract class ParserSession extends BeanSession {
 	 * @throws UnsupportedOperationException If not implemented.
 	 */
 	public final <K,V> Map<K,V> parseIntoMap(Object input, Map<K,V> m, Type keyType, Type valueType) throws ParseException {
-		ParserPipe pipe = createPipe(input);
-		try {
+		try (ParserPipe pipe = createPipe(input)) {
 			return doParseIntoMap(pipe, m, keyType, valueType);
 		} catch (ParseException e) {
 			throw e;
 		} catch (Exception e) {
 			throw new ParseException(getLastLocation(), e);
 		} finally {
-			pipe.close();
+			checkForWarnings();
 		}
 	}
 
@@ -604,8 +596,7 @@ public abstract class ParserSession extends BeanSession {
 	 * @throws UnsupportedOperationException If not implemented.
 	 */
 	public final <E> Collection<E> parseIntoCollection(Object input, Collection<E> c, Type elementType) throws ParseException {
-		ParserPipe pipe = createPipe(input);
-		try {
+		try (ParserPipe pipe = createPipe(input)) {
 			return doParseIntoCollection(pipe, c, elementType);
 		} catch (ParseException e) {
 			throw e;
@@ -618,7 +609,7 @@ public abstract class ParserSession extends BeanSession {
 			throw new ParseException(getLastLocation(), "Exception occurred.  exception={0}, message={1}.",
 				e.getClass().getSimpleName(), e.getLocalizedMessage()).initCause(e);
 		} finally {
-			pipe.close();
+			checkForWarnings();
 		}
 	}
 
@@ -660,8 +651,7 @@ public abstract class ParserSession extends BeanSession {
 	 * 	If the input contains a syntax error or is malformed, or is not valid for the specified type.
 	 */
 	public final Object[] parseArgs(Object input, Type[] argTypes) throws ParseException {
-		ParserPipe pipe = createPipe(input);
-		try {
+		try (ParserPipe pipe = createPipe(input)) {
 			return doParse(pipe, getArgsClassMeta(argTypes));
 		} catch (ParseException e) {
 			throw e;
@@ -674,7 +664,7 @@ public abstract class ParserSession extends BeanSession {
 			throw new ParseException(getLastLocation(), "Exception occurred.  exception={0}, message={1}.",
 				e.getClass().getSimpleName(), e.getLocalizedMessage()).initCause(e);
 		} finally {
-			pipe.close();
+			checkForWarnings();
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java
index 82a17d8..6a0954d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java
@@ -51,7 +51,7 @@ public class RemoteableMeta {
 		if (! isOneOf(expose, "ALL", "DECLARED", "ANNOTATED"))
 			throw new RemoteableMetadataException(c, "Invalid value specified for ''expose'' annotation.  Valid values are [ALL,ANNOTATED,DECLARED].");
 
-		Map<Method,RemoteableMethodMeta> _methods = new LinkedHashMap<Method,RemoteableMethodMeta>();
+		Map<Method,RemoteableMethodMeta> _methods = new LinkedHashMap<>();
 		for (Method m : expose.equals("DECLARED") ? c.getDeclaredMethods() : c.getMethods()) {
 			if (isPublic(m)) {
 				RemoteMethod rm = c.getAnnotation(RemoteMethod.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
index 3568dd5..33accd8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
@@ -65,13 +65,13 @@ public class RemoteableMethodMeta {
 	private static class Builder {
 		private String httpMethod, url;
 		private List<RemoteMethodArg>
-			pathArgs = new LinkedList<RemoteMethodArg>(),
-			queryArgs = new LinkedList<RemoteMethodArg>(),
-			headerArgs = new LinkedList<RemoteMethodArg>(),
-			formDataArgs = new LinkedList<RemoteMethodArg>(),
-			requestBeanArgs = new LinkedList<RemoteMethodArg>();
+			pathArgs = new LinkedList<>(),
+			queryArgs = new LinkedList<>(),
+			headerArgs = new LinkedList<>(),
+			formDataArgs = new LinkedList<>(),
+			requestBeanArgs = new LinkedList<>();
 		private List<Integer>
-			otherArgs = new LinkedList<Integer>();
+			otherArgs = new LinkedList<>();
 		private Integer bodyArg;
 		private ReturnValue returnValue;
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
index 6aea5f7..3c2c380 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -479,8 +479,6 @@ public abstract class Serializer extends CoreObject {
 	 * 	contexts.
 	 * @return
 	 * 	The new session object.
-	 * 	<br>Note that you must call {@link SerializerSession#close()} on this object to perform any necessary
-	 * 	cleanup.
 	 */
 	public abstract SerializerSession createSession(SerializerSessionArgs args);
 
@@ -494,8 +492,6 @@ public abstract class Serializer extends CoreObject {
 	 *
 	 * @return
 	 * 	The new session object.
-	 * 	<br>Note that you must call {@link SerializerSession#close()} on this object to perform any necessary
-	 * 	cleanup.
 	 */
 	public final SerializerSession createSession() {
 		return createSession(createDefaultSessionArgs());
@@ -536,12 +532,7 @@ public abstract class Serializer extends CoreObject {
 	 * @throws SerializeException If a problem occurred trying to convert the output.
 	 */
 	public final void serialize(Object o, Object output) throws SerializeException {
-		SerializerSession s = createSession();
-		try {
-			s.serialize(o, output);
-		} finally {
-			s.close();
-		}
+		createSession().serialize(o, output);
 	}
 
 	/**
@@ -556,12 +547,7 @@ public abstract class Serializer extends CoreObject {
 	 * @throws SerializeException If a problem occurred trying to convert the output.
 	 */
 	public Object serialize(Object o) throws SerializeException {
-		SerializerSession s = createSession();
-		try {
-			return s.serialize(o);
-		} finally {
-			s.close();
-		}
+		return createSession().serialize(o);
 	}
 
 	//--------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java
index a4d35f6..8d31f4f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java
@@ -51,7 +51,6 @@ public class SerializerContext extends BeanContext {
 	 *
 	 * @param ps The property store that created this context.
 	 */
-	@SuppressWarnings("unchecked")
 	public SerializerContext(PropertyStore ps) {
 		super(ps);
 		maxDepth = ps.getProperty(SERIALIZER_maxDepth, int.class, 100);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
index 17d83f1..c8146bc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
@@ -64,7 +64,7 @@ import org.apache.juneau.http.*;
 public final class SerializerGroup {
 
 	// Maps Accept headers to matching serializers.
-	private final ConcurrentHashMap<String,SerializerMatch> cache = new ConcurrentHashMap<String,SerializerMatch>();
+	private final ConcurrentHashMap<String,SerializerMatch> cache = new ConcurrentHashMap<>();
 
 	private final MediaType[] mediaTypes;
 	private final List<MediaType> mediaTypesList;
@@ -87,10 +87,10 @@ public final class SerializerGroup {
 	public SerializerGroup(PropertyStore propertyStore, Serializer[] serializers) {
 		this.propertyStore = propertyStore.copy();
 		this.beanContext = propertyStore.getBeanContext();
-		this.serializers = Collections.unmodifiableList(new ArrayList<Serializer>(Arrays.asList(serializers)));
+		this.serializers = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(serializers)));
 
-		List<MediaType> lmt = new ArrayList<MediaType>();
-		List<Serializer> l = new ArrayList<Serializer>();
+		List<MediaType> lmt = new ArrayList<>();
+		List<Serializer> l = new ArrayList<>();
 		for (Serializer s : serializers) {
 			for (MediaType m: s.getMediaTypes()) {
 				lmt.add(m);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
index 77a8f3b..3c49f23 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
@@ -34,7 +34,7 @@ public class SerializerGroupBuilder {
 	 * Create an empty serializer group builder.
 	 */
 	public SerializerGroupBuilder() {
-		this.serializers = new ArrayList<Object>();
+		this.serializers = new ArrayList<>();
 		this.propertyStore = PropertyStore.create();
 	}
 
@@ -47,7 +47,7 @@ public class SerializerGroupBuilder {
 	 * @param propertyStore The property store containing all settings common to all serializers in this group.
 	 */
 	public SerializerGroupBuilder(PropertyStore propertyStore) {
-		this.serializers = new ArrayList<Object>();
+		this.serializers = new ArrayList<>();
 		this.propertyStore = propertyStore;
 	}
 
@@ -57,7 +57,7 @@ public class SerializerGroupBuilder {
 	 * @param copyFrom The serializer group that we're copying settings and serializers from.
 	 */
 	public SerializerGroupBuilder(SerializerGroup copyFrom) {
-		this.serializers = new ArrayList<Object>();
+		this.serializers = new ArrayList<>();
 		addReverse(serializers, copyFrom.getSerializers());
 		this.propertyStore = copyFrom.createPropertyStore();
 	}
@@ -104,7 +104,7 @@ public class SerializerGroupBuilder {
 	 * @return A new {@link SerializerGroup} object.
 	 */
 	public SerializerGroup build() {
-		List<Serializer> l = new ArrayList<Serializer>();
+		List<Serializer> l = new ArrayList<>();
 		for (Object s : serializers) {
 			Class<?> c = null;
 			PropertyStore ps = propertyStore;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerPipe.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerPipe.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerPipe.java
index 4a39264..87f5d48 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerPipe.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerPipe.java
@@ -38,7 +38,7 @@ import org.apache.juneau.internal.*;
  * 	<li>{@link File}
  * </ul>
  */
-public final class SerializerPipe {
+public final class SerializerPipe implements Closeable {
 
 	private final Object output;
 	private final boolean autoClose;
@@ -68,8 +68,11 @@ public final class SerializerPipe {
 	 * 	<li>{@link OutputStream}
 	 * 	<li>{@link File}
 	 * </ul>
-	 *
-	 * @return The output object wrapped in an output stream.
+	 * 
+	 * @return 
+	 * 	The output object wrapped in an output stream.
+	 * 	Calling {@link OutputStream#close()} on the returned object simply flushes the response and does not close
+	 * 	the underlying stream.
 	 * @throws IOException If object could not be converted to an output stream.
 	 */
 	public OutputStream getOutputStream() throws IOException {
@@ -83,7 +86,7 @@ public final class SerializerPipe {
 		else
 			throw new IOException("Cannot convert object of type "+output.getClass().getName()+" to an OutputStream.");
 
-		return outputStream;
+		return new NoCloseOutputStream(outputStream);
 	}
 
 
@@ -101,7 +104,10 @@ public final class SerializerPipe {
 	 * 	<li>{@link File} - Output will be written as system-default encoded stream.
 	 * </ul>
 	 *
-	 * @return The output object wrapped in a Writer.
+	 * @return 
+	 * 	The output object wrapped in a writer.
+	 * 	Calling {@link Writer#close()} on the returned object simply flushes the response and does not close
+	 * 	the underlying writer.
 	 * @throws IOException If object could not be converted to a writer.
 	 */
 	public Writer getWriter() throws IOException {
@@ -119,7 +125,7 @@ public final class SerializerPipe {
 		else
 			throw new IOException("Cannot convert object of type "+output.getClass().getName()+" to a Writer.");
 
-		return writer;
+		return new NoCloseWriter(writer);
 	}
 
 	/**
@@ -140,7 +146,7 @@ public final class SerializerPipe {
 	 *
 	 * <p>
 	 * Used when wrapping the stream returned by {@link #getOutputStream()} so that the wrapped stream will be flushed
-	 * and closed when {@link #close()} is called.
+	 * when {@link #close()} is called.
 	 *
 	 * @param outputStream The wrapped stream.
 	 */
@@ -160,6 +166,7 @@ public final class SerializerPipe {
 	/**
 	 * Closes the output pipe.
 	 */
+	@Override /* Closeable */
 	public void close() {
 		try {
 			IOUtils.flush(writer, outputStream);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index dedb486..a6f0cf5 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -22,6 +22,7 @@ import java.text.*;
 import java.util.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.internal.ClassUtils;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.soap.*;
 import org.apache.juneau.transform.*;
@@ -65,7 +66,7 @@ public abstract class SerializerSession extends BeanSession {
 	private final UriResolver uriResolver;
 
 	private final Map<Object,Object> set;                                           // Contains the current objects in the current branch of the model.
-	private final LinkedList<StackElement> stack = new LinkedList<StackElement>();  // Contains the current objects in the current branch of the model.
+	private final LinkedList<StackElement> stack = new LinkedList<>();              // Contains the current objects in the current branch of the model.
 	private final Method javaMethod;                                                // Java method that invoked this serializer.
 
 	// Writable properties
@@ -125,7 +126,7 @@ public abstract class SerializerSession extends BeanSession {
 
 		this.indent = initialDepth;
 		if (detectRecursions || isDebug()) {
-			set = new IdentityHashMap<Object,Object>();
+			set = new IdentityHashMap<>();
 		} else {
 			set = Collections.emptyMap();
 		}
@@ -229,8 +230,7 @@ public abstract class SerializerSession extends BeanSession {
 	 * @throws SerializeException If a problem occurred trying to convert the output.
 	 */
 	public final void serialize(Object out, Object o) throws SerializeException {
-		SerializerPipe pipe = createPipe(out);
-		try {
+		try (SerializerPipe pipe = createPipe(out)) {
 			doSerialize(pipe, o);
 		} catch (SerializeException e) {
 			throw e;
@@ -240,8 +240,7 @@ public abstract class SerializerSession extends BeanSession {
 		} catch (Exception e) {
 			throw new SerializeException(this, e);
 		} finally {
-			pipe.close();
-			close();
+			checkForWarnings();
 		}
 	}
 
@@ -600,7 +599,7 @@ public abstract class SerializerSession extends BeanSession {
 	 */
 	protected final <K,V> Map<K,V> sort(Map<K,V> m) {
 		if (sortMaps && m != null && (! m.isEmpty()) && m.keySet().iterator().next() instanceof Comparable<?>)
-			return new TreeMap<K,V>(m);
+			return new TreeMap<>(m);
 		return m;
 	}
 
@@ -612,7 +611,7 @@ public abstract class SerializerSession extends BeanSession {
 	 */
 	protected final <E> Collection<E> sort(Collection<E> c) {
 		if (sortCollections && c != null && (! c.isEmpty()) && c.iterator().next() instanceof Comparable<?>)
-			return new TreeSet<E>(c);
+			return new TreeSet<>(c);
 		return c;
 	}
 
@@ -635,7 +634,7 @@ public abstract class SerializerSession extends BeanSession {
 		Class<?> componentType = type.getComponentType();
 		if (componentType.isPrimitive()) {
 			int l = Array.getLength(array);
-			List<Object> list = new ArrayList<Object>(l);
+			List<Object> list = new ArrayList<>(l);
 			for (int i = 0; i < l; i++)
 				list.add(Array.get(array, i));
 			return list;
@@ -782,7 +781,7 @@ public abstract class SerializerSession extends BeanSession {
 	 * @return A map, typically containing something like <code>{line:123,column:456,currentProperty:"foobar"}</code>
 	 */
 	protected final Map<String,Object> getLastLocation() {
-		Map<String,Object> m = new LinkedHashMap<String,Object>();
+		Map<String,Object> m = new LinkedHashMap<>();
 		if (currentClass != null)
 			m.put("currentClass", currentClass);
 		if (currentProperty != null)

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerSession.java
index e14d1c3..8f9fbd4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerSession.java
@@ -51,20 +51,21 @@ public class SoapXmlSerializerSession extends XmlSerializerSession {
 
 	@Override /* SerializerSession */
 	protected void doSerialize(SerializerPipe out, Object o) throws Exception {
-		XmlWriter w = getXmlWriter(out);
-		w.append("<?xml")
-			.attr("version", "1.0")
-			.attr("encoding", "UTF-8")
-			.appendln("?>");
-		w.oTag("soap", "Envelope")
-			.attr("xmlns", "soap", getStringProperty(SOAPXML_SOAPAction, "http://www.w3.org/2003/05/soap-envelope"))
-			.appendln(">");
-		w.sTag(1, "soap", "Body").nl(1);
-		indent += 2;
-		w.flush();
-		super.doSerialize(out, o);
-		w.ie(1).eTag("soap", "Body").nl(1);
-		w.eTag("soap", "Envelope").nl(0);
+		try (XmlWriter w = getXmlWriter(out)) {
+			w.append("<?xml")
+				.attr("version", "1.0")
+				.attr("encoding", "UTF-8")
+				.appendln("?>");
+			w.oTag("soap", "Envelope")
+				.attr("xmlns", "soap", getStringProperty(SOAPXML_SOAPAction, "http://www.w3.org/2003/05/soap-envelope"))
+				.appendln(">");
+			w.sTag(1, "soap", "Body").nl(1);
+			indent += 2;
+			w.flush();
+			super.doSerialize(out, o);
+			w.ie(1).eTag("soap", "Body").nl(1);
+			w.eTag("soap", "Envelope").nl(0);
+		}
 	}
 
 	@Override /* Serializer */

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
index 7f1d942..c5b0fee 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
@@ -38,7 +38,7 @@ public final class AnnotationBeanFilterBuilder extends BeanFilterBuilder {
 	public AnnotationBeanFilterBuilder(Class<?> annotatedClass, Map<Class<?>,Bean> annotations) throws Exception {
 		super(annotatedClass);
 
-		ListIterator<Bean> li = new ArrayList<Bean>(annotations.values()).listIterator(annotations.size());
+		ListIterator<Bean> li = new ArrayList<>(annotations.values()).listIterator(annotations.size());
 		while (li.hasPrevious()) {
 			Bean b = li.previous();
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
index ebc4f27..9ba63df 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
@@ -222,7 +222,7 @@ public abstract class BeanFilterBuilder {
 	 * @return This object (for method chaining).
 	 */
 	public BeanFilterBuilder setBeanDictionary(Class<?>...c) {
-		beanDictionary = new ArrayList<Class<?>>(Arrays.asList(c));
+		beanDictionary = new ArrayList<>(Arrays.asList(c));
 		return this;
 	}
 
@@ -234,7 +234,7 @@ public abstract class BeanFilterBuilder {
 	 */
 	public BeanFilterBuilder beanDictionary(Class<?>...c) {
 		if (beanDictionary == null)
-			beanDictionary = new ArrayList<Class<?>>(Arrays.asList(c));
+			beanDictionary = new ArrayList<>(Arrays.asList(c));
 		else for (Class<?> cc : c)
 			beanDictionary.add(cc);
 		return this;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
index a15522e..bfcfa63 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
@@ -40,7 +40,7 @@ public class InterfaceBeanFilterBuilder extends BeanFilterBuilder {
 		interfaceClass(interfaceClass);
 		Map<Class<?>,Bean> annotations = ReflectionUtils.findAnnotationsMap(Bean.class, interfaceClass);
 
-		ListIterator<Bean> li = new ArrayList<Bean>(annotations.values()).listIterator(annotations.size());
+		ListIterator<Bean> li = new ArrayList<>(annotations.values()).listIterator(annotations.size());
 		while (li.hasPrevious()) {
 			Bean b = li.previous();
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/SurrogateSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
index 36a1e71..b3d2b56 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
@@ -56,7 +56,7 @@ public class SurrogateSwap<T,F> extends PojoSwap<T,F> {
 	 */
 	@SuppressWarnings({"unchecked", "rawtypes"})
 	public static List<SurrogateSwap<?,?>> findPojoSwaps(Class<?> c) {
-		List<SurrogateSwap<?,?>> l = new LinkedList<SurrogateSwap<?,?>>();
+		List<SurrogateSwap<?,?>> l = new LinkedList<>();
 		for (Constructor<?> cc : c.getConstructors()) {
 			if (cc.getAnnotation(BeanIgnore.class) == null) {
 				Class<?>[] pt = cc.getParameterTypes();

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
index 7c325f4..f3bd0da 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
@@ -87,26 +87,29 @@ public class UonParserSession extends ReaderParserSession {
 
 	@Override /* ParserSession */
 	protected <T> T doParse(ParserPipe pipe, ClassMeta<T> type) throws Exception {
-		UonReader r = getUonReader(pipe, decodeChars);
-		T o = parseAnything(type, r, getOuter(), true, null);
-		validateEnd(r);
-		return o;
+		try (UonReader r = getUonReader(pipe, decodeChars)) {
+			T o = parseAnything(type, r, getOuter(), true, null);
+			validateEnd(r);
+			return o;
+		}
 	}
 
 	@Override /* ReaderParserSession */
 	protected <K,V> Map<K,V> doParseIntoMap(ParserPipe pipe, Map<K,V> m, Type keyType, Type valueType) throws Exception {
-		UonReader r = getUonReader(pipe, decodeChars);
-		m = parseIntoMap(r, m, (ClassMeta<K>)getClassMeta(keyType), (ClassMeta<V>)getClassMeta(valueType), null);
-		validateEnd(r);
-		return m;
+		try (UonReader r = getUonReader(pipe, decodeChars)) {
+			m = parseIntoMap(r, m, (ClassMeta<K>)getClassMeta(keyType), (ClassMeta<V>)getClassMeta(valueType), null);
+			validateEnd(r);
+			return m;
+		}
 	}
 
 	@Override /* ReaderParserSession */
 	protected <E> Collection<E> doParseIntoCollection(ParserPipe pipe, Collection<E> c, Type elementType) throws Exception {
-		UonReader r = getUonReader(pipe, decodeChars);
-		c = parseIntoCollection(r, c, (ClassMeta<E>)getClassMeta(elementType), false, null);
-		validateEnd(r);
-		return c;
+		try (UonReader r = getUonReader(pipe, decodeChars)) {
+			c = parseIntoCollection(r, c, (ClassMeta<E>)getClassMeta(elementType), false, null);
+			validateEnd(r);
+			return c;
+		}
 	}
 
 	/**
@@ -125,7 +128,7 @@ public class UonParserSession extends ReaderParserSession {
 	public <T> T parseAnything(ClassMeta<?> eType, UonReader r, Object outer, boolean isUrlParamValue, BeanPropertyMeta pMeta) throws Exception {
 
 		if (eType == null)
-			eType = (ClassMeta<T>)object();
+			eType = object();
 		PojoSwap<T,Object> swap = (PojoSwap<T,Object>)eType.getPojoSwap(this);
 		ClassMeta<?> sType = swap == null ? eType : swap.getSwapClassMeta(this);
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index 9098d20..6eff79e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -110,66 +110,63 @@ public class UrlEncodingParser extends UonParser implements PartParser {
 		if (isEmpty(qs))
 			return m;
 
-		// We're reading from a string, so we don't need to make sure close() is called on the pipe.
-		ParserPipe p = new ParserPipe(qs, false, false, null, null);
-		UonReader r = new UonReader(p, true);
-
-		final int S1=1; // Looking for attrName start.
-		final int S2=2; // Found attrName start, looking for = or & or end.
-		final int S3=3; // Found =, looking for valStart.
-		final int S4=4; // Found valStart, looking for & or end.
-
-		try {
-			int c = r.peekSkipWs();
-			if (c == '?')
-				r.read();
-
-			int state = S1;
-			String currAttr = null;
-			while (c != -1) {
-				c = r.read();
-				if (state == S1) {
-					if (c != -1) {
-						r.unread();
-						r.mark();
-						state = S2;
-					}
-				} else if (state == S2) {
-					if (c == -1) {
-						add(m, r.getMarked(), null);
-					} else if (c == '\u0001') {
-						m.put(r.getMarked(0,-1), null);
-						state = S1;
-					} else if (c == '\u0002') {
-						currAttr = r.getMarked(0,-1);
-						state = S3;
-					}
-				} else if (state == S3) {
-					if (c == -1 || c == '\u0001') {
-						add(m, currAttr, "");
-					} else {
-						if (c == '\u0002')
+		try (ParserPipe p = new ParserPipe(qs, false, false, null, null)) {
+			
+			final int S1=1; // Looking for attrName start.
+			final int S2=2; // Found attrName start, looking for = or & or end.
+			final int S3=3; // Found =, looking for valStart.
+			final int S4=4; // Found valStart, looking for & or end.
+
+			try (UonReader r = new UonReader(p, true)) {
+				int c = r.peekSkipWs();
+				if (c == '?')
+					r.read();
+
+				int state = S1;
+				String currAttr = null;
+				while (c != -1) {
+					c = r.read();
+					if (state == S1) {
+						if (c != -1) {
+							r.unread();
+							r.mark();
+							state = S2;
+						}
+					} else if (state == S2) {
+						if (c == -1) {
+							add(m, r.getMarked(), null);
+						} else if (c == '\u0001') {
+							m.put(r.getMarked(0,-1), null);
+							state = S1;
+						} else if (c == '\u0002') {
+							currAttr = r.getMarked(0,-1);
+							state = S3;
+						}
+					} else if (state == S3) {
+						if (c == -1 || c == '\u0001') {
+							add(m, currAttr, "");
+						} else {
+							if (c == '\u0002')
+								r.replace('=');
+							r.unread();
+							r.mark();
+							state = S4;
+						}
+					} else if (state == S4) {
+						if (c == -1) {
+							add(m, currAttr, r.getMarked());
+						} else if (c == '\u0001') {
+							add(m, currAttr, r.getMarked(0,-1));
+							state = S1;
+						} else if (c == '\u0002') {
 							r.replace('=');
-						r.unread();
-						r.mark();
-						state = S4;
-					}
-				} else if (state == S4) {
-					if (c == -1) {
-						add(m, currAttr, r.getMarked());
-					} else if (c == '\u0001') {
-						add(m, currAttr, r.getMarked(0,-1));
-						state = S1;
-					} else if (c == '\u0002') {
-						r.replace('=');
+						}
 					}
 				}
 			}
-		} finally {
-			r.close();
-		}
 
-		return m;
+			return m;
+		}
 	}
 
 	private static void add(Map<String,String[]> m, String key, String val) {
@@ -199,17 +196,14 @@ public class UrlEncodingParser extends UonParser implements PartParser {
 				return null;
 		}
 		UonParserSession session = createParameterSession();
-		ParserPipe pipe = session.createPipe(in);
-		try {
-			UonReader r = session.getUonReader(pipe, false);
-			return session.parseAnything(type, r, null, true, null);
+		try (ParserPipe pipe = session.createPipe(in)) {
+			try (UonReader r = session.getUonReader(pipe, false)) {
+				return session.parseAnything(type, r, null, true, null);
+			}
 		} catch (ParseException e) {
 			throw e;
 		} catch (Exception e) {
-			throw new ParseException(session.getLastLocation(), e);
-		} finally {
-			pipe.close();
-			session.close();
+			throw new ParseException(e);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
index 0fcc315..66bc1e5 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
@@ -77,18 +77,19 @@ public class UrlEncodingParserSession extends UonParserSession {
 
 	@Override /* ParserSession */
 	protected <T> T doParse(ParserPipe pipe, ClassMeta<T> type) throws Exception {
-		UonReader r = getUonReader(pipe, true);
-		T o = parseAnything(type, r, getOuter());
-		return o;
+		try (UonReader r = getUonReader(pipe, true)) {
+			return parseAnything(type, r, getOuter());
+		}
 	}
 
 	@Override /* ReaderParserSession */
 	protected <K,V> Map<K,V> doParseIntoMap(ParserPipe pipe, Map<K,V> m, Type keyType, Type valueType) throws Exception {
-		UonReader r = getUonReader(pipe, true);
-		if (r.peekSkipWs() == '?')
-			r.read();
-		m = parseIntoMap2(r, m, getClassMeta(Map.class, keyType, valueType), null);
-		return m;
+		try (UonReader r = getUonReader(pipe, true)) {
+			if (r.peekSkipWs() == '?')
+				r.read();
+			m = parseIntoMap2(r, m, getClassMeta(Map.class, keyType, valueType), null);
+			return m;
+		}
 	}
 
 	private <T> T parseAnything(ClassMeta<T> eType, UonReader r, Object outer) throws Exception {
@@ -121,7 +122,7 @@ public class UrlEncodingParserSession extends UonParserSession {
 		} else if (sType.isCollection() || sType.isArray() || sType.isArgs()) {
 			// ?1=foo&2=bar...
 			Collection c2 = ((sType.isArray() || sType.isArgs()) || ! sType.canCreateNewInstance(outer)) ? new ObjectList(this) : (Collection)sType.newInstance();
-			Map<Integer,Object> m = new TreeMap<Integer,Object>();
+			Map<Integer,Object> m = new TreeMap<>();
 			parseIntoMap2(r, m, sType, c2);
 			c2.addAll(m.values());
 			if (sType.isArray())

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java
index 0e300ca..fbf7a47 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java
@@ -151,7 +151,7 @@ public class UrlEncodingSerializerSession extends UonSerializerSession {
 	 * Converts a Collection into an integer-indexed map.
 	 */
 	private static Map<Integer,Object> getCollectionMap(Collection<?> c) {
-		Map<Integer,Object> m = new TreeMap<Integer,Object>();
+		Map<Integer,Object> m = new TreeMap<>();
 		int i = 0;
 		for (Object o : c)
 			m.put(i++, o);
@@ -162,7 +162,7 @@ public class UrlEncodingSerializerSession extends UonSerializerSession {
 	 * Converts an array into an integer-indexed map.
 	 */
 	private static Map<Integer,Object> getCollectionMap(Object array) {
-		Map<Integer,Object> m = new TreeMap<Integer,Object>();
+		Map<Integer,Object> m = new TreeMap<>();
 		for (int i = 0; i < Array.getLength(array); i++)
 			m.put(i, Array.get(array, i));
 		return m;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Args.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Args.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Args.java
index bcff168..081e69b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Args.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Args.java
@@ -111,7 +111,7 @@ public final class Args extends ObjectMap {
 	 * @param args Arguments passed in through a <code>main(String[] args)</code> method.
 	 */
 	public Args(String[] args) {
-		List<String> argList = new LinkedList<String>(Arrays.asList(args));
+		List<String> argList = new LinkedList<>(Arrays.asList(args));
 
 		// Capture the main arguments.
 		Integer i = 0;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/CalendarUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/CalendarUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/CalendarUtils.java
index 38a503c..644b6b7 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/CalendarUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/CalendarUtils.java
@@ -329,7 +329,7 @@ public class CalendarUtils {
 		SHORT_DT
 	}
 
-	private static ThreadLocal<Map<DateFormatKey,DateFormat>> patternCache = new ThreadLocal<Map<DateFormatKey,DateFormat>>();
+	private static ThreadLocal<Map<DateFormatKey,DateFormat>> patternCache = new ThreadLocal<>();
 
 	static class DateFormatKey {
 		final CalendarUtils.Format format;
@@ -371,7 +371,7 @@ public class CalendarUtils {
 
 		Map<DateFormatKey,DateFormat> m1 = patternCache.get();
 		if (m1 == null) {
-			m1 = new ConcurrentHashMap<DateFormatKey,DateFormat>();
+			m1 = new ConcurrentHashMap<>();
 			patternCache.set(m1);
 		}
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/IOPipe.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/IOPipe.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/IOPipe.java
index a39c17c..ede9c34 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/IOPipe.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/IOPipe.java
@@ -175,14 +175,14 @@ public class IOPipe {
 					c += i;
 					out.write(b, 0, i);
 				}
+				out.flush();
 			} 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) {
-					Scanner s = new Scanner(in);
-					try {
+					try (Scanner s = new Scanner(in)) {
 						while (s.hasNextLine()) {
 							String l = s.nextLine();
 							if (lineProcessor != null)
@@ -194,8 +194,6 @@ public class IOPipe {
 								c += l.length() + 1;
 							}
 						}
-					} finally {
-						s.close();
 					}
 				} else {
 					int i;
@@ -205,6 +203,7 @@ public class IOPipe {
 						out.write(b, 0, i);
 					}
 				}
+				out.flush();
 			}
 		} finally {
 			closeQuietly(input, output);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ManifestFile.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ManifestFile.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ManifestFile.java
index 1690a19..25c2ecd 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ManifestFile.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ManifestFile.java
@@ -40,14 +40,11 @@ public class ManifestFile extends ObjectMap {
 	 */
 	public ManifestFile(File f) throws IOException {
 		Manifest mf = new Manifest();
-		FileInputStream fis = new FileInputStream(f);
-		try {
+		try (FileInputStream fis = new FileInputStream(f)) {
 			mf.read(fis);
 			load(mf);
 		} catch (IOException e) {
 			throw new IOException("Problem detected in MANIFEST.MF.  Contents below:\n" + read(f), e);
-		} finally {
-			closeQuietly(fis);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java
index 061b12c..84bb9cb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java
@@ -51,7 +51,7 @@ import org.apache.juneau.annotation.*;
 @ThreadSafe
 public class MessageBundle extends ResourceBundle {
 
-	private static final ThreadLocal<Locale> clientLocale = new ThreadLocal<Locale>();
+	private static final ThreadLocal<Locale> clientLocale = new ThreadLocal<>();
 
 	private final ResourceBundle rb;
 	private final String bundlePath, className;
@@ -60,17 +60,17 @@ public class MessageBundle extends ResourceBundle {
 
 	// A map that contains all keys [shortKeyName->keyName] and [keyName->keyName], where shortKeyName
 	// refers to keys prefixed and stripped of the class name (e.g. "foobar"->"MyClass.foobar")
-	private final Map<String,String> keyMap = new ConcurrentHashMap<String,String>();
+	private final Map<String,String> keyMap = new ConcurrentHashMap<>();
 
 	// Contains all keys present in all bundles in searchBundles.
-	private final ConcurrentSkipListSet<String> allKeys = new ConcurrentSkipListSet<String>();
+	private final ConcurrentSkipListSet<String> allKeys = new ConcurrentSkipListSet<>();
 
 	// Bundles to search through to find properties.
 	// Typically this will be a list of resource bundles for each class up the class hierarchy chain.
-	private final CopyOnWriteArrayList<MessageBundle> searchBundles = new CopyOnWriteArrayList<MessageBundle>();
+	private final CopyOnWriteArrayList<MessageBundle> searchBundles = new CopyOnWriteArrayList<>();
 
 	// Cache of message bundles per locale.
-	private final ConcurrentHashMap<Locale,MessageBundle> localizedBundles = new ConcurrentHashMap<Locale,MessageBundle>();
+	private final ConcurrentHashMap<Locale,MessageBundle> localizedBundles = new ConcurrentHashMap<>();
 
 	/**
 	 * Sets the locale for this thread so that calls to {@link #getClientString(String, Object...)} return messages in
@@ -252,7 +252,7 @@ public class MessageBundle extends ResourceBundle {
 	 * @return The set of all keys in the resource bundle with the prefix.
 	 */
 	public Set<String> keySet(String prefix) {
-		Set<String> set = new HashSet<String>();
+		Set<String> set = new HashSet<>();
 		for (String s : keySet()) {
 			if (s.equals(prefix) || (s.startsWith(prefix) && s.charAt(prefix.length()) == '.'))
 				set.add(s);
@@ -317,7 +317,7 @@ public class MessageBundle extends ResourceBundle {
 		if (mb != null)
 			return mb;
 		mb = new MessageBundle(forClass, bundlePath, locale);
-		List<MessageBundle> l = new ArrayList<MessageBundle>(searchBundles.size()-1);
+		List<MessageBundle> l = new ArrayList<>(searchBundles.size()-1);
 		for (int i = 1; i < searchBundles.size(); i++) {
 			MessageBundle srb = searchBundles.get(i);
 			srb = new MessageBundle(srb.forClass, srb.bundlePath, locale);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/PojoQuery.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/PojoQuery.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/PojoQuery.java
index 14abfaf..cc4cf07 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/PojoQuery.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/PojoQuery.java
@@ -308,7 +308,7 @@ public final class PojoQuery {
 	private static void doSort(List list, Map<String,Boolean> sortList) {
 
 		// We reverse the list and sort last to first.
-		List<String> columns = new ArrayList<String>(sortList.keySet());
+		List<String> columns = new ArrayList<>(sortList.keySet());
 		Collections.reverse(columns);
 
 		for (final String c : columns) {
@@ -403,7 +403,7 @@ public final class PojoQuery {
 	 */
 	private class MapMatcher implements IMatcher<Map> {
 
-		Map<String,IMatcher> entryMatchers = new HashMap<String,IMatcher>();
+		Map<String,IMatcher> entryMatchers = new HashMap<>();
 
 		public MapMatcher(Map query, boolean ignoreCase) {
 			for (Map.Entry e : (Set<Map.Entry>)query.entrySet())
@@ -536,7 +536,7 @@ public final class PojoQuery {
 
 		public NumberPattern(String searchPattern) {
 
-			List<NumberRange> l = new LinkedList<NumberRange>();
+			List<NumberRange> l = new LinkedList<>();
 
 			for (String s : breakUpTokens(searchPattern)) {
 				boolean isNot = (s.charAt(0) == '!');
@@ -583,7 +583,7 @@ public final class PojoQuery {
 				if (! startsWith(s2[i], '!'))
 					s2[i] = "^"+s2[i];
 
-			List<String> l = new LinkedList<String>();
+			List<String> l = new LinkedList<>();
 			l.addAll(Arrays.asList(s2));
 			return l;
 		}
@@ -708,7 +708,7 @@ public final class PojoQuery {
 	 */
 	private class TimestampPattern {
 		TimestampRange[] ranges;
-		List<TimestampRange> l = new LinkedList<TimestampRange>();
+		List<TimestampRange> l = new LinkedList<>();
 
 		public TimestampPattern(String s) {
 
@@ -951,9 +951,9 @@ public final class PojoQuery {
 
 		public SearchPattern(String searchPattern, boolean ignoreCase) {
 
-			List<Pattern> ors = new LinkedList<Pattern>();
-			List<Pattern> ands = new LinkedList<Pattern>();
-			List<Pattern> nots = new LinkedList<Pattern>();
+			List<Pattern> ors = new LinkedList<>();
+			List<Pattern> ands = new LinkedList<>();
+			List<Pattern> nots = new LinkedList<>();
 
 			for (String arg : breakUpTokens(searchPattern)) {
 				char prefix = arg.charAt(0);
@@ -1035,7 +1035,7 @@ public final class PojoQuery {
 			s = s.replace('\u9998', '-');
 
 			String[] sa = splitQuoted(s, ' ');
-			List<String> l = new ArrayList<String>(sa.length);
+			List<String> l = new ArrayList<>(sa.length);
 			int numOrs = 0;
 			for (int i = 0; i < sa.length; i++) {
 				String token = sa[i];
@@ -1105,7 +1105,7 @@ public final class PojoQuery {
 		if (s == null || s.matches("\\s*"))
 			return new String[0];
 
-		List<String> l = new LinkedList<String>();
+		List<String> l = new LinkedList<>();
 		char[] sArray = s.toCharArray();
 		int x1 = 0;
 		int escapeCount = 0;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ProcBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ProcBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ProcBuilder.java
index cfa4a2c..300a327 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ProcBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ProcBuilder.java
@@ -247,7 +247,7 @@ public class ProcBuilder {
 	 * @param env The new set of environment variables.
 	 * @return This object (for method chaining).
 	 */
-	@SuppressWarnings({"rawtypes", "unchecked"})
+	@SuppressWarnings({"rawtypes"})
 	public ProcBuilder env(Map env) {
 		if (env != null)
 			for (Map.Entry e : (Set<Map.Entry>)env.entrySet())
@@ -395,7 +395,7 @@ public class ProcBuilder {
 	};
 
 	private static List<String> toList(Object...args) {
-		List<String> l = new LinkedList<String>();
+		List<String> l = new LinkedList<>();
 		for (Object o : args) {
 			if (o.getClass().isArray())
 				for (int i = 0; i < Array.getLength(o); i++)

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ResourceFinder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ResourceFinder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ResourceFinder.java
index 343dd25..0ad81dc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ResourceFinder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ResourceFinder.java
@@ -52,10 +52,10 @@ public class ResourceFinder {
 	private static final List<Locale> ROOT_LOCALE = Arrays.asList(Locale.ROOT);
 
 	// Maps resource names+locales to found resources.
-	private final ConcurrentHashMap<ResourceKey,Resource> cache = new ConcurrentHashMap<ResourceKey,Resource>();
+	private final ConcurrentHashMap<ResourceKey,Resource> cache = new ConcurrentHashMap<>();
 
 	// Maps resolved URLs to resources.
-	private final ConcurrentHashMap<URL,Resource> cacheByUrl = new ConcurrentHashMap<URL,Resource>();
+	private final ConcurrentHashMap<URL,Resource> cacheByUrl = new ConcurrentHashMap<>();
 
 	private final Class<?> c;
 
@@ -218,7 +218,9 @@ public class ResourceFinder {
 					URL url = f.toURI().toURL();
 					Resource r = cacheByUrl.get(url);
 					if (r == null) {
-						r = new Resource(IOUtils.readBytes(new FileInputStream(f), 1024));
+						try (FileInputStream fis = new FileInputStream(f)) {
+							r = new Resource(IOUtils.readBytes(fis, 1024));
+						}
 						cacheByUrl.putIfAbsent(url, r);
 						r = cacheByUrl.get(url);
 					}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/SearchArgs.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/SearchArgs.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/SearchArgs.java
index 3cae084..8d1da96 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/SearchArgs.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/SearchArgs.java
@@ -31,9 +31,9 @@ public class SearchArgs {
 	private final boolean ignoreCase;
 
 	private SearchArgs(Builder b) {
-		this.search = unmodifiableMap(new LinkedHashMap<String,String>(b.search));
-		this.view = unmodifiableList(new ArrayList<String>(b.view));
-		this.sort = unmodifiableMap(new LinkedHashMap<String,Boolean>(b.sort));
+		this.search = unmodifiableMap(new LinkedHashMap<>(b.search));
+		this.view = unmodifiableList(new ArrayList<>(b.view));
+		this.sort = unmodifiableMap(new LinkedHashMap<>(b.sort));
 		this.position = b.position;
 		this.limit = b.limit;
 		this.ignoreCase = b.ignoreCase;
@@ -52,9 +52,9 @@ public class SearchArgs {
 	 * Builder for {@link SearchArgs} class.
 	 */
 	public static class Builder {
-		Map<String,String> search = new LinkedHashMap<String,String>();
-		List<String> view = new ArrayList<String>();
-		Map<String,Boolean> sort = new LinkedHashMap<String,Boolean>();
+		Map<String,String> search = new LinkedHashMap<>();
+		List<String> view = new ArrayList<>();
+		Map<String,Boolean> sort = new LinkedHashMap<>();
 		int position, limit;
 		boolean ignoreCase;
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ZipFileList.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ZipFileList.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ZipFileList.java
index 5637136..a12183f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ZipFileList.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ZipFileList.java
@@ -132,7 +132,9 @@ public class ZipFileList extends LinkedList<ZipFileList.ZipFileEntry> {
 					ZipEntry e = new ZipEntry(path);
 					e.setSize(f.length());
 					zos.putNextEntry(e);
-					IOPipe.create(new FileInputStream(f), zos).run();
+					try (FileInputStream fis = new FileInputStream(f)) {
+						IOPipe.create(fis, zos).run();
+					}
 				}
 			}
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/NamespaceFactory.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/NamespaceFactory.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/NamespaceFactory.java
index d026611..4b0622c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/NamespaceFactory.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/NamespaceFactory.java
@@ -30,7 +30,7 @@ import org.apache.juneau.parser.*;
  */
 public final class NamespaceFactory {
 
-	private static ConcurrentHashMap<String,Namespace> cache = new ConcurrentHashMap<String,Namespace>();
+	private static ConcurrentHashMap<String,Namespace> cache = new ConcurrentHashMap<>();
 
 	/**
 	 * Get the {@link Namespace} with the specified name and URI, and create a new one if this is the first time it's

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
index b99f5c5..dc7e257 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
@@ -67,9 +67,9 @@ public class XmlBeanMeta extends BeanMetaExtended {
 
 	private static class XmlBeanMetaBuilder {
 		Map<String,BeanPropertyMeta>
-			attrs = new LinkedHashMap<String,BeanPropertyMeta>(),
-			elements = new LinkedHashMap<String,BeanPropertyMeta>(),
-			collapsedProperties = new LinkedHashMap<String,BeanPropertyMeta>();
+			attrs = new LinkedHashMap<>(),
+			elements = new LinkedHashMap<>(),
+			collapsedProperties = new LinkedHashMap<>();
 		BeanPropertyMeta
 			attrsProperty,
 			contentProperty;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlDocSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlDocSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlDocSerializerSession.java
index a7a8748..f6035d3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlDocSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlDocSerializerSession.java
@@ -41,12 +41,13 @@ public class XmlDocSerializerSession extends XmlSerializerSession {
 
 	@Override /* SerializerSession */
 	protected void doSerialize(SerializerPipe out, Object o) throws Exception {
-		XmlWriter w = getXmlWriter(out);
-		w.append("<?xml")
-			.attr("version", "1.0")
-			.attr("encoding", "UTF-8")
-			.appendln("?>");
-		w.flush();
-		super.doSerialize(out, o);
+		try (XmlWriter w = getXmlWriter(out)) {
+			w.append("<?xml")
+				.attr("version", "1.0")
+				.attr("encoding", "UTF-8")
+				.appendln("?>");
+			w.flush();
+			super.doSerialize(out, o);
+		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
index 1e83010..232f722 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
@@ -506,7 +506,7 @@ public class XmlParserSession extends ReaderParserSession {
 				if (cp != null && cpf.isOneOf(MIXED, MIXED_PWS)) {
 					if (cpcm.isCollectionOrArray()) {
 						if (l == null)
-							l = new LinkedList<Object>();
+							l = new LinkedList<>();
 						l.add(getText(r, false));
 					} else {
 						cp.set(m, null, getText(r, trim));
@@ -539,7 +539,7 @@ public class XmlParserSession extends ReaderParserSession {
 					if (isWhitespaceElement(r) && (breg == null || ! breg.hasName(r.getLocalName()))) {
 						if (cpcm.isCollectionOrArray()) {
 							if (l == null)
-								l = new LinkedList<Object>();
+								l = new LinkedList<>();
 							l.add(parseWhitespaceElement(r));
 						} else {
 							cp.set(m, null, parseWhitespaceElement(r));
@@ -547,7 +547,7 @@ public class XmlParserSession extends ReaderParserSession {
 					} else {
 						if (cpcm.isCollectionOrArray()) {
 							if (l == null)
-								l = new LinkedList<Object>();
+								l = new LinkedList<>();
 							l.add(parseAnything(cpcm.getElementType(), cp.getName(), r, m.getBean(false), false, cp));
 						} else {
 							cp.set(m, null, parseAnything(cpcm, cp.getName(), r, m.getBean(false), false, cp));

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlReader.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlReader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlReader.java
index 50c0e5e..c7206ce 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlReader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlReader.java
@@ -45,6 +45,7 @@ public final class XmlReader implements XMLStreamReader {
 	protected XmlReader(ParserPipe pipe, boolean validating, XMLReporter reporter, XMLResolver resolver, XMLEventAllocator eventAllocator) throws Exception {
 		this.pipe = pipe;
 		try {
+			@SuppressWarnings("resource")
 			Reader r = pipe.getBufferedReader();
 			XMLInputFactory factory = XMLInputFactory.newInstance();
 			factory.setProperty(XMLInputFactory.IS_VALIDATING, validating);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializerSession.java
index 8d4a7aa..ee6d15b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializerSession.java
@@ -41,12 +41,13 @@ public class XmlSchemaDocSerializerSession extends XmlSchemaSerializerSession {
 
 	@Override /* SerializerSession */
 	protected void doSerialize(SerializerPipe out, Object o) throws Exception {
-		XmlWriter w = getXmlWriter(out);
-		w.append("<?xml")
-			.attr("version", "1.0")
-			.attr("encoding", "UTF-8")
-			.appendln("?>");
-		w.flush();
-		super.doSerialize(out, o);
+		try (XmlWriter w = getXmlWriter(out)) {
+			w.append("<?xml")
+				.attr("version", "1.0")
+				.attr("encoding", "UTF-8")
+				.appendln("?>");
+			w.flush();
+			super.doSerialize(out, o);
+		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerSession.java
index 6304cea..985edd1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerSession.java
@@ -85,7 +85,7 @@ public class XmlSchemaSerializerSession extends XmlSerializerSession {
 		if (xmlSchema.indexOf('\u0000') != -1) {
 
 			// Break it up into a map of namespaceURI->schema document
-			final Map<String,String> schemas = new HashMap<String,String>();
+			final Map<String,String> schemas = new HashMap<>();
 			String[] ss = xmlSchema.split("\u0000");
 			xmlSchema = ss[0];
 			for (String s : ss) {
@@ -146,9 +146,9 @@ public class XmlSchemaSerializerSession extends XmlSerializerSession {
 		private Namespace defaultNs;
 		private BeanSession session;
 		private LinkedList<QueueEntry>
-			elementQueue = new LinkedList<QueueEntry>(),
-			attributeQueue = new LinkedList<QueueEntry>(),
-			typeQueue = new LinkedList<QueueEntry>();
+			elementQueue = new LinkedList<>(),
+			attributeQueue = new LinkedList<>(),
+			typeQueue = new LinkedList<>();
 
 		private Schemas(BeanSession session, Namespace xs, Namespace defaultNs, Namespace[] allNs) throws IOException {
 			this.session = session;
@@ -232,9 +232,9 @@ public class XmlSchemaSerializerSession extends XmlSerializerSession {
 		private Namespace defaultNs, targetNs;
 		private Schemas schemas;
 		private Set<String>
-			processedTypes = new HashSet<String>(),
-			processedAttributes = new HashSet<String>(),
-			processedElements = new HashSet<String>();
+			processedTypes = new HashSet<>(),
+			processedAttributes = new HashSet<>(),
+			processedElements = new HashSet<>();
 
 		public Schema(Schemas schemas, Namespace xs, Namespace targetNs, Namespace defaultNs, Namespace[] allNs) throws IOException {
 			this.schemas = schemas;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlUtils.java
index 0331315..2b84be6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlUtils.java
@@ -70,7 +70,9 @@ public final class XmlUtils {
 			return "_xE000_";
 		try {
 			if (needsElementNameEncoding(s))
-				return encodeElementNameInner(new StringBuilderWriter(s.length() * 2), s).toString();
+				try (Writer w = new StringBuilderWriter(s.length() * 2)) {
+					return encodeElementNameInner(w, s).toString();
+				}
 		} catch (IOException e) {
 			throw new RuntimeException(e); // Never happens
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParserSession.java
index 70eb434..cb277e2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParserSession.java
@@ -81,34 +81,37 @@ public final class YamlParserSession extends ReaderParserSession {
 
 	@Override /* ParserSession */
 	protected <T> T doParse(ParserPipe pipe, ClassMeta<T> type) throws Exception {
-		ParserReader r = pipe.getParserReader();
-		if (r == null)
-			return null;
-		T o = parseAnything(type, r, getOuter(), null);
-		validateEnd(r);
-		return o;
+		try (ParserReader r = pipe.getParserReader()) {
+			if (r == null)
+				return null;
+			T o = parseAnything(type, r, getOuter(), null);
+			validateEnd(r);
+			return o;
+		}
 	}
 
 	@Override /* ReaderParserSession */
 	protected <K,V> Map<K,V> doParseIntoMap(ParserPipe pipe, Map<K,V> m, Type keyType, Type valueType) throws Exception {
-		ParserReader r = pipe.getParserReader();
-		m = parseIntoMap2(r, m, (ClassMeta<K>)getClassMeta(keyType), (ClassMeta<V>)getClassMeta(valueType), null);
-		validateEnd(r);
-		return m;
+		try (ParserReader r = pipe.getParserReader()) {
+			m = parseIntoMap2(r, m, (ClassMeta<K>)getClassMeta(keyType), (ClassMeta<V>)getClassMeta(valueType), null);
+			validateEnd(r);
+			return m;
+		}
 	}
 
 	@Override /* ReaderParserSession */
 	protected <E> Collection<E> doParseIntoCollection(ParserPipe pipe, Collection<E> c, Type elementType) throws Exception {
-		ParserReader r = pipe.getParserReader();
-		c = parseIntoCollection2(r, c, getClassMeta(elementType), null);
-		validateEnd(r);
-		return c;
+		try (ParserReader r = pipe.getParserReader()) {
+			c = parseIntoCollection2(r, c, getClassMeta(elementType), null);
+			validateEnd(r);
+			return c;
+		}
 	}
 
 	private <T> T parseAnything(ClassMeta<?> eType, ParserReader r, Object outer, BeanPropertyMeta pMeta) throws Exception {
 
 		if (eType == null)
-			eType = (ClassMeta<T>)object();
+			eType = object();
 		PojoSwap<T,Object> swap = (PojoSwap<T,Object>)eType.getPojoSwap(this);
 		ClassMeta<?> sType = swap == null ? eType : swap.getSwapClassMeta(this);
 		setCurrentClass(sType);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializerSession.java
index db40dd8..239186e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializerSession.java
@@ -65,7 +65,7 @@ public class YamlSerializerSession extends WriterSerializerSession {
 
 	@Override /* SerializerSesssion */
 	protected void doSerialize(SerializerPipe out, Object o) throws Exception {
-		serializeAnything(getJsonWriter(out), o, getExpectedRootType(o), "root", null);
+		serializeAnything(getYamlWriter(out), o, getExpectedRootType(o), "root", null);
 	}
 
 	/*
@@ -240,7 +240,7 @@ public class YamlSerializerSession extends WriterSerializerSession {
 	 * @return The output target object wrapped in an {@link YamlWriter}.
 	 * @throws Exception
 	 */
-	protected final YamlWriter getJsonWriter(SerializerPipe out) throws Exception {
+	protected final YamlWriter getYamlWriter(SerializerPipe out) throws Exception {
 		Object output = out.getRawOutput();
 		if (output instanceof YamlWriter)
 			return (YamlWriter)output;


[3/8] juneau git commit: Update code to reflect changes in Java 7.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.core.prefs b/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.core.prefs
index 68d351b..fb1af7a 100644
--- a/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.core.prefs
@@ -1,16 +1,118 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.ui.prefs b/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-microservice/juneau-microservice-server/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/Microservice.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/Microservice.java b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/Microservice.java
index c60187b..f31b8af 100755
--- a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/Microservice.java
+++ b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/Microservice.java
@@ -476,6 +476,7 @@ public abstract class Microservice {
 	 * @return This object (for method chaining).
 	 * @throws Exception
 	 */
+	@SuppressWarnings("resource")
 	public Microservice start() throws Exception {
 
 		// --------------------------------------------------------------------------------
@@ -487,8 +488,8 @@ public abstract class Microservice {
 			// If running within an eclipse workspace, need to get it from the file system.
 			File f = new File("META-INF/MANIFEST.MF");
 			if (f.exists()) {
-				try {
-					m.read(new FileInputStream(f));
+				try (FileInputStream fis = new FileInputStream(f)) {
+					m.read(fis);
 				} catch (IOException e) {
 					System.err.println("Problem detected in MANIFEST.MF.  Contents below:\n" + read(f));
 					throw e;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/RestMicroservice.java b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
index 56419fe..8b57578 100755
--- a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
+++ b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
@@ -370,12 +370,10 @@ public class RestMicroservice extends Microservice {
 	
 	private static int findOpenPort(int[] ports) {
 		for (int port : ports) {
-			try {
-				// If port is 0, try a random port between ports[0] and 32767.
-				if (port == 0)
-					port = new Random().nextInt(32767 - ports[0] + 1) + ports[0];
-				ServerSocket ss = new ServerSocket(port);
-				ss.close();
+			// If port is 0, try a random port between ports[0] and 32767.
+			if (port == 0)
+				port = new Random().nextInt(32767 - ports[0] + 1) + ports[0];
+			try (ServerSocket ss = new ServerSocket(port)) {
 				return port;
 			} catch (IOException e) {}
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DebugResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DebugResource.java b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DebugResource.java
index 5be0212..9ef573d 100644
--- a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DebugResource.java
+++ b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DebugResource.java
@@ -70,7 +70,9 @@ public class DebugResource extends Resource {
 	@RestMethod(name=POST, path="/jetty/dump", description="Generates and saves the jetty thread dump file to jetty-thread-dump.log.")
 	public String createJettyDump(RestRequest req, RestResponse res) throws Exception {
 		String dump = RestMicroservice.getInstance().getServer().dump();
-		IOUtils.pipe(dump, new FileWriter(req.getConfigFile().getString("Logging/logDir") + "/jetty-thread-dump.log"));
+		try (FileWriter fw = new FileWriter(req.getConfigFile().getString("Logging/logDir") + "/jetty-thread-dump.log")) {
+			IOUtils.pipe(dump, fw);
+		}
 		return "OK";
 	}
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
index 9db0c5e..93020d8 100755
--- a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
+++ b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
@@ -136,7 +136,7 @@ public class DirectoryResource extends Resource {
 		req.setAttribute("path", f.getAbsolutePath());
 
 		if (f.isDirectory()) {
-			List<FileResource> l = new LinkedList<FileResource>();
+			List<FileResource> l = new LinkedList<>();
 			File[] files = f.listFiles();
 			if (files != null) {
 				for (File fc : files) {
@@ -186,8 +186,9 @@ public class DirectoryResource extends Resource {
 
 		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
 		String parentSubPath = f.getParentFile().getAbsolutePath().substring(rootDir.getAbsolutePath().length());
-		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f));
-		IOPipe.create(req.getInputStream(), bos).closeOut().run();
+		try (InputStream is = req.getInputStream(); OutputStream os = new BufferedOutputStream(new FileOutputStream(f))) {
+			IOPipe.create(is, os).run();
+		}
 		if (req.getContentType().contains("html"))
 			return new Redirect(parentSubPath);
 		return "File added";

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
index 2c36603..02a2dcf 100644
--- a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
+++ b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
@@ -73,9 +73,9 @@ public class LogEntryFormatter extends Formatter {
 	public LogEntryFormatter(String format, String dateFormat, boolean useStackTraceHashes) {
 		this.df = new SimpleDateFormat(dateFormat);
 		if (useStackTraceHashes)
-			hashes = new ConcurrentHashMap<String,AtomicInteger>();
+			hashes = new ConcurrentHashMap<>();
 
-		fieldIndexes = new HashMap<String,Integer>();
+		fieldIndexes = new HashMap<>();
 
 		format = format
 			.replaceAll("\\{date\\}", "%1\\$s")

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogParser.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogParser.java b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogParser.java
index 59e5165..dd03619 100644
--- a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogParser.java
+++ b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogParser.java
@@ -25,7 +25,7 @@ import java.util.regex.*;
  * Provides the capability of returning splices of log files based on dates and filtering based on thread and logger 
  * names.
  */
-public class LogParser implements Iterable<LogParser.Entry>, Iterator<LogParser.Entry> {
+public class LogParser implements Iterable<LogParser.Entry>, Iterator<LogParser.Entry>, Closeable {
 	private BufferedReader br;
 	private LogEntryFormatter formatter;
 	private Date start, end;
@@ -52,9 +52,9 @@ public class LogParser implements Iterable<LogParser.Entry>, Iterator<LogParser.
 		this.end = end;
 		this.threadFilter = thread;
 		if (loggers != null)
-			this.loggerFilter = new HashSet<String>(Arrays.asList(loggers));
+			this.loggerFilter = new HashSet<>(Arrays.asList(loggers));
 		if (severity != null)
-			this.severityFilter = new HashSet<String>(Arrays.asList(severity));
+			this.severityFilter = new HashSet<>(Arrays.asList(severity));
 
 		// Find the first line.
 		String line;
@@ -104,11 +104,7 @@ public class LogParser implements Iterable<LogParser.Entry>, Iterator<LogParser.
 		return this;
 	}
 
-	/**
-	 * Closes the underlying reader.
-	 *
-	 * @throws IOException
-	 */
+	@Override /* Closeable */
 	public void close() throws IOException {
 		br.close();
 	}
@@ -165,7 +161,7 @@ public class LogParser implements Iterable<LogParser.Entry>, Iterator<LogParser.
 
 		private void addText(String t) {
 			if (additionalText == null)
-				additionalText = new LinkedList<String>();
+				additionalText = new LinkedList<>();
 			additionalText.add(t);
 		}
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index 69436cd..cccaee3 100755
--- a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -104,7 +104,7 @@ public class LogsResource extends Resource {
 		File f = getFile(path);
 
 		if (f.isDirectory()) {
-			Set<FileResource> l = new TreeSet<FileResource>(new FileResourceComparator());
+			Set<FileResource> l = new TreeSet<>(new FileResourceComparator());
 			File[] files = f.listFiles(filter);
 			if (files != null) {
 				for (File fc : files) {
@@ -155,24 +155,17 @@ public class LogsResource extends Resource {
 			if (o instanceof Reader)
 				res.setOutput(o);
 			else {
-				LogParser p = (LogParser)o;
-				Writer w = res.getNegotiatedWriter();
-				try {
+				try (LogParser p = (LogParser)o; Writer w = res.getNegotiatedWriter()) {
 					p.writeTo(w);
-				} finally {
-					w.flush();
-					w.close();
 				}
 			}
 			return;
 		}
 
 		res.setContentType("text/html");
-		PrintWriter w = res.getNegotiatedWriter();
-		try {
+		try (PrintWriter w = res.getNegotiatedWriter()) {
 			w.println("<html><body style='font-family:monospace;font-size:8pt;white-space:pre;'>");
-			LogParser lp = getLogParser(f, startDate, endDate, thread, loggers, severity);
-			try {
+			try (LogParser lp = getLogParser(f, startDate, endDate, thread, loggers, severity)) {
 				if (! lp.hasNext())
 					w.append("<span style='color:gray'>[EMPTY]</span>");
 				else for (LogParser.Entry le : lp) {
@@ -191,11 +184,7 @@ public class LogsResource extends Resource {
 					le.appendHtml(w).append("</span>");
 				}
 				w.append("</body></html>");
-			} finally {
-				lp.close();
 			}
-		} finally {
-			w.close();
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.core.prefs b/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.core.prefs
index 68d351b..fb1af7a 100644
--- a/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.core.prefs
@@ -1,16 +1,118 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.ui.prefs b/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-microservice/juneau-microservice-template/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-template/build-overlay/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-template/build-overlay/.settings/org.eclipse.jdt.core.prefs b/juneau-microservice/juneau-microservice-template/build-overlay/.settings/org.eclipse.jdt.core.prefs
index 714351a..cc96009 100644
--- a/juneau-microservice/juneau-microservice-template/build-overlay/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-microservice/juneau-microservice-template/build-overlay/.settings/org.eclipse.jdt.core.prefs
@@ -1,5 +1,400 @@
 eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=200
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=3
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=200
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=3
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java b/juneau-microservice/juneau-microservice-template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java
index aacdf36..8de3f04 100755
--- a/juneau-microservice/juneau-microservice-template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java
+++ b/juneau-microservice/juneau-microservice-template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java
@@ -29,7 +29,10 @@ import org.apache.juneau.rest.annotation.RestResource;
 public class HelloWorldResource extends Resource {
 	private static final long serialVersionUID = 1L;
 
-	/** GET request handler */
+	/** 
+	 * GET request handler.
+	 * @return The string "Hello world!" 
+	 */
 	@RestMethod(name=GET, path="/*")
 	public String sayHello() {
 		return "Hello world!";

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-test/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-test/.settings/org.eclipse.jdt.ui.prefs b/juneau-microservice/juneau-microservice-test/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-microservice/juneau-microservice-test/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-microservice/juneau-microservice-test/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>



[7/8] juneau git commit: Update code to reflect changes in Java 7.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
index 6be8583..5ce1c60 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
@@ -98,7 +98,7 @@ public class DataSet {
 	 */
 	public DataSet(Column[] columns, Object o, BeanSession session) throws Exception {
 		metaData = columns;
-		data = new LinkedList<Row>();
+		data = new LinkedList<>();
 		if (o != null) {
 			if (o.getClass().isArray())
 				o = Arrays.asList((Object[])o);
@@ -140,7 +140,7 @@ public class DataSet {
 	 */
 	@Bean(typeName="row")
 	public static class Row {
-		private List<String> values = new LinkedList<String>();
+		private List<String> values = new LinkedList<>();
 
 		private void add(String value) {
 			values.add(value);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
index 543d2ee..1f93e87 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
@@ -85,7 +85,7 @@ public abstract class HtmlElement {
 	 */
 	public HtmlElement attr(String key, Object val) {
 		if (this.attrs == null)
-			this.attrs = new LinkedHashMap<String,Object>();
+			this.attrs = new LinkedHashMap<>();
 		if ("url".equals(key) || "href".equals(key) || key.endsWith("action"))
 			val = StringUtils.toURI(val);
 		this.attrs.put(key, val);
@@ -112,7 +112,7 @@ public abstract class HtmlElement {
 	 */
 	public HtmlElement attrUri(String key, Object val) {
 		if (this.attrs == null)
-			this.attrs = new LinkedHashMap<String,Object>();
+			this.attrs = new LinkedHashMap<>();
 		this.attrs.put(key, StringUtils.toURI(val));
 		return this;
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
index a74fcea..d504dbd 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
@@ -126,7 +126,7 @@ public class HtmlElementContainer extends HtmlElement {
 	public HtmlElement children(Object...children) {
 		if (children.length > 0) {
 			if (this.children == null)
-				this.children = new LinkedList<Object>();
+				this.children = new LinkedList<>();
 			for (Object c : children)
 				this.children.add(c);
 		}
@@ -141,7 +141,7 @@ public class HtmlElementContainer extends HtmlElement {
 	 */
 	public HtmlElement child(Object child) {
 		if (this.children == null)
-			this.children = new LinkedList<Object>();
+			this.children = new LinkedList<>();
 		this.children.add(child);
 		return this;
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
index e75f853..7c3a0fb 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
@@ -145,7 +145,7 @@ public class HtmlElementMixed extends HtmlElement {
 	 */
 	public HtmlElement child(Object child) {
 		if (this.children == null)
-			this.children = new LinkedList<Object>();
+			this.children = new LinkedList<>();
 		if (child instanceof Collection)
 			this.children.addAll((Collection<?>)child);
 		else

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
index a2d3cf9..dc4b105 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
@@ -361,7 +361,7 @@ public class Schema {
 	 */
 	public Schema addDefinition(String name, Schema definition) {
 		if (this.definitions == null)
-			this.definitions = new LinkedHashMap<String,Schema>();
+			this.definitions = new LinkedHashMap<>();
 		this.definitions.put(name, definition);
 		setMasterOn(definition);
 		return this;
@@ -443,7 +443,7 @@ public class Schema {
 	 */
 	public Schema addProperties(Schema...properties) {
 		if (this.properties == null)
-			this.properties = new LinkedHashMap<String,Schema>();
+			this.properties = new LinkedHashMap<>();
 		for (Schema p : properties) {
 			if (p.getName() == null)
 				throw new BeanRuntimeException(Schema.class,
@@ -494,7 +494,7 @@ public class Schema {
 	 */
 	public Schema addPatternProperties(SchemaProperty...properties) {
 		if (this.patternProperties == null)
-			this.patternProperties = new LinkedHashMap<String,Schema>();
+			this.patternProperties = new LinkedHashMap<>();
 		for (Schema p : properties) {
 			if (p.getName() == null)
 				throw new BeanRuntimeException(Schema.class,
@@ -537,7 +537,7 @@ public class Schema {
 	 */
 	public Schema addDependency(String name, Schema dependency) {
 		if (this.dependencies == null)
-			this.dependencies = new LinkedHashMap<String,Schema>();
+			this.dependencies = new LinkedHashMap<>();
 		this.dependencies.put(name, dependency);
 		setMasterOn(dependency);
 		return this;
@@ -1065,7 +1065,7 @@ public class Schema {
 	 */
 	public Schema addRequired(List<String> required) {
 		if (this.required == null)
-			this.required = new LinkedList<String>();
+			this.required = new LinkedList<>();
 		for (String r : required)
 			this.required.add(r);
 		return this;
@@ -1079,7 +1079,7 @@ public class Schema {
 	 */
 	public Schema addRequired(String...required) {
 		if (this.required == null)
-			this.required = new LinkedList<String>();
+			this.required = new LinkedList<>();
 		for (String r : required)
 			this.required.add(r);
 		return this;
@@ -1093,7 +1093,7 @@ public class Schema {
 	 */
 	public Schema addRequired(SchemaProperty...properties) {
 		if (this.required == null)
-			this.required = new LinkedList<String>();
+			this.required = new LinkedList<>();
 		for (SchemaProperty p : properties)
 			this.required.add(p.getName());
 		return this;
@@ -1228,7 +1228,7 @@ public class Schema {
 	 */
 	public Schema addEnum(String..._enum) {
 		if (this._enum == null)
-			this._enum = new LinkedList<String>();
+			this._enum = new LinkedList<>();
 		for (String e : _enum)
 			this._enum.add(e);
 		return this;
@@ -1263,7 +1263,7 @@ public class Schema {
 	 */
 	public Schema addAllOf(Schema...allOf) {
 		if (this.allOf == null)
-			this.allOf = new LinkedList<Schema>();
+			this.allOf = new LinkedList<>();
 		setMasterOn(allOf);
 		for (Schema s : allOf)
 			this.allOf.add(s);
@@ -1299,7 +1299,7 @@ public class Schema {
 	 */
 	public Schema addAnyOf(Schema...anyOf) {
 		if (this.anyOf == null)
-			this.anyOf = new LinkedList<Schema>();
+			this.anyOf = new LinkedList<>();
 		setMasterOn(anyOf);
 		for (Schema s : anyOf)
 			this.anyOf.add(s);
@@ -1335,7 +1335,7 @@ public class Schema {
 	 */
 	public Schema addOneOf(Schema...oneOf) {
 		if (this.oneOf == null)
-			this.oneOf = new LinkedList<Schema>();
+			this.oneOf = new LinkedList<>();
 		setMasterOn(oneOf);
 		for (Schema s : oneOf)
 			this.oneOf.add(s);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/SchemaMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/SchemaMap.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/SchemaMap.java
index 46e72ff..fe078b2 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/SchemaMap.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/SchemaMap.java
@@ -119,19 +119,12 @@ public abstract class SchemaMap extends ConcurrentHashMap<URI,Schema> {
 	 * @return The parsed schema.
 	 */
 	public Schema load(URI uri) {
-		Reader r = getReader(uri);
-		if (r == null)
-			return null;
-		try {
+		try (Reader r = getReader(uri)) {
+			if (r == null)
+				return null;
 			return JsonParser.DEFAULT.parse(r, Schema.class);
 		} catch (Exception e) {
 			throw new RuntimeException(e);
-		} finally {
-			try {
-				r.close();
-			} catch (IOException e) {
-				// Ignore
-			}
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
index 4df9d90..ef01f78 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
@@ -774,7 +774,7 @@ public class HeaderInfo extends SwaggerElement {
 					addEnum((Collection<Object>)o);
 				else {
 					if (this._enum == null)
-						this._enum = new LinkedList<Object>();
+						this._enum = new LinkedList<>();
 					this._enum.add(o);
 				}
 			}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
index 6ea857a..6aafda4 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
@@ -739,7 +739,7 @@ public class Items extends SwaggerElement {
 					addEnum((Collection<Object>)o);
 				else {
 					if (this._enum == null)
-						this._enum = new LinkedList<Object>();
+						this._enum = new LinkedList<>();
 					this._enum.add(o);
 				}
 			}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
index 9342ffb..ec00295 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
@@ -166,7 +166,7 @@ public class Operation extends SwaggerElement {
 	public Operation addTags(Collection<String> tags) {
 		if (tags != null) {
 			if (this.tags == null)
-				this.tags = new LinkedList<String>();
+				this.tags = new LinkedList<>();
 			this.tags.addAll(tags);
 		}
 		return this;
@@ -412,7 +412,7 @@ public class Operation extends SwaggerElement {
 	public Operation addConsumes(Collection<MediaType> consumes) {
 		if (consumes != null) {
 			if (this.consumes == null)
-				this.consumes = new LinkedList<MediaType>();
+				this.consumes = new LinkedList<>();
 			this.consumes.addAll(consumes);
 		}
 		return this;
@@ -485,7 +485,7 @@ public class Operation extends SwaggerElement {
 	public Operation addProduces(MediaType...produces) {
 		if (produces != null) {
 			if (this.produces == null)
-				this.produces = new LinkedList<MediaType>();
+				this.produces = new LinkedList<>();
 			this.produces.addAll(Arrays.asList(produces));
 		}
 		return this;
@@ -506,7 +506,7 @@ public class Operation extends SwaggerElement {
 	public Operation addProduces(Collection<MediaType> produces) {
 		if (produces != null) {
 			if (this.produces == null)
-				this.produces = new LinkedList<MediaType>();
+				this.produces = new LinkedList<>();
 			this.produces.addAll(produces);
 		}
 		return this;
@@ -597,7 +597,7 @@ public class Operation extends SwaggerElement {
 	 */
 	public Operation addParameters(ParameterInfo...parameters) {
 		if (this.parameters == null)
-			this.parameters = new LinkedList<ParameterInfo>();
+			this.parameters = new LinkedList<>();
 		this.parameters.addAll(Arrays.asList(parameters));
 		return this;
 	}
@@ -660,7 +660,7 @@ public class Operation extends SwaggerElement {
 	 */
 	public Operation addResponse(Integer statusCode, ResponseInfo response) {
 		if (responses == null)
-			responses = new TreeMap<Integer,ResponseInfo>();
+			responses = new TreeMap<>();
 		responses.put(statusCode, response);
 		return this;
 	}
@@ -744,7 +744,7 @@ public class Operation extends SwaggerElement {
 	 */
 	public Operation addSchemes(Collection<String> schemes) {
 		if (this.schemes == null)
-			this.schemes = new LinkedList<String>();
+			this.schemes = new LinkedList<>();
 		this.schemes.addAll(schemes);
 		return this;
 	}
@@ -848,7 +848,7 @@ public class Operation extends SwaggerElement {
 	 */
 	public Operation addSecurity(Map<String,List<String>> security) {
 		if (this.security == null)
-			this.security = new LinkedList<Map<String,List<String>>>();
+			this.security = new LinkedList<>();
 		this.security.add(security);
 		return this;
 	}
@@ -863,7 +863,7 @@ public class Operation extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public Operation security(String scheme, String...alternatives) {
-		Map<String,List<String>> m = new LinkedHashMap<String,List<String>>();
+		Map<String,List<String>> m = new LinkedHashMap<>();
 		m.put(scheme, Arrays.asList(alternatives));
 		return addSecurity(m);
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
index 7707a5c..89004f9 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
@@ -1088,7 +1088,7 @@ public class ParameterInfo extends SwaggerElement {
 					addEnum((Collection<Object>)o);
 				else {
 					if (this._enum == null)
-						this._enum = new LinkedList<Object>();
+						this._enum = new LinkedList<>();
 					this._enum.add(o);
 				}
 			}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
index 622da2d..71461a3 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
@@ -187,7 +187,7 @@ public class ResponseInfo extends SwaggerElement {
 	 */
 	public ResponseInfo addHeader(String name, HeaderInfo header) {
 		if (headers == null)
-			headers = new TreeMap<String,HeaderInfo>();
+			headers = new TreeMap<>();
 		headers.put(name, header);
 		return this;
 	}
@@ -247,7 +247,7 @@ public class ResponseInfo extends SwaggerElement {
 	 */
 	public ResponseInfo addExample(String mimeType, Object example) {
 		if (examples == null)
-			examples = new TreeMap<String,Object>();
+			examples = new TreeMap<>();
 		examples.put(mimeType, example);
 		return this;
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
index 4ff4094..a2bc4c1 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
@@ -679,7 +679,7 @@ public class SchemaInfo extends SwaggerElement {
 					addEnum((Collection<Object>)o);
 				else {
 					if (this._enum == null)
-						this._enum = new LinkedList<Object>();
+						this._enum = new LinkedList<>();
 					this._enum.add(o);
 				}
 			}
@@ -794,7 +794,7 @@ public class SchemaInfo extends SwaggerElement {
 					addAllOf((Collection<Object>)o);
 				else {
 					if (this.allOf == null)
-						this.allOf = new LinkedList<Object>();
+						this.allOf = new LinkedList<>();
 					this.allOf.add(o);
 				}
 			}
@@ -843,7 +843,7 @@ public class SchemaInfo extends SwaggerElement {
 	 */
 	public SchemaInfo addProperty(String name, Map<String,Object> propertyProperties) {
 		if (this.properties == null)
-			this.properties = new TreeMap<String,Map<String,Object>>();
+			this.properties = new TreeMap<>();
 		this.properties.put(name, propertyProperties);
 		return this;
 	}
@@ -858,7 +858,7 @@ public class SchemaInfo extends SwaggerElement {
 	public SchemaInfo property(String name, Object...propertyProperties) {
 		if (propertyProperties.length % 2 != 0)
 			throw new RuntimeException("Invalid number of arguments passed to SchemaInfo.property(String,Object...)");
-		Map<String,Object> m = new LinkedHashMap<String,Object>();
+		Map<String,Object> m = new LinkedHashMap<>();
 		for (int i = 0; i < propertyProperties.length; i += 2)
 			m.put(String.valueOf(propertyProperties[i]), propertyProperties[i+1]);
 		return addProperty(name, m);
@@ -895,7 +895,7 @@ public class SchemaInfo extends SwaggerElement {
 	public SchemaInfo additionalProperties(Object...additionalProperties) {
 		if (additionalProperties.length % 2 != 0)
 			throw new RuntimeException("Invalid number of arguments passed to SchemaInfo.additionalProperties(Object...)");
-		Map<String,Object> m = new LinkedHashMap<String,Object>();
+		Map<String,Object> m = new LinkedHashMap<>();
 		for (int i = 0; i < additionalProperties.length; i += 2)
 			m.put(String.valueOf(additionalProperties[i]), additionalProperties[i+1]);
 		return setAdditionalProperties(m);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
index e95b7a2..a7e2541 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
@@ -409,7 +409,7 @@ public class SecurityScheme extends SwaggerElement {
 	 */
 	public SecurityScheme addScope(String name, String description) {
 		if (scopes == null)
-			scopes = new TreeMap<String,String>();
+			scopes = new TreeMap<>();
 		scopes.put(name, description);
 		return this;
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
index 1fe86b6..f559ec5 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
@@ -313,7 +313,7 @@ public class Swagger extends SwaggerElement {
 	public Swagger addSchemes(Collection<String> schemes) {
 		if (schemes != null) {
 			if (this.schemes == null)
-				this.schemes = new LinkedList<String>();
+				this.schemes = new LinkedList<>();
 			this.schemes.addAll(schemes);
 		}
 		return this;
@@ -400,7 +400,7 @@ public class Swagger extends SwaggerElement {
 	public Swagger addConsumes(Collection<MediaType> consumes) {
 		if (consumes != null) {
 			if (this.consumes == null)
-				this.consumes = new LinkedList<MediaType>();
+				this.consumes = new LinkedList<>();
 			this.consumes.addAll(consumes);
 		}
 		return this;
@@ -497,7 +497,7 @@ public class Swagger extends SwaggerElement {
 	public Swagger addProduces(Collection<MediaType> produces) {
 		if (produces != null) {
 			if (this.produces == null)
-				this.produces = new LinkedList<MediaType>();
+				this.produces = new LinkedList<>();
 			this.produces.addAll(produces);
 		}
 		return this;
@@ -562,10 +562,10 @@ public class Swagger extends SwaggerElement {
 	 */
 	public Swagger addPath(String path, String methodName, Operation operation) {
 		if (paths == null)
-			paths = new TreeMap<String,Map<String,Operation>>();
+			paths = new TreeMap<>();
 		Map<String,Operation> p = paths.get(path);
 		if (p == null) {
-			p = new TreeMap<String,Operation>(new MethodSorter());
+			p = new TreeMap<>(new MethodSorter());
 			paths.put(path, p);
 		}
 		p.put(methodName, operation);
@@ -623,7 +623,7 @@ public class Swagger extends SwaggerElement {
 	 */
 	public Swagger addDefinition(String name, SchemaInfo schema) {
 		if (definitions == null)
-			definitions = new TreeMap<String,SchemaInfo>();
+			definitions = new TreeMap<>();
 		definitions.put(name, schema);
 		return this;
 	}
@@ -686,7 +686,7 @@ public class Swagger extends SwaggerElement {
 	 */
 	public Swagger addParameter(String name, ParameterInfo parameter) {
 		if (parameters == null)
-			parameters = new TreeMap<String,ParameterInfo>();
+			parameters = new TreeMap<>();
 		parameters.put(name, parameter);
 		return this;
 	}
@@ -749,7 +749,7 @@ public class Swagger extends SwaggerElement {
 	 */
 	public Swagger addResponse(String name, ResponseInfo response) {
 		if (responses == null)
-			responses = new TreeMap<String,ResponseInfo>();
+			responses = new TreeMap<>();
 		responses.put(name, response);
 		return this;
 	}
@@ -805,7 +805,7 @@ public class Swagger extends SwaggerElement {
 	 */
 	public Swagger addSecurityDefinition(String name, SecurityScheme securityScheme) {
 		if (securityDefinitions == null)
-			securityDefinitions = new TreeMap<String,SecurityScheme>();
+			securityDefinitions = new TreeMap<>();
 		securityDefinitions.put(name, securityScheme);
 		return this;
 	}
@@ -873,7 +873,7 @@ public class Swagger extends SwaggerElement {
 	 */
 	public Swagger addSecurity(Map<String,List<String>> security) {
 		if (this.security == null)
-			this.security = new LinkedList<Map<String,List<String>>>();
+			this.security = new LinkedList<>();
 		this.security.add(security);
 		return this;
 	}
@@ -887,7 +887,7 @@ public class Swagger extends SwaggerElement {
 	 * @return This object (for method chaining).
 	 */
 	public Swagger security(String scheme, String...alternatives) {
-		Map<String,List<String>> m = new LinkedHashMap<String,List<String>>();
+		Map<String,List<String>> m = new LinkedHashMap<>();
 		m.put(scheme, Arrays.asList(alternatives));
 		return addSecurity(m);
 	}
@@ -950,7 +950,7 @@ public class Swagger extends SwaggerElement {
 	 */
 	public Swagger addTags(Tag...tags) {
 		if (this.tags == null)
-			this.tags = new LinkedList<Tag>();
+			this.tags = new LinkedList<>();
 		this.tags.addAll(Arrays.asList(tags));
 		return this;
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.core.prefs b/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.core.prefs
index 8bd7d89..fb1af7a 100644
--- a/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,10 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -7,9 +13,105 @@ org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.ui.prefs b/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-core/juneau-marshall-rdf/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
index 60e66d7..02165cb 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
@@ -29,7 +29,7 @@ public final class RdfParserContext extends ParserContext implements RdfCommon {
 	final String rdfLanguage;
 	final Namespace juneauNs, juneauBpNs;
 	final RdfCollectionFormat collectionFormat;
-	final Map<String,Object> jenaSettings = new HashMap<String,Object>();
+	final Map<String,Object> jenaSettings = new HashMap<>();
 
 	/**
 	 * Constructor.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
index 05dd2a5..2ef01ab 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
@@ -43,7 +43,7 @@ public class RdfParserSession extends ReaderParserSession {
 	private final Model model;
 	private final boolean trimWhitespace, looseCollections;
 	private final RDFReader rdfReader;
-	private final Set<Resource> urisVisited = new HashSet<Resource>();
+	private final Set<Resource> urisVisited = new HashSet<>();
 	private final RdfCollectionFormat collectionFormat;
 
 	/**
@@ -162,7 +162,7 @@ public class RdfParserSession extends ReaderParserSession {
 	 * 	or by resorting to scanning the model for all nodes with no incoming predicates.
 	 */
 	private List<Resource> getRoots(Model m) {
-		List<Resource> l = new LinkedList<Resource>();
+		List<Resource> l = new LinkedList<>();
 
 		// First try to find the root using the "http://www.apache.org/juneau/root" property.
 		Property root = m.createProperty(juneauNs.getUri(), RDF_juneauNs_ROOT);
@@ -175,7 +175,7 @@ public class RdfParserSession extends ReaderParserSession {
 		// Otherwise, we need to find all resources that aren't objects.
 		// We want to explicitly ignore statements where the subject
 		// and object are the same node.
-		Set<RDFNode> objects = new HashSet<RDFNode>();
+		Set<RDFNode> objects = new HashSet<>();
 		for (StmtIterator i = m.listStatements(); i.hasNext();) {
 			Statement st = i.next();
 			RDFNode subject = st.getSubject();
@@ -232,7 +232,7 @@ public class RdfParserSession extends ReaderParserSession {
 	private <T> T parseAnything(ClassMeta<?> eType, RDFNode n, Object outer, BeanPropertyMeta pMeta) throws Exception {
 
 		if (eType == null)
-			eType = (ClassMeta<T>)object();
+			eType = object();
 		PojoSwap<T,Object> swap = (PojoSwap<T,Object>)eType.getPojoSwap(this);
 		ClassMeta<?> sType = swap == null ? eType : swap.getSwapClassMeta(this);
 		setCurrentClass(sType);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
index 3360fe0..cd83117 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
@@ -36,7 +36,7 @@ public final class RdfSerializerContext extends SerializerContext implements Rdf
 	final Namespace juneauNs;
 	final Namespace juneauBpNs;
 	final RdfCollectionFormat collectionFormat;
-	final Map<String,Object> jenaSettings = new HashMap<String,Object>();
+	final Map<String,Object> jenaSettings = new HashMap<>();
 	final Namespace[] namespaces;
 
 	/**

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
index 8c4faa6..a7e02b7 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
@@ -326,7 +326,7 @@ public final class RdfSerializerSession extends WriterSerializerSession {
 
 		ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType();
 
-		ArrayList<Map.Entry<Object,Object>> l = new ArrayList<Map.Entry<Object,Object>>(m.entrySet());
+		ArrayList<Map.Entry<Object,Object>> l = new ArrayList<>(m.entrySet());
 		Collections.reverse(l);
 		for (Map.Entry<Object,Object> me : l) {
 			Object value = me.getValue();
@@ -389,7 +389,7 @@ public final class RdfSerializerSession extends WriterSerializerSession {
 
 	private RDFList serializeToList(Collection c, ClassMeta<?> type) throws Exception {
 		ClassMeta<?> elementType = type.getElementType();
-		List<RDFNode> l = new ArrayList<RDFNode>(c.size());
+		List<RDFNode> l = new ArrayList<>(c.size());
 		for (Object e : c) {
 			l.add(serializeAnything(e, false, elementType, null, null, null));
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.core.prefs b/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.core.prefs
index 8bd7d89..fb1af7a 100644
--- a/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,10 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -7,9 +13,105 @@ org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.ui.prefs b/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-core/juneau-marshall/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/TODO.txt
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/TODO.txt b/juneau-core/juneau-marshall/TODO.txt
new file mode 100644
index 0000000..74520e5
--- /dev/null
+++ b/juneau-core/juneau-marshall/TODO.txt
@@ -0,0 +1,14 @@
+***************************************************************************************************************************
+* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+* distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+* to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
+* with the License.  You may obtain a copy of the License at                                                              *
+*                                                                                                                         *
+*  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+*                                                                                                                         *
+* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+* specific language governing permissions and limitations under the License.                                              *
+***************************************************************************************************************************
+
+Create tests that ensure serializers don't close output but parsers do close input.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 8da93b2..d7aaf79 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -926,7 +926,7 @@ public class BeanContext extends Context {
 	// then we reuse the same Class->ClassMeta cache map.
 	// This significantly reduces the number of times we need to construct ClassMeta objects which can be expensive.
 	private static final ConcurrentHashMap<Integer,Map<Class,ClassMeta>> cmCacheCache
-		= new ConcurrentHashMap<Integer,Map<Class,ClassMeta>>();
+		= new ConcurrentHashMap<>();
 
 	/** Default config.  All default settings. */
 	public static final BeanContext DEFAULT = PropertyStore.create().getContext(BeanContext.class);
@@ -1020,8 +1020,8 @@ public class BeanContext extends Context {
 
 		notBeanClasses = pm.get(BEAN_notBeanClasses, Class[].class, new Class[0]);
 
-		List<String> l1 = new LinkedList<String>();
-		List<String> l2 = new LinkedList<String>();
+		List<String> l1 = new LinkedList<>();
+		List<String> l2 = new LinkedList<>();
 		for (String s : pm.get(BEAN_notBeanPackages, String[].class, new String[0])) {
 			if (s.endsWith(".*"))
 				l2.add(s.substring(0, s.length()-2));
@@ -1031,7 +1031,7 @@ public class BeanContext extends Context {
 		notBeanPackageNames = l1.toArray(new String[l1.size()]);
 		notBeanPackagePrefixes = l2.toArray(new String[l2.size()]);
 
-		LinkedList<BeanFilter> lbf = new LinkedList<BeanFilter>();
+		LinkedList<BeanFilter> lbf = new LinkedList<>();
 		for (Class<?> c : pm.get(BEAN_beanFilters, Class[].class, new Class[0])) {
 			if (isParentClass(BeanFilter.class, c))
 				lbf.add(newInstance(BeanFilter.class, c));
@@ -1042,7 +1042,7 @@ public class BeanContext extends Context {
 		}
 		beanFilters = lbf.toArray(new BeanFilter[0]);
 
-		LinkedList<PojoSwap<?,?>> lpf = new LinkedList<PojoSwap<?,?>>();
+		LinkedList<PojoSwap<?,?>> lpf = new LinkedList<>();
 		for (Class<?> c : pm.get(BEAN_pojoSwaps, Class[].class, new Class[0])) {
 			if (isParentClass(PojoSwap.class, c))
 				lpf.add(newInstance(PojoSwap.class, c));
@@ -1053,7 +1053,7 @@ public class BeanContext extends Context {
 		}
 		pojoSwaps = lpf.toArray(new PojoSwap[0]);
 
-		implClasses = new TreeMap<Class<?>,Class<?>>(new ClassComparator());
+		implClasses = new TreeMap<>(new ClassComparator());
 		Map<Class,Class> m = pm.getMap(BEAN_implClasses, Class.class, Class.class, null);
 		if (m != null)
 			for (Map.Entry<Class,Class> e : m.entrySet())
@@ -1071,7 +1071,7 @@ public class BeanContext extends Context {
 		mediaType = pm.get(BEAN_mediaType, MediaType.class, null);
 
 		if (! cmCacheCache.containsKey(hashCode)) {
-			ConcurrentHashMap<Class,ClassMeta> cm = new ConcurrentHashMap<Class,ClassMeta>();
+			ConcurrentHashMap<Class,ClassMeta> cm = new ConcurrentHashMap<>();
 			cm.putIfAbsent(String.class, new ClassMeta(String.class, this, null, null, findPojoSwaps(String.class), findChildPojoSwaps(String.class)));
 			cm.putIfAbsent(Object.class, new ClassMeta(Object.class, this, null, null, findPojoSwaps(Object.class), findChildPojoSwaps(Object.class)));
 			cmCacheCache.putIfAbsent(hashCode, cm);
@@ -1231,7 +1231,7 @@ public class BeanContext extends Context {
 				// Make sure someone didn't already set it while this thread was blocked.
 				cm = cmCache.get(type);
 				if (cm == null)
-					cm = new ClassMeta<T>(type, this, findImplClass(type), findBeanFilter(type), findPojoSwaps(type), findChildPojoSwaps(type));
+					cm = new ClassMeta<>(type, this, findImplClass(type), findBeanFilter(type), findPojoSwaps(type), findChildPojoSwaps(type));
 			}
 		}
 		if (waitForInit)
@@ -1441,7 +1441,7 @@ public class BeanContext extends Context {
 		if (o instanceof ParameterizedType) {
 			ParameterizedType pt = (ParameterizedType)o;
 			if (! pt.getRawType().equals(Enum.class)) {
-				List<ClassMeta<?>> l = new LinkedList<ClassMeta<?>>();
+				List<ClassMeta<?>> l = new LinkedList<>();
 				for (Type pt2 : pt.getActualTypeArguments()) {
 					if (pt2 instanceof WildcardType || pt2 instanceof TypeVariable)
 						return null;
@@ -1498,7 +1498,7 @@ public class BeanContext extends Context {
 				ClassMeta<?> valueType = resolveType(pParams[1], cm2.getValueType(), cm.getValueType());
 				if (keyType.isObject() && valueType.isObject())
 					return cm2;
-				return new ClassMeta<T>(cm2, keyType, valueType, null);
+				return new ClassMeta<>(cm2, keyType, valueType, null);
 			}
 
 			if (cm2.isCollection()) {
@@ -1508,7 +1508,7 @@ public class BeanContext extends Context {
 				ClassMeta<?> elementType = resolveType(pParams[0], cm2.getElementType(), cm.getElementType());
 				if (elementType.isObject())
 					return cm2;
-				return new ClassMeta<T>(cm2, null, null, elementType);
+				return new ClassMeta<>(cm2, null, null, elementType);
 			}
 
 			return cm2;
@@ -1539,7 +1539,7 @@ public class BeanContext extends Context {
 	private final <T> PojoSwap[] findPojoSwaps(Class<T> c) {
 		// Note:  On first
 		if (c != null) {
-			List<PojoSwap> l = new ArrayList<PojoSwap>();
+			List<PojoSwap> l = new ArrayList<>();
 			for (PojoSwap f : pojoSwaps)
 				if (isParentClass(f.getNormalClass(), c))
 					l.add(f);
@@ -1561,7 +1561,7 @@ public class BeanContext extends Context {
 		for (PojoSwap f : pojoSwaps) {
 			if (isParentClass(c, f.getNormalClass())) {
 				if (l == null)
-					l = new ArrayList<PojoSwap>();
+					l = new ArrayList<>();
 				l.add(f);
 			}
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
index e8a95cb..14e04d8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
@@ -87,7 +87,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
 		this.bean = bean;
 		this.meta = meta;
 		if (meta.constructorArgs.length > 0)
-			propertyCache = new TreeMap<String,Object>();
+			propertyCache = new TreeMap<>();
 		this.beanTypePropertyName = session.getBeanTypePropertyName(meta.classMeta);
 	}
 
@@ -376,7 +376,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
 	public Set<String> keySet() {
 		if (meta.dynaProperty == null)
 			return meta.properties.keySet();
-		Set<String> l = new LinkedHashSet<String>();
+		Set<String> l = new LinkedHashSet<>();
 		for (String p : meta.properties.keySet())
 			if (! "*".equals(p))
 				l.add(p);
@@ -447,7 +447,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
 	public List<BeanPropertyValue> getValues(final boolean ignoreNulls, BeanPropertyValue...prependVals) {
 		Collection<BeanPropertyMeta> properties = getProperties();
 		int capacity = (ignoreNulls && properties.size() > 10) ? 10 : properties.size() + prependVals.length;
-		List<BeanPropertyValue> l = new ArrayList<BeanPropertyValue>(capacity);
+		List<BeanPropertyValue> l = new ArrayList<>(capacity);
 		for (BeanPropertyValue v : prependVals)
 			if (v != null)
 				l.add(v);
@@ -507,7 +507,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
 		// If this bean has a dyna-property, then we need to construct the entire set before returning.
 		// Otherwise, we can create an iterator without a new data structure.
 		if (meta.dynaProperty != null) {
-			Set<Entry<String,Object>> s = new LinkedHashSet<Entry<String,Object>>();
+			Set<Entry<String,Object>> s = new LinkedHashSet<>();
 			for (BeanPropertyMeta pMeta : getProperties()) {
 				if (pMeta.isDyna()) {
 					try {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
index fc50475..3f116eb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
@@ -113,7 +113,7 @@ public class BeanMeta<T> {
 		this.ctx = ctx;
 		this.c = classMeta.getInnerClass();
 
-		Builder<T> b = new Builder<T>(classMeta, ctx, beanFilter, pNames);
+		Builder<T> b = new Builder<>(classMeta, ctx, beanFilter, pNames);
 		this.notABeanReason = b.init(this);
 
 		this.beanFilter = beanFilter;
@@ -138,8 +138,8 @@ public class BeanMeta<T> {
 		BeanFilter beanFilter;
 		String[] pNames;
 		Map<String,BeanPropertyMeta> properties;
-		Map<Method,String> getterProps = new HashMap<Method,String>();
-		Map<Method,String> setterProps = new HashMap<Method,String>();
+		Map<Method,String> getterProps = new HashMap<>();
+		Map<Method,String> setterProps = new HashMap<>();
 		BeanPropertyMeta dynaProperty;
 
 		Map<Class<?>,Class<?>[]> typeVarImpls;
@@ -151,7 +151,7 @@ public class BeanMeta<T> {
 		String dictionaryName, typePropertyName;
 		boolean sortProperties;
 
-		private Builder(ClassMeta<T> classMeta, BeanContext ctx, BeanFilter beanFilter, String[] pNames) {
+		Builder(ClassMeta<T> classMeta, BeanContext ctx, BeanFilter beanFilter, String[] pNames) {
 			this.classMeta = classMeta;
 			this.ctx = ctx;
 			this.beanFilter = beanFilter;
@@ -169,7 +169,7 @@ public class BeanMeta<T> {
 					mVis = ctx.beanMethodVisibility,
 					fVis = ctx.beanFieldVisibility;
 
-				List<Class<?>> bdClasses = new ArrayList<Class<?>>();
+				List<Class<?>> bdClasses = new ArrayList<>();
 				if (beanFilter != null && beanFilter.getBeanDictionary() != null)
 					bdClasses.addAll(Arrays.asList(beanFilter.getBeanDictionary()));
 				Bean bean = classMeta.innerClass.getAnnotation(Bean.class);
@@ -193,7 +193,7 @@ public class BeanMeta<T> {
 				if (stopClass == null)
 					stopClass = Object.class;
 
-				Map<String,BeanPropertyMeta.Builder> normalProps = new LinkedHashMap<String,BeanPropertyMeta.Builder>();
+				Map<String,BeanPropertyMeta.Builder> normalProps = new LinkedHashMap<>();
 
 				/// See if this class matches one the patterns in the exclude-class list.
 				if (ctx.isNotABean(c))
@@ -237,7 +237,7 @@ public class BeanMeta<T> {
 					throw new BeanRuntimeException(c, "Could not set accessibility to true on no-arg constructor");
 
 				// Explicitly defined property names in @Bean annotation.
-				Set<String> fixedBeanProps = new LinkedHashSet<String>();
+				Set<String> fixedBeanProps = new LinkedHashSet<>();
 				String[] includeProperties = ctx.getIncludeProperties(c);
 				String[] excludeProperties = ctx.getExcludeProperties(c);
 
@@ -312,7 +312,7 @@ public class BeanMeta<T> {
 					}
 				}
 
-				typeVarImpls = new HashMap<Class<?>,Class<?>[]>();
+				typeVarImpls = new HashMap<>();
 				findTypeVarImpls(c, typeVarImpls);
 				if (typeVarImpls.isEmpty())
 					typeVarImpls = null;
@@ -383,7 +383,7 @@ public class BeanMeta<T> {
 					// Only include specified properties if BeanFilter.includeKeys is specified.
 					// Note that the order must match includeKeys.
 					} else if (includeKeys != null) {
-						Map<String,BeanPropertyMeta> properties2 = new LinkedHashMap<String,BeanPropertyMeta>();
+						Map<String,BeanPropertyMeta> properties2 = new LinkedHashMap<>();
 						for (String k : includeKeys) {
 							if (properties.containsKey(k))
 								properties2.put(k, properties.get(k));
@@ -397,7 +397,7 @@ public class BeanMeta<T> {
 						properties.remove(ep);
 
 				if (pNames != null) {
-					Map<String,BeanPropertyMeta> properties2 = new LinkedHashMap<String,BeanPropertyMeta>();
+					Map<String,BeanPropertyMeta> properties2 = new LinkedHashMap<>();
 					for (String k : pNames) {
 						if (properties.containsKey(k))
 							properties2.put(k, properties.get(k));
@@ -554,7 +554,7 @@ public class BeanMeta<T> {
 	 * @param pn Use this property namer to determine property names from the method names.
 	 */
 	private static List<BeanMethod> findBeanMethods(Class<?> c, Class<?> stopClass, Visibility v, Set<String> fixedBeanProps, PropertyNamer pn) {
-		List<BeanMethod> l = new LinkedList<BeanMethod>();
+		List<BeanMethod> l = new LinkedList<>();
 
 		for (Class<?> c2 : findClasses(c, stopClass)) {
 			for (Method m : c2.getDeclaredMethods()) {
@@ -619,7 +619,7 @@ public class BeanMeta<T> {
 	}
 
 	private static Collection<Field> findBeanFields(Class<?> c, Class<?> stopClass, Visibility v) {
-		List<Field> l = new LinkedList<Field>();
+		List<Field> l = new LinkedList<>();
 		for (Class<?> c2 : findClasses(c, stopClass)) {
 			for (Field f : c2.getDeclaredFields()) {
 				int m = f.getModifiers();
@@ -636,7 +636,7 @@ public class BeanMeta<T> {
 	}
 
 	private static List<Class<?>> findClasses(Class<?> c, Class<?> stopClass) {
-		LinkedList<Class<?>> l = new LinkedList<Class<?>>();
+		LinkedList<Class<?>> l = new LinkedList<>();
 		findClasses(c, l, stopClass);
 		return l;
 	}
@@ -668,7 +668,7 @@ public class BeanMeta<T> {
 	public Collection<BeanPropertyMeta> getPropertyMetas(final String...pNames) {
 		if (pNames == null)
 			return getPropertyMetas();
-		List<BeanPropertyMeta> l = new ArrayList<BeanPropertyMeta>(pNames.length);
+		List<BeanPropertyMeta> l = new ArrayList<>(pNames.length);
 		for (int i = 0; i < pNames.length; i++)
 			l.add(getPropertyMeta(pNames[i]));
 		return l;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index fe2a88b..d198506 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -116,7 +116,7 @@ public class BeanPropertyMeta {
 
 		boolean validate(BeanContext f, BeanRegistry parentBeanRegistry, Map<Class<?>,Class<?>[]> typeVarImpls) throws Exception {
 
-			List<Class<?>> bdClasses = new ArrayList<Class<?>>();
+			List<Class<?>> bdClasses = new ArrayList<>();
 
 			if (field == null && getter == null)
 				return false;
@@ -841,7 +841,7 @@ public class BeanPropertyMeta {
 			} else /* isArray() */ {
 
 				if (m.arrayPropertyCache == null)
-					m.arrayPropertyCache = new TreeMap<String,List<?>>();
+					m.arrayPropertyCache = new TreeMap<>();
 
 				List l = m.arrayPropertyCache.get(name);
 				if (l == null) {
@@ -952,7 +952,7 @@ public class BeanPropertyMeta {
 	 * @return A list of annotations ordered in child-to-parent order.  Never <jk>null</jk>.
 	 */
 	public <A extends Annotation> List<A> findAnnotations(Class<A> a) {
-		List<A> l = new LinkedList<A>();
+		List<A> l = new LinkedList<>();
 		if (field != null) {
 			addIfNotNull(l, field.getAnnotation(a));
 			appendAnnotations(a, field.getType(), l);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
index 27ac252..4379118 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
@@ -38,7 +38,7 @@ public class BeanProxyInvocationHandler<T> implements InvocationHandler {
 	 */
 	public BeanProxyInvocationHandler(BeanMeta<T> meta) {
 		this.meta = meta;
-		this.beanProps = new HashMap<String, Object>();
+		this.beanProps = new HashMap<>();
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
index fb11738..819b536 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
@@ -48,8 +48,8 @@ public class BeanRegistry {
 
 	BeanRegistry(BeanContext beanContext, BeanRegistry parent, Class<?>...classes) {
 		this.beanContext = beanContext;
-		this.map = new ConcurrentHashMap<String,ClassMeta<?>>();
-		this.reverseMap = new ConcurrentHashMap<Class<?>,String>();
+		this.map = new ConcurrentHashMap<>();
+		this.reverseMap = new ConcurrentHashMap<>();
 		for (Class<?> c : beanContext.beanDictionaryClasses)
 			addClass(c);
 		if (parent != null)

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 4382b38..eabbdee 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -42,7 +42,7 @@ public class BeanSession extends Session {
 	private final TimeZone timeZone;
 	private final MediaType mediaType;
 	private final boolean debug;
-	private Stack<StringBuilder> sbStack = new Stack<StringBuilder>();
+	private Stack<StringBuilder> sbStack = new Stack<>();
 
 	/**
 	 * Create a new session using properties specified in the context.
@@ -777,7 +777,7 @@ public class BeanSession extends Session {
 		BeanMeta m = cm.getBeanMeta();
 		if (m == null)
 			throw new BeanRuntimeException(c, "Class is not a bean.  Reason=''{0}''", cm.getNotABeanReason());
-		return new BeanMap<T>(this, o, m);
+		return new BeanMap<>(this, o, m);
 	}
 
 	/**
@@ -820,7 +820,7 @@ public class BeanSession extends Session {
 		T bean = null;
 		if (m.constructorArgs.length == 0)
 			bean = newBean(outer, c);
-		return new BeanMap<T>(this, bean, m);
+		return new BeanMap<>(this, bean, m);
 	}
 
 	/**
@@ -1091,12 +1091,8 @@ public class BeanSession extends Session {
 	}
 
 	@Override /* Session */
-	public boolean close() throws BeanRuntimeException {
-		if (super.close()) {
-			if (debug && hasWarnings())
-				throw new BeanRuntimeException("Warnings occurred in session: \n" + join(getWarnings(), "\n"));
-			return true;
-		}
-		return false;
+	public void checkForWarnings() {
+		if (debug)
+			super.checkForWarnings();
 	}
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index 32336fb..ee5dd7f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -293,7 +293,7 @@ public final class ClassMeta<T> implements Type {
 	}
 
 	@SuppressWarnings({"unchecked","rawtypes","hiding"})
-	private class ClassMetaBuilder<T> {
+	private final class ClassMetaBuilder<T> {
 		Class<T> innerClass;
 		Class<? extends T> implClass;
 		BeanContext beanContext;
@@ -319,8 +319,8 @@ public final class ClassMeta<T> implements Type {
 			numberConstructorType = null;
 		Object primitiveDefault = null;
 		Map<String,Method>
-			publicMethods = new LinkedHashMap<String,Method>(),
-			remoteableMethods = new LinkedHashMap<String,Method>();
+			publicMethods = new LinkedHashMap<>(),
+			remoteableMethods = new LinkedHashMap<>();
 		ClassMeta<?>
 			keyType = null,
 			valueType = null,
@@ -332,7 +332,7 @@ public final class ClassMeta<T> implements Type {
 			dictionaryName = null;
 		Throwable initException = null;
 		BeanMeta beanMeta = null;
-		List<PojoSwap> pojoSwaps = new ArrayList<PojoSwap>();
+		List<PojoSwap> pojoSwaps = new ArrayList<>();
 		InvocationHandler invocationHandler = null;
 		BeanRegistry beanRegistry = null;
 		PojoSwap<?,?>[] childPojoSwaps;
@@ -340,7 +340,7 @@ public final class ClassMeta<T> implements Type {
 			childSwapMap,
 			childUnswapMap;
 
-		private ClassMetaBuilder(Class<T> innerClass, BeanContext beanContext, Class<? extends T> implClass, BeanFilter beanFilter, PojoSwap<T,?>[] pojoSwaps, PojoSwap<?,?>[] childPojoSwaps) {
+		ClassMetaBuilder(Class<T> innerClass, BeanContext beanContext, Class<? extends T> implClass, BeanFilter beanFilter, PojoSwap<T,?>[] pojoSwaps, PojoSwap<?,?>[] childPojoSwaps) {
 			this.innerClass = innerClass;
 			this.beanContext = beanContext;
 


[2/8] juneau git commit: Update code to reflect changes in Java 7.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/AcceptCharsetResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/AcceptCharsetResource.java b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/AcceptCharsetResource.java
index e3c8275..f1d775f 100644
--- a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/AcceptCharsetResource.java
+++ b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/AcceptCharsetResource.java
@@ -82,9 +82,9 @@ public class AcceptCharsetResource extends RestServlet {
 
 				@Override /* SerializerSession */
 				protected void doSerialize(SerializerPipe out, Object o) throws Exception {
-					Writer w = new OutputStreamWriter(out.getOutputStream());
-					w.append(o.toString()).append('/').append(getStringProperty("characterEncoding"));
-					w.flush();
+					try (Writer w = new OutputStreamWriter(out.getOutputStream())) {
+						w.append(o.toString()).append('/').append(getStringProperty("characterEncoding"));
+					}
 				}
 			};
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.core.prefs b/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.core.prefs
index 8bd7d89..fb1af7a 100644
--- a/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,10 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -7,9 +13,105 @@ org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.ui.prefs b/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-rest/juneau-rest-client/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
index 35e58c6..721ec08 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
@@ -74,7 +74,7 @@ public final class RestCall {
 	private final RestClient client;                       // The client that created this call.
 	private final HttpRequestBase request;                 // The request.
 	private HttpResponse response;                         // The response.
-	private List<RestCallInterceptor> intercepters = new ArrayList<RestCallInterceptor>();               // Used for intercepting and altering requests.
+	private List<RestCallInterceptor> intercepters = new ArrayList<>();               // Used for intercepting and altering requests.
 
 	private boolean isConnected = false;                   // connect() has been called.
 	private boolean allowRedirectsOnPosts;
@@ -1616,13 +1616,13 @@ public final class RestCall {
 		if (cs == null)
 			cs = "UTF-8";
 
-		Reader isr = new InputStreamReader(is, cs);
-
 		if (writers.size() > 0) {
-			StringWriter sw = new StringWriter();
-			writers.add(sw, true);
-			IOPipe.create(isr, writers).byLines(byLines).run();
-			return new StringReader(sw.toString());
+			try (Reader isr = new InputStreamReader(is, cs)) {
+				StringWriter sw = new StringWriter();
+				writers.add(sw, true);
+				IOPipe.create(isr, writers).byLines(byLines).run();
+				return new StringReader(sw.toString());
+			}
 		}
 
 		return new InputStreamReader(is, cs);
@@ -1708,6 +1708,7 @@ public final class RestCall {
 	 * @throws IOException If an exception occurred while streaming was already occurring.
 	 * @throws IllegalStateException If an attempt is made to read the response more than once.
 	 */
+	@SuppressWarnings("resource")
 	public InputStream getInputStream() throws IOException {
 		if (isClosed)
 			throw new IllegalStateException("Method cannot be called.  Response has already been consumed.");
@@ -1722,6 +1723,7 @@ public final class RestCall {
 			ByteArrayInOutStream baios = new ByteArrayInOutStream();
 			outputStreams.add(baios, true);
 			IOPipe.create(is, baios).run();
+			is.close();
 			return baios.getInputStream();
 		}
 		return is;
@@ -1736,10 +1738,8 @@ public final class RestCall {
 	 * @throws IOException If an exception occurred while streaming was already occurring.
 	 */
 	public String getResponseAsString() throws IOException {
-		try {
-			Reader r = getReader();
-			String s = read(r).toString();
-			return s;
+		try (Reader r = getReader()) {
+			return read(r).toString();
 		} catch (IOException e) {
 			isFailed = true;
 			throw e;
@@ -1982,15 +1982,9 @@ public final class RestCall {
 			if (type.getInnerClass().equals(InputStream.class))
 				return (T)getInputStream();
 			Parser p = getParser();
-			T o = null;
-			if (! p.isReaderParser()) {
-				InputStream is = getInputStream();
-				o = ((InputStreamParser)p).parse(is, type);
-			} else {
-				Reader r = getReader();
-				o = ((ReaderParser)p).parse(r, type);
+			try (Closeable in = p.isReaderParser() ? getReader() : getInputStream()) {
+				return p.parse(in, type);
 			}
-			return o;
 		} catch (ParseException e) {
 			isFailed = true;
 			throw e;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index adff21d..8045d02 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -64,7 +64,7 @@ import org.apache.juneau.urlencoding.*;
 @SuppressWarnings("rawtypes")
 public class RestClient extends CoreObject {
 
-	private static final ConcurrentHashMap<Class,PartSerializer> partSerializerCache = new ConcurrentHashMap<Class,PartSerializer>();
+	private static final ConcurrentHashMap<Class,PartSerializer> partSerializerCache = new ConcurrentHashMap<>();
 
 	private final Map<String,String> headers;
 	private final CloseableHttpClient httpClient;
@@ -115,7 +115,7 @@ public class RestClient extends CoreObject {
 		this.urlEncodingSerializer = urlEncodingSerializer;
 		this.partSerializer = partSerializer;
 
-		Map<String,String> h2 = new ConcurrentHashMap<String,String>(headers);
+		Map<String,String> h2 = new ConcurrentHashMap<>(headers);
 
 		this.headers = Collections.unmodifiableMap(h2);
 		this.rootUrl = rootUri;
@@ -124,7 +124,7 @@ public class RestClient extends CoreObject {
 		this.retryInterval = retryInterval;
 		this.debug = debug;
 
-		List<RestCallInterceptor> l = new ArrayList<RestCallInterceptor>(intercepters);
+		List<RestCallInterceptor> l = new ArrayList<>(intercepters);
 		if (debug)
 			l.add(RestCallLogger.DEFAULT);
 
@@ -668,9 +668,8 @@ public class RestClient extends CoreObject {
 
 							if (rmm.getRequestBeanArgs().length > 0) {
 								BeanSession bs = getBeanContext().createSession();
-
 								for (RemoteMethodArg rma : rmm.getRequestBeanArgs()) {
-									BeanMap<?> bm = bs.toBeanMap(args[rma.index]);
+									BeanMap<?> bm = bs.toBeanMap(args[rma.index]); 
 
 									for (BeanPropertyValue bpv : bm.getValues(false)) {
 										BeanPropertyMeta pMeta = bpv.getMeta();

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index 5f41094..61db743 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -67,9 +67,9 @@ public class RestClientBuilder extends CoreObjectBuilder {
 	private Parser parser;
 	private PartSerializer partSerializer;
 
-	private Map<String,String> headers = new TreeMap<String,String>(String.CASE_INSENSITIVE_ORDER);
+	private Map<String,String> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
 
-	private List<RestCallInterceptor> intercepters = new ArrayList<RestCallInterceptor>();
+	private List<RestCallInterceptor> intercepters = new ArrayList<>();
 
 	private String rootUrl;
 	private SSLOpts sslOpts;
@@ -127,6 +127,7 @@ public class RestClientBuilder extends CoreObjectBuilder {
 		super(propertyStore);
 	}
 
+	@SuppressWarnings("resource")
 	@Override /* CoreObjectBuilder */
 	public RestClient build() {
 		try {
@@ -219,6 +220,7 @@ public class RestClientBuilder extends CoreObjectBuilder {
 	 *
 	 * @return The HTTP client builder to use to create the HTTP client.
 	 */
+	@SuppressWarnings("resource")
 	protected HttpClientConnectionManager createConnectionManager() {
 		if (sslOpts != null) {
 			HostnameVerifier hv = null;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java
index c37bb84..09275f5 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequestEntity.java
@@ -18,6 +18,7 @@ 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.*;
 
@@ -44,10 +45,13 @@ public final class RestRequestEntity extends BasicHttpEntity {
 
 	@Override /* BasicHttpEntity */
 	public void writeTo(OutputStream os) throws IOException {
+		os = new NoCloseOutputStream(os);
 		if (output instanceof InputStream) {
-			IOPipe.create(output, os).closeOut().run();
+			IOPipe.create(output, os).run();
 		} else if (output instanceof Reader) {
-			IOPipe.create(output, new OutputStreamWriter(os, UTF8)).closeOut().run();
+			try (OutputStreamWriter osw = new OutputStreamWriter(os, UTF8)) {
+				IOPipe.create(output, osw).run();
+			}
 		} else {
 			try {
 				if (serializer == null) {
@@ -55,15 +59,8 @@ public final class RestRequestEntity extends BasicHttpEntity {
 					os.close();
 				} else {
 					SerializerSession session = serializer.createSession();
-					if (session.isWriterSerializer()) {
-						Writer w = new OutputStreamWriter(os, UTF8);
-						session.serialize(w, output);
-						w.flush();
-						w.close();
-					} else {
-						session.serialize(os, output);
-						os.flush();
-						os.close();
+					try (Closeable c = session.isWriterSerializer() ? new OutputStreamWriter(os, UTF8) : os) {
+						session.serialize(c, output);
 					}
 				}
 			} catch (SerializeException e) {
@@ -80,8 +77,7 @@ public final class RestRequestEntity extends BasicHttpEntity {
 	@Override /* BasicHttpEntity */
 	public InputStream getContent() {
 		if (outputBytes == null) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			try {
+			try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
 				writeTo(baos);
 				outputBytes = baos.toByteArray();
 			} catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.core.prefs b/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.core.prefs
index 8bd7d89..fb1af7a 100644
--- a/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,10 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -7,9 +13,105 @@ org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.ui.prefs b/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-rest/juneau-rest-server-jaxrs/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java b/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
index ecdee93..1847ba0 100644
--- a/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
+++ b/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
@@ -117,15 +117,11 @@ public class BaseProvider implements MessageBodyReader<Object>, MessageBodyWrite
 			TimeZone timeZone = getTimeZone(headers);
 			
 			SerializerSession session = s.createSession(new SerializerSessionArgs(mp, null, locale, timeZone, sm.getMediaType(), null));
+			
+			// Leave this open in case an error occurs.
+			Closeable c = s.isWriterSerializer() ? new OutputStreamWriter(os, UTF8) : os;
+			session.serialize(c, o);
 
-			if (s.isWriterSerializer()) {
-				OutputStreamWriter w = new OutputStreamWriter(os, UTF8);
-				session.serialize(w, o);
-				w.close();  // Leave open if exception occurs.
-			} else {
-				session.serialize(os, o);
-				os.close();  // Leave open if exception occurs.
-			}
 		} catch (SerializeException e) {
 			throw new IOException(e);
 		}
@@ -149,12 +145,8 @@ public class BaseProvider implements MessageBodyReader<Object>, MessageBodyWrite
 			Locale locale = getLocale(headers);
 			TimeZone timeZone = getTimeZone(headers);
 			ParserSession session = p.createSession(new ParserSessionArgs(mp, null, locale, timeZone, pm.getMediaType(), null));
-			try {
-				Object in2 = session.isReaderParser() ? new InputStreamReader(in, UTF8) : in;
-				return session.parse(in2, p.getBeanContext().getClassMeta(gType));
-			} finally {
-				session.close();
-			}
+			Object in2 = session.isReaderParser() ? new InputStreamReader(in, UTF8) : in;
+			return session.parse(in2, p.getBeanContext().getClassMeta(gType));
 		} catch (ParseException e) {
 			throw new IOException(e);
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.core.prefs b/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.core.prefs
index 8bd7d89..fb1af7a 100644
--- a/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.core.prefs
+++ b/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,10 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -7,9 +13,105 @@ org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.ui.prefs b/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.ui.prefs
index 9966070..2fb9b4a 100644
--- a/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.ui.prefs
+++ b/juneau-rest/juneau-rest-server/.settings/org.eclipse.jdt.ui.prefs
@@ -60,3 +60,9 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 formatter_profile=_juneau-formatter-rules
 formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=1
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// ***************************************************************************************************************************\n// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *\n// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *\n// * to you under the Apache License, V
 ersion 2.0 (the "License"); you may not use this file except in compliance            *\n// * with the License.  You may obtain a copy of the License at                                                              * \n// *                                                                                                                         *\n// *  http\://www.apache.org/licenses/LICENSE-2.0                                                                             *\n// *                                                                                                                         *\n// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *\n// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *\n// * specific language governing permissions and limitations under the License.                                              *\n// *******
 ********************************************************************************************************************</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overr
 iding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * TODO\n * \n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" descripti
 on\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in c
 reated method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="false" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">this.${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java
index 093f5d5..04c3a54 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java
@@ -161,7 +161,7 @@ class CallMethod implements Comparable<CallMethod>  {
 				HtmlDoc hd = m.htmldoc();
 				hdb.process(hd);
 
-				widgets = new HashMap<String,Widget>(context.getWidgets());
+				widgets = new HashMap<>(context.getWidgets());
 				for (Class<? extends Widget> wc : hd.widgets()) {
 					Widget w = ClassUtils.newInstance(Widget.class, wc);
 					widgets.put(w.getName(), w);
@@ -209,7 +209,7 @@ class CallMethod implements Comparable<CallMethod>  {
 				for (int i = 0; i < guards.length; i++)
 					guards[i] = newInstance(RestGuard.class, m.guards()[i]);
 
-				List<RestMatcher> optionalMatchers = new LinkedList<RestMatcher>(), requiredMatchers = new LinkedList<RestMatcher>();
+				List<RestMatcher> optionalMatchers = new LinkedList<>(), requiredMatchers = new LinkedList<>();
 				for (int i = 0; i < m.matchers().length; i++) {
 					Class<? extends RestMatcher> c = m.matchers()[i];
 					RestMatcher matcher = null;
@@ -241,7 +241,7 @@ class CallMethod implements Comparable<CallMethod>  {
 					for (String p1 : m.flags())
 						sgb.property(p1, true);
 					if (m.bpi().length > 0) {
-						Map<String,String> bpiMap = new LinkedHashMap<String,String>();
+						Map<String,String> bpiMap = new LinkedHashMap<>();
 						for (String s : m.bpi()) {
 							for (String s2 : split(s, ';')) {
 								int i = s2.indexOf(':');
@@ -254,7 +254,7 @@ class CallMethod implements Comparable<CallMethod>  {
 						sgb.includeProperties(bpiMap);
 					}
 					if (m.bpx().length > 0) {
-						Map<String,String> bpxMap = new LinkedHashMap<String,String>();
+						Map<String,String> bpxMap = new LinkedHashMap<>();
 						for (String s : m.bpx()) {
 							for (String s2 : split(s, ';')) {
 								int i = s2.indexOf(':');
@@ -319,7 +319,7 @@ class CallMethod implements Comparable<CallMethod>  {
 					encoders = g.build();
 				}
 
-				defaultRequestHeaders = new TreeMap<String,String>(String.CASE_INSENSITIVE_ORDER);
+				defaultRequestHeaders = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
 				for (String s : m.defaultRequestHeaders()) {
 					String[] h = RestUtils.parseKeyValuePair(s);
 					if (h == null)
@@ -328,7 +328,7 @@ class CallMethod implements Comparable<CallMethod>  {
 					defaultRequestHeaders.put(h[0], h[1]);
 				}
 
-				defaultQuery = new LinkedHashMap<String,String>();
+				defaultQuery = new LinkedHashMap<>();
 				for (String s : m.defaultQuery()) {
 					String[] h = RestUtils.parseKeyValuePair(s);
 					if (h == null)
@@ -337,7 +337,7 @@ class CallMethod implements Comparable<CallMethod>  {
 					defaultQuery.put(h[0], h[1]);
 				}
 
-				defaultFormData = new LinkedHashMap<String,String>();
+				defaultFormData = new LinkedHashMap<>();
 				for (String s : m.defaultFormData()) {
 					String[] h = RestUtils.parseKeyValuePair(s);
 					if (h == null)
@@ -535,7 +535,7 @@ class CallMethod implements Comparable<CallMethod>  {
 
 		VarResolverSession vr = req.getVarResolverSession();
 		JsonParser jp = JsonParser.DEFAULT;
-		Map<String,ParameterInfo> m = new TreeMap<String,ParameterInfo>();
+		Map<String,ParameterInfo> m = new TreeMap<>();
 
 		// First parse @RestMethod.parameters() annotation.
 		for (org.apache.juneau.rest.annotation.Parameter v : parameters) {
@@ -632,13 +632,12 @@ class CallMethod implements Comparable<CallMethod>  {
 
 		if (m.isEmpty())
 			return null;
-		return new ArrayList<ParameterInfo>(m.values());
+		return new ArrayList<>(m.values());
 	}
 
 	/**
 	 * Returns the localized Swagger response information about this Java method.
 	 */
-	@SuppressWarnings("unchecked")
 	private Map<Integer,ResponseInfo> getResponses(RestRequest req) throws ParseException {
 		Operation o = getSwaggerOperationFromFile(req);
 		if (o != null && o.getResponses() != null)
@@ -646,8 +645,8 @@ class CallMethod implements Comparable<CallMethod>  {
 
 		VarResolverSession vr = req.getVarResolverSession();
 		JsonParser jp = JsonParser.DEFAULT;
-		Map<Integer,ResponseInfo> m = new TreeMap<Integer,ResponseInfo>();
-		Map<String,HeaderInfo> m2 = new TreeMap<String,HeaderInfo>();
+		Map<Integer,ResponseInfo> m = new TreeMap<>();
+		Map<String,HeaderInfo> m2 = new TreeMap<>();
 
 		// First parse @RestMethod.parameters() annotation.
 		for (Response r : responses) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallRouter.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallRouter.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallRouter.java
index a592f5a..5251d39 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallRouter.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallRouter.java
@@ -37,8 +37,8 @@ class CallRouter {
 	 * Builder class.
 	 */
 	static class Builder {
-		private List<CallMethod> childMethods = new ArrayList<CallMethod>();
-		private Set<String> collisions = new HashSet<String>();
+		private List<CallMethod> childMethods = new ArrayList<>();
+		private Set<String> collisions = new HashSet<>();
 		private String httpMethodName;
 
 		Builder(String httpMethodName) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
index 0c877ba..ac7c7ca 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
@@ -451,7 +451,7 @@ public class HtmlDocBuilder {
 	private static final Pattern INDEXED_LINK_PATTERN = Pattern.compile("(?s)(\\S*)\\[(\\d+)\\]\\:(.*)");
 
 	private static String[] resolveLinks(Object[] value, String[] prev) {
-		List<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<>();
 		for (Object v : value) {
 			String s = StringUtils.toString(v);
 			if ("INHERIT".equals(s)) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
index d12ede2..bad1f9f 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
@@ -79,7 +79,7 @@ public class ReaderResource implements Writable {
 		this.mediaType = mediaType;
 		this.varSession = varSession;
 
-		Map<String,String> m = new LinkedHashMap<String,String>();
+		Map<String,String> m = new LinkedHashMap<>();
 		if (headers != null)
 			for (Map.Entry<String,String> e : headers.entrySet())
 				m.put(e.getKey(), StringUtils.toString(e.getValue()));
@@ -107,10 +107,10 @@ public class ReaderResource implements Writable {
 	 * Builder class for constructing {@link ReaderResource} objects.
 	 */
 	public static class Builder {
-		ArrayList<Object> contents = new ArrayList<Object>();
+		ArrayList<Object> contents = new ArrayList<>();
 		MediaType mediaType;
 		VarResolverSession varResolver;
-		Map<String,String> headers = new LinkedHashMap<String,String>();
+		Map<String,String> headers = new LinkedHashMap<>();
 
 		/**
 		 * Specifies the resource media type string.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
index 3633331..fcb68ae 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
@@ -230,6 +230,18 @@ public class RequestBody {
 	}
 
 	/**
+	 * Returns the HTTP body content as a simple space-delimited hexadecimal character string.
+	 *
+	 * @return The incoming input from the connection as a plain string.
+	 * @throws IOException If a problem occurred trying to read from the reader.
+	 */
+	public String asSpacedHex() throws IOException {
+		if (body == null)
+			body = readBytes(getInputStream(), 1024);
+		return toSpacedHex(body);
+	}
+
+	/**
 	 * Returns the HTTP body content as a {@link Reader}.
 	 *
 	 * <p>
@@ -272,6 +284,7 @@ public class RequestBody {
 	 * @return The negotiated input stream.
 	 * @throws IOException If any error occurred while trying to get the input stream or wrap it in the GZIP wrapper.
 	 */
+	@SuppressWarnings("resource")
 	public ServletInputStream getInputStream() throws IOException {
 
 		if (body != null)
@@ -358,8 +371,9 @@ public class RequestBody {
 				try {
 					req.getProperties().append("mediaType", mediaType).append("characterEncoding", req.getCharacterEncoding());
 					ParserSession session = p.createSession(new ParserSessionArgs(req.getProperties(), req.getJavaMethod(), locale, timeZone, mediaType, req.getContext().getResource()));
-					Object in = session.isReaderParser() ? getUnbufferedReader() : getInputStream();
-					return session.parse(in, cm);
+					try (Closeable in = session.isReaderParser() ? getUnbufferedReader() : getInputStream()) {
+						return session.parse(in, cm);
+					}
 				} catch (ParseException e) {
 					throw new RestException(SC_BAD_REQUEST,
 						"Could not convert request body content to class type ''{0}'' using parser ''{1}''.",

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCallHandler.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCallHandler.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCallHandler.java
index 5fdb378..7ff6c93 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCallHandler.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCallHandler.java
@@ -307,15 +307,16 @@ public class RestCallHandler {
 		} catch (IllegalStateException e2) {
 			w = new PrintWriter(new OutputStreamWriter(res.getOutputStream(), UTF8));
 		}
-		String httpMessage = RestUtils.getHttpResponseText(status);
-		if (httpMessage != null)
-			w.append("HTTP ").append(String.valueOf(status)).append(": ").append(httpMessage).append("\n\n");
-		if (context != null && context.isRenderResponseStackTraces())
-			e.printStackTrace(w);
-		else
-			w.append(e.getFullStackMessage(true));
-		w.flush();
-		w.close();
+		
+		try (PrintWriter w2 = w) {
+			String httpMessage = RestUtils.getHttpResponseText(status);
+			if (httpMessage != null)
+				w2.append("HTTP ").append(String.valueOf(status)).append(": ").append(httpMessage).append("\n\n");
+			if (context != null && context.isRenderResponseStackTraces())
+				e.printStackTrace(w2);
+			else
+				w2.append(e.getFullStackMessage(true));
+		}
 	}
 
 	/**
@@ -328,7 +329,7 @@ public class RestCallHandler {
 	 * @return The session objects for that request.
 	 */
 	public Map<String,Object> getSessionObjects(RestRequest req) {
-		Map<String,Object> m = new HashMap<String,Object>();
+		Map<String,Object> m = new HashMap<>();
 		m.put(RequestVar.SESSION_req, req);
 		return m;
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java
index 58525fc..04c80f6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java
@@ -92,21 +92,21 @@ public class RestConfig implements ServletConfig {
 	VarResolverBuilder varResolverBuilder;
 
 	List<Class<?>>
-		beanFilters = new ArrayList<Class<?>>(),
-		pojoSwaps = new ArrayList<Class<?>>(),
-		paramResolvers = new ArrayList<Class<?>>();
+		beanFilters = new ArrayList<>(),
+		pojoSwaps = new ArrayList<>(),
+		paramResolvers = new ArrayList<>();
 	Class<? extends SerializerListener> serializerListener;
 	Class<? extends ParserListener> parserListener;
 	SerializerGroupBuilder serializers = new SerializerGroupBuilder();
 	ParserGroupBuilder parsers = new ParserGroupBuilder();
 	EncoderGroupBuilder encoders = new EncoderGroupBuilder().append(IdentityEncoder.INSTANCE);
-	List<Object> converters = new ArrayList<Object>();
-	List<Object> guards = new ArrayList<Object>();
+	List<Object> converters = new ArrayList<>();
+	List<Object> guards = new ArrayList<>();
 	MimetypesFileTypeMap mimeTypes = new ExtendedMimetypesFileTypeMap();
-	Map<String,String> defaultRequestHeaders = new TreeMap<String,String>(String.CASE_INSENSITIVE_ORDER);
-	Map<String,Object> defaultResponseHeaders = new LinkedHashMap<String,Object>();
-	List<Object> responseHandlers = new ArrayList<Object>();
-	List<Object> childResources = new ArrayList<Object>();
+	Map<String,String> defaultRequestHeaders = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+	Map<String,Object> defaultResponseHeaders = new LinkedHashMap<>();
+	List<Object> responseHandlers = new ArrayList<>();
+	List<Object> childResources = new ArrayList<>();
 	List<MediaType> supportedContentTypes, supportedAcceptTypes;
 	List<Object> staticFiles;
 	RestContext parentContext;
@@ -114,7 +114,7 @@ public class RestConfig implements ServletConfig {
 	String clientVersionHeader = "X-Client-Version";
 	String contextPath;
 	HtmlDocBuilder htmlDocBuilder;
-	List<Class<? extends Widget>> widgets = new ArrayList<Class<? extends Widget>>();
+	List<Class<? extends Widget>> widgets = new ArrayList<>();
 
 	Object resourceResolver = RestResourceResolverSimple.class;
 	Object logger = RestLogger.Normal.class;
@@ -272,7 +272,7 @@ public class RestConfig implements ServletConfig {
 	 * Calls all @RestHook(INIT) methods on the specified resource object.
 	 */
 	void init(Object resource) throws ServletException {
-		Map<String,Method> map = new LinkedHashMap<String,Method>();
+		Map<String,Method> map = new LinkedHashMap<>();
 		for (Method m : ClassUtils.getAllMethods(this.resourceClass, true)) {
 			if (m.isAnnotationPresent(RestHook.class) && m.getAnnotation(RestHook.class).value() == HookEvent.INIT) {
 				Visibility.setAccessible(m);
@@ -881,7 +881,7 @@ public class RestConfig implements ServletConfig {
 	 * @return This object (for method chaining).
 	 */
 	public RestConfig addChildResource(String path, Object child) {
-		this.childResources.add(new Pair<String,Object>(path, child));
+		this.childResources.add(new Pair<>(path, child));
 		return this;
 	}
 
@@ -934,7 +934,7 @@ public class RestConfig implements ServletConfig {
 	 * @return This object (for method chaining).
 	 */
 	public RestConfig setSupportedAcceptTypes(String...mediaTypes) {
-		supportedAcceptTypes = new ArrayList<MediaType>();
+		supportedAcceptTypes = new ArrayList<>();
 		for (String mediaType : mediaTypes)
 			supportedAcceptTypes.add(MediaType.forString(mediaType));
 		return this;
@@ -970,7 +970,7 @@ public class RestConfig implements ServletConfig {
 	 * @return This object (for method chaining).
 	 */
 	public RestConfig setSupportedContentTypes(String...mediaTypes) {
-		supportedContentTypes = new ArrayList<MediaType>();
+		supportedContentTypes = new ArrayList<>();
 		for (String mediaType : mediaTypes)
 			supportedContentTypes.add(MediaType.forString(mediaType));
 		return this;
@@ -1013,7 +1013,7 @@ public class RestConfig implements ServletConfig {
 	 */
 	public RestConfig addStaticFiles(Class<?> resourceClass, String staticFilesString) {
 		if (staticFiles == null)
-			staticFiles = new ArrayList<Object>();
+			staticFiles = new ArrayList<>();
 		staticFiles.add(new Pair<Class<?>,Object>(resourceClass, staticFilesString));
 		return this;
 	}


[6/8] juneau git commit: Update code to reflect changes in Java 7.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java
index 7eef2dd..18cf44f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java
@@ -116,13 +116,11 @@ public class ObjectMap extends LinkedHashMap<String,Object> {
 		private static final long serialVersionUID = 1L;
 
 		@Override /* Map */
-		@SuppressWarnings("unchecked")
 		public Set<Map.Entry<String,Object>> entrySet() {
 			return Collections.EMPTY_MAP.entrySet();
 		}
 
 		@Override /* Map */
-		@SuppressWarnings("unchecked")
 		public Set<String> keySet() {
 			return Collections.EMPTY_MAP.keySet();
 		}
@@ -1426,7 +1424,7 @@ public class ObjectMap extends LinkedHashMap<String,Object> {
 	public Set<String> keySet() {
 		if (inner == null)
 			return super.keySet();
-		LinkedHashSet<String> s = new LinkedHashSet<String>();
+		LinkedHashSet<String> s = new LinkedHashSet<>();
 		s.addAll(inner.keySet());
 		s.addAll(super.keySet());
 		return s;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
index cb1d4fb..8a11bf6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
@@ -254,17 +254,17 @@ public final class PropertyStore {
 	// All configuration properties in this object.
 	// Keys are property prefixes (e.g. 'BeanContext').
 	// Values are maps containing properties for that specific prefix.
-	private Map<String,PropertyMap> properties = new ConcurrentSkipListMap<String,PropertyMap>();
+	private Map<String,PropertyMap> properties = new ConcurrentSkipListMap<>();
 
 	// Context cache.
 	// This gets cleared every time any properties change on this object.
-	private final Map<Class<? extends Context>,Context> contexts = new ConcurrentHashMap<Class<? extends Context>,Context>();
+	private final Map<Class<? extends Context>,Context> contexts = new ConcurrentHashMap<>();
 
 	// Global Context cache.
 	// Property stores that are the 'same' will use the same maps from this cache.
 	// 'same' means the context properties are all the same when converted to strings.
 	private static final ConcurrentHashMap<Integer, ConcurrentHashMap<Class<? extends Context>,Context>>
-		globalContextCache = new ConcurrentHashMap<Integer, ConcurrentHashMap<Class<? extends Context>,Context>>();
+		globalContextCache = new ConcurrentHashMap<>();
 
 	private ReadWriteLock lock = new ReentrantReadWriteLock();
 	private Lock rl = lock.readLock(), wl = lock.writeLock();
@@ -929,7 +929,7 @@ public final class PropertyStore {
 	 */
 	public class PropertyMap {
 
-		private final Map<String,Property> map = new ConcurrentSkipListMap<String,Property>();
+		private final Map<String,Property> map = new ConcurrentSkipListMap<>();
 		private volatile int hashCode = 0;
 		private final ReadWriteLock lock = new ReentrantReadWriteLock();
 		private final Lock rl = lock.readLock(), wl = lock.writeLock();
@@ -1038,7 +1038,7 @@ public final class PropertyStore {
 		public Map<String,Object> asMap() {
 			rl.lock();
 			try {
-				Map<String,Object> m = new LinkedHashMap<String,Object>();
+				Map<String,Object> m = new LinkedHashMap<>();
 				for (Property p : map.values())
 					m.put(p.name, p.value);
 				return m;
@@ -1223,7 +1223,7 @@ public final class PropertyStore {
 		private final Set<Object> value;
 
 		private SetProperty(String name, Object value) {
-			super(name, "SET", new ConcurrentSkipListSet<Object>(PROPERTY_COMPARATOR));
+			super(name, "SET", new ConcurrentSkipListSet<>(PROPERTY_COMPARATOR));
 			this.value = (Set<Object>)value();
 			add(value);
 		}
@@ -1283,7 +1283,7 @@ public final class PropertyStore {
 		private final LinkedList<Object> value;
 
 		private ListProperty(String name, Object value) {
-			super(name, "LIST", new LinkedList<Object>());
+			super(name, "LIST", new LinkedList<>());
 			this.value = (LinkedList<Object>)value();
 			add(value);
 		}
@@ -1298,7 +1298,7 @@ public final class PropertyStore {
 				for (ListIterator<Object> i = l.listIterator(l.size()); i.hasPrevious();)
 					add(i.previous());
 			} else if (val instanceof Collection) {
-				List<Object> l = new ArrayList<Object>((Collection<Object>)val);
+				List<Object> l = new ArrayList<>((Collection<Object>)val);
 				for (ListIterator<Object> i = l.listIterator(l.size()); i.hasPrevious();)
 					add(i.previous());
 			} else {
@@ -1345,7 +1345,7 @@ public final class PropertyStore {
 
 		MapProperty(String name, Object value) {
 			// ConcurrentSkipListMap doesn't support Map.Entry.remove(), so use TreeMap instead.
-			super(name, "MAP", Collections.synchronizedMap(new TreeMap<Object,Object>(PROPERTY_COMPARATOR)));
+			super(name, "MAP", Collections.synchronizedMap(new TreeMap<>(PROPERTY_COMPARATOR)));
 			this.value = (Map<Object,Object>)value();
 			put(value);
 		}
@@ -1413,7 +1413,7 @@ public final class PropertyStore {
 	 * Compares two objects for "string"-equality.
 	 * Basically mean both objects are equal if they're the same when converted to strings.
 	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
+	@SuppressWarnings({ "rawtypes" })
 	private static boolean same(Object o1, Object o2) {
 		if (o1 == o2)
 			return true;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
index 056604c..061bd9d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
@@ -38,7 +38,6 @@ public abstract class Session {
 	private final ObjectMap properties;
 	private final Context ctx;
 	private Map<String,Object> cache;
-	private boolean closed;
 	private List<String> warnings;                 // Any warnings encountered.
 
 
@@ -138,7 +137,7 @@ public abstract class Session {
 	 */
 	public final void addToCache(String key, Object val) {
 		if (cache == null)
-			cache = new TreeMap<String,Object>();
+			cache = new TreeMap<>();
 		cache.put(key, val);
 	}
 
@@ -155,7 +154,7 @@ public abstract class Session {
 	public final void addToCache(Map<String,Object> cacheObjects) {
 		if (cacheObjects != null) {
 			if (cache == null)
-				cache = new TreeMap<String,Object>();
+				cache = new TreeMap<>();
 			cache.putAll(cacheObjects);
 		}
 	}
@@ -180,7 +179,7 @@ public abstract class Session {
 	 */
 	public final void addWarning(String msg, Object... args) {
 		if (warnings == null)
-			warnings = new LinkedList<String>();
+			warnings = new LinkedList<>();
 		getLogger().warning(msg, args);
 		warnings.add((warnings.size() + 1) + ": " + format(msg, args));
 	}
@@ -235,23 +234,12 @@ public abstract class Session {
 			return e.getLocalizedMessage();
 		}
 	}
-
+	
 	/**
-	 * Perform cleanup on this context object if necessary.
-	 *
-	 * @return <jk>true</jk> if this method wasn't previously called.
-	 * @throws BeanRuntimeException If called more than once, or in debug mode and warnings occurred.
+	 * Throws a {@link BeanRuntimeException} if any warnings occurred in this session.
 	 */
-	public boolean close() throws BeanRuntimeException {
-		if (closed)
-			return false;
-		closed = true;
-		return true;
-	}
-
-	@Override /* Object */
-	protected void finalize() throws Throwable {
-//		if (! closed)
-//			throw new RuntimeException("Session was not closed.");
+	public void checkForWarnings() {
+		if (! warnings.isEmpty())
+			throw new BeanRuntimeException("Warnings occurred in session: \n" + join(getWarnings(), "\n"));		
 	}
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Visibility.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Visibility.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Visibility.java
index 5a03b5b..c9e1e47 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Visibility.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Visibility.java
@@ -131,7 +131,7 @@ public enum Visibility {
 	 * 	The same method if visibility requirements met, or <jk>null</jk> if visibility requirement not
 	 * 	met or call to {@link Method#setAccessible(boolean)} throws a security exception.
 	 */
-	public <T> Method transform(Method x) {
+	public Method transform(Method x) {
 		if (x == null)
 			return null;
 		if (isVisible(x))

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserSession.java
index 7f2324f..3037fed 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserSession.java
@@ -39,11 +39,11 @@ public final class CsvParserSession extends ReaderParserSession {
 
 	@Override /* ParserSession */
 	protected <T> T doParse(ParserPipe pipe, ClassMeta<T> type) throws Exception {
-		ParserReader r = pipe.getParserReader();
-		if (r == null)
-			return null;
-		T o = parseAnything(type, r, getOuter(), null);
-		return o;
+		try (ParserReader r = pipe.getParserReader()) {
+			if (r == null)
+				return null;
+			return parseAnything(type, r, getOuter(), null);
+		}
 	}
 
 	@SuppressWarnings({"static-method"})

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
index 0a1478b..d97ac35 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
@@ -44,36 +44,37 @@ public final class CsvSerializerSession extends WriterSerializerSession {
 	}
 
 	@Override /* SerializerSession */
-	protected final void doSerialize(SerializerPipe out, Object o) throws Exception {
-		Writer w = out.getWriter();
-		ClassMeta<?> cm = getClassMetaForObject(o);
-		Collection<?> l = null;
-		if (cm.isArray()) {
-			l = Arrays.asList((Object[])o);
-		} else {
-			l = (Collection<?>)o;
-		}
-		// TODO - Doesn't support DynaBeans.
-		if (l.size() > 0) {
-			ClassMeta<?> entryType = getClassMetaForObject(l.iterator().next());
-			if (entryType.isBean()) {
-				BeanMeta<?> bm = entryType.getBeanMeta();
-				int i = 0;
-				for (BeanPropertyMeta pm : bm.getPropertyMetas()) {
-					if (i++ > 0)
-						w.append(',');
-					append(w, pm.getName());
-				}
-				w.append('\n');
-				for (Object o2 : l) {
-					i = 0;
-					BeanMap<?> bean = toBeanMap(o2);
+	protected final void doSerialize(SerializerPipe pipe, Object o) throws Exception {
+		try (Writer w = pipe.getWriter()) {
+			ClassMeta<?> cm = getClassMetaForObject(o);
+			Collection<?> l = null;
+			if (cm.isArray()) {
+				l = Arrays.asList((Object[])o);
+			} else {
+				l = (Collection<?>)o;
+			}
+			// TODO - Doesn't support DynaBeans.
+			if (l.size() > 0) {
+				ClassMeta<?> entryType = getClassMetaForObject(l.iterator().next());
+				if (entryType.isBean()) {
+					BeanMeta<?> bm = entryType.getBeanMeta();
+					int i = 0;
 					for (BeanPropertyMeta pm : bm.getPropertyMetas()) {
 						if (i++ > 0)
 							w.append(',');
-						append(w, pm.get(bean, pm.getName()));
+						append(w, pm.getName());
 					}
 					w.append('\n');
+					for (Object o2 : l) {
+						i = 0;
+						BeanMap<?> bean = toBeanMap(o2);
+						for (BeanPropertyMeta pm : bm.getPropertyMetas()) {
+							if (i++ > 0)
+								w.append(',');
+							append(w, pm.get(bean, pm.getName()));
+						}
+						w.append('\n');
+					}
 				}
 			}
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
index ec3632a..0c8c448 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
@@ -55,7 +55,7 @@ import org.apache.juneau.http.*;
 public final class EncoderGroup {
 
 	// Maps Accept-Encoding headers to matching encoders.
-	private final ConcurrentHashMap<String,EncoderMatch> cache = new ConcurrentHashMap<String,EncoderMatch>();
+	private final ConcurrentHashMap<String,EncoderMatch> cache = new ConcurrentHashMap<>();
 
 	private final String[] encodings;
 	private final List<String> encodingsList;
@@ -68,10 +68,10 @@ public final class EncoderGroup {
 	 * @param encoders The encoders to add to this group.
 	 */
 	public EncoderGroup(Encoder[] encoders) {
-		this.encoders = Collections.unmodifiableList(new ArrayList<Encoder>(Arrays.asList(encoders)));
+		this.encoders = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(encoders)));
 
-		List<String> lc = new ArrayList<String>();
-		List<Encoder> l = new ArrayList<Encoder>();
+		List<String> lc = new ArrayList<>();
+		List<Encoder> l = new ArrayList<>();
 		for (Encoder e : encoders) {
 			for (String c: e.getCodings()) {
 				lc.add(c);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java
index db54070..6e05a5a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroupBuilder.java
@@ -28,7 +28,7 @@ public class EncoderGroupBuilder {
 	 * Create an empty encoder group builder.
 	 */
 	public EncoderGroupBuilder() {
-		this.encoders = new ArrayList<Encoder>();
+		this.encoders = new ArrayList<>();
 	}
 
 	/**
@@ -37,7 +37,7 @@ public class EncoderGroupBuilder {
 	 * @param copyFrom The encoder group that we're copying settings and encoders from.
 	 */
 	public EncoderGroupBuilder(EncoderGroup copyFrom) {
-		this.encoders = new ArrayList<Encoder>();
+		this.encoders = new ArrayList<>();
 		addReverse(encoders, copyFrom.getEncoders());
 	}
 
@@ -95,7 +95,7 @@ public class EncoderGroupBuilder {
 	 * @return A new {@link EncoderGroup} object.
 	 */
 	public EncoderGroup build() {
-		List<Encoder> l = new ArrayList<Encoder>();
+		List<Encoder> l = new ArrayList<>();
 		for (Object e : encoders)
 			l.add(newInstance(Encoder.class, e));
 		Collections.reverse(l);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
index 2bceb2a..4ffc57e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
@@ -52,7 +52,7 @@ public final class HtmlBeanPropertyMeta extends BeanPropertyMetaExtended {
 		this.anchorText = b.anchorText;
 	}
 
-	private static class Builder {
+	static final class Builder {
 		boolean asXml, noTables, noTableHeaders, asPlainText;
 		Class<? extends HtmlRender> render = HtmlRender.class;
 		String link, anchorText;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
index 3405483..f107823 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
@@ -223,17 +223,18 @@ public class HtmlDocSerializerSession extends HtmlStrippedDocSerializerSession {
 	@Override /* Serializer */
 	protected void doSerialize(SerializerPipe out, Object o) throws Exception {
 
-		HtmlWriter w = getHtmlWriter(out);
-		HtmlDocTemplate t = getTemplate();
-
-		w.sTag("html").nl(0);
-		w.sTag(1, "head").nl(1);
-		t.head(this, w, o);
-		w.eTag(1, "head").nl(1);
-		w.sTag(1, "body").nl(1);
-		t.body(this, w, o);
-		w.eTag(1, "body").nl(1);
-		w.eTag("html").nl(0);
+		try (HtmlWriter w = getHtmlWriter(out)) {
+			HtmlDocTemplate t = getTemplate();
+
+			w.sTag("html").nl(0);
+			w.sTag(1, "head").nl(1);
+			t.head(this, w, o);
+			w.eTag(1, "head").nl(1);
+			w.sTag(1, "body").nl(1);
+			t.body(this, w, o);
+			w.eTag(1, "body").nl(1);
+			w.eTag("html").nl(0);
+		}
 	}
 
 	/**
@@ -245,11 +246,8 @@ public class HtmlDocSerializerSession extends HtmlStrippedDocSerializerSession {
 	 * @throws Exception
 	 */
 	public void parentSerialize(Object out, Object o) throws Exception {
-		SerializerPipe pipe = createPipe(out);
-		try {
+		try (SerializerPipe pipe = createPipe(out)) {
 			super.doSerialize(pipe, o);
-		} finally  {
-			pipe.close();
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
index 975cae4..2bde2c2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
@@ -36,7 +36,7 @@ import org.apache.juneau.xml.*;
 @SuppressWarnings({ "unchecked", "rawtypes" })
 public final class HtmlParserSession extends XmlParserSession {
 
-	private static final Set<String> whitespaceElements = new HashSet<String>(
+	private static final Set<String> whitespaceElements = new HashSet<>(
 		Arrays.asList(
 			new String[]{"br","bs","sp","ff"}
 		)
@@ -312,7 +312,7 @@ public final class HtmlParserSession extends XmlParserSession {
 	}
 
 	private static Map<String,String> getAttributes(XmlReader r) {
-		Map<String,String> m = new TreeMap<String,String>() ;
+		Map<String,String> m = new TreeMap<>() ;
 		for (int i = 0; i < r.getAttributeCount(); i++)
 			m.put(r.getAttributeLocalName(i), r.getAttributeValue(i));
 		return m;
@@ -375,7 +375,7 @@ public final class HtmlParserSession extends XmlParserSession {
 			ClassMeta<E> type, BeanPropertyMeta pMeta) throws Exception {
 
 		HtmlTag tag = nextTag(r, TR);
-		List<String> keys = new ArrayList<String>();
+		List<String> keys = new ArrayList<>();
 		while (true) {
 			tag = nextTag(r, TH, xTR);
 			if (tag == xTR)

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializerSession.java
index 847b40d..a530f12 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializerSession.java
@@ -116,7 +116,7 @@ public class HtmlSchemaDocSerializerSession extends HtmlDocSerializerSession {
 
 	@SuppressWarnings({ "unchecked", "rawtypes" })
 	private static List<String> getEnumStrings(Class<? extends Enum> c) {
-		List<String> l = new LinkedList<String>();
+		List<String> l = new LinkedList<>();
 		for (Object e : EnumSet.allOf(c))
 			l.add(e.toString());
 		return l;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
index 1cb1a6e..bd15915 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
@@ -384,7 +384,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 		CR_NORMAL     // Normal content.  Use whitespace.
 	}
 
-	@SuppressWarnings({ "rawtypes", "unchecked" })
+	@SuppressWarnings({ "rawtypes" })
 	private void serializeMap(HtmlWriter out, Map m, ClassMeta<?> sType,
 			ClassMeta<?> eKeyType, ClassMeta<?> eValueType, String typeName, BeanPropertyMeta ppMeta) throws Exception {
 
@@ -694,7 +694,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 			return null;
 		c = sort(c);
 		Object[] th;
-		Set<ClassMeta> prevC = new HashSet<ClassMeta>();
+		Set<ClassMeta> prevC = new HashSet<>();
 		Object o1 = null;
 		for (Object o : c)
 			if (o != null) {
@@ -723,7 +723,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 		if (canIgnoreValue(cm, null, o1))
 			return null;
 		if (cm.isMap() && ! cm.isBeanMap()) {
-			Set<Object> set = new LinkedHashSet<Object>();
+			Set<Object> set = new LinkedHashSet<>();
 			for (Object o : c) {
 				if (! canIgnoreValue(cm, null, o)) {
 					if (! cm.isInstance(o))
@@ -737,7 +737,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 			}
 			th = set.toArray(new Object[set.size()]);
 		} else {
-			Map<String,Boolean> m = new LinkedHashMap<String,Boolean>();
+			Map<String,Boolean> m = new LinkedHashMap<>();
 			for (Object o : c) {
 				if (! canIgnoreValue(cm, null, o)) {
 					if (! cm.isInstance(o))
@@ -761,7 +761,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 		boolean isSortable = true;
 		for (Object o : th)
 			isSortable &= (o instanceof Comparable);
-		Set<Object> s = (isSortable ? new TreeSet<Object>() : new LinkedHashSet<Object>());
+		Set<Object> s = (isSortable ? new TreeSet<>() : new LinkedHashSet<>());
 		s.addAll(Arrays.asList(th));
 
 		for (Object o : c) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java
index 7589781..31749e1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java
@@ -40,12 +40,13 @@ public class HtmlStrippedDocSerializerSession extends HtmlSerializerSession {
 
 	@Override /* SerializerSession */
 	protected void doSerialize(SerializerPipe out, Object o) throws Exception {
-		HtmlWriter w = getHtmlWriter(out);
-		if (o == null
-			|| (o instanceof Collection && ((Collection<?>)o).size() == 0)
-			|| (o.getClass().isArray() && Array.getLength(o) == 0))
-			w.sTag(1, "p").append("No Results").eTag("p").nl(1);
-		else
-			super.doSerialize(out, o);
+		try (HtmlWriter w = getHtmlWriter(out)) {
+			if (o == null
+				|| (o instanceof Collection && ((Collection<?>)o).size() == 0)
+				|| (o.getClass().isArray() && Array.getLength(o) == 0))
+				w.sTag(1, "p").append("No Results").eTag("p").nl(1);
+			else
+				super.doSerialize(out, o);
+		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlTag.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlTag.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlTag.java
index e841931..663bf64 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlTag.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlTag.java
@@ -60,7 +60,7 @@ enum HtmlTag {
 	xP(-18, "</p>"),
 	xHTML(-19, "</html>");
 
-	private Map<Integer,HtmlTag> cache = new HashMap<Integer,HtmlTag>();
+	private Map<Integer,HtmlTag> cache = new HashMap<>();
 
 	int id;
 	String label;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Accept.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Accept.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Accept.java
index 5b5c64f..f095f97 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Accept.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Accept.java
@@ -148,7 +148,7 @@ import org.apache.juneau.internal.*;
  */
 public final class Accept {
 
-	private static final Cache<String,Accept> cache = new Cache<String,Accept>(NOCACHE, CACHE_MAX_SIZE);
+	private static final Cache<String,Accept> cache = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
 	 * Returns a parsed <code>Accept</code> header.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptCharset.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptCharset.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptCharset.java
index c17ec3f..39e6c79 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptCharset.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptCharset.java
@@ -76,7 +76,7 @@ import org.apache.juneau.internal.*;
  */
 public final class AcceptCharset extends HeaderRangeArray {
 
-	private static final Cache<String,AcceptCharset> cache = new Cache<String,AcceptCharset>(NOCACHE, CACHE_MAX_SIZE);
+	private static final Cache<String,AcceptCharset> cache = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
 	 * Returns a parsed <code>Accept-Charset</code> header.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptEncoding.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptEncoding.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptEncoding.java
index c0cf845..9a8a516 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptEncoding.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptEncoding.java
@@ -96,7 +96,7 @@ import org.apache.juneau.internal.*;
  */
 public final class AcceptEncoding extends HeaderRangeArray {
 
-	private static final Cache<String,AcceptEncoding> cache = new Cache<String,AcceptEncoding>(NOCACHE, CACHE_MAX_SIZE);
+	private static final Cache<String,AcceptEncoding> cache = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
 	 * Returns a parsed <code>Accept-Encoding</code> header.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptLanguage.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptLanguage.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptLanguage.java
index cd187d9..c855445 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptLanguage.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptLanguage.java
@@ -108,7 +108,7 @@ import org.apache.juneau.internal.*;
  */
 public final class AcceptLanguage extends HeaderRangeArray {
 
-	private static final Cache<String,AcceptLanguage> cache = new Cache<String,AcceptLanguage>(NOCACHE, CACHE_MAX_SIZE);
+	private static final Cache<String,AcceptLanguage> cache = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
 	 * Returns a parsed <code>Accept-Language</code> header.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/ContentType.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/ContentType.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/ContentType.java
index 5bcc4ed..062a199 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/ContentType.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/ContentType.java
@@ -53,7 +53,7 @@ import org.apache.juneau.internal.*;
  */
 public class ContentType extends MediaType {
 
-	private static Cache<String,ContentType> cache = new Cache<String,ContentType>(NOCACHE, CACHE_MAX_SIZE);
+	private static Cache<String,ContentType> cache = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
 	 * Returns a parsed <code>Content-Type</code> header.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpMethod.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpMethod.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpMethod.java
index 58313a2..285a698 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpMethod.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpMethod.java
@@ -55,7 +55,7 @@ public enum HttpMethod {
 	/** A non-standard value. */
 	OTHER;
 
-	private static final Map<String,HttpMethod> cache = new TreeMap<String,HttpMethod>(String.CASE_INSENSITIVE_ORDER);
+	private static final Map<String,HttpMethod> cache = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
 	static {
 		cache.put("OPTIONS", OPTIONS);
 		cache.put("GET", GET);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java
index 6f9c3db..4745c64 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java
@@ -36,11 +36,10 @@ import org.apache.juneau.json.*;
  * </ul>
  */
 @BeanIgnore
-@SuppressWarnings("unchecked")
 public class MediaType implements Comparable<MediaType> {
 
 	private static final boolean nocache = Boolean.getBoolean("juneau.nocache");
-	private static final ConcurrentHashMap<String,MediaType> cache = new ConcurrentHashMap<String,MediaType>();
+	private static final ConcurrentHashMap<String,MediaType> cache = new ConcurrentHashMap<>();
 
 	/** Reusable predefined media type */
 	@SuppressWarnings("javadoc")
@@ -135,20 +134,20 @@ public class MediaType implements Comparable<MediaType> {
 		this.hasSubtypeMeta = b.hasSubtypeMeta;
 	}
 
-	private static class Builder {
+	static class Builder {
 		private String mediaType, type, subType;
 		private String[] subTypes, subTypesSorted;
 		private Map<String,Set<String>> parameters;
 		private boolean hasSubtypeMeta;
 
-		private Builder(String mt) {
+		Builder(String mt) {
 			mt = mt.trim();
 
 			int i = mt.indexOf(';');
 			if (i == -1) {
 				this.parameters = Collections.EMPTY_MAP;
 			} else {
-				this.parameters = new TreeMap<String,Set<String>>();
+				this.parameters = new TreeMap<>();
 				String[] tokens = mt.substring(i+1).split(";");
 
 				for (int j = 0; j < tokens.length; j++) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaTypeRange.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaTypeRange.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaTypeRange.java
index 0cdfd99..8d1ce59 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaTypeRange.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaTypeRange.java
@@ -78,7 +78,7 @@ public final class MediaTypeRange implements Comparable<MediaTypeRange>  {
 		if (value.indexOf(',') == -1)
 			return new MediaTypeRange[]{new MediaTypeRange(value)};
 
-		Set<MediaTypeRange> ranges = new TreeSet<MediaTypeRange>();
+		Set<MediaTypeRange> ranges = new TreeSet<>();
 
 		for (String r : StringUtils.split(value)) {
 			r = r.trim();
@@ -92,7 +92,6 @@ public final class MediaTypeRange implements Comparable<MediaTypeRange>  {
 		return ranges.toArray(new MediaTypeRange[ranges.size()]);
 	}
 
-	@SuppressWarnings("unchecked")
 	private MediaTypeRange(String token) {
 		Builder b = new Builder(token);
 		this.mediaType = b.mediaType;
@@ -100,12 +99,12 @@ public final class MediaTypeRange implements Comparable<MediaTypeRange>  {
 		this.extensions = (b.extensions == null ? Collections.EMPTY_MAP : Collections.unmodifiableMap(b.extensions));
 	}
 
-	private static class Builder {
-		private MediaType mediaType;
-		private Float qValue = 1f;
-		private Map<String,Set<String>> extensions;
+	static class Builder {
+		MediaType mediaType;
+		Float qValue = 1f;
+		Map<String,Set<String>> extensions;
 
-		private Builder(String token) {
+		Builder(String token) {
 
 			token = token.trim();
 
@@ -129,7 +128,7 @@ public final class MediaTypeRange implements Comparable<MediaTypeRange>  {
 						String k = parm[0], v = parm[1];
 						if (isInExtensions) {
 							if (extensions == null)
-								extensions = new TreeMap<String,Set<String>>();
+								extensions = new TreeMap<>();
 							if (! extensions.containsKey(k))
 								extensions.put(k, new TreeSet<String>());
 							extensions.get(k).add(v);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/StringRange.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/StringRange.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/StringRange.java
index 593a02d..9ae0bea 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/StringRange.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/StringRange.java
@@ -85,7 +85,7 @@ public final class StringRange implements Comparable<StringRange>  {
 		if (value.indexOf(',') == -1)
 			return new StringRange[]{new StringRange(value)};
 
-		Set<StringRange> ranges = new TreeSet<StringRange>();
+		Set<StringRange> ranges = new TreeSet<>();
 
 		for (String r : StringUtils.split(value)) {
 			r = r.trim();
@@ -99,7 +99,6 @@ public final class StringRange implements Comparable<StringRange>  {
 		return ranges.toArray(new StringRange[ranges.size()]);
 	}
 
-	@SuppressWarnings("unchecked")
 	private StringRange(String token) {
 		Builder b = new Builder(token);
 		this.type = b.type;
@@ -136,7 +135,7 @@ public final class StringRange implements Comparable<StringRange>  {
 						String k = parm[0], v = parm[1];
 						if (isInExtensions) {
 							if (extensions == null)
-								extensions = new TreeMap<String,Set<String>>();
+								extensions = new TreeMap<>();
 							if (! extensions.containsKey(k))
 								extensions.put(k, new TreeSet<String>());
 							extensions.get(k).add(v);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/TE.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/TE.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/TE.java
index 282f891..e944191 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/TE.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/TE.java
@@ -93,7 +93,7 @@ import org.apache.juneau.internal.*;
  */
 public final class TE extends HeaderRangeArray {
 
-	private static final Cache<String,TE> cache = new Cache<String,TE>(NOCACHE, CACHE_MAX_SIZE);
+	private static final Cache<String,TE> cache = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
 	 * Returns a parsed <code>Accept</code> header.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java
index 9221bff..7181ed2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java
@@ -231,7 +231,7 @@ public final class ArrayUtils {
 	 */
 	@SuppressWarnings("unchecked")
 	public static <T> List<T> toList(Object array, Class<T> componentType) {
-		List<T> l = new ArrayList<T>(Array.getLength(array));
+		List<T> l = new ArrayList<>(Array.getLength(array));
 		for (int i = 0; i < Array.getLength(array); i++)
 			l.add((T)Array.get(array, i));
 		return l;
@@ -370,7 +370,7 @@ public final class ArrayUtils {
 	 * @return A new list of objects copied from the iterable.
 	 */
 	public static List<?> toList(Iterable<?> i) {
-		List<Object> l = new ArrayList<Object>();
+		List<Object> l = new ArrayList<>();
 		Iterator<?> i2 = i.iterator();
 		while (i2.hasNext())
 			l.add(i2.next());

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ByteArrayCache.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ByteArrayCache.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ByteArrayCache.java
index 0dde655..dc90746 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ByteArrayCache.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ByteArrayCache.java
@@ -29,7 +29,7 @@ public class ByteArrayCache {
 	 */
 	public static final ByteArrayCache DEFAULT = new ByteArrayCache();
 
-	private final ConcurrentHashMap<ByteArray,byte[]> cache = new ConcurrentHashMap<ByteArray,byte[]>();
+	private final ConcurrentHashMap<ByteArray,byte[]> cache = new ConcurrentHashMap<>();
 
 	/**
 	 * Add the specified byte array to this cache.
@@ -73,11 +73,11 @@ public class ByteArrayCache {
 		return cache.size();
 	}
 
-	private static class ByteArray {
-		private int hashCode;
-		private byte[] contents;
+	static final class ByteArray {
+		int hashCode;
+		byte[] contents;
 
-		private ByteArray(byte[] contents) {
+		ByteArray(byte[] contents) {
 			this.contents = contents;
 			int multiplier = 1;
 			for (int i = 0; i < contents.length; i++) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Cache.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Cache.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Cache.java
index e811bf5..65bf6f6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Cache.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Cache.java
@@ -38,7 +38,7 @@ public class Cache<K,V> {
 		this.nocache = disabled;
 		this.maxSize = maxSize;
 		if (! nocache)
-			cache = new ConcurrentHashMap<K,V>();
+			cache = new ConcurrentHashMap<>();
 		else
 			cache = null;
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
index a42684c..8ee3811 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
@@ -200,8 +200,8 @@ public final class ClassUtils {
 	}
 
 	private final static Map<Class<?>, Class<?>>
-		pmap1 = new HashMap<Class<?>, Class<?>>(),
-		pmap2 = new HashMap<Class<?>, Class<?>>();
+		pmap1 = new HashMap<>(),
+		pmap2 = new HashMap<>();
 	static {
 		pmap1.put(boolean.class, Boolean.class);
 		pmap1.put(byte.class, Byte.class);
@@ -450,7 +450,7 @@ public final class ClassUtils {
 	public static Class<?> resolveParameterType(Class<?> c, int index, Class<?> oc) {
 
 		// We need to make up a mapping of type names.
-		Map<Type,Type> typeMap = new HashMap<Type,Type>();
+		Map<Type,Type> typeMap = new HashMap<>();
 		while (c != oc.getSuperclass()) {
 			extractTypes(typeMap, oc);
 			oc = oc.getSuperclass();
@@ -477,12 +477,12 @@ public final class ClassUtils {
 
 		} else if (actualType instanceof TypeVariable) {
 			TypeVariable<?> typeVariable = (TypeVariable<?>)actualType;
-			List<Class<?>> nestedOuterTypes = new LinkedList<Class<?>>();
+			List<Class<?>> nestedOuterTypes = new LinkedList<>();
 			for (Class<?> ec = oc.getEnclosingClass(); ec != null; ec = ec.getEnclosingClass()) {
 				try {
 					Class<?> outerClass = oc.getClass();
 					nestedOuterTypes.add(outerClass);
-					Map<Type,Type> outerTypeMap = new HashMap<Type,Type>();
+					Map<Type,Type> outerTypeMap = new HashMap<>();
 					extractTypes(outerTypeMap, outerClass);
 					for (Map.Entry<Type,Type> entry : outerTypeMap.entrySet()) {
 						Type key = entry.getKey(), value = entry.getValue();
@@ -820,7 +820,7 @@ public final class ClassUtils {
 				if (con != null)
 					return (T)con.newInstance(args);
 				if (outer != null) {
-					Object[] args2 = new AList<Object>().append(outer).appendAll(args).toArray();
+					Object[] args2 = new AList<>().append(outer).appendAll(args).toArray();
 					con = findPublicConstructor(c3, args2);
 					if (con != null)
 						return (T)con.newInstance(args2);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java
index ce3bccf..1e76346 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java
@@ -28,12 +28,12 @@ public class CollectionUtils {
 	public static <K,V> LinkedHashMap<K,V> reverse(Map<K,V> in) {
 		if (in == null)
 			return null;
-		LinkedHashMap<K,V> m = new LinkedHashMap<K,V>();
+		LinkedHashMap<K,V> m = new LinkedHashMap<>();
 
 		// Note:  Entry objects are reusable in an entry set, so we simply can't
 		// create a reversed iteration of that set.
-		List<K> keys = new ArrayList<K>(in.keySet());
-		List<V> values = new ArrayList<V>(in.values());
+		List<K> keys = new ArrayList<>(in.keySet());
+		List<V> values = new ArrayList<>(in.values());
 		for (int i = in.size()-1; i >= 0; i--)
 			m.put(keys.get(i), values.get(i));
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DateUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DateUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DateUtils.java
index bf07973..63ad26a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DateUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DateUtils.java
@@ -185,8 +185,8 @@ public final class DateUtils {
 			final SoftReference<Map<String,SimpleDateFormat>> ref = THREADLOCAL_FORMATS.get();
 			Map<String,SimpleDateFormat> formats = ref.get();
 			if (formats == null) {
-				formats = new HashMap<String,SimpleDateFormat>();
-				THREADLOCAL_FORMATS.set(new SoftReference<Map<String,SimpleDateFormat>>(formats));
+				formats = new HashMap<>();
+				THREADLOCAL_FORMATS.set(new SoftReference<>(formats));
 			}
 			SimpleDateFormat format = formats.get(pattern);
 			if (format == null) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
index 69563f3..8b41f09 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
@@ -92,7 +92,7 @@ public class DelegateBeanMap<T> extends BeanMap<T> {
 
 	@Override /* BeanMap */
 	public BeanMeta<T> getMeta() {
-		return new BeanMetaFiltered<T>(super.getMeta(), keys);
+		return new BeanMetaFiltered<>(super.getMeta(), keys);
 	}
 
 	@Override /* Map */
@@ -113,7 +113,7 @@ public class DelegateBeanMap<T> extends BeanMap<T> {
 
 	@Override /* BeanMap */
 	public Collection<BeanPropertyMeta> getProperties() {
-		List<BeanPropertyMeta> l = new ArrayList<BeanPropertyMeta>(keys.size());
+		List<BeanPropertyMeta> l = new ArrayList<>(keys.size());
 		for (final String key : keys) {
 			BeanPropertyMeta p = this.getPropertyMeta(key);
 			if (overrideValues.containsKey(key))
@@ -125,10 +125,10 @@ public class DelegateBeanMap<T> extends BeanMap<T> {
 		return l;
 	}
 
-	private class BeanMapEntryOverride extends BeanMapEntry {
+	final class BeanMapEntryOverride extends BeanMapEntry {
 		Object value;
 
-		private BeanMapEntryOverride(BeanMap<?> bm, BeanPropertyMeta bpm, Object value) {
+		BeanMapEntryOverride(BeanMap<?> bm, BeanPropertyMeta bpm, Object value) {
 			super(bm, bpm, bpm.getName());
 			this.value = value;
 		}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FileReaderBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FileReaderBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FileReaderBuilder.java
new file mode 100644
index 0000000..0664645
--- /dev/null
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FileReaderBuilder.java
@@ -0,0 +1,116 @@
+// ***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                                                              *
+// *                                                                                                                         *
+// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+// *                                                                                                                         *
+// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the License.                                              *
+// ***************************************************************************************************************************
+package org.apache.juneau.internal;
+
+import java.io.*;
+import java.nio.charset.*;
+
+/**
+ * Utility class for creating {@link FileReader} objects.
+ */
+public final class FileReaderBuilder {
+	
+	private File file;
+	private Charset cs = Charset.defaultCharset();
+	private boolean allowNoFile;
+	
+	/**
+	 * Creates a new builder.
+	 * 
+	 * @return A new builder.
+	 */
+	public static FileReaderBuilder create() {
+		return new FileReaderBuilder();
+	}
+	
+	/**
+	 * Creates a new builder initialized with the specified file.
+	 * 
+	 * @param file The file being written to.
+	 * @return A new builder.
+	 */
+	public static FileReaderBuilder create(File file) {
+		return new FileReaderBuilder().file(file);
+	}
+	
+	/**
+	 * Sets the file being written from.
+	 * 
+	 * @param file The file being written from.
+	 * @return This object (for method chaining).
+	 */
+	public FileReaderBuilder file(File file) {
+		this.file = file;
+		return this;
+	}
+	
+	/**
+	 * Sets the path of the file being written from.
+	 * 
+	 * @param path The path of the file being written from.
+	 * @return This object (for method chaining).
+	 */
+	public FileReaderBuilder file(String path) {
+		this.file = new File(path);
+		return this;
+	}
+	
+	/**
+	 * Sets the character encoding of the file.
+	 * 
+	 * @param cs 
+	 * 	The character encoding.
+	 * 	The default is {@link Charset#defaultCharset()}.  
+	 * @return This object (for method chaining).
+	 */
+	public FileReaderBuilder charset(Charset cs) {
+		this.cs = cs;
+		return this;
+	}
+	
+	/**
+	 * Sets the character encoding of the file.
+	 * 
+	 * @param cs 
+	 * 	The character encoding.
+	 * 	The default is {@link Charset#defaultCharset()}.  
+	 * @return This object (for method chaining).
+	 */
+	public FileReaderBuilder charset(String cs) {
+		this.cs = Charset.forName(cs);
+		return this;
+	}
+	
+	/**
+	 * If called and the file is <jk>null</jk> or non-existent, then the {@link #build()} command will return an empty
+	 * reader instead of a {@link FileNotFoundException}.
+	 * 
+	 * @return This object (for method chaining).
+	 */
+	public FileReaderBuilder allowNoFile() {
+		this.allowNoFile = true;
+		return this;
+	}
+	
+	/**
+	 * Creates a new File reader.
+	 * 
+	 * @return A new File reader. 
+	 * @throws FileNotFoundException If file could not be found.
+	 */
+	public Reader build() throws FileNotFoundException {
+		if (allowNoFile && (file == null || ! file.exists()))
+			return new StringReader("");
+		return new InputStreamReader(new FileInputStream(file), cs);
+	}
+}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FileWriterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FileWriterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FileWriterBuilder.java
new file mode 100644
index 0000000..dfb4f6d
--- /dev/null
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FileWriterBuilder.java
@@ -0,0 +1,123 @@
+// ***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                                                              *
+// *                                                                                                                         *
+// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+// *                                                                                                                         *
+// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the License.                                              *
+// ***************************************************************************************************************************
+package org.apache.juneau.internal;
+
+import java.io.*;
+import java.nio.charset.*;
+
+/**
+ * Utility class for creating {@link FileWriter} objects.
+ */
+public final class FileWriterBuilder {
+	
+	private File file;
+	private Charset cs = Charset.defaultCharset();
+	private boolean append;
+	
+	/**
+	 * Creates a new builder.
+	 * 
+	 * @return A new builder.
+	 */
+	public static FileWriterBuilder create() {
+		return new FileWriterBuilder();
+	}
+	
+	/**
+	 * Creates a new builder initialized with the specified file.
+	 * 
+	 * @param file The file being written to.
+	 * @return A new builder.
+	 */
+	public static FileWriterBuilder create(File file) {
+		return new FileWriterBuilder().file(file);
+	}
+
+	/**
+	 * Creates a new builder initialized with the specified file path.
+	 * 
+	 * @param path The file path being written to.
+	 * @return A new builder.
+	 */
+	public static FileWriterBuilder create(String path) {
+		return new FileWriterBuilder().file(path);
+	}
+	
+	/**
+	 * Sets the file being written to.
+	 * 
+	 * @param file The file being written to.
+	 * @return This object (for method chaining).
+	 */
+	public FileWriterBuilder file(File file) {
+		this.file = file;
+		return this;
+	}
+	
+	/**
+	 * Sets the path of the file being written to.
+	 * 
+	 * @param path The path of the file being written to.
+	 * @return This object (for method chaining).
+	 */
+	public FileWriterBuilder file(String path) {
+		this.file = new File(path);
+		return this;
+	}
+	
+	/**
+	 * Sets the character encoding of the file.
+	 * 
+	 * @param cs 
+	 * 	The character encoding.
+	 * 	The default is {@link Charset#defaultCharset()}.  
+	 * @return This object (for method chaining).
+	 */
+	public FileWriterBuilder charset(Charset cs) {
+		this.cs = cs;
+		return this;
+	}
+	
+	/**
+	 * Sets the character encoding of the file.
+	 * 
+	 * @param cs 
+	 * 	The character encoding.
+	 * 	The default is {@link Charset#defaultCharset()}.  
+	 * @return This object (for method chaining).
+	 */
+	public FileWriterBuilder charset(String cs) {
+		this.cs = Charset.forName(cs);
+		return this;
+	}
+	
+	/**
+	 * Sets the append mode on the writer to <jk>true</jk>.
+	 * 
+	 * @return This object (for method chaining).
+	 */
+	public FileWriterBuilder append() {
+		this.append = true;
+		return this;
+	}
+		
+	/**
+	 * Creates a new File writer.
+	 * 
+	 * @return A new File writer. 
+	 * @throws FileNotFoundException If file could not be found.
+	 */
+	public Writer build() throws FileNotFoundException {
+		return new OutputStreamWriter(new FileOutputStream(file, append), cs);
+	}
+}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredMap.java
index 1321112..41b8633 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredMap.java
@@ -43,11 +43,11 @@ public final class FilteredMap<K,V> extends AbstractMap<K,V> implements Delegate
 
 		this.classMeta = classMeta;
 		this.innerMap = innerMap;
-			List<Map.Entry<K,V>> l = new ArrayList<Map.Entry<K,V>>(keys.length);
+			List<Map.Entry<K,V>> l = new ArrayList<>(keys.length);
 			for (K k : keys)
 				if (innerMap.containsKey(k))
 					l.add(createEntry(k));
-			entries = new ListSet<Map.Entry<K,V>>(l);
+			entries = new ListSet<>(l);
 		}
 
 	private Map.Entry<K,V> createEntry(final K key) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/IOUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/IOUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/IOUtils.java
index c8018bf..a17ae60 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/IOUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/IOUtils.java
@@ -49,8 +49,9 @@ public final class IOUtils {
 	public static String read(File in) throws IOException {
 		if (in == null || ! in.exists())
 			return null;
-		Reader r = new InputStreamReader(new FileInputStream(in), Charset.defaultCharset());
-		return read(r, 0, 1024);
+		try (Reader r = FileReaderBuilder.create(in).build()) {
+			return read(r, 0, 1024);
+		}
 	}
 
 	/**
@@ -95,11 +96,8 @@ public final class IOUtils {
 	public static int write(File out, Reader in) throws IOException {
 		assertFieldNotNull(out, "out");
 		assertFieldNotNull(in, "in");
-		Writer w = new OutputStreamWriter(new FileOutputStream(out), Charset.defaultCharset());
-		try {
-			return IOPipe.create(in, w).closeOut().run();
-		} finally {
-			w.close();
+		try (Writer w = FileWriterBuilder.create(out).build()) {
+			return IOPipe.create(in, w).run();
 		}
 	}
 
@@ -114,11 +112,8 @@ public final class IOUtils {
 	public static int write(File out, InputStream in) throws IOException {
 		assertFieldNotNull(out, "out");
 		assertFieldNotNull(in, "in");
-		OutputStream os = new FileOutputStream(out);
-		try {
-			return IOPipe.create(in, os).closeOut().run();
-		} finally {
-			os.close();
+		try (OutputStream os = new FileOutputStream(out)) {
+			return IOPipe.create(in, os).run();
 		}
 	}
 
@@ -197,11 +192,8 @@ public final class IOUtils {
 		if (f == null || ! (f.exists() && f.canRead()))
 			return null;
 
-		FileInputStream fis = new FileInputStream(f);
-		try {
+		try (FileInputStream fis = new FileInputStream(f)) {
 			return readBytes(fis, (int)f.length());
-		} finally {
-			fis.close();
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
index cb2344f..93db12a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
@@ -39,7 +39,7 @@ public class JuneauLogger extends java.util.logging.Logger {
 		.simple()
 		.build();
 
-	private static final ConcurrentHashMap<Class<?>,String> rbMap = new ConcurrentHashMap<Class<?>,String>();
+	private static final ConcurrentHashMap<Class<?>,String> rbMap = new ConcurrentHashMap<>();
 
 	private final ResourceBundle rb;
 	private final java.util.logging.Logger innerLogger;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiIterable.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiIterable.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiIterable.java
index 38852bb..c283076 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiIterable.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiIterable.java
@@ -23,7 +23,7 @@ import java.util.*;
  */
 public class MultiIterable<E> implements Iterable<E> {
 
-	final List<Iterator<E>> iterators = new LinkedList<Iterator<E>>();
+	final List<Iterator<E>> iterators = new LinkedList<>();
 
 	/**
 	 * Constructor.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiSet.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiSet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiSet.java
index 32615a7..e79626f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiSet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/MultiSet.java
@@ -24,7 +24,7 @@ import java.util.*;
 public class MultiSet<E> extends AbstractSet<E> {
 
 	/** Inner collections. */
-	private List<Collection<E>> l = new ArrayList<Collection<E>>();
+	private List<Collection<E>> l = new ArrayList<>();
 
 	/**
 	 * Create a new Set that consists as a coalesced set of the specified collections.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/NoCloseOutputStream.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/NoCloseOutputStream.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/NoCloseOutputStream.java
new file mode 100644
index 0000000..a005e76
--- /dev/null
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/NoCloseOutputStream.java
@@ -0,0 +1,60 @@
+// ***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                                                              *
+// *                                                                                                                         *
+// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+// *                                                                                                                         *
+// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the License.                                              *
+// ***************************************************************************************************************************
+package org.apache.juneau.internal;
+
+import java.io.*;
+
+/**
+ * Wraps an existing {@link OutputStream} where the {@link #close()} method is a no-op.
+ * 
+ * <p>
+ * Useful in cases where you're working with streams that should not be implicitly closed.
+ */
+public final class NoCloseOutputStream extends OutputStream {
+
+	private final OutputStream os;
+	
+	/**
+	 * Constructor.
+	 * 
+	 * @param os The output stream to wrap.
+	 */
+	public NoCloseOutputStream(OutputStream os) {
+		this.os = os;
+	}
+	
+	@Override /* OutputStream */
+	public void write(int b) throws IOException {
+		os.write(b);
+	}
+	
+	@Override /* OutputStream */
+	public void write(byte[] b) throws IOException {
+		os.write(b);
+	}
+	
+	@Override /* OutputStream */
+	public void write(byte[] b, int off, int len) throws IOException {
+		os.write(b, off, len);
+	}
+	
+	@Override /* OutputStream */
+	public void flush() throws IOException {
+		os.flush();
+	}
+	
+	@Override /* OutputStream */
+	public void close() throws IOException {
+		os.flush();
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/NoCloseWriter.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/NoCloseWriter.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/NoCloseWriter.java
new file mode 100644
index 0000000..c088879
--- /dev/null
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/NoCloseWriter.java
@@ -0,0 +1,85 @@
+// ***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                                                              *
+// *                                                                                                                         *
+// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+// *                                                                                                                         *
+// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the License.                                              *
+// ***************************************************************************************************************************
+package org.apache.juneau.internal;
+
+import java.io.*;
+
+/**
+ * Wraps an existing {@link Writer} where the {@link #close()} method is a no-op.
+ * 
+ * <p>
+ * Useful in cases where you're working with streams that should not be implicitly closed.
+ */
+public final class NoCloseWriter extends Writer {
+
+	private final Writer w;
+	
+	/**
+	 * Constructor.
+	 * 
+	 * @param w The writer to wrap.
+	 */
+	public NoCloseWriter(Writer w) {
+		this.w = w;
+	}
+	
+	@Override /* Writer */
+	public Writer append(char c) throws IOException {
+		return w.append(c);
+	}
+	
+	@Override /* Writer */
+	public Writer append(CharSequence csq) throws IOException {
+		return w.append(csq);
+	}
+	
+	@Override /* Writer */
+	public Writer append(CharSequence csq, int start, int end) throws IOException {
+		return w.append(csq, start, end);
+	}
+	
+	@Override /* Writer */
+	public void close() throws IOException {
+		w.flush();
+	}
+	
+	@Override /* Writer */
+	public void flush() throws IOException {
+		w.flush();
+	}
+	
+	@Override /* Writer */
+	public void write(char[] cbuf) throws IOException {
+		w.write(cbuf);
+	}
+	
+	@Override /* Writer */
+	public void write(char[] cbuf, int off, int len) throws IOException {
+		w.write(cbuf, off, len);
+	}
+	
+	@Override /* Writer */
+	public void write(int c) throws IOException {
+		w.write(c);
+	}
+	
+	@Override /* Writer */
+	public void write(String str) throws IOException {
+		w.write(str);
+	}
+	
+	@Override /* Writer */
+	public void write(String str, int off, int len) throws IOException {
+		w.write(str, off, len);
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ReflectionUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ReflectionUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ReflectionUtils.java
index 644ff3e..6d0e80b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ReflectionUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ReflectionUtils.java
@@ -84,7 +84,7 @@ public final class ReflectionUtils {
 	 * @return The found matches, or an empty array if annotation was not found.
 	 */
 	public static <T extends Annotation> List<T> findAnnotations(Class<T> a, Class<?> c) {
-		List<T> l = new LinkedList<T>();
+		List<T> l = new LinkedList<>();
 		appendAnnotations(a, c, l);
 		return l;
 	}
@@ -115,7 +115,7 @@ public final class ReflectionUtils {
 	 * @return The found matches, or an empty map if annotation was not found.
 	 */
 	public static <T extends Annotation> LinkedHashMap<Class<?>,T> findAnnotationsMap(Class<T> a, Class<?> c) {
-		LinkedHashMap<Class<?>,T> m = new LinkedHashMap<Class<?>,T>();
+		LinkedHashMap<Class<?>,T> m = new LinkedHashMap<>();
 		findAnnotationsMap(a, c, m);
 		return m;
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
index 8ad75c8..70109ca 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
@@ -313,10 +313,9 @@ public final class StringUtils {
 	 */
 	public static String getStackTrace(Throwable t) {
 		StringWriter sw = new StringWriter();
-		PrintWriter pw = new PrintWriter(sw);
-		t.printStackTrace(pw);
-		pw.flush();
-		pw.close();
+		try (PrintWriter pw = new PrintWriter(sw)) {
+			t.printStackTrace(pw);
+		}
 		return sw.toString();
 	}
 
@@ -504,7 +503,7 @@ public final class StringUtils {
 		if (s.indexOf(c) == -1)
 			return new String[]{s};
 
-		List<String> l = new LinkedList<String>();
+		List<String> l = new LinkedList<>();
 		char[] sArray = s.toCharArray();
 		int x1 = 0, escapeCount = 0;
 		for (int i = 0; i < sArray.length; i++) {
@@ -534,7 +533,7 @@ public final class StringUtils {
 	public static String[] split(String[] s, char c) {
 		if (s == null)
 			return null;
-		List<String> l = new LinkedList<String>();
+		List<String> l = new LinkedList<>();
 		for (String ss : s) {
 			if (ss == null || ss.indexOf(c) == -1)
 				l.add(ss);
@@ -560,7 +559,6 @@ public final class StringUtils {
 	 * @param trim Trim strings after parsing.
 	 * @return The parsed map.  Never <jk>null</jk>.
 	 */
-	@SuppressWarnings("unchecked")
 	public static Map<String,String> splitMap(String s, char delim, char eq, boolean trim) {
 
 		char[] unEscapeChars = new char[]{'\\', delim, eq};
@@ -570,7 +568,7 @@ public final class StringUtils {
 		if (isEmpty(s))
 			return Collections.EMPTY_MAP;
 
-		Map<String,String> m = new LinkedHashMap<String,String>();
+		Map<String,String> m = new LinkedHashMap<>();
 
 		int
 			S1 = 1,  // Found start of key, looking for equals.
@@ -1212,6 +1210,21 @@ public final class StringUtils {
 		return cs.decode(buff).toString();
 	}
 
+	/**
+	 * Converts a space-deliminted hexadecimal byte stream (e.g. "34 A5 BC") into a UTF-8 encoded string.
+	 *
+	 * @param hex The hexadecimal string.
+	 * @return The UTF-8 string.
+	 */
+	public static String fromSpacedHexToUTF8(String hex) {
+		ByteBuffer buff = ByteBuffer.allocate((hex.length()+1)/3);
+		for (int i = 0; i < hex.length(); i+=3)
+			buff.put((byte)Integer.parseInt(hex.substring(i, i+2), 16));
+		buff.rewind();
+		Charset cs = Charset.forName("UTF-8");
+		return cs.decode(buff).toString();
+	}
+
 	private final static char[] HEX = "0123456789ABCDEF".toCharArray();
 
 	/**
@@ -1222,7 +1235,24 @@ public final class StringUtils {
 	 */
 	public static String toHex(byte[] bytes) {
 		StringBuilder sb = new StringBuilder(bytes.length * 2);
-		for ( int j = 0; j < bytes.length; j++ ) {
+		for (int j = 0; j < bytes.length; j++) {
+			int v = bytes[j] & 0xFF;
+			sb.append(HEX[v >>> 4]).append(HEX[v & 0x0F]);
+		}
+		return sb.toString();
+	}
+
+	/**
+	 * Same as {@link #toHex(byte[])} but puts spaces between the byte strings.
+	 *
+	 * @param bytes The bytes to convert to hexadecimal.
+	 * @return A new string consisting of hexadecimal characters.
+	 */
+	public static String toSpacedHex(byte[] bytes) {
+		StringBuilder sb = new StringBuilder(bytes.length * 3);
+		for (int j = 0; j < bytes.length; j++) {
+			if (j > 0)
+				sb.append(' ');
 			int v = bytes[j] & 0xFF;
 			sb.append(HEX[v >>> 4]).append(HEX[v & 0x0F]);
 		}
@@ -1244,6 +1274,20 @@ public final class StringUtils {
 	}
 
 	/**
+	 * Same as {@link #fromHex(String)} except expects spaces between the byte strings.
+	 *
+	 * @param hex The string to convert to a byte array.
+	 * @return A new byte array.
+	 */
+	public static byte[] fromSpacedHex(String hex) {
+		ByteBuffer buff = ByteBuffer.allocate((hex.length()+1)/3);
+		for (int i = 0; i < hex.length(); i+=3)
+			buff.put((byte)Integer.parseInt(hex.substring(i, i+2), 16));
+		buff.rewind();
+		return buff.array();
+	}
+
+	/**
 	 * Creates a repeated pattern.
 	 *
 	 * @param count The number of times to repeat the pattern.

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeOutputStream.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeOutputStream.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeOutputStream.java
index 96dfe73..0c312ab 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeOutputStream.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeOutputStream.java
@@ -92,7 +92,7 @@ public class TeeOutputStream extends OutputStream {
 	public TeeOutputStream add(String id, OutputStream os, boolean close) {
 		if (id != null) {
 			if (outputStreamMap == null)
-				outputStreamMap = new TreeMap<String,OutputStream>();
+				outputStreamMap = new TreeMap<>();
 			outputStreamMap.put(id, os);
 		}
 		return add(os, close);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeWriter.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeWriter.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeWriter.java
index be48416..d0920e2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeWriter.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TeeWriter.java
@@ -79,7 +79,7 @@ public class TeeWriter extends Writer {
 	public TeeWriter add(String id, Writer w, boolean close) {
 		if (id != null) {
 			if (writerMap == null)
-				writerMap = new TreeMap<String,Writer>();
+				writerMap = new TreeMap<>();
 			writerMap.put(id, w);
 		}
 		return add(w, close);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java
index 5aef62a..83b8c42 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java
@@ -43,9 +43,8 @@ public class JsoSerializerSession extends OutputStreamSerializerSession {
 
 	@Override /* OutputStreamSerializerSession */
 	protected void doSerialize(SerializerPipe out, Object o) throws Exception {
-		ObjectOutputStream oos = new ObjectOutputStream(out.getOutputStream());
-		oos.writeObject(o);
-		oos.flush();
-		oos.close();
+		try (ObjectOutputStream oos = new ObjectOutputStream(out.getOutputStream())) {
+			oos.writeObject(o);
+		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
index 2373ac2..a5b61e7 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
@@ -81,34 +81,37 @@ public final class JsonParserSession extends ReaderParserSession {
 
 	@Override /* ParserSession */
 	protected <T> T doParse(ParserPipe pipe, ClassMeta<T> type) throws Exception {
-		ParserReader r = pipe.getParserReader();
-		if (r == null)
-			return null;
-		T o = parseAnything(type, r, getOuter(), null);
-		validateEnd(r);
-		return o;
+		try (ParserReader r = pipe.getParserReader()) {
+			if (r == null)
+				return null;
+			T o = parseAnything(type, r, getOuter(), null);
+			validateEnd(r);
+			return o;
+		}
 	}
 
 	@Override /* ReaderParserSession */
 	protected <K,V> Map<K,V> doParseIntoMap(ParserPipe pipe, Map<K,V> m, Type keyType, Type valueType) throws Exception {
-		ParserReader r = pipe.getParserReader();
-		m = parseIntoMap2(r, m, (ClassMeta<K>)getClassMeta(keyType), (ClassMeta<V>)getClassMeta(valueType), null);
-		validateEnd(r);
-		return m;
+		try (ParserReader r = pipe.getParserReader()) {
+			m = parseIntoMap2(r, m, (ClassMeta<K>)getClassMeta(keyType), (ClassMeta<V>)getClassMeta(valueType), null);
+			validateEnd(r);
+			return m;
+		}
 	}
 
 	@Override /* ReaderParserSession */
 	protected <E> Collection<E> doParseIntoCollection(ParserPipe pipe, Collection<E> c, Type elementType) throws Exception {
-		ParserReader r = pipe.getParserReader();
-		c = parseIntoCollection2(r, c, getClassMeta(elementType), null);
-		validateEnd(r);
-		return c;
+		try (ParserReader r = pipe.getParserReader()) {
+			c = parseIntoCollection2(r, c, getClassMeta(elementType), null);
+			validateEnd(r);
+			return c;
+		}
 	}
 
 	private <T> T parseAnything(ClassMeta<?> eType, ParserReader r, Object outer, BeanPropertyMeta pMeta) throws Exception {
 
 		if (eType == null)
-			eType = (ClassMeta<T>)object();
+			eType = object();
 		PojoSwap<T,Object> swap = (PojoSwap<T,Object>)eType.getPojoSwap(this);
 		ClassMeta<?> sType = swap == null ? eType : swap.getSwapClassMeta(this);
 		setCurrentClass(sType);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerSession.java
index 9a782ae..9ca88ea 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerSession.java
@@ -120,7 +120,7 @@ public class JsonSchemaSerializerSession extends JsonSerializerSession {
 
 	@SuppressWarnings({ "unchecked", "rawtypes" })
 	private static List<String> getEnumStrings(Class<? extends Enum> c) {
-		List<String> l = new LinkedList<String>();
+		List<String> l = new LinkedList<>();
 		for (Object e : EnumSet.allOf(c))
 			l.add(e.toString());
 		return l;

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
index e559bb2..1361437 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
@@ -45,9 +45,9 @@ public final class MsgPackParserSession extends InputStreamParserSession {
 
 	@Override /* ParserSession */
 	protected <T> T doParse(ParserPipe pipe, ClassMeta<T> type) throws Exception {
-		MsgPackInputStream is = new MsgPackInputStream(pipe);
-		T o = parseAnything(type, is, getOuter(), null);
-		return o;
+		try (MsgPackInputStream is = new MsgPackInputStream(pipe)) {
+			return parseAnything(type, is, getOuter(), null);
+		}
 	}
 
 	/*
@@ -56,7 +56,7 @@ public final class MsgPackParserSession extends InputStreamParserSession {
 	private <T> T parseAnything(ClassMeta<?> eType, MsgPackInputStream is, Object outer, BeanPropertyMeta pMeta) throws Exception {
 
 		if (eType == null)
-			eType = (ClassMeta<T>)object();
+			eType = object();
 		PojoSwap<T,Object> swap = (PojoSwap<T,Object>)eType.getPojoSwap(this);
 		ClassMeta<?> sType = swap == null ? eType : swap.getSwapClassMeta(this);
 		setCurrentClass(sType);

http://git-wip-us.apache.org/repos/asf/juneau/blob/d1258753/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
index 5bf892c..28b0d31 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
@@ -169,7 +169,7 @@ public final class MsgPackSerializerSession extends OutputStreamSerializerSessio
 
 		// The map size may change as we're iterating over it, so
 		// grab a snapshot of the entries in a separate list.
-		List<SimpleMapEntry> entries = new ArrayList<SimpleMapEntry>(m.size());
+		List<SimpleMapEntry> entries = new ArrayList<>(m.size());
 		for (Map.Entry e : (Set<Map.Entry>)m.entrySet())
 			entries.add(new SimpleMapEntry(e.getKey(), e.getValue()));
 
@@ -209,11 +209,11 @@ public final class MsgPackSerializerSession extends OutputStreamSerializerSessio
 		}
 	}
 
-	private static class SimpleMapEntry {
+	final static class SimpleMapEntry {
 		final Object key;
 		final Object value;
 
-		private SimpleMapEntry(Object key, Object value) {
+		SimpleMapEntry(Object key, Object value) {
 			this.key = key;
 			this.value = value;
 		}
@@ -223,7 +223,7 @@ public final class MsgPackSerializerSession extends OutputStreamSerializerSessio
 	private void serializeCollection(MsgPackOutputStream out, Collection c, ClassMeta<?> type) throws Exception {
 
 		ClassMeta<?> elementType = type.getElementType();
-		List<Object> l = new ArrayList<Object>(c.size());
+		List<Object> l = new ArrayList<>(c.size());
 
 		c = sort(c);
 		l.addAll(c);