Issue: Message properties not being sent as part of JMS message added to a
queue or topic. After searching on JIRA we found that this may have been due
to changes to implementation of JMS endpoints (SM-510)

We are setting message properties in a normalized message which is then sent
to a JMS topic. JMS subscribers to the topic consume message based on
message selector. But as the properties set in normalized message are
stripped during converting it to a JMS message the messages are not
consumed. We have created a custom JMS Provider Marshaller which is actually
a merge between the current
org.apache.servicemix.jms.endpoints.DefaultProviderMarshaler and
org.apache.servicemix.components.jms.JmsMarshaler.

We think this should be the default behavior of the
DefaultProviderMarshaller and hence decided to post it on forum. ServiceMix
committers can decide if they want to include the patch.

Regards,
Sandeep

http://www.nabble.com/file/p18214389/DefaultProviderMarshaler.java
DefaultProviderMarshaler.java 

sandeep reddy wrote:
> 
> 
> Hi,
>     
>     Is that something getting confusing details provided or else should i
> need to provider more 
> details on these?
> 
>      It's just the question :
> 
>           when message went to topic i noticed that there is no any
> properties (using JCONSOLE) ? how 
> to get rid of this problem?
> 
> Thanks,
> Sandeep.
> 
> 
> 
> sandeep reddy wrote:
>> 
>> Hi Gert,
>> 
>>     Thanks for replying.
>>      I tried your solution for iterating the set and and creating a
>> comma-separated string.
>> 
>>     Application Flow:
>> 
>>     Bean-SU --> Camel-SU ---> JMSProvider-SU(Topic) ---> JMSConsumer-SU
>> 
>> 
>>     In above flow, Bean-SU creating the comma-separated string and sets
>> this as a property for the message. Camel-Su forwards the message to
>> JMSProvider (Topic).
>> 
>>     Messages in the topic do not contain any properties (observed using
>> JCONSOLE).
>> 
>>     So my JMSConsumer is not able to consume any message, since
>> messageSelector criteria never matches.
>> 
>>     Camel SU:
>>     <route>
>>       <from
>> uri="jbi:service:http://servicemix.in2m.com/operations/updateprofile/routingService"/>
>>       <to
>> uri="jbi:service:http://servicemix.in2m.com/operations/updateprofile/JMSProviderService?mep=in-only"/>
>>     </route>
>> 
>>     JMSConsumerSU:
>> 
>>           <jms:consumer service="hello:JMSConsumerService"
>>                   endpoint="DirectorConsumer"
>>                     targetService="hello:DirectorService"
>>                   pubSubDomain="true"
>>                   destinationName="updateUserProfileTopic"
>>                   connectionFactory="#connectionFactory"
>>                   messageSelector="userPrincipals LIKE '%smx1%'" />
>>    
>>    
>>    plz help me?
>> 
>> Sandeep
>> 
>> 
>> Gert Vanthienen wrote:
>>> 
>>> Sandeep Reddy,
>>> 
>>> I don't think that is possible with JMS Message selector syntax.  It 
>>> does have an IN keyword like SQL, but that one only takes a collection 
>>> of String literals.  There as some examples of what you can do in 
>>> http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/selector/SelectorTest.java?revision=408638.
>>> 
>>> For your use case, you could expand the list of userPrincipals in a 
>>> comma-separated syntax and use the LIKE expression syntax go check it.
>>> 
>>> Regards,
>>> 
>>> Gert
>>> 
>>> sandeep reddy wrote:
>>>> I have servicemix-camel 3.2.2 snapshot in my ServiceMix 3.2.1 instance.
>>>>
>>>> I need to implement JMS Consumer which subscribe to a topic but only
>>>> accept
>>>> a message based on selection criteria specified in messageSelector. My
>>>> message contains a property which is a List object containing String
>>>> elements. My JMS consumer need to accept a message based on the
>>>> contents in
>>>> the List. I am not able to figure out how to write a message selection
>>>> criteria for it in a single string. I have implemented similar logic in
>>>> Camel in Java using header("userPrincipals").contains("portal") but not
>>>> sure
>>>> on how to what to set in message selector.
>>>>
>>>> Please advice.
>>>>
>>>> Thanks in advance,
>>>> Sandeep Reddy
>>>>
>>>>
>>>>   
>>> 
>>> 
>>> 
>>> -----
>>> ---
>>> Gert Vanthienen
>>> http://www.anova.be
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/help-with-JMSConsumer-message-selector--tp18033749p18214389.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to