/* * Copyright (c) 2013, Francis Galiegue <fgaliegue@gmail.com> * * This program is free software: you can redistribute it and/or modify * it under the terms of the Lesser GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * Lesser GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.github.fge.jsonschema.misc; import com.google.common.base.Strings; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.webapp.WebAppContext; /** * This class launches the web application in an embedded Jetty container. * This is the entry point to your application. The Java command that is used for * launching should fire this main method. */ public final class WebApp { private WebApp() { } public static void main(final String... args) throws Exception { final String webappDirLocation = "src/main/webapp/"; //The port that we should run on can be set into an environment variable //Look for that variable and default to 8080 if it isn't there. String webPort = System.getenv("PORT"); if (Strings.isNullOrEmpty(webPort)) webPort = "8080"; final Server server = new Server(Integer.valueOf(webPort)); final WebAppContext root = new WebAppContext(); root.setContextPath("/"); root.setDescriptor(webappDirLocation + "/WEB-INF/web.xml"); root.setResourceBase(webappDirLocation); //Parent loader priority is a class loader setting that Jetty accepts. //By default Jetty will behave like most web containers in that it will //allow your application to replace non-server libraries that are part of the //container. Setting parent loader priority to true changes this behavior. //Read more here: http://wiki.eclipse.org/Jetty/Reference/Jetty_Classloading root.setParentLoaderPriority(true); server.setHandler(root); server.start(); server.join(); } }