use of org.glassfish.grizzly.filterchain.FilterChainBuilder in project dubbo by alibaba.
the class GrizzlyClient method doOpen.
@Override
protected void doOpen() throws Throwable {
FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless();
filterChainBuilder.add(new TransportFilter());
filterChainBuilder.add(new GrizzlyCodecAdapter(getCodec(), getUrl(), this));
filterChainBuilder.add(new GrizzlyHandler(getUrl(), this));
TCPNIOTransportBuilder builder = TCPNIOTransportBuilder.newInstance();
ThreadPoolConfig config = builder.getWorkerThreadPoolConfig();
config.setPoolName(CLIENT_THREAD_POOL_NAME).setQueueLimit(-1).setCorePoolSize(0).setMaxPoolSize(Integer.MAX_VALUE).setKeepAliveTime(60L, TimeUnit.SECONDS);
builder.setTcpNoDelay(true).setKeepAlive(true).setConnectionTimeout(getTimeout()).setIOStrategy(SameThreadIOStrategy.getInstance());
transport = builder.build();
transport.setProcessor(filterChainBuilder.build());
transport.start();
}
use of org.glassfish.grizzly.filterchain.FilterChainBuilder in project dubbo by alibaba.
the class GrizzlyServer method doOpen.
@Override
protected void doOpen() throws Throwable {
FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless();
filterChainBuilder.add(new TransportFilter());
filterChainBuilder.add(new GrizzlyCodecAdapter(getCodec(), getUrl(), this));
filterChainBuilder.add(new GrizzlyHandler(getUrl(), this));
TCPNIOTransportBuilder builder = TCPNIOTransportBuilder.newInstance();
ThreadPoolConfig config = builder.getWorkerThreadPoolConfig();
config.setPoolName(SERVER_THREAD_POOL_NAME).setQueueLimit(-1);
String threadpool = getUrl().getParameter(Constants.THREADPOOL_KEY, Constants.DEFAULT_THREADPOOL);
if (Constants.DEFAULT_THREADPOOL.equals(threadpool)) {
int threads = getUrl().getPositiveParameter(Constants.THREADS_KEY, Constants.DEFAULT_THREADS);
config.setCorePoolSize(threads).setMaxPoolSize(threads).setKeepAliveTime(0L, TimeUnit.SECONDS);
} else if ("cached".equals(threadpool)) {
int threads = getUrl().getPositiveParameter(Constants.THREADS_KEY, Integer.MAX_VALUE);
config.setCorePoolSize(0).setMaxPoolSize(threads).setKeepAliveTime(60L, TimeUnit.SECONDS);
} else {
throw new IllegalArgumentException("Unsupported threadpool type " + threadpool);
}
builder.setKeepAlive(true).setReuseAddress(false).setIOStrategy(SameThreadIOStrategy.getInstance());
transport = builder.build();
transport.setProcessor(filterChainBuilder.build());
transport.bind(getBindAddress());
transport.start();
}
use of org.glassfish.grizzly.filterchain.FilterChainBuilder in project dubbo by alibaba.
the class GrizzlyClient method doOpen.
@Override
protected void doOpen() throws Throwable {
FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless();
filterChainBuilder.add(new TransportFilter());
filterChainBuilder.add(new GrizzlyCodecAdapter(getCodec(), getUrl(), this));
filterChainBuilder.add(new GrizzlyHandler(getUrl(), this));
TCPNIOTransportBuilder builder = TCPNIOTransportBuilder.newInstance();
ThreadPoolConfig config = builder.getWorkerThreadPoolConfig();
config.setPoolName(CLIENT_THREAD_POOL_NAME).setQueueLimit(-1).setCorePoolSize(0).setMaxPoolSize(Integer.MAX_VALUE).setKeepAliveTime(60L, TimeUnit.SECONDS);
builder.setTcpNoDelay(true).setKeepAlive(true).setConnectionTimeout(getConnectTimeout()).setIOStrategy(SameThreadIOStrategy.getInstance());
transport = builder.build();
transport.setProcessor(filterChainBuilder.build());
transport.start();
}
use of org.glassfish.grizzly.filterchain.FilterChainBuilder in project dubbo by alibaba.
the class GrizzlyServer method doOpen.
@Override
protected void doOpen() throws Throwable {
FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless();
filterChainBuilder.add(new TransportFilter());
filterChainBuilder.add(new GrizzlyCodecAdapter(getCodec(), getUrl(), this));
filterChainBuilder.add(new GrizzlyHandler(getUrl(), this));
TCPNIOTransportBuilder builder = TCPNIOTransportBuilder.newInstance();
ThreadPoolConfig config = ThreadPoolConfig.defaultConfig();
config.setPoolName(SERVER_THREAD_POOL_NAME).setQueueLimit(-1);
String threadpool = getUrl().getParameter(THREADPOOL_KEY, DEFAULT_THREADPOOL);
if (DEFAULT_THREADPOOL.equals(threadpool)) {
int threads = getUrl().getPositiveParameter(THREADS_KEY, DEFAULT_THREADS);
config.setCorePoolSize(threads).setMaxPoolSize(threads).setKeepAliveTime(0L, TimeUnit.SECONDS);
} else if ("cached".equals(threadpool)) {
int threads = getUrl().getPositiveParameter(THREADS_KEY, Integer.MAX_VALUE);
config.setCorePoolSize(0).setMaxPoolSize(threads).setKeepAliveTime(60L, TimeUnit.SECONDS);
} else {
throw new IllegalArgumentException("Unsupported threadpool type " + threadpool);
}
builder.setWorkerThreadPoolConfig(config).setKeepAlive(true).setReuseAddress(false).setIOStrategy(SameThreadIOStrategy.getInstance());
transport = builder.build();
transport.setProcessor(filterChainBuilder.build());
transport.bind(getBindAddress());
transport.start();
}
use of org.glassfish.grizzly.filterchain.FilterChainBuilder in project Payara by payara.
the class GenericGrizzlyListener method configure.
/*
* Configures the given grizzlyListener.
*
* @param networkListener The NetworkListener to configure
*/
// TODO: Must get the information from domain.xml Config objects.
// TODO: Pending Grizzly issue 54
@Override
public void configure(final ServiceLocator habitat, final NetworkListener networkListener) throws IOException {
setName(networkListener.getName());
setAddress(InetAddress.getByName(networkListener.getAddress()));
setPort(Integer.parseInt(networkListener.getPort()));
if (networkListener.getPortRange() != null) {
setPortRange(PortRange.valueOf(networkListener.getPortRange()));
}
final FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless();
configureTransport(networkListener, networkListener.findTransport(), filterChainBuilder);
bindTransport();
configureProtocol(habitat, networkListener, networkListener.findProtocol(), filterChainBuilder);
configureThreadPool(habitat, networkListener, networkListener.findThreadPool());
rootFilterChain = filterChainBuilder.build();
transport.setProcessor(rootFilterChain);
}
Aggregations