boolean sync = getAndRemoveParameter(parameters, "sync", Boolean.class, false);
boolean minaLogger = getAndRemoveParameter(parameters, "minaLogger", Boolean.class, false);
String encoding = getAndRemoveParameter(parameters, "encoding", String.class);
String codec = getAndRemoveParameter(parameters, "codec", String.class);
DatagramConnectorConfig connectorConfig = new DatagramConnectorConfig();
configureDataGramCodecFactory("MinaProducer", connectorConfig, encoding, codec);
if (minaLogger) {
connectorConfig.getFilterChain().addLast("logger", new LoggingFilter());
}
// set connect timeout to mina in seconds
long connectTimeout = timeout > 0 ? timeout : DEFAULT_CONNECT_TIMEOUT;
connectorConfig.setConnectTimeout((int)(connectTimeout / 1000));
DatagramAcceptorConfig acceptorConfig = new DatagramAcceptorConfig();
configureDataGramCodecFactory("MinaConsumer", acceptorConfig, encoding, codec);
acceptorConfig.setDisconnectOnUnbind(true);
// reuse address is default true for datagram