2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.nest.internal.wwn.test;
15 import org.eclipse.jetty.server.Server;
16 import org.eclipse.jetty.server.ServerConnector;
17 import org.eclipse.jetty.servlet.ServletHandler;
18 import org.eclipse.jetty.servlet.ServletHolder;
19 import org.slf4j.Logger;
20 import org.slf4j.LoggerFactory;
23 * Embedded jetty server used in the tests.
25 * Based on {@code TestServer} of the FS Internet Radio Binding.
27 * @author Velin Yordanov - Initial contribution
28 * @author Wouter Born - Increase test coverage
30 public class WWNTestServer {
31 private final Logger logger = LoggerFactory.getLogger(WWNTestServer.class);
33 private Server server;
37 private ServletHolder servletHolder;
39 public WWNTestServer(String host, int port, int timeout, ServletHolder servletHolder) {
42 this.timeout = timeout;
43 this.servletHolder = servletHolder;
46 public void startServer() {
47 Thread thread = new Thread(new Runnable() {
49 @SuppressWarnings("resource")
51 server = new Server();
52 ServletHandler handler = new ServletHandler();
53 handler.addServletWithMapping(servletHolder, "/*");
54 server.setHandler(handler);
57 ServerConnector http = new ServerConnector(server);
60 http.setIdleTimeout(timeout);
62 server.addConnector(http);
67 } catch (InterruptedException ex) {
68 logger.error("Server got interrupted", ex);
70 } catch (Exception e) {
71 logger.error("Error in starting the server", e);
80 public void stopServer() {
83 } catch (Exception e) {
84 logger.error("Error in stopping the server", e);