Spring Integration Control Bus message to change selector of a JMS Inbound Channel Adapter -
i'm implementing flow on spring integration-based (ver. 3.0.1.release) application requires store messages on jms queue picked later. that, i've been trying use spring integration jms inbound channel adapter custom selector, , picking message queue changing jms selector of jmsdestinationpollingsource matching id included header property.
one of requirements cannot add new service or java method, i've been trying sort out using control bus, keep receiving same error when send message set messageselector
different.
inbound channel adapter definition:
<int-jms:inbound-channel-adapter id="inboundadapter" channel="inboundchannel" destinationname="bufferqueue" connection-factory="connectionfactory" selector="matchingid = 'no value'"> <int:poller fixed-delay="1000"/> </int-jms:inbound-channel-adapter>
message:
@'inboundadapter.source'.setmessageselector("matchingid = 'value'")
error:
evaluationexception: method 'public void org.springframework.integration.jms.jmsdestinationpollingsource.setmessageselector(java.lang.string)' not supported command processor. if usign control bus, consider adding @managedoperation or @managedattribute.
which, afaik, means jmsdestinationpollingsource
class not control bus manageable, it's not passing controlbusmethodfilter.
is approach nonviable, or there i'm missing? there way set selector dynamically using si xml configuration files only?
first of strange use java tool , don't allow write code on java...
but choice, or said requirements.
change employer! ;-)
that's correct: control bus allows @managedoperation
, @managedattribute
method. since jmsdestinationpollingsource.setmessageselector
. can make that. make sense if can reach bit different approach?
<int:outbound-channel-adapter id="changeselectorchannel" ref"inboundadapter.source method="setmessageselector"/>
where new selector expression should payload
of message channel.
Comments
Post a Comment