Mercurial Hosting > luan
comparison src/org/eclipse/jetty/server/Connector.java @ 1007:945568ee77ac
remove HttpBuffersImpl
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Sun, 23 Oct 2016 17:40:20 -0600 |
| parents | 58a9c4a42292 |
| children | b664624a4423 |
comparison
equal
deleted
inserted
replaced
| 1006:58a9c4a42292 | 1007:945568ee77ac |
|---|---|
| 26 import java.util.concurrent.ThreadPoolExecutor; | 26 import java.util.concurrent.ThreadPoolExecutor; |
| 27 import java.util.concurrent.atomic.AtomicLong; | 27 import java.util.concurrent.atomic.AtomicLong; |
| 28 | 28 |
| 29 import javax.servlet.ServletRequest; | 29 import javax.servlet.ServletRequest; |
| 30 | 30 |
| 31 import org.eclipse.jetty.http.HttpBuffersImpl; | |
| 32 import org.eclipse.jetty.http.HttpFields; | |
| 33 import org.eclipse.jetty.http.HttpHeaders; | |
| 34 import org.eclipse.jetty.http.HttpSchemes; | |
| 35 import org.eclipse.jetty.io.Buffers; | 31 import org.eclipse.jetty.io.Buffers; |
| 36 import org.eclipse.jetty.io.Buffers.Type; | 32 import org.eclipse.jetty.io.BuffersFactory; |
| 37 import org.eclipse.jetty.io.EndPoint; | 33 import org.eclipse.jetty.io.EndPoint; |
| 38 import org.eclipse.jetty.io.EofException; | 34 import org.eclipse.jetty.io.EofException; |
| 39 import org.eclipse.jetty.util.component.AggregateLifeCycle; | 35 import org.eclipse.jetty.util.component.AggregateLifeCycle; |
| 40 import org.eclipse.jetty.util.component.Dumpable; | 36 import org.eclipse.jetty.util.component.Dumpable; |
| 41 import org.slf4j.Logger; | 37 import org.slf4j.Logger; |
| 63 public final int port; | 59 public final int port; |
| 64 | 60 |
| 65 protected final int _maxIdleTime = 200000; | 61 protected final int _maxIdleTime = 200000; |
| 66 protected int _soLingerTime = -1; | 62 protected int _soLingerTime = -1; |
| 67 | 63 |
| 68 protected final HttpBuffersImpl _buffers = new HttpBuffersImpl(); | |
| 69 | |
| 70 // from child classes | 64 // from child classes |
| 71 protected transient ServerSocketChannel _acceptChannel; | 65 protected transient ServerSocketChannel _acceptChannel; |
| 72 | 66 |
| 73 protected Connector(Server server,int port) { | 67 protected Connector(Server server,int port) { |
| 74 this.server = server; | 68 this.server = server; |
| 75 this.port = port; | 69 this.port = port; |
| 76 server.connectors.add(this); | 70 server.connectors.add(this); |
| 77 addBean(_buffers); | |
| 78 } | 71 } |
| 79 | 72 |
| 80 public final void setHost(String host) | 73 public final void setHost(String host) |
| 81 { | 74 { |
| 82 _host = host; | 75 _host = host; |
| 137 ThreadPoolExecutor _threadPool = server.threadPool; | 130 ThreadPoolExecutor _threadPool = server.threadPool; |
| 138 _threadPool.execute(this); | 131 _threadPool.execute(this); |
| 139 if (server.isLowOnThreads()) | 132 if (server.isLowOnThreads()) |
| 140 LOG.warn("insufficient threads configured for {}",this); | 133 LOG.warn("insufficient threads configured for {}",this); |
| 141 | 134 |
| 135 startBuffers(); | |
| 136 | |
| 142 LOG.info("Started {}",this); | 137 LOG.info("Started {}",this); |
| 143 } | 138 } |
| 144 | 139 |
| 145 @Override | 140 @Override |
| 146 protected synchronized void doStop() throws Exception | 141 protected synchronized void doStop() throws Exception |
| 153 } | 148 } |
| 154 catch (IOException e) | 149 catch (IOException e) |
| 155 { | 150 { |
| 156 LOG.warn("",e); | 151 LOG.warn("",e); |
| 157 } | 152 } |
| 153 | |
| 154 stopBuffers(); | |
| 158 | 155 |
| 159 super.doStop(); | 156 super.doStop(); |
| 160 } | 157 } |
| 161 | 158 |
| 162 | 159 |
| 234 _name = (getHost() == null?"0.0.0.0":getHost()) + ":" + port; | 231 _name = (getHost() == null?"0.0.0.0":getHost()) + ":" + port; |
| 235 return _name; | 232 return _name; |
| 236 } | 233 } |
| 237 | 234 |
| 238 | 235 |
| 239 // from AbstractNIOConnector | 236 |
| 240 | 237 // from HttpBuffersImpl |
| 241 public final boolean getUseDirectBuffers() | 238 |
| 242 { | 239 protected int _requestBufferSize = 16*1024; |
| 243 return _buffers.getRequestBufferType()==Type.DIRECT; | 240 protected int _requestHeaderSize = 6*1024; |
| 244 } | 241 private final int _responseBufferSize = 32*1024; |
| 245 | 242 private final int _responseHeaderSize = 6*1024; |
| 246 /* ------------------------------------------------------------------------------- */ | 243 private final int _maxBuffers = 1024; |
| 247 /** | 244 |
| 248 * @param direct If True (the default), the connector can use NIO direct buffers. | 245 protected Buffers.Type _requestBufferType = Buffers.Type.DIRECT; |
| 249 * Some JVMs have memory management issues (bugs) with direct buffers. | 246 protected Buffers.Type _responseBufferType = Buffers.Type.DIRECT; |
| 250 */ | 247 |
| 251 public final void setUseDirectBuffers(boolean direct) | 248 private Buffers _requestBuffers; |
| 252 { | 249 private Buffers _responseBuffers; |
| 253 _buffers.setRequestBufferType(direct?Type.DIRECT:Type.INDIRECT); | 250 |
| 254 _buffers.setResponseBufferType(direct?Type.DIRECT:Type.INDIRECT); | 251 private void startBuffers() |
| 252 throws Exception | |
| 253 { | |
| 254 _requestBuffers = BuffersFactory.newBuffers(Buffers.Type.INDIRECT,_requestHeaderSize,_requestBufferType,_requestBufferSize,_maxBuffers); | |
| 255 _responseBuffers = BuffersFactory.newBuffers(Buffers.Type.INDIRECT,_responseHeaderSize,_responseBufferType,_responseBufferSize,_maxBuffers); | |
| 256 super.doStart(); | |
| 257 } | |
| 258 | |
| 259 private void stopBuffers() | |
| 260 throws Exception | |
| 261 { | |
| 262 _requestBuffers = null; | |
| 263 _responseBuffers = null; | |
| 264 } | |
| 265 | |
| 266 public final Buffers getRequestBuffers() | |
| 267 { | |
| 268 return _requestBuffers; | |
| 269 } | |
| 270 | |
| 271 public final Buffers getResponseBuffers() | |
| 272 { | |
| 273 return _responseBuffers; | |
| 255 } | 274 } |
| 256 | 275 |
| 257 } | 276 } |
