[ https://issues.apache.org/activemq/browse/CAMEL-2237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=56187#action_56187 ]
Martin Krasser commented on CAMEL-2237: --------------------------------------- Maybe instead of using {{useDefaultCodec}} (with default value true) we should use {{allowDefaultCodec}} (with default value true) because a default codec is only installed if the {{codec}} parameter is {{null}} and the {{textline}} parameter is {{false}}. With {{useDefaultCodec}} a user might expect that the default codec is enforced (i.e. always used) which is not the case. An {{allowDefaultCodec}} parameter expresses more closely what the component is actually doing. > Improper ordering of MINA filters > --------------------------------- > > Key: CAMEL-2237 > URL: https://issues.apache.org/activemq/browse/CAMEL-2237 > Project: Apache Camel > Issue Type: Bug > Components: camel-mina > Affects Versions: 2.1.0 > Reporter: Dmytro Rud > Assignee: Martin Krasser > Fix For: 2.2.0 > > Attachments: camel-mina-20091130.patch > > > When we want to use SSL on the consumer side, MINA's SSLFilter must be > inserted as the very first filter into the chain (or, at least, as the second > one after an {{ExecutorFilter}}), but it is currently not possible, because > {{MinaComponent#createSocketEndpoint()}} always inserts a > {{ProtocolCodecFilter}} at the very beginning by calling > {{configureCodecFactory()}}. > A proposed workaround is to introduce an additional URL parameter > _noDefaultCodec_ which prohibits the installation of the default protocol > codec filter. The protocol codec must be then configured manually, e.g. using > Spring: > {quote} > <bean id="sslFilter" class="org.apache.mina.filter.SSLFilter"> > <constructor-arg> > <bean class="javax.net.ssl.SSLContext" factory-method="getDefault" /> > </constructor-arg> > </bean> > <bean id="codecFilter" > class="org.apache.mina.filter.codec.ProtocolCodecFilter"> > <constructor-arg ref="hl7codec" /> > </bean> > <bean id="hl7codec" class="org.apache.camel.component.hl7.HL7MLLPCodec" /> > <bean id="minaFilters" class="java.util.ArrayList"> > <constructor-arg> > <list value-type="org.apache.mina.common.IoFilter"> > <ref bean="sslFilter" /> > <ref bean="codecFilter" /> > </list> > </constructor-arg> > </bean> > {quote} > After that, the consumer endpoint URL can look like > {{from("mina:tcp://0.0.0.0:8888?sync=true&lazySessionCreation=true&noDefaultCodec=true&filters=#minaFilters")}}. > I am not sure whether this approach is optimal, therefore I call it > "workaround" and not "solution". The corresponding patch is attached. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.