Mercurial Hosting > luan
annotate src/org/eclipse/jetty/server/Server.java @ 876:2efdb98f3543
use just one fixed Connector in Server
| author | Franklin Schmidt <fschmidt@gmail.com> | 
|---|---|
| date | Tue, 04 Oct 2016 14:05:45 -0600 | 
| parents | b9aa175d9a29 | 
| children | fef4392f4905 | 
| rev | line source | 
|---|---|
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 1 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 2 // ======================================================================== | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 3 // Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 4 // ------------------------------------------------------------------------ | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 5 // All rights reserved. This program and the accompanying materials | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 6 // are made available under the terms of the Eclipse Public License v1.0 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 7 // and Apache License v2.0 which accompanies this distribution. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 8 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 9 // The Eclipse Public License is available at | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 10 // http://www.eclipse.org/legal/epl-v10.html | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 11 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 12 // The Apache License v2.0 is available at | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 13 // http://www.opensource.org/licenses/apache2.0.php | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 14 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 15 // You may elect to redistribute this code under either of these licenses. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 16 // ======================================================================== | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 17 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 18 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 19 package org.eclipse.jetty.server; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 20 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 21 import java.io.IOException; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 22 import java.net.InetSocketAddress; | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 23 import java.util.Collections; | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 24 import java.util.Enumeration; | 
| 865 | 25 import java.util.concurrent.LinkedBlockingQueue; | 
| 26 import java.util.concurrent.ThreadPoolExecutor; | |
| 27 import java.util.concurrent.TimeUnit; | |
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 28 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 29 import javax.servlet.ServletException; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 30 import javax.servlet.http.HttpServletRequest; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 31 import javax.servlet.http.HttpServletResponse; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 32 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 33 import org.eclipse.jetty.http.HttpGenerator; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 34 import org.eclipse.jetty.http.HttpURI; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 35 import org.eclipse.jetty.server.handler.HandlerWrapper; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 36 import org.eclipse.jetty.server.nio.SelectChannelConnector; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 37 import org.eclipse.jetty.util.Attributes; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 38 import org.eclipse.jetty.util.AttributesMap; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 39 import org.eclipse.jetty.util.LazyList; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 40 import org.eclipse.jetty.util.MultiException; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 41 import org.eclipse.jetty.util.TypeUtil; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 42 import org.eclipse.jetty.util.URIUtil; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 43 import org.eclipse.jetty.util.component.Destroyable; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 44 import org.eclipse.jetty.util.component.LifeCycle; | 
| 820 
8e9db0bbf4f9
remove org.eclipse.jetty.util.log and upgrade slf4j
 Franklin Schmidt <fschmidt@gmail.com> parents: 
812diff
changeset | 45 import org.slf4j.Logger; | 
| 
8e9db0bbf4f9
remove org.eclipse.jetty.util.log and upgrade slf4j
 Franklin Schmidt <fschmidt@gmail.com> parents: 
812diff
changeset | 46 import org.slf4j.LoggerFactory; | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 47 import org.eclipse.jetty.util.thread.ShutdownThread; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 48 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 49 /* ------------------------------------------------------------ */ | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 50 /** Jetty HTTP Servlet Server. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 51 * This class is the main class for the Jetty HTTP Servlet server. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 52 * It aggregates Connectors (HTTP request receivers) and request Handlers. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 53 * The server is itself a handler and a ThreadPool. Connectors use the ThreadPool methods | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 54 * to run jobs that will eventually call the handle method. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 55 * | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 56 * @org.apache.xbean.XBean description="Creates an embedded Jetty web server" | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 57 */ | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 58 public class Server extends HandlerWrapper implements Attributes | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 59 { | 
| 820 
8e9db0bbf4f9
remove org.eclipse.jetty.util.log and upgrade slf4j
 Franklin Schmidt <fschmidt@gmail.com> parents: 
812diff
changeset | 60 private static final Logger LOG = LoggerFactory.getLogger(Server.class); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 61 | 
| 864 
e21ca9878a10
simplify ThreadPool use
 Franklin Schmidt <fschmidt@gmail.com> parents: 
848diff
changeset | 62 private static final String __version = "8"; | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 63 | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 64 private final AttributesMap _attributes = new AttributesMap(); | 
| 875 
b9aa175d9a29
remove Server.getThreadPool()
 Franklin Schmidt <fschmidt@gmail.com> parents: 
867diff
changeset | 65 public final ThreadPoolExecutor threadPool; | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 66 public final Connector connector; | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 67 private boolean _sendServerVersion = true; //send Server: header | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 68 private boolean _sendDateHeader = false; //send Date: header | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 69 private int _graceful=0; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 70 private boolean _stopAtShutdown; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 71 private boolean _dumpAfterStart=false; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 72 private boolean _dumpBeforeStop=false; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 73 private boolean _uncheckedPrintWriter=false; | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 74 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 75 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 76 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 77 /** Convenience constructor | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 78 * Creates server and a {@link SelectChannelConnector} at the passed port. | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 79 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 80 public Server(int port) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 81 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 82 setServer(this); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 83 | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 84 connector = new SelectChannelConnector(); | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 85 connector.setPort(port); | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 86 connector.setServer(this); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 87 | 
| 875 
b9aa175d9a29
remove Server.getThreadPool()
 Franklin Schmidt <fschmidt@gmail.com> parents: 
867diff
changeset | 88 threadPool = new ThreadPoolExecutor(256, 256, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()); | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 89 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 90 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 91 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 92 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 93 public static String getVersion() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 94 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 95 return __version; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 96 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 97 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 98 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 99 public boolean getStopAtShutdown() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 100 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 101 return _stopAtShutdown; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 102 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 103 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 104 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 105 public void setStopAtShutdown(boolean stop) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 106 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 107 //if we now want to stop | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 108 if (stop) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 109 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 110 //and we weren't stopping before | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 111 if (!_stopAtShutdown) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 112 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 113 //only register to stop if we're already started (otherwise we'll do it in doStart()) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 114 if (isStarted()) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 115 ShutdownThread.register(this); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 116 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 117 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 118 else | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 119 ShutdownThread.deregister(this); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 120 | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 121 _stopAtShutdown=stop; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 122 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 123 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 124 /** | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 125 * @return true if {@link #dumpStdErr()} is called after starting | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 126 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 127 public boolean isDumpAfterStart() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 128 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 129 return _dumpAfterStart; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 130 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 131 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 132 /** | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 133 * @param dumpAfterStart true if {@link #dumpStdErr()} is called after starting | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 134 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 135 public void setDumpAfterStart(boolean dumpAfterStart) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 136 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 137 _dumpAfterStart = dumpAfterStart; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 138 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 139 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 140 /** | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 141 * @return true if {@link #dumpStdErr()} is called before stopping | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 142 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 143 public boolean isDumpBeforeStop() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 144 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 145 return _dumpBeforeStop; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 146 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 147 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 148 /** | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 149 * @param dumpBeforeStop true if {@link #dumpStdErr()} is called before stopping | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 150 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 151 public void setDumpBeforeStop(boolean dumpBeforeStop) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 152 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 153 _dumpBeforeStop = dumpBeforeStop; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 154 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 155 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 156 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 157 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 158 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 159 @Override | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 160 protected void doStart() throws Exception | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 161 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 162 if (getStopAtShutdown()) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 163 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 164 ShutdownThread.register(this); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 165 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 166 | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 167 ShutdownMonitor.getInstance().start(); // initialize | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 168 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 169 LOG.info("jetty-"+__version); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 170 HttpGenerator.setServerVersion(__version); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 171 | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 172 MultiException mex=new MultiException(); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 173 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 174 try | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 175 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 176 super.doStart(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 177 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 178 catch(Throwable e) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 179 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 180 mex.add(e); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 181 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 182 | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 183 if (mex.size()==0) | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 184 { | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 185 try{connector.start();} | 
| 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 186 catch(Throwable e) | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 187 { | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 188 mex.add(e); | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 189 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 190 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 191 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 192 if (isDumpAfterStart()) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 193 dumpStdErr(); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 194 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 195 mex.ifExceptionThrow(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 196 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 197 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 198 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 199 @Override | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 200 protected void doStop() throws Exception | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 201 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 202 if (isDumpBeforeStop()) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 203 dumpStdErr(); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 204 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 205 MultiException mex=new MultiException(); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 206 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 207 if (_graceful>0) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 208 { | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 209 LOG.info("Graceful shutdown {}",connector); | 
| 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 210 try{connector.close();}catch(Throwable e){mex.add(e);} | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 211 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 212 Handler[] contexts = getChildHandlersByClass(Graceful.class); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 213 for (int c=0;c<contexts.length;c++) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 214 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 215 Graceful context=(Graceful)contexts[c]; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 216 LOG.info("Graceful shutdown {}",context); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 217 context.setShutdown(true); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 218 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 219 Thread.sleep(_graceful); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 220 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 221 | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 222 try{connector.stop();}catch(Throwable e){mex.add(e);} | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 223 | 
| 875 
b9aa175d9a29
remove Server.getThreadPool()
 Franklin Schmidt <fschmidt@gmail.com> parents: 
867diff
changeset | 224 threadPool.shutdownNow(); | 
| 867 | 225 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 226 try {super.doStop(); } catch(Throwable e) { mex.add(e);} | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 227 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 228 mex.ifExceptionThrow(); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 229 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 230 if (getStopAtShutdown()) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 231 ShutdownThread.deregister(this); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 232 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 233 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 234 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 235 /* Handle a request from a connection. | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 236 * Called to handle a request on the connection when either the header has been received, | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 237 * or after the entire request has been received (for short requests of known length), or | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 238 * on the dispatch of an async request. | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 239 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 240 public void handle(AbstractHttpConnection connection) throws IOException, ServletException | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 241 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 242 final String target=connection.getRequest().getPathInfo(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 243 final Request request=connection.getRequest(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 244 final Response response=connection.getResponse(); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 245 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 246 if (LOG.isDebugEnabled()) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 247 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 248 LOG.debug("REQUEST "+target+" on "+connection); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 249 handle(target, request, request, response); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 250 LOG.debug("RESPONSE "+target+" "+connection.getResponse().getStatus()+" handled="+request.isHandled()); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 251 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 252 else | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 253 handle(target, request, request, response); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 254 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 255 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 256 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 257 /* Handle a request from a connection. | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 258 * Called to handle a request on the connection when either the header has been received, | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 259 * or after the entire request has been received (for short requests of known length), or | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 260 * on the dispatch of an async request. | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 261 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 262 public void handleAsync(AbstractHttpConnection connection) throws IOException, ServletException | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 263 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 264 final AsyncContinuation async = connection.getRequest().getAsyncContinuation(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 265 final AsyncContinuation.AsyncEventState state = async.getAsyncEventState(); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 266 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 267 final Request baseRequest=connection.getRequest(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 268 final String path=state.getPath(); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 269 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 270 if (path!=null) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 271 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 272 // this is a dispatch with a path | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 273 final String contextPath=state.getServletContext().getContextPath(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 274 HttpURI uri = new HttpURI(URIUtil.addPaths(contextPath,path)); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 275 baseRequest.setUri(uri); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 276 baseRequest.setRequestURI(null); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 277 baseRequest.setPathInfo(baseRequest.getRequestURI()); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 278 if (uri.getQuery()!=null) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 279 baseRequest.mergeQueryString(uri.getQuery()); //we have to assume dispatch path and query are UTF8 | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 280 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 281 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 282 final String target=baseRequest.getPathInfo(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 283 final HttpServletRequest request=(HttpServletRequest)async.getRequest(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 284 final HttpServletResponse response=(HttpServletResponse)async.getResponse(); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 285 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 286 if (LOG.isDebugEnabled()) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 287 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 288 LOG.debug("REQUEST "+target+" on "+connection); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 289 handle(target, baseRequest, request, response); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 290 LOG.debug("RESPONSE "+target+" "+connection.getResponse().getStatus()); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 291 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 292 else | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 293 handle(target, baseRequest, request, response); | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 294 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 295 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 296 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 297 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 298 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 299 public void join() throws InterruptedException | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 300 { | 
| 875 
b9aa175d9a29
remove Server.getThreadPool()
 Franklin Schmidt <fschmidt@gmail.com> parents: 
867diff
changeset | 301 threadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS); | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 302 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 303 | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 304 /* ------------------------------------------------------------ */ | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 305 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 306 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 307 public void setSendServerVersion (boolean sendServerVersion) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 308 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 309 _sendServerVersion = sendServerVersion; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 310 } | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 311 | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 312 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 313 public boolean getSendServerVersion() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 314 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 315 return _sendServerVersion; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 316 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 317 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 318 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 319 /** | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 320 * @param sendDateHeader | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 321 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 322 public void setSendDateHeader(boolean sendDateHeader) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 323 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 324 _sendDateHeader = sendDateHeader; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 325 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 326 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 327 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 328 public boolean getSendDateHeader() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 329 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 330 return _sendDateHeader; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 331 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 332 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 333 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 334 /** | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 335 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 336 @Deprecated | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 337 public int getMaxCookieVersion() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 338 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 339 return 1; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 340 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 341 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 342 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 343 /** | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 344 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 345 @Deprecated | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 346 public void setMaxCookieVersion(int maxCookieVersion) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 347 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 348 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 349 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 350 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 351 /* | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 352 * @see org.eclipse.util.AttributesMap#clearAttributes() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 353 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 354 public void clearAttributes() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 355 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 356 _attributes.clearAttributes(); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 357 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 358 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 359 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 360 /* | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 361 * @see org.eclipse.util.AttributesMap#getAttribute(java.lang.String) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 362 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 363 public Object getAttribute(String name) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 364 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 365 return _attributes.getAttribute(name); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 366 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 367 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 368 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 369 /* | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 370 * @see org.eclipse.util.AttributesMap#getAttributeNames() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 371 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 372 public Enumeration getAttributeNames() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 373 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 374 return AttributesMap.getAttributeNamesCopy(_attributes); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 375 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 376 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 377 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 378 /* | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 379 * @see org.eclipse.util.AttributesMap#removeAttribute(java.lang.String) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 380 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 381 public void removeAttribute(String name) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 382 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 383 _attributes.removeAttribute(name); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 384 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 385 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 386 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 387 /* | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 388 * @see org.eclipse.util.AttributesMap#setAttribute(java.lang.String, java.lang.Object) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 389 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 390 public void setAttribute(String name, Object attribute) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 391 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 392 _attributes.setAttribute(name, attribute); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 393 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 394 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 395 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 396 /** | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 397 * @return the graceful | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 398 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 399 public int getGracefulShutdown() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 400 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 401 return _graceful; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 402 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 403 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 404 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 405 /** | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 406 * Set graceful shutdown timeout. If set, the internal <code>doStop()</code> method will not immediately stop the | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 407 * server. Instead, all {@link Connector}s will be closed so that new connections will not be accepted | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 408 * and all handlers that implement {@link Graceful} will be put into the shutdown mode so that no new requests | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 409 * will be accepted, but existing requests can complete. The server will then wait the configured timeout | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 410 * before stopping. | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 411 * @param timeoutMS the milliseconds to wait for existing request to complete before stopping the server. | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 412 * | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 413 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 414 public void setGracefulShutdown(int timeoutMS) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 415 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 416 _graceful=timeoutMS; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 417 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 418 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 419 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 420 @Override | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 421 public String toString() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 422 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 423 return this.getClass().getName()+"@"+Integer.toHexString(hashCode()); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 424 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 425 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 426 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 427 @Override | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 428 public void dump(Appendable out,String indent) throws IOException | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 429 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 430 dumpThis(out); | 
| 876 
2efdb98f3543
use just one fixed Connector in Server
 Franklin Schmidt <fschmidt@gmail.com> parents: 
875diff
changeset | 431 dump(out,indent,TypeUtil.asList(getHandlers()),getBeans(),Collections.singletonList(connector)); | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 432 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 433 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 434 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 435 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 436 public boolean isUncheckedPrintWriter() | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 437 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 438 return _uncheckedPrintWriter; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 439 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 440 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 441 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 442 public void setUncheckedPrintWriter(boolean unchecked) | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 443 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 444 _uncheckedPrintWriter=unchecked; | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 445 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 446 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 447 | 
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 448 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 449 /* A handler that can be gracefully shutdown. | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 450 * Called by doStop if a {@link #setGracefulShutdown} period is set. | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 451 * TODO move this somewhere better | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 452 */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 453 public interface Graceful extends Handler | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 454 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 455 public void setShutdown(boolean shutdown); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 456 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 457 | 
| 865 | 458 | 
| 459 public final boolean isLowOnThreads() | |
| 460 { | |
| 461 // getActiveCount() locks the thread pool, so execute it last | |
| 875 
b9aa175d9a29
remove Server.getThreadPool()
 Franklin Schmidt <fschmidt@gmail.com> parents: 
867diff
changeset | 462 return threadPool.getPoolSize() == threadPool.getMaximumPoolSize() && | 
| 
b9aa175d9a29
remove Server.getThreadPool()
 Franklin Schmidt <fschmidt@gmail.com> parents: 
867diff
changeset | 463 threadPool.getQueue().size() >= threadPool.getPoolSize() - threadPool.getActiveCount(); | 
| 865 | 464 } | 
| 465 | |
| 466 | |
| 812 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 467 /* ------------------------------------------------------------ */ | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 468 public static void main(String...args) throws Exception | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 469 { | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 470 System.err.println(getVersion()); | 
| 
700317ba03ad
remove SessionIdManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 471 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 472 } | 
