Repository: incubator-juneau Updated Branches: refs/heads/master 27b20f861 -> cf04d3992
Add RestMicroservice.setJettyXml(Object) method. Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/cf04d399 Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/cf04d399 Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/cf04d399 Branch: refs/heads/master Commit: cf04d3992f21d0f69dbeeb50d5cfc74b9c1a9b1d Parents: 27b20f8 Author: JamesBognar <[email protected]> Authored: Mon Aug 7 16:19:28 2017 -0400 Committer: JamesBognar <[email protected]> Committed: Mon Aug 7 16:19:28 2017 -0400 ---------------------------------------------------------------------- .../juneau/microservice/RestMicroservice.java | 52 ++++++++++++++++---- 1 file changed, 43 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/cf04d399/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java ---------------------------------------------------------------------- diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java b/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java index a76eb8d..e5df6a5 100755 --- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java +++ b/juneau-microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java @@ -78,7 +78,8 @@ public class RestMicroservice extends Microservice { int port; String contextPath; Logger logger; - + Object jettyXml; + /** * Main method. * @@ -325,16 +326,26 @@ public class RestMicroservice extends Microservice { ConfigFile cf = getConfig(); ObjectMap mf = getManifest(); - - String jettyXml = cf.getString("REST/jettyXml", mf.getString("Rest-JettyXml", null)); + if (jettyXml == null) + jettyXml = cf.getString("REST/jettyXml", mf.getString("Rest-JettyXml", null)); if (jettyXml != null) { - File f = new File(jettyXml); - if (f.exists()) { - XmlConfiguration config = new XmlConfiguration(new FileInputStream(f)); - server = (Server)config.configure(); - } else { - throw new FormattedRuntimeException("Jetty.xml file ''{0}'' was specified but not found on the file system.", jettyXml); + InputStream is = null; + if (jettyXml instanceof String) { + jettyXml = new File(jettyXml.toString()); + } + if (jettyXml instanceof File) { + File f = (File)jettyXml; + if (f.exists()) + is = new FileInputStream((File)jettyXml); + else + throw new FormattedRuntimeException("Jetty.xml file ''{0}'' was specified but not found on the file system.", jettyXml); + } else if (jettyXml instanceof InputStream) { + is = (InputStream)jettyXml; } + + XmlConfiguration config = new XmlConfiguration(is); + server = (Server)config.configure(); + } else { int[] ports = cf.getObjectWithDefault("REST/port", mf.get(int[].class, "Rest-Port", new int[]{8000}), int[].class); @@ -547,7 +558,30 @@ public class RestMicroservice extends Microservice { } } + /** + * Sets the <code>jetty.xml</code> used to configure the Jetty server. + * + * <p> + * + * @param jettyXml + * The <code>jetty.xml</code>. + * <br>Can be any of the following: + * <ul> + * <li>A {@link File} representing the location on the file system. + * <li>An {@link InputStream} containing the contents of the file. + * <li>A {@link String} representing the file system path. + * </ul> + * @return This object (for method chaining). + */ + public RestMicroservice setJettyXml(Object jettyXml) { + if (jettyXml instanceof String || jettyXml instanceof File || jettyXml instanceof InputStream) + this.jettyXml = jettyXml; + else + throw new FormattedRuntimeException("Invalid object type passed to setJettyXml()", jettyXml == null ? null : jettyXml.getClass().getName()); + return this; + } + //-------------------------------------------------------------------------------- // Lifecycle listener methods. //--------------------------------------------------------------------------------
