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/09/02 14:11:26 UTC

[10/51] [partial] incubator-juneau git commit: Add project hierarchies, part 2.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
deleted file mode 100755
index 1a813d9..0000000
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ /dev/null
@@ -1,348 +0,0 @@
-// ***************************************************************************************************************************
-// * 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.microservice.resources;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-import static org.apache.juneau.rest.RestContext.*;
-import static org.apache.juneau.rest.annotation.HookEvent.*;
-import static org.apache.juneau.internal.StringUtils.*;
-
-import java.io.*;
-import java.net.URI;
-import java.nio.charset.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.dto.*;
-import org.apache.juneau.ini.*;
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.rest.*;
-import org.apache.juneau.rest.annotation.*;
-import org.apache.juneau.rest.annotation.Properties;
-import org.apache.juneau.rest.converters.*;
-import org.apache.juneau.transforms.*;
-
-/**
- * REST resource for viewing and accessing log files.
- */
-@RestResource(
-	path="/logs",
-	title="Log files",
-	description="Log files from this service",
-	properties={
-		@Property(name=HTML_uriAnchorText, value=PROPERTY_NAME),
-	},
-	flags={REST_allowMethodParam},
-	pojoSwaps={
-		IteratorSwap.class,       // Allows Iterators and Iterables to be serialized.
-		DateSwap.ISO8601DT.class  // Serialize Date objects as ISO8601 strings.
-	}
-)
-@SuppressWarnings("nls")
-public class LogsResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	private File logDir;
-	private LogEntryFormatter leFormatter;
-
-	private final FileFilter filter = new FileFilter() {
-		@Override /* FileFilter */
-		public boolean accept(File f) {
-			return f.isDirectory() || f.getName().endsWith(".log");
-		}
-	};
-
-	/**
-	 * Initializes the log directory and formatter.
-	 * 
-	 * @param config The resource config.
-	 * @throws Exception
-	 */
-	@RestHook(INIT) 
-	public void init(RestConfig config) throws Exception {
-		ConfigFile cf = config.getConfigFile();
-
-		logDir = new File(cf.getString("Logging/logDir", "."));
-		leFormatter = new LogEntryFormatter(
-			cf.getString("Logging/format", "[{date} {level}] {msg}%n"),
-			cf.getString("Logging/dateFormat", "yyyy.MM.dd hh:mm:ss"),
-			cf.getBoolean("Logging/useStackTraceHashes")
-		);
-	}
-
-	/**
-	 * [GET /*] - Get file details or directory listing.
-	 *
-	 * @param req The HTTP request
-	 * @param res The HTTP response
-	 * @param properties The writable properties for setting the descriptions.
-	 * @param path The log file path.
-	 * @return The log file.
-	 * @throws Exception
-	 */
-	@RestMethod(
-		name="GET",
-		path="/*",
-		swagger=@MethodSwagger(
-			responses={@Response(200),@Response(404)}
-		)
-	)
-	public Object getFileOrDirectory(RestRequest req, RestResponse res, @Properties ObjectMap properties, @PathRemainder String path) throws Exception {
-
-		File f = getFile(path);
-
-		if (f.isDirectory()) {
-			Set<FileResource> l = new TreeSet<FileResource>(new FileResourceComparator());
-			File[] files = f.listFiles(filter);
-			if (files != null) {
-				for (File fc : files) {
-					URI fUrl = new URI("servlet:/" + fc.getName());
-					l.add(new FileResource(fc, fUrl));
-				}
-			}
-			return l;
-		}
-
-		return new FileResource(f, new URI("servlet:/"));
-	}
-
-	/**
-	 * [VIEW /*] - Retrieve the contents of a log file.
-	 *
-	 * @param req The HTTP request.
-	 * @param res The HTTP response.
-	 * @param path The log file path.
-	 * @param properties The writable properties for setting the descriptions.
-	 * @param highlight If <code>true</code>, add color highlighting based on severity.
-	 * @param start Optional start timestamp.  Don't print lines logged before the specified timestamp.  Example:  "&amp;start=2014-01-23 11:25:47".
-	 * @param end Optional end timestamp.  Don't print lines logged after the specified timestamp.  Example:  "&amp;end=2014-01-23 11:25:47".
-	 * @param thread Optional thread name filter.  Only show log entries with the specified thread name.  Example: "&amp;thread=pool-33-thread-1".
-	 * @param loggers Optional logger filter.  Only show log entries if they were produced by one of the specified loggers (simple class name).  Example: "&amp;loggers=(LinkIndexService,LinkIndexRestService)".
-	 * @param severity Optional severity filter.  Only show log entries with the specified severity.  Example: "&amp;severity=(ERROR,WARN)".
-	 * @throws Exception
-	 */
-	@RestMethod(
-		name="VIEW",
-		path="/*",
-		swagger=@MethodSwagger(
-			responses={@Response(200),@Response(404)}
-		)
-	)
-	@SuppressWarnings("nls")
-	public void viewFile(RestRequest req, RestResponse res, @PathRemainder String path, @Properties ObjectMap properties, @Query("highlight") boolean highlight, @Query("start") String start, @Query("end") String end, @Query("thread") String thread, @Query("loggers") String[] loggers, @Query("severity") String[] severity) throws Exception {
-
-		File f = getFile(path);
-		if (f.isDirectory())
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "View not available on directories");
-
-		Date startDate = parseISO8601Date(start), endDate = parseISO8601Date(end);
-
-		if (! highlight) {
-			Object o = getReader(f, startDate, endDate, thread, loggers, severity);
-			res.setContentType("text/plain");
-			if (o instanceof Reader)
-				res.setOutput(o);
-			else {
-				LogParser p = (LogParser)o;
-				Writer w = res.getNegotiatedWriter();
-				try {
-					p.writeTo(w);
-				} finally {
-					w.flush();
-					w.close();
-				}
-			}
-			return;
-		}
-
-		res.setContentType("text/html");
-		PrintWriter w = res.getNegotiatedWriter();
-		try {
-			w.println("<html><body style='font-family:monospace;font-size:8pt;white-space:pre;'>");
-			LogParser lp = getLogParser(f, startDate, endDate, thread, loggers, severity);
-			try {
-				if (! lp.hasNext())
-					w.append("<span style='color:gray'>[EMPTY]</span>");
-				else for (LogParser.Entry le : lp) {
-					char s = le.severity.charAt(0);
-					String color = "black";
-					//SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST
-					if (s == 'I')
-						color = "#006400";
-					else if (s == 'W')
-						color = "#CC8400";
-					else if (s == 'E' || s == 'S')
-						color = "#DD0000";
-					else if (s == 'D' || s == 'F' || s == 'T')
-						color = "#000064";
-					w.append("<span style='color:").append(color).append("'>");
-					le.appendHtml(w).append("</span>");
-				}
-				w.append("</body></html>");
-			} finally {
-				lp.close();
-			}
-		} finally {
-			w.close();
-		}
-	}
-
-	/**
-	 * [VIEW /*] - Retrieve the contents of a log file as parsed entries.
-	 *
-	 * @param req The HTTP request.
-	 * @param path The log file path.
-	 * @param start Optional start timestamp.  Don't print lines logged before the specified timestamp.  Example:  "&amp;start=2014-01-23 11:25:47".
-	 * @param end Optional end timestamp.  Don't print lines logged after the specified timestamp.  Example:  "&amp;end=2014-01-23 11:25:47".
-	 * @param thread Optional thread name filter.  Only show log entries with the specified thread name.  Example: "&amp;thread=pool-33-thread-1".
-	 * @param loggers Optional logger filter.  Only show log entries if they were produced by one of the specified loggers (simple class name).  Example: "&amp;loggers=(LinkIndexService,LinkIndexRestService)".
-	 * @param severity Optional severity filter.  Only show log entries with the specified severity.  Example: "&amp;severity=(ERROR,WARN)".
-	 * @return The parsed contents of the log file.
-	 * @throws Exception
-	 */
-	@RestMethod(
-		name="PARSE",
-		path="/*",
-		converters=Queryable.class,
-		swagger=@MethodSwagger(
-			responses={@Response(200),@Response(404)}
-		)
-	)
-	public LogParser viewParsedEntries(RestRequest req, @PathRemainder String path, @Query("start") String start, @Query("end") String end, @Query("thread") String thread, @Query("loggers") String[] loggers, @Query("severity") String[] severity) throws Exception {
-
-		File f = getFile(path);
-		Date startDate = parseISO8601Date(start), endDate = parseISO8601Date(end);
-
-		if (f.isDirectory())
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "View not available on directories");
-
-		return getLogParser(f, startDate, endDate, thread, loggers, severity);
-	}
-
-	/**
-	 * [DOWNLOAD /*] - Download file.
-	 *
-	 * @param res The HTTP response.
-	 * @param path The log file path.
-	 * @return The contents of the log file.
-	 * @throws Exception
-	 */
-	@RestMethod(
-		name="DOWNLOAD",
-		path="/*",
-		swagger=@MethodSwagger(
-			responses={@Response(200),@Response(404)}
-		)
-	)
-	public Object downloadFile(RestResponse res, @PathRemainder String path) throws Exception {
-
-		File f = getFile(path);
-
-		if (f.isDirectory())
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "Download not available on directories");
-
-		res.setContentType("application/octet-stream");
-		res.setContentLength((int)f.length());
-		return new FileInputStream(f);
-	}
-
-	/**
-	 * [DELETE /*] - Delete a file.
-	 *
-	 * @param path The log file path.
-	 * @return A redirect object to the root.
-	 * @throws Exception
-	 */
-	@RestMethod(
-		name="DELETE",
-		path="/*",
-		swagger=@MethodSwagger(
-			responses={@Response(200),@Response(404)}
-		)
-	)
-	public Object deleteFile(@PathRemainder String path) throws Exception {
-
-		File f = getFile(path);
-
-		if (f.isDirectory())
-			throw new RestException(SC_BAD_REQUEST, "Delete not available on directories.");
-
-		if (f.canWrite())
-			if (! f.delete())
-				throw new RestException(SC_FORBIDDEN, "Could not delete file.");
-
-		return new Redirect(path + "/..");
-	}
-
-	private static BufferedReader getReader(File f) throws IOException {
-		return new BufferedReader(new InputStreamReader(new FileInputStream(f), Charset.defaultCharset()));
-	}
-
-	private File getFile(String path) {
-		if (path != null && path.indexOf("..") != -1)
-			throw new RestException(SC_NOT_FOUND, "File not found.");
-		File f = (path == null ? logDir : new File(logDir.getAbsolutePath() + '/' + path));
-		if (filter.accept(f))
-			return f;
-		throw new RestException(SC_NOT_FOUND, "File not found.");
-	}
-
-	/**
-	 * File bean.
-	 */
-	@SuppressWarnings("javadoc")
-	public static class FileResource {
-		private File f;
-		public String type;
-		public Object name;
-		public Long size;
-		@BeanProperty(swap=DateSwap.DateTimeMedium.class) public Date lastModified;
-		public URI view, highlighted, parsed, download, delete;
-
-		public FileResource(File f, URI uri) throws Exception {
-			this.f = f;
-			this.type = (f.isDirectory() ? "dir" : "file");
-			this.name = f.isDirectory() ? new Link(f.getName(), uri.toString()) : f.getName();
-			this.size = f.isDirectory() ? null : f.length();
-			this.lastModified = new Date(f.lastModified());
-			if (f.canRead() && ! f.isDirectory()) {
-				this.view = new URI(uri + "?method=VIEW");
-				this.highlighted = new URI(uri + "?method=VIEW&highlight=true");
-				this.parsed = new URI(uri + "?method=PARSE");
-				this.download = new URI(uri + "?method=DOWNLOAD");
-				this.delete = new URI(uri + "?method=DELETE");
-			}
-		}
-	}
-
-	private static class FileResourceComparator implements Comparator<FileResource>, Serializable {
-		private static final long serialVersionUID = 1L;
-		@Override /* Comparator */
-		public int compare(FileResource o1, FileResource o2) {
-			int c = o1.type.compareTo(o2.type);
-			return c != 0 ? c : o1.f.getName().compareTo(o2.f.getName());
-		}
-	}
-
-	private Object getReader(File f, final Date start, final Date end, final String thread, final String[] loggers, final String[] severity) throws IOException {
-		if (start == null && end == null && thread == null && loggers == null)
-			return getReader(f);
-		return getLogParser(f, start, end, thread, loggers, severity);
-	}
-
-	private LogParser getLogParser(File f, final Date start, final Date end, final String thread, final String[] loggers, final String[] severity) throws IOException {
-		return new LogParser(leFormatter, f, start, end, thread, loggers, severity);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
deleted file mode 100755
index 4122d6a..0000000
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// ***************************************************************************************************************************
-// * 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.microservice.resources;
-
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.rest.annotation.*;
-
-/**
- * Sample root REST resource.
- */
-@RestResource(
-	path="/",
-	title="Sample Root Resource",
-	description="This is a sample router page",
-	children={ConfigResource.class,LogsResource.class}
-)
-public class SampleRootResource extends ResourceGroup {
-	private static final long serialVersionUID = 1L;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
deleted file mode 100755
index 5ef8d9f..0000000
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
+++ /dev/null
@@ -1,52 +0,0 @@
-// ***************************************************************************************************************************
-// * 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.microservice.resources;
-
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.rest.annotation.*;
-
-/**
- * Provides the capability to shut down this REST microservice through a REST call.
- */
-@RestResource(
-	path="/shutdown",
-	title="Shut down this resource"
-)
-public class ShutdownResource extends Resource {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * [GET /] - Shutdown this resource.
-	 *
-	 * @return The string <js>"OK"</js>.
-	 * @throws Exception
-	 */
-	@RestMethod(name="GET", path="/", description="Show contents of config file.")
-	public String shutdown() throws Exception {
-		new Thread(
-			new Runnable() {
-				@Override /* Runnable */
-				public void run() {
-					try {
-						Thread.sleep(1000);
-					System.exit(0);
-					} catch (InterruptedException e) {
-						e.printStackTrace();
-					}
-				}
-			}
-		).start();
-		return "OK";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/package.html
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/package.html b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/package.html
deleted file mode 100755
index 422f5d2..0000000
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/package.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-/***************************************************************************************************************************
- * 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.
- *
- ***************************************************************************************************************************/
- -->
-<html>
-<head>
-	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-	<style type="text/css">
-		/* For viewing in Page Designer */
-		@IMPORT url("../javadoc.css");
-		body { 
-			margin: 20px; 
-		}	
-	</style>
-</head>
-<body>
-<p>Predefined Microservice Resources</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-microservice/src/test/java/.gitignore
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/test/java/.gitignore b/juneau-microservice/src/test/java/.gitignore
deleted file mode 100644
index 8a0051a..0000000
--- a/juneau-microservice/src/test/java/.gitignore
+++ /dev/null
@@ -1,12 +0,0 @@
- ***************************************************************************************************************************
- * 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.                                              *
- ***************************************************************************************************************************

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-all/.classpath
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-all/.classpath b/juneau-releng/juneau-all/.classpath
new file mode 100644
index 0000000..fd7ad7f
--- /dev/null
+++ b/juneau-releng/juneau-all/.classpath
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-all/.gitignore
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-all/.gitignore b/juneau-releng/juneau-all/.gitignore
new file mode 100644
index 0000000..c7a6c82
--- /dev/null
+++ b/juneau-releng/juneau-all/.gitignore
@@ -0,0 +1,4 @@
+/target/
+/.settings/
+/.DS_Store
+/bin/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-all/.project
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-all/.project b/juneau-releng/juneau-all/.project
new file mode 100644
index 0000000..5ba7b4e
--- /dev/null
+++ b/juneau-releng/juneau-all/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>juneau-all</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-all/pom.xml
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-all/pom.xml b/juneau-releng/juneau-all/pom.xml
new file mode 100644
index 0000000..66f7275
--- /dev/null
+++ b/juneau-releng/juneau-all/pom.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ***************************************************************************************************************************
+ * 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.                                              *
+ ***************************************************************************************************************************
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.juneau</groupId>
+		<artifactId>juneau-releng</artifactId>
+		<version>6.3.2-incubating-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>juneau-all</artifactId>
+	<name>Apache Juneau UberJar</name>
+	<description>Combined contents of Core/Server/Client/Microservice jars</description>
+	<packaging>jar</packaging>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.juneau</groupId>
+			<artifactId>juneau-marshall</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.juneau</groupId>
+			<artifactId>juneau-marshall-rdf</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.juneau</groupId>
+			<artifactId>juneau-rest-server</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.juneau</groupId>
+			<artifactId>juneau-rest-client</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.juneau</groupId>
+			<artifactId>juneau-microservice</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+
+			<!-- Creates our juneau-all jar file that's a combo of our 4 modules. -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-shade-plugin</artifactId>
+				<version>2.4.3</version>
+				<configuration>
+					<createDependencyReducedPom>false</createDependencyReducedPom>
+					<artifactSet>
+						<includes>
+							<include>org.apache.juneau:juneau-core</include>
+							<include>org.apache.juneau:juneau-core-rdf</include>
+							<include>org.apache.juneau:juneau-rest</include>
+							<include>org.apache.juneau:juneau-rest-jaxrs</include>
+							<include>org.apache.juneau:juneau-rest-client</include>
+							<include>org.apache.juneau:juneau-microservice</include>
+						</includes>
+					</artifactSet>
+				</configuration>
+				<executions>
+					<execution>
+						<phase>package</phase>
+						<goals>
+							<goal>shade</goal>
+						</goals>
+					</execution>
+					<execution>
+						<id>source-jar</id>
+						<goals>
+							<goal>shade</goal>
+						</goals>
+						<configuration>
+							<createSourcesJar>true</createSourcesJar>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-all/src/assembly/all.xml
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-all/src/assembly/all.xml b/juneau-releng/juneau-all/src/assembly/all.xml
new file mode 100644
index 0000000..f3fb07e
--- /dev/null
+++ b/juneau-releng/juneau-all/src/assembly/all.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ***************************************************************************************************************************
+ * 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.                                              *
+ ***************************************************************************************************************************
+-->
+<assembly
+	xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
+	<id>all</id>
+	<formats>
+		<format>dir</format>
+		<format>zip</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<dependencySets>
+        <dependencySet>
+            <includes>
+                <include>*</include>
+            </includes>
+            <outputDirectory></outputDirectory>
+        </dependencySet>
+    </dependencySets>
+</assembly>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-distrib/.gitignore
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-distrib/.gitignore b/juneau-releng/juneau-distrib/.gitignore
new file mode 100644
index 0000000..d274d47
--- /dev/null
+++ b/juneau-releng/juneau-distrib/.gitignore
@@ -0,0 +1,3 @@
+/target/
+/.settings/
+/.DS_Store

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-distrib/.project
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-distrib/.project b/juneau-releng/juneau-distrib/.project
new file mode 100644
index 0000000..f35cb6c
--- /dev/null
+++ b/juneau-releng/juneau-distrib/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>juneau-distrib</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-distrib/pom.xml
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-distrib/pom.xml b/juneau-releng/juneau-distrib/pom.xml
new file mode 100644
index 0000000..b5d156b
--- /dev/null
+++ b/juneau-releng/juneau-distrib/pom.xml
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ***************************************************************************************************************************
+ * 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.                                              *
+ ***************************************************************************************************************************
+-->
+<project
+	xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.juneau</groupId>
+		<artifactId>juneau-releng</artifactId>
+		<version>6.3.2-incubating-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>juneau-distrib</artifactId>
+	<packaging>pom</packaging>
+	<name>Apache Juneau Distribution</name>
+	<description>Location to find fully built Juneau distributions.</description>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>copy</id>
+						<phase>package</phase>
+						<goals>
+							<goal>copy</goal>
+						</goals>
+						<configuration>
+							<artifactItems>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-all</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-all</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-marshall</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-marshall</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-marshall-rdf</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-marshall-rdf</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-svl</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-svl</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-config</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-config</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-dto</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-dto</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-rest-server</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-rest-server</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-rest-jaxrs</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-rest-jaxrs</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-rest-client</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-rest-client</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/src/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-microservice</artifactId>
+									<version>${project.version}</version>
+									<type>jar</type>
+									<classifier>sources</classifier>
+								</artifactItem>
+								<artifactItem>
+									<outputDirectory>${project.build.directory}/bin/osgi-bundles</outputDirectory>
+									<groupId>org.apache.juneau</groupId>
+									<artifactId>juneau-microservice</artifactId>
+									<version>${project.version}</version>
+								</artifactItem>
+
+							</artifactItems>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>juneau-assembly</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+						<configuration>
+							<finalName>apache-juneau-${project.version}</finalName>
+							<descriptors>
+								<descriptor>src/assembly/src.xml</descriptor>
+								<descriptor>src/assembly/bin.xml</descriptor>
+							</descriptors>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-distrib/src/assembly/bin.xml
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-distrib/src/assembly/bin.xml b/juneau-releng/juneau-distrib/src/assembly/bin.xml
new file mode 100644
index 0000000..335f164
--- /dev/null
+++ b/juneau-releng/juneau-distrib/src/assembly/bin.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ***************************************************************************************************************************
+ * 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.                                              *
+ ***************************************************************************************************************************
+-->
+<assembly
+	xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
+	<id>bin</id>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<includes>
+				<include>**</include>
+			</includes>
+			<directory>target/bin</directory>
+			<outputDirectory>apache-juneau-${project.version}</outputDirectory>
+		</fileSet>
+		<fileSet>
+			<includes>
+				<include>DISCLAIMER</include>
+				<include>LICENSE</include>
+				<include>NOTICE</include>
+				<include>RELEASE-NOTES.txt</include>
+			</includes>
+			<directory>..</directory>
+			<outputDirectory>apache-juneau-${project.version}</outputDirectory>
+		</fileSet>
+	</fileSets>
+</assembly>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-releng/juneau-distrib/src/assembly/src.xml
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-distrib/src/assembly/src.xml b/juneau-releng/juneau-distrib/src/assembly/src.xml
new file mode 100644
index 0000000..ee6ae99
--- /dev/null
+++ b/juneau-releng/juneau-distrib/src/assembly/src.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ***************************************************************************************************************************
+ * 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.                                              *
+ ***************************************************************************************************************************
+-->
+<assembly
+	xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
+	<id>src</id>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<includes>
+				<include>**</include>
+			</includes>
+			<directory>target/src</directory>
+			<outputDirectory>apache-juneau-${project.version}</outputDirectory>
+		</fileSet>
+		<fileSet>
+			<includes>
+				<include>LICENSE</include>
+				<include>NOTICE</include>
+				<include>RELEASE-NOTES.txt</include>
+			</includes>
+			<directory>..</directory>
+			<outputDirectory>apache-juneau-${project.version}</outputDirectory>
+		</fileSet>
+	</fileSets>
+</assembly>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-rest-client/.classpath
----------------------------------------------------------------------
diff --git a/juneau-rest-client/.classpath b/juneau-rest-client/.classpath
deleted file mode 100644
index 1211fbf..0000000
--- a/juneau-rest-client/.classpath
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="src" output="target/classes" path="src/main/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="src" path="/juneau-core"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-rest-client/.gitignore
----------------------------------------------------------------------
diff --git a/juneau-rest-client/.gitignore b/juneau-rest-client/.gitignore
deleted file mode 100644
index d274d47..0000000
--- a/juneau-rest-client/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/target/
-/.settings/
-/.DS_Store

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-rest-client/.project
----------------------------------------------------------------------
diff --git a/juneau-rest-client/.project b/juneau-rest-client/.project
deleted file mode 100644
index ddd7643..0000000
--- a/juneau-rest-client/.project
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ***************************************************************************************************************************
- * 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.                                              *
- ***************************************************************************************************************************
--->
-<projectDescription>
-	<name>juneau-rest-client</name>
-	<comment>REST client API. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
-	<projects>
-		<project>juneau-core</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.m2e.core.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.m2e.core.maven2Nature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-rest-client/pom.xml
----------------------------------------------------------------------
diff --git a/juneau-rest-client/pom.xml b/juneau-rest-client/pom.xml
deleted file mode 100644
index bc4b2f0..0000000
--- a/juneau-rest-client/pom.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ***************************************************************************************************************************
- * 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.                                              *
- ***************************************************************************************************************************
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	
-	<modelVersion>4.0.0</modelVersion>
-	<artifactId>juneau-rest-client</artifactId>
-	<name>Apache Juneau REST Client API</name>
-	<description>REST client API</description>
-	<packaging>bundle</packaging>
-
-	<parent>
-		<groupId>org.apache.juneau</groupId>
-		<artifactId>juneau</artifactId>
-		<version>6.3.2-incubating-SNAPSHOT</version>
-	</parent>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.juneau</groupId>
-			<artifactId>juneau-core</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.httpcomponents</groupId>
-			<artifactId>httpclient</artifactId>
-		</dependency>
-	</dependencies>
-	
-	<properties>
-		<!-- Skip javadoc generation since we generate them in the aggregate pom -->
-		<maven.javadoc.skip>true</maven.javadoc.skip>
-	</properties>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<version>3.2.0</version>
-				<extensions>true</extensions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-source-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>attach-sources</id>
-						<phase>verify</phase>
-						<goals>
-							<goal>jar-no-fork</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<configuration>
-					<includes>
-						<include>**/*Test.class</include>
-					</includes>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/AllowAllRedirects.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/AllowAllRedirects.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/AllowAllRedirects.java
deleted file mode 100644
index 17e945f..0000000
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/AllowAllRedirects.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// ***************************************************************************************************************************
-// * 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.rest.client;
-
-import org.apache.http.impl.client.*;
-
-/**
- * Redirect strategy that allows for redirects on any request type, not just <code>GET</code> or <code>HEAD</code>.
- *
- * <h5 class='section'>Notes:</h5>
- * <ul>
- * 	<li>
- * 		This class is similar to <code>org.apache.http.impl.client.LaxRedirectStrategy</code>
- * 		in Apache HttpClient 4.2, but also allows for redirects on <code>PUTs</code> and <code>DELETEs</code>.
- * </ul>
- */
-public class AllowAllRedirects extends DefaultRedirectStrategy {
-
-	@Override /* DefaultRedirectStrategy */
-	protected boolean isRedirectable(final String method) {
-		return true;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/DateHeader.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/DateHeader.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/DateHeader.java
deleted file mode 100644
index 98f2412..0000000
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/DateHeader.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// ***************************************************************************************************************************
-// * 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.rest.client;
-
-import java.util.*;
-
-import org.apache.http.client.utils.*;
-import org.apache.http.message.*;
-
-/**
- * Convenience class for setting date headers in RFC2616 format.
- *
- * <p>
- * Equivalent to the following code:
- * <p class='bcode'>
- * 	Header h = <jk>new</jk> Header(name, DateUtils.<jsm>formatDate</jsm>(value));
- * </p>
- */
-public final class DateHeader extends BasicHeader {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Creates a date request property in RFC2616 format.
-	 *
-	 * @param name The header name.
-	 * @param value The header value.
-	 */
-	public DateHeader(String name, Date value) {
-		super(name, DateUtils.formatDate(value));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/HttpMethod.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/HttpMethod.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/HttpMethod.java
deleted file mode 100644
index 9dc0d67..0000000
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/HttpMethod.java
+++ /dev/null
@@ -1,61 +0,0 @@
-// ***************************************************************************************************************************
-// * 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.rest.client;
-
-/**
- * Enumeration of HTTP methods.
- */
-public enum HttpMethod {
-
-	/** HTTP GET */
-	GET(false),
-
-	/** HTTP PUT */
-	PUT(true),
-
-	/** HTTP POST */
-	POST(true),
-
-	/** HTTP DELETE */
-	DELETE(false),
-
-	/** HTTP OPTIONS */
-	OPTIONS(false),
-
-	/** HTTP HEAD */
-	HEAD(false),
-
-	/** HTTP TRACE */
-	TRACE(false),
-
-	/** HTTP CONNECT */
-	CONNECT(false),
-
-	/** HTTP MOVE */
-	MOVE(false);
-
-	private boolean hasContent;
-
-	HttpMethod(boolean hasContent) {
-		this.hasContent = hasContent;
-	}
-
-	/**
-	 * Returns whether this HTTP method normally has content.
-	 *
-	 * @return <jk>true</jk> if this HTTP method normally has content.
-	 */
-	public boolean hasContent() {
-		return hasContent;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/NameValuePairs.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/NameValuePairs.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/NameValuePairs.java
deleted file mode 100644
index e7ab3a1..0000000
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/NameValuePairs.java
+++ /dev/null
@@ -1,85 +0,0 @@
-// ***************************************************************************************************************************
-// * 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.rest.client;
-
-import java.util.*;
-
-import org.apache.http.*;
-import org.apache.http.client.entity.*;
-import org.apache.http.message.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.urlencoding.*;
-
-/**
- * Convenience class for constructing instances of <code>List&lt;NameValuePair&gt;</code> for the
- * {@link UrlEncodedFormEntity} class.
- *
- * <p>
- * Instances of this method can be passed directly to the {@link RestClient#doPost(Object, Object)} method or
- * {@link RestCall#input(Object)} methods to perform URL-encoded form posts.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode'>
- * 	NameValuePairs params = <jk>new</jk> NameValuePairs()
- * 		.append(<js>"j_username"</js>, user)
- * 		.append(<js>"j_password"</js>, pw);
- * 	restClient.doPost(url, params).run();
- * </p>
- */
-public final class NameValuePairs extends LinkedList<NameValuePair> {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Appends the specified pair to the end of this list.
-	 *
-	 * @param pair The pair to append to this list.
-	 * @return This object (for method chaining).
-	 */
-	public NameValuePairs append(NameValuePair pair) {
-		super.add(pair);
-		return this;
-	}
-
-	/**
-	 * Appends the specified name/value pair to the end of this list.
-	 *
-	 * <p>
-	 * The value is simply converted to a string using <code>toString()</code>, or <js>"null"</js> if <jk>null</jk>.
-	 *
-	 * @param name The pair name.
-	 * @param value The pair value.
-	 * @return This object (for method chaining).
-	 */
-	public NameValuePairs append(String name, Object value) {
-		super.add(new BasicNameValuePair(name, StringUtils.toString(value)));
-		return this;
-	}
-
-	/**
-	 * Appends the specified name/value pair to the end of this list.
-	 *
-	 * <p>
-	 * The value is converted to UON notation using the {@link UrlEncodingSerializer} defined on the client.
-	 *
-	 * @param name The pair name.
-	 * @param value The pair value.
-	 * @param partSerializer The serializer to use for converting values to simple strings.
-	 * @return This object (for method chaining).
-	 */
-	public NameValuePairs append(String name, Object value, PartSerializer partSerializer) {
-		super.add(new SerializedNameValuePair(name, value, partSerializer));
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponsePattern.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponsePattern.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponsePattern.java
deleted file mode 100644
index cf491c6..0000000
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponsePattern.java
+++ /dev/null
@@ -1,133 +0,0 @@
-// ***************************************************************************************************************************
-// * 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.rest.client;
-
-import java.io.*;
-import java.util.regex.*;
-
-/**
- * Used to find regular expression matches in REST responses made through {@link RestCall}.
- *
- * <p>
- * Response patterns are applied to REST calls through the {@link RestCall#responsePattern(ResponsePattern)} method.
- *
- * <h5 class='section'>Example:</h5>
- *
- * This example shows how to use a response pattern finder to find and capture patterns for <js>"x=number"</js> and
- * <js>"y=string"</js> from a response body.
- * <p class='bcode'>
- * 	<jk>final</jk> List&lt;Number&gt; xList = <jk>new</jk> ArrayList&lt;Number&gt;();
- * 	<jk>final</jk> List&lt;String&gt; yList = <jk>new</jk> ArrayList&lt;String&gt;();
- *
- * 	restClient.doGet(<jsf>URL</jsf>)
- * 		.addResponsePattern(
- * 			<jk>new</jk> ResponsePattern(<js>"x=(\\d+)"</js>) {
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
- * 					xList.add(Integer.<jsm>parseInt</jsm>(m.group(1)));
- * 				}
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
- * 					<jk>throw new</jk> RestCallException(<js>"No X's found!"</js>);
- * 				}
- * 			}
- * 		)
- * 		.addResponsePattern(
- * 			<jk>new</jk> ResponsePattern(<js>"y=(\\S+)"</js>) {
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
- * 					yList.add(m.group(1));
- * 				}
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
- * 					<jk>throw new</jk> RestCallException(<js>"No Y's found!"</js>);
- * 				}
- * 			}
- * 		)
- * 		.run();
- * </p>
- *
- * <h5 class='notes'>Important Notes:</h5>
- * <ol class='notes'>
- * 	<li>
- * 		Using response patterns does not affect the functionality of any of the other methods
- * 		used to retrieve the response such as {@link RestCall#getResponseAsString()} or {@link RestCall#getResponse(Class)}.
- * 		<br>HOWEVER, if you want to retrieve the entire text of the response from inside the match methods, use
- * 		{@link RestCall#getCapturedResponse()} since this method will not absorb the response for those other methods.
- * 	<li>
- * 		Response pattern methods are NOT executed if a REST exception occurs during the request.
- * 	<li>
- * 		The {@link RestCall#successPattern(String)} and {@link RestCall#failurePattern(String)} methods use instances
- * 		of this class to throw {@link RestCallException RestCallExceptions} when success patterns are not found or
- * 		failure patterns are found.
- * 	<li>
- * 		{@link ResponsePattern} objects are reusable and thread-safe.
- * </ol>
- */
-public abstract class ResponsePattern {
-
-	private Pattern pattern;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param pattern Regular expression pattern.
-	 */
-	public ResponsePattern(String pattern) {
-		this.pattern = Pattern.compile(pattern);
-	}
-
-	void match(RestCall rc) throws RestCallException {
-		try {
-			Matcher m = pattern.matcher(rc.getCapturedResponse());
-			boolean found = false;
-			while (m.find()) {
-				onMatch(rc, m);
-				found = true;
-			}
-			if (! found)
-				onNoMatch(rc);
-		} catch (IOException e) {
-			throw new RestCallException(e);
-		}
-	}
-
-	/**
-	 * Returns the pattern passed in through the constructor.
-	 *
-	 * @return The pattern passed in through the constructor.
-	 */
-	protected String getPattern() {
-		return pattern.pattern();
-	}
-
-	/**
-	 * Instances can override this method to handle when a regular expression pattern matches on the output.
-	 *
-	 * <p>
-	 * This method is called once for every pattern match that occurs in the response text.
-	 *
-	 * @param rc The {@link RestCall} that this pattern finder is being used on.
-	 * @param m The regular expression {@link Matcher}.  Can be used to retrieve group matches in the pattern.
-	 * @throws RestCallException Instances can throw an exception if a failure condition is detected.
-	 */
-	public void onMatch(RestCall rc, Matcher m) throws RestCallException {}
-
-	/**
-	 * Instances can override this method to handle when a regular expression pattern doesn't match on the output.
-	 *
-	 * @param rc The {@link RestCall} that this pattern finder is being used on.
-	 * @throws RestCallException Instances can throw an exception if a failure condition is detected.
-	 */
-	public void onNoMatch(RestCall rc) throws RestCallException {}
-}