001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019 package org.apache.geronimo.tomcat.connector;
020
021 import java.util.Map;
022
023 import org.apache.geronimo.gbean.GBeanInfo;
024 import org.apache.geronimo.gbean.GBeanInfoBuilder;
025 import org.apache.geronimo.management.geronimo.WebManager;
026 import org.apache.geronimo.system.serverinfo.ServerInfo;
027 import org.apache.geronimo.tomcat.TomcatContainer;
028
029 public class Http11NIOConnectorGBean extends AbstractHttp11ConnectorGBean implements Http11NIOProtocol{
030
031 public Http11NIOConnectorGBean(String name, Map initParams, String host, int port, TomcatContainer container, ServerInfo serverInfo) throws Exception {
032 super(name, initParams, "org.apache.coyote.http11.Http11NioProtocol", host, port, container, serverInfo);
033 }
034
035 public int getDefaultPort() {
036 return 80;
037 }
038
039 public String getGeronimoProtocol(){
040 return WebManager.PROTOCOL_HTTP;
041 }
042
043 public int getAcceptorThreadCount() {
044 Object value = connector.getAttribute("acceptorThreadCount");
045 return value == null ? 1 : Integer.parseInt(value.toString());
046 }
047
048 public int getAcceptorThreadPriority() {
049 Object value = connector.getAttribute("acceptorThreadCount");
050 return value == null ? Thread.NORM_PRIORITY : Integer.parseInt(value.toString());
051 }
052
053 public boolean getCommand_line_options() {
054 Object value = connector.getAttribute("command-line-options");
055 return value == null ? true : new Boolean(value.toString()).booleanValue();
056 }
057
058 public int getOomParachute() {
059 Object value = connector.getAttribute("oomParachute");
060 return value == null ? 1048576 : Integer.parseInt(value.toString());
061 }
062
063 public int getPollerThreadCount() {
064 Object value = connector.getAttribute("pollerThreadCount");
065 return value == null ? 1 : Integer.parseInt(value.toString());
066 }
067
068 public int getPollerThreadPriority() {
069 Object value = connector.getAttribute("pollerThreadCount");
070 return value == null ? Thread.NORM_PRIORITY : Integer.parseInt(value.toString());
071 }
072
073 public int getProcessCache() {
074 Object value = connector.getAttribute("processCache");
075 return value == null ? 200 : Integer.parseInt(value.toString());
076 }
077
078 public int getSelectorPool_maxSelectors() {
079 Object value = connector.getAttribute("selectorPool.maxSelectors");
080 return value == null ? 200 : Integer.parseInt(value.toString());
081 }
082
083 public int getSelectorPool_maxSpareSelectors() {
084 Object value = connector.getAttribute("selectorPool.maxSpareSelectors");
085 return value == null ? -1 : Integer.parseInt(value.toString());
086 }
087
088 public int getSelectorTimeout() {
089 Object value = connector.getAttribute("selectorTimeout");
090 return value == null ? 1000 : Integer.parseInt(value.toString());
091 }
092
093 public int getSocket_appReadBufSize() {
094 Object value = connector.getAttribute("socket.appReadBufSize");
095 return value == null ? 8192 : Integer.parseInt(value.toString());
096 }
097
098 public int getSocket_appWriteBufSize() {
099 Object value = connector.getAttribute("socket.appWriteBufSize");
100 return value == null ? 8192 : Integer.parseInt(value.toString());
101 }
102
103 public int getSocket_bufferPool() {
104 Object value = connector.getAttribute("socket.bufferPool");
105 return value == null ? 500 : Integer.parseInt(value.toString());
106 }
107
108 public int getSocket_bufferPoolSize() {
109 Object value = connector.getAttribute("socket.bufferPoolSize");
110 return value == null ? 104857600 : Integer.parseInt(value.toString());
111 }
112
113 public boolean getSocket_directBuffer() {
114 Object value = connector.getAttribute("socket.directBuffer");
115 return value == null ? false : new Boolean(value.toString()).booleanValue();
116 }
117
118 public int getSocket_eventCache() {
119 Object value = connector.getAttribute("socket.eventCache");
120 return value == null ? 500 : Integer.parseInt(value.toString());
121 }
122
123 public int getSocket_keyCache() {
124 Object value = connector.getAttribute("socket.keyCache");
125 return value == null ? 500 : Integer.parseInt(value.toString());
126 }
127
128 public boolean getSocket_ooBInline() {
129 Object value = connector.getAttribute("socket.ooBInline");
130 return value == null ? true : new Boolean(value.toString()).booleanValue();
131 }
132
133 public int getSocket_performanceBandwidth() {
134 Object value = connector.getAttribute("socket.performanceBandwidth");
135 return value == null ? 1 : Integer.parseInt(value.toString());
136 }
137
138 public int getSocket_performanceConnectionTime() {
139 Object value = connector.getAttribute("socket.performanceConnectionTime");
140 return value == null ? 1 : Integer.parseInt(value.toString());
141 }
142
143 public int getSocket_performanceLatency() {
144 Object value = connector.getAttribute("socket.performanceLatency");
145 return value == null ? 0 : Integer.parseInt(value.toString());
146 }
147
148 public int getSocket_processorCache() {
149 Object value = connector.getAttribute("socket.processorCache");
150 return value == null ? 500 : Integer.parseInt(value.toString());
151 }
152
153 public int getSocket_rxBufSize() {
154 Object value = connector.getAttribute("socket.rxBufSize");
155 return value == null ? 25188 : Integer.parseInt(value.toString());
156 }
157
158 public boolean getSocket_soKeepAlive() {
159 Object value = connector.getAttribute("socket.soKeepAlive");
160 return value == null ? false : new Boolean(value.toString()).booleanValue();
161 }
162
163 public boolean getSocket_soLingerOn() {
164 Object value = connector.getAttribute("socket.soLingerOn");
165 return value == null ? true : new Boolean(value.toString()).booleanValue();
166 }
167
168 public int getSocket_soLingerTime() {
169 Object value = connector.getAttribute("socket.soLingerTime");
170 return value == null ? 25 : Integer.parseInt(value.toString());
171 }
172
173 public boolean getSocket_soReuseAddress() {
174 Object value = connector.getAttribute("socket.soReuseAddress");
175 return value == null ? true : new Boolean(value.toString()).booleanValue();
176 }
177
178 public int getSocket_soTimeout() {
179 Object value = connector.getAttribute("socket.soTimeout");
180 return value == null ? 5000 : Integer.parseInt(value.toString());
181 }
182
183 public int getSocket_soTrafficClass() {
184 Object value = connector.getAttribute("socket.soTrafficClass");
185 return value == null ? (0x04 | 0x08 | 0x010) : new Integer(value.toString()).intValue();
186 }
187
188 public boolean getSocket_tcpNoDelay() {
189 Object value = connector.getAttribute("socket.tcpNoDelay");
190 return value == null ? false : new Boolean(value.toString()).booleanValue();
191 }
192
193 public int getSocket_txBufSize() {
194 Object value = connector.getAttribute("socket.txBufSize");
195 return value == null ? 43800 : Integer.parseInt(value.toString());
196 }
197
198 public boolean getUseComet() {
199 Object value = connector.getAttribute("useComet");
200 return value == null ? true : new Boolean(value.toString()).booleanValue();
201 }
202
203 public boolean getUseExecutor() {
204 Object value = connector.getAttribute("useExecutor");
205 return value == null ? true : new Boolean(value.toString()).booleanValue();
206 }
207
208 public boolean getUseSendfile() {
209 Object value = connector.getAttribute("useSendfile");
210 return value == null ? true : new Boolean(value.toString()).booleanValue();
211 }
212
213 public void setAcceptorThreadCount(int acceptorThreadCount) {
214 connector.setAttribute("acceptorThreadCount", new Integer(acceptorThreadCount));
215 }
216
217 public void setAcceptorThreadPriority(int acceptorThreadPriority) {
218 connector.setAttribute("acceptorThreadPriority", new Integer(acceptorThreadPriority));
219 }
220
221 public void setCommand_line_options(boolean command_line_options) {
222 connector.setAttribute("command-line-options", new Boolean(command_line_options));
223 }
224
225 public void setOomParachute(int oomParachute) {
226 connector.setAttribute("oomParachute", new Integer(oomParachute));
227 }
228
229 public void setPollerThreadCount(int pollerThreadCount) {
230 connector.setAttribute("pollerThreadCount", new Integer(pollerThreadCount));
231 }
232
233 public void setPollerThreadPriority(int pollerThreadPriority) {
234 connector.setAttribute("pollerThreadPriority", new Integer(pollerThreadPriority));
235 }
236
237 public void setProcessCache(int processCache) {
238 connector.setAttribute("processCache", new Integer(processCache));
239 }
240
241 public void setSelectorPool_maxSelectors(int selectorPool_maxSelectors) {
242 connector.setAttribute("selectorPool.maxSelectors", new Integer(selectorPool_maxSelectors));
243 }
244
245 public void setSelectorPool_maxSpareSelectors(int selectorPool_maxSpareSelectors) {
246 connector.setAttribute("selectorPool.maxSpareSelectors", new Integer(selectorPool_maxSpareSelectors));
247 }
248
249 public void setSelectorTimeout(int selectorTimeout) {
250 connector.setAttribute("selectorTimeout", new Integer(selectorTimeout));
251 }
252
253 public void setSocket_appReadBufSize(int socket_appReadBufSize) {
254 connector.setAttribute("socket.appReadBufSize", new Integer(socket_appReadBufSize));
255 }
256
257 public void setSocket_appWriteBufSize(int socket_appWriteBufSize) {
258 connector.setAttribute("socket.appWriteBufSize", new Integer(socket_appWriteBufSize));
259 }
260
261 public void setSocket_bufferPool(int socket_bufferPool) {
262 connector.setAttribute("socket.bufferPool", new Integer(socket_bufferPool));
263 }
264
265 public void setSocket_bufferPoolSize(int socket_bufferPoolSize) {
266 connector.setAttribute("socket.bufferPoolSize", new Integer(socket_bufferPoolSize));
267 }
268
269 public void setSocket_directBuffer(boolean socket_directBuffer) {
270 connector.setAttribute("socket.directBuffer", new Boolean(socket_directBuffer));
271 }
272
273 public void setSocket_eventCache(int socket_eventCache) {
274 connector.setAttribute("socket.eventCache", new Integer(socket_eventCache));
275 }
276
277 public void setSocket_keyCache(int socket_keyCache) {
278 connector.setAttribute("socket.keyCache", new Integer(socket_keyCache));
279 }
280
281 public void setSocket_ooBInline(boolean socket_ooBInline) {
282 connector.setAttribute("socket.ooBInline", new Boolean(socket_ooBInline));
283 }
284
285 public void setSocket_performanceBandwidth(int socket_performanceBandwidth) {
286 connector.setAttribute("socket.performanceBandwidth", new Integer(socket_performanceBandwidth));
287 }
288
289 public void setSocket_performanceConnectionTime(int socket_performanceConnectionTime) {
290 connector.setAttribute("socket.performanceConnectionTime", new Integer(socket_performanceConnectionTime));
291 }
292
293 public void setSocket_performanceLatency(int socket_performanceLatency) {
294 connector.setAttribute("socket.performanceLatency", new Integer(socket_performanceLatency));
295 }
296
297 public void setSocket_processorCache(int socket_processorCache) {
298 connector.setAttribute("socket.processorCache", new Integer(socket_processorCache));
299 }
300
301 public void setSocket_rxBufSize(int socket_rxBufSize) {
302 connector.setAttribute("socket.rxBufSize", new Integer(socket_rxBufSize));
303 }
304
305 public void setSocket_soKeepAlive(boolean socket_soKeepAlive) {
306 connector.setAttribute("socket.soKeepAlive", new Boolean(socket_soKeepAlive));
307 }
308
309 public void setSocket_soLingerOn(boolean socket_soLingerOn) {
310 connector.setAttribute("socket.soLingerOn", new Boolean(socket_soLingerOn));
311 }
312
313 public void setSocket_soLingerTime(int socket_soLingerTime) {
314 connector.setAttribute("socket.soLingerTime", new Integer(socket_soLingerTime));
315 }
316
317 public void setSocket_soReuseAddress(boolean socket_soReuseAddress) {
318 connector.setAttribute("socket.soReuseAddress", new Boolean(socket_soReuseAddress));
319 }
320
321 public void setSocket_soTimeout(int socket_soTimeout) {
322 connector.setAttribute("socket.soTimeout", new Integer(socket_soTimeout));
323 }
324
325 public void setSocket_soTrafficClass(int socket_soTrafficClass) {
326 connector.setAttribute("socket.soTrafficClass", new Integer(socket_soTrafficClass));
327 }
328
329 public void setSocket_tcpNoDelay(boolean socket_tcpNoDelay) {
330 connector.setAttribute("socket.tcpNoDelay", new Boolean(socket_tcpNoDelay));
331 }
332
333 public void setSocket_txBufSize(int socket_txBufSize) {
334 connector.setAttribute("socket.txBufSize", new Integer(socket_txBufSize));
335 }
336
337 public void setUseComet(boolean useComet) {
338 connector.setAttribute("useExecutor", new Boolean(useComet));
339 }
340
341 public void setUseExecutor(boolean useExecutor) {
342 connector.setAttribute("useExecutor", new Boolean(useExecutor));
343 }
344
345 public void setUseSendfile(boolean useSendfile) {
346 connector.setAttribute("useSendfile", new Boolean(useSendfile));
347 }
348 public static final GBeanInfo GBEAN_INFO;
349
350 static {
351 GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Tomcat Connector HTTP NIO", Http11NIOConnectorGBean.class, AbstractHttp11ConnectorGBean.GBEAN_INFO);
352 infoFactory.addInterface(Http11NIOProtocol.class,
353 new String[] {
354 "useSendfile",
355 "useExecutor",
356 "acceptorThreadCount",
357 "pollerThreadCount",
358 "pollerThreadPriority",
359 "acceptorThreadPriority",
360 "selectorTimeout",
361 "useComet",
362 "processCache",
363 "socket_directBuffer",
364 "socket_rxBufSize",
365 "socket_txBufSize",
366 "socket_appReadBufSize",
367 "socket_appWriteBufSize",
368 "socket_processorCache",
369 "socket_bufferPoolSize",
370 "socket_keyCache",
371 "socket_eventCache",
372 "socket_tcpNoDelay",
373 "socket_soKeepAlive",
374 "socket_ooBInline",
375 "socket_soReuseAddress",
376 "socket_soLingerOn",
377 "socket_soLingerTime",
378 "socket_soTimeout",
379 "socket_soTrafficClass",
380 "socket_performanceConnectionTime",
381 "socket_performanceLatency",
382 "socket_performanceBandwidth",
383 "selectorPool_maxSelectors",
384 "selectorPool_maxSpareSelectors",
385 "command_line_options",
386 "oomParachute"
387 },
388 new String[] {
389 "useSendfile",
390 "useExecutor",
391 "acceptorThreadCount",
392 "pollerThreadCount",
393 "pollerThreadPriority",
394 "acceptorThreadPriority",
395 "selectorTimeout",
396 "useComet",
397 "processCache",
398 "socket_directBuffer",
399 "socket_rxBufSize",
400 "socket_txBufSize",
401 "socket_appReadBufSize",
402 "socket_appWriteBufSize",
403 "socket_processorCache",
404 "socket_bufferPoolSize",
405 "socket_keyCache",
406 "socket_eventCache",
407 "socket_tcpNoDelay",
408 "socket_soKeepAlive",
409 "socket_ooBInline",
410 "socket_soReuseAddress",
411 "socket_soLingerOn",
412 "socket_soLingerTime",
413 "socket_soTimeout",
414 "socket_soTrafficClass",
415 "socket_performanceConnectionTime",
416 "socket_performanceLatency",
417 "socket_performanceBandwidth",
418 "selectorPool_maxSelectors",
419 "selectorPool_maxSpareSelectors",
420 "command_line_options",
421 "oomParachute",
422
423 }
424 );
425 infoFactory.setConstructor(new String[] { "name", "initParams", "host", "port", "TomcatContainer", "ServerInfo"});
426 GBEAN_INFO = infoFactory.getBeanInfo();
427 }
428
429 public static GBeanInfo getGBeanInfo() {
430 return GBEAN_INFO;
431 }
432
433 }