Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: Channel Removal?

  1. #1
    Join Date
    Mar 2005
    Location
    Warsaw, Poland
    Posts
    4

    Question Channel Removal?

    Hi,

    are there any plans to implement channel removal in ChannelRegistry?
    I've managed to implement simple ChannelInvoker, taking JmsInvoker as an example, and it does really work. But the problem is, that I used the idea of temporary reply channels, which are created at the request phase and never destroyed.
    Or, maybe I just don't know how-to unregister them ?

    btw, good job. I really like the idea.

    greets,
    Wojtek

  2. #2
    Join Date
    Oct 2005
    Location
    Boston, MA
    Posts
    2,840

    Default

    Wojtek,

    Thanks for the suggestion. Providing an unregister method does indeed make sense. Feel free to raise the issue in Jira: http://jira.springframework.org/browse/INT

    Regarding temporary channels, the current plan is to modify the Message 'replyChannelName' header so that actual references OR names can be used. In that case, a temporary channel would not need to be added to the registry at all - it would effectively be "anonymous" - only known to sender awaiting reply and the replier.

    Thanks,
    Mark

  3. #3
    Join Date
    Mar 2005
    Location
    Warsaw, Poland
    Posts
    4

    Default

    Hello Mark,

    I've just raised an issue for channel removal (http://jira.springframework.org/browse/INT-88) and the second one (http://jira.springframework.org/browse/INT-89).
    The latter is a feature request for channel based remoting layer. Please find an attachment with source code of what I've reached so far in making it works.

    Greetings,
    Wojtek

  4. #4
    Join Date
    Oct 2005
    Location
    Boston, MA
    Posts
    2,840

    Default

    Thanks Wojtek.

    I had a quick look at the channel invoker proxy/exporter. It's similar in some ways to what I've been working with for adding remoting (the plan is to support Spring-supported remoting protocols: RMI, HttpInvoker, Hessian/Burlap). However, I was trying to maintain loose coupling between method interception and channel adapters. In other words, there are already a few ways to pass messages between method invocations and channels: @Publisher, @Subscriber, MethodInvokingSource, and MethodInvokingTarget. None of those has any concern for remoting - instead, I was planning to provide the remoting support as channel adapters - so for example, an RmiSourceAdapter and RmiTargetAdapter. Rather than sending the RemoteInvocation as a message payload, these would be invoking send/receive on a remote channel. It's almost inside-out then - the RemoteInvocation would be the "send" and the RemoteInvocationResult would provide the Message.... the "local channel" would be a proxy for the "remote channel". I don't know if any of that makes sense, but let me know if I can clarify it a bit. My main motivation for taking that approach is to maintain the primacy of the asynchronous "Document Message"-driven model as opposed to an RPC model.

    By the way, the registry's unregister method should be available shortly... I will post another comment here.

    Thanks again,
    Mark

  5. #5
    Join Date
    Oct 2005
    Location
    Boston, MA
    Posts
    2,840

    Default

    The channel registry's unregister method is now available (on the SVN head): http://jira.springframework.org/browse/INT-88

    -Mark

  6. #6
    Join Date
    Mar 2005
    Location
    Warsaw, Poland
    Posts
    4

    Default

    Thanks Mark,

    I've already downloaded sources and started testing.

    Wojtek

  7. #7
    Join Date
    Oct 2005
    Location
    Boston, MA
    Posts
    2,840

    Default

    Wojtek,

    Please let me know how it goes. I will also be experimenting a bit with the anonymous replyChannel (and 0-capacity "direct handoff" option for channels) as mentioned earlier.

    Thanks again,
    Mark

  8. #8
    Join Date
    Feb 2008
    Posts
    13

    Default ReplyTo Header Property

    I think this question falls in the same category as the discussion above.

    Situation:
    I will get a message with a tempQueue as the replyTo destination. Looking at the milestone code, I see that the message is picked up by the ChannelPublishingJmsListener. It converts the transport specific JMS Message to the Spring Message format. However, in the process, we seem to lose the header.

    Question:
    -Am I missing something? If not is this a bug and the replyTo will go to the replyChannel?
    -Would it be possible to inject the message converters/mappers into the ChannelPublishingJmsListener? This would allow me to plug-in my own logic if I have anything weird to do in terms of message production.

    I would very much appreciate your response

  9. #9
    Join Date
    Oct 2005
    Location
    Boston, MA
    Posts
    2,840

    Default

    Check out the very latest version. The 'message-converter' ref attribute is now available on <jms-source> (or you can of course use a generic <bean> element to define the JmsMessageDrivenSourceAdapter).

    -Mark

  10. #10
    Join Date
    Feb 2008
    Posts
    13

    Default

    Thanks for the amazingly quick response!

    It took me a while to figure out some build issues, but registering the converter works now: I will test it in earnest tomorrow.

    I did think of overriding the JmsMessageDrivenSourceAdapter, but what stopped me was that I would have had to overwrite a reasonably bulky function; I was hoping to be able to simply override a method like: newMessageConverter()... essentially the equivalent of injection. Anyway, your suggestion is better, so I will run with it.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •