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 } | 
