| | |
| | | You should have received a copy of the GNU Affero General Public License |
| | | along with this program. If not, see <https://www.gnu.org/licenses/>. |
| | | */ |
| | | |
| | | package de.uhilger.minsrv.handler; |
| | | |
| | | import com.sun.net.httpserver.HttpExchange; |
| | |
| | | import de.uhilger.minsrv.App; |
| | | import java.io.IOException; |
| | | import java.io.OutputStream; |
| | | import java.util.Timer; |
| | | import java.util.TimerTask; |
| | | import java.util.logging.Logger; |
| | | |
| | | /** |
| | |
| | | public class StopServerHandler implements HttpHandler { |
| | | |
| | | @Override |
| | | public void handle(HttpExchange exchange) throws IOException { |
| | | Logger.getLogger(StopServerHandler.class.getName()).info(exchange.getRequestURI().toString()); |
| | | public void handle(HttpExchange e) throws IOException { |
| | | Logger.getLogger(StopServerHandler.class.getName()).info(e.getRequestURI().toString()); |
| | | String response = "Server stopped"; |
| | | exchange.sendResponseHeaders(200, response.length()); |
| | | OutputStream os = exchange.getResponseBody(); |
| | | e.sendResponseHeaders(200, response.length()); |
| | | OutputStream os = e.getResponseBody(); |
| | | os.write(response.getBytes()); |
| | | os.flush(); |
| | | os.close(); |
| | | Logger.getLogger(StopServerHandler.class.getName()).info("stopping app."); |
| | | App.stop(); |
| | | //exchange.getHttpContext().getServer().stop(5); |
| | | Logger.getLogger(StopServerHandler.class.getName()).info("stopping server."); |
| | | e.getHttpContext().getServer().stop(1); |
| | | Timer timer = new Timer(); |
| | | timer.schedule(new AppStopper(), 2000); |
| | | } |
| | | |
| | | class AppStopper extends TimerTask { |
| | | |
| | | @Override |
| | | public void run() { |
| | | Logger.getLogger(StopServerHandler.class.getName()).info("Mini-Server beendet."); |
| | | App.stop(); |
| | | } |
| | | } |
| | | |
| | | } |