Example usage for org.apache.mina.filter.codec ProtocolCodecFilter ProtocolCodecFilter

List of usage examples for org.apache.mina.filter.codec ProtocolCodecFilter ProtocolCodecFilter

Introduction

In this page you can find the example usage for org.apache.mina.filter.codec ProtocolCodecFilter ProtocolCodecFilter.

Prototype

public ProtocolCodecFilter(ProtocolEncoder<MESSAGE, ENCODED, ENCODING_STATE> encoder,
        ProtocolDecoder<ENCODED, MESSAGE, DECODING_STATE> decoder) 

Source Link

Document

Creates a new instance of ProtocolCodecFilter, with the specified encoder and decoder.

Usage

From source file:com.betfair.cougar.netutil.nio.NioConfig.java

License:Apache License

protected void configureProtocol(BaseIoServiceConfig config, boolean isServer) throws IOException {

    ByteBuffer.setUseDirectBuffers(useDirectBuffersInMina);

    config.getFilterChain().addLast("slowHandling",
            new SessionWriteQueueMonitoring(nioLogger, maxWriteQueueSize));
    config.getFilterChain().addLast("codec", new ProtocolCodecFilter(new CougarProtocolEncoder(nioLogger),
            new CougarProtocolDecoder(nioLogger)));
    if (isServer) {
        config.getFilterChain().addLast("protocol", CougarProtocol.getServerInstance(nioLogger,
                keepAliveInterval, keepAliveTimeout, null, false, false));
    } else {//from  w  w w.ja v a  2 s  .  c  o m
        config.getFilterChain().addLast("protocol", CougarProtocol.getClientInstance(nioLogger,
                keepAliveInterval, keepAliveTimeout, null, false, false, rpcTimeoutMillis));
    }

    config.setThreadModel(ThreadModel.MANUAL);
}

From source file:com.betfair.cougar.netutil.nio.TlsNioConfig.java

License:Apache License

protected void configureProtocol(BaseIoServiceConfig config, boolean isServer) throws IOException {
    try {//from  w w  w  .  ja va  2  s.  c o  m
        ByteBuffer.setUseDirectBuffers(isUseDirectBuffersInMina());

        SslContextFactory factory = new SslContextFactory();
        if (isServer) {
            if (supportsTls) {
                KeyStoreManagement keystoreMgmt = getKeystoreCertificateChains();
                if (keystoreMgmt == null) {
                    throw new IllegalStateException(
                            "This configuration ostensibly supports TLS, yet doesn't provide valid keystore configuration");
                }
                factory.setKeyManagerFactoryKeyStore(keystoreMgmt.getKeyStore());
                factory.setKeyManagerFactoryKeyStorePassword(keystorePassword);
                if (wantClientAuth) {
                    KeyStoreManagement truststoreMgmt = getTruststoreCertificateChains();
                    if (truststoreMgmt == null) {
                        throw new IllegalStateException(
                                "This configuration ostensibly supports client auth, yet doesn't provide valid truststore configuration");
                    }
                    factory.setTrustManagerFactoryKeyStore(truststoreMgmt.getKeyStore());
                }
            }
        } else {
            if (supportsTls) {
                KeyStoreManagement truststoreMgmt = getTruststoreCertificateChains();
                if (truststoreMgmt == null) {
                    throw new IllegalStateException(
                            "This configuration ostensibly supports TLS, yet doesn't provide valid truststore configuration");
                }
                factory.setTrustManagerFactoryKeyStore(truststoreMgmt.getKeyStore());
                if (wantClientAuth) {
                    KeyStoreManagement keystoreMgmt = getKeystoreCertificateChains();
                    if (keystoreMgmt == null) {
                        throw new IllegalStateException(
                                "This configuration ostensibly supports client auth, yet doesn't provide valid keystore configuration");
                    }
                    factory.setKeyManagerFactoryKeyStore(keystoreMgmt.getKeyStore());
                    factory.setKeyManagerFactoryKeyStorePassword(keystorePassword);
                }
            }
        }
        SSLFilter sslFilter = null;
        if (supportsTls) {
            sslFilter = new SSLFilter(factory.newInstance());
            sslFilter.setWantClientAuth(wantClientAuth);
            sslFilter.setNeedClientAuth(needClientAuth);
            sslFilter.setUseClientMode(!isServer);
            String[] cipherSuites = allowedCipherSuites == null || "".equals(allowedCipherSuites.trim()) ? null
                    : allowedCipherSuites.split(",");
            if (cipherSuites != null) {
                sslFilter.setEnabledCipherSuites(cipherSuites);
            }
        }

        CougarProtocol protocol;
        if (isServer) {
            protocol = CougarProtocol.getServerInstance(getNioLogger(), getKeepAliveInterval(),
                    getKeepAliveTimeout(), sslFilter, supportsTls, requiresTls);
        } else {
            protocol = CougarProtocol.getClientInstance(getNioLogger(), getKeepAliveInterval(),
                    getKeepAliveTimeout(), sslFilter, supportsTls, requiresTls, getRpcTimeoutMillis());
        }

        config.getFilterChain().addLast("slowHandling",
                new SessionWriteQueueMonitoring(getNioLogger(), getMaxWriteQueueSize()));
        config.getFilterChain().addLast("codec", new ProtocolCodecFilter(
                new CougarProtocolEncoder(getNioLogger()), new CougarProtocolDecoder(getNioLogger())));
        config.getFilterChain().addLast("protocol", protocol);

        config.setThreadModel(ThreadModel.MANUAL);
    } catch (Exception e) {
        throw new IOException("Unable to initialise MINA", e);
    }
}

From source file:com.dinstone.jrpc.transport.mina.MinaAcceptance.java

License:Apache License

@Override
public MinaAcceptance bind() {
    // This socket acceptor will handle incoming connections
    acceptor = new NioSocketAcceptor(transportConfig.getNioProcessorCount());
    acceptor.setReuseAddress(true);//from   w  ww  . ja  v  a  2 s. co m
    acceptor.setBacklog(128);

    SocketSessionConfig sessionConfig = acceptor.getSessionConfig();
    sessionConfig.setTcpNoDelay(true);

    // set read buffer size
    sessionConfig.setReceiveBufferSize(16 * 1024);
    sessionConfig.setSendBufferSize(16 * 1024);

    // get filter chain builder
    DefaultIoFilterChainBuilder chainBuilder = acceptor.getFilterChain();

    // add message codec filter
    final TransportProtocolEncoder encoder = new TransportProtocolEncoder();
    final TransportProtocolDecoder decoder = new TransportProtocolDecoder();

    encoder.setMaxObjectSize(transportConfig.getMaxSize());
    decoder.setMaxObjectSize(transportConfig.getMaxSize());
    chainBuilder.addLast("codec", new ProtocolCodecFilter(encoder, decoder));

    // add keep alive filter
    KeepAliveFilter kaFilter = new KeepAliveFilter(new PassiveKeepAliveMessageFactory(), IdleStatus.BOTH_IDLE);
    kaFilter.setRequestInterval(transportConfig.getHeartbeatIntervalSeconds());
    kaFilter.setForwardEvent(true);
    chainBuilder.addLast("keepAlive", kaFilter);

    // add business handler
    acceptor.setHandler(new MinaIoHandler());

    try {
        acceptor.bind(serviceAddress);

        int processorCount = transportConfig.getBusinessProcessorCount();
        if (processorCount > 0) {
            NamedThreadFactory threadFactory = new NamedThreadFactory("Mina-BusinssProcessor");
            executorService = Executors.newFixedThreadPool(processorCount, threadFactory);
        }
    } catch (Exception e) {
        throw new RuntimeException("can't bind service on " + serviceAddress, e);
    }
    LOG.info("mina acceptance bind on {}", serviceAddress);

    return this;
}

From source file:com.dinstone.jrpc.transport.mina.MinaConnector.java

License:Apache License

private void initConnector(InetSocketAddress isa, TransportConfig config) {
    // create connector
    ioConnector = new NioSocketConnector(1);
    ioConnector.setConnectTimeoutMillis(config.getConnectTimeout());

    SocketSessionConfig sessionConfig = ioConnector.getSessionConfig();
    sessionConfig.setTcpNoDelay(true);/*from w w  w.  j a va2 s  .  c om*/
    sessionConfig.setReceiveBufferSize(8 * 1024);
    sessionConfig.setSendBufferSize(8 * 1024);

    DefaultIoFilterChainBuilder chainBuilder = ioConnector.getFilterChain();

    final TransportProtocolEncoder encoder = new TransportProtocolEncoder();
    final TransportProtocolDecoder decoder = new TransportProtocolDecoder();
    encoder.setMaxObjectSize(config.getMaxSize());
    decoder.setMaxObjectSize(config.getMaxSize());
    // add filter
    chainBuilder.addLast("codec", new ProtocolCodecFilter(encoder, decoder));

    // add keep alive filter
    ActiveKeepAliveMessageFactory messageFactory = new ActiveKeepAliveMessageFactory(config.getSerializeType());
    KeepAliveFilter kaFilter = new KeepAliveFilter(messageFactory, IdleStatus.BOTH_IDLE);
    kaFilter.setRequestInterval(config.getHeartbeatIntervalSeconds());
    kaFilter.setForwardEvent(true);
    chainBuilder.addLast("keepAlive", kaFilter);

    // set handler
    ioConnector.setHandler(new MinaIoHandler());

    ioConnector.setDefaultRemoteAddress(isa);
}

From source file:com.easyway.spring.apache.tapedeck.Main.java

License:Apache License

public static void main(String[] args) throws Exception {
    SocketAcceptor acceptor = new NioSocketAcceptor();
    acceptor.setReuseAddress(true);/*from  w  w  w.  ja  v  a2 s  . com*/
    ProtocolCodecFilter pcf = new ProtocolCodecFilter(new TextLineEncoder(), new CommandDecoder());
    acceptor.getFilterChain().addLast("log1", new LoggingFilter("log1"));
    acceptor.getFilterChain().addLast("codec", pcf);
    //        acceptor.getFilterChain().addLast("authentication", createAuthenticationIoFilter());
    acceptor.getFilterChain().addLast("log2", new LoggingFilter("log2"));
    acceptor.setHandler(createIoHandler());
    acceptor.bind(new InetSocketAddress(PORT));
}

From source file:com.evangel.example.tapedeck.Main.java

License:Apache License

public static void main(String[] args) throws Exception {
    SocketAcceptor acceptor = new NioSocketAcceptor();
    acceptor.setReuseAddress(true);/*from  w ww . j  a  v  a2s .  c  o  m*/
    ProtocolCodecFilter pcf = new ProtocolCodecFilter(new TextLineEncoder(), new CommandDecoder());
    acceptor.getFilterChain().addLast("log1", new LoggingFilter("log1"));
    acceptor.getFilterChain().addLast("codec", pcf);
    // acceptor.getFilterChain().addLast("authentication",
    // createAuthenticationIoFilter());
    acceptor.getFilterChain().addLast("log2", new LoggingFilter("log2"));
    acceptor.setHandler(createIoHandler());
    acceptor.bind(new InetSocketAddress(PORT));
}

From source file:com.fepss.rpc.client.RpcChannelImpl.java

License:Apache License

private void addProtobufCodec(DefaultIoFilterChainBuilder filterChain) {
    filterChain.addLast("protobuf", new ProtocolCodecFilter(new ProtobufEncoder(), new ProtobufDecoder() {
        @Override/*from  w w  w  .java  2s.co m*/
        protected Message.Builder newBuilder() {
            return RpcProtobuf.Response.newBuilder();
        }
    }));
}

From source file:com.fepss.rpc.server.impl.RpcServerImpl.java

License:Apache License

private void addProtobufCodec(DefaultIoFilterChainBuilder chain) {
    chain.addLast("protobuf", new ProtocolCodecFilter(new ProtobufEncoder(), new ProtobufDecoder() {
        @Override/*from ww  w .j  a va2s  .c o m*/
        protected Builder newBuilder() {
            return RpcProtobuf.Request.newBuilder();
        }
    }));
}

From source file:com.ibm.streamsx.topology.internal.tester.tcp.TCPTestClient.java

License:Open Source License

public TCPTestClient(InetSocketAddress addr) {
    this.addr = addr;
    connector.setConnectTimeoutMillis(5000);

    IoFilter tupleEncoder = new ProtocolCodecFilter(new TestTupleEncoder(), new TestTupleDecoder());

    connector.getFilterChain().addLast("tuples", tupleEncoder);

    connector.setHandler(new IoHandlerAdapter());
}

From source file:com.ibm.streamsx.topology.internal.tester.tcp.TCPTestServer.java

License:Open Source License

/**
 * Initialize the MINA server./*w  ww.  j a  v a  2  s .co m*/
 */
public TCPTestServer(int port, IoHandler handler) throws Exception {

    acceptor = new NioSocketAcceptor();

    IoFilter tupleEncoder = new ProtocolCodecFilter(new TestTupleEncoder(), new TestTupleDecoder());

    acceptor.getFilterChain().addLast("testtuples", tupleEncoder);

    acceptor.setHandler(handler);

    // Get the bind address now so the majority of
    // errors are caught at initialization time.
    bindAddress = new InetSocketAddress(InetAddress.getLocalHost(), port);
}