RRiBbit 2.3.0: Further Spring Integration

RRiBbit is the most advanced, versatile and easy to use Open Source Eventbus in the Java World. You can use it within a Java application, to have different classes/components talk to each other without needing dependencies on one another, and you can use it to communicate with other Java applications on other machines.

RRiBbit improves upon existing Eventbuses by being compatible with existing code and by allowing the listeners to send something back to the senders. That's why we like to use the term Request-Response-Bus.

Version 2.3.0 improves the recently added HTTP support by integrating it with the Spring Framework. This means that the RRiBbit Servlet now automatically initializes itself with RRiBbit beans from your Spring Context.

Another improvement is the support for multiple dispatchers, so that one Request can now be sent to multiple remote destinations in one call. The responses will automatically be aggregated and returned to the sender.

Check out www.rribbit.org or download the latest version here.
Gert-Jan Schouten, MSc. is a Senior Software Architect / Engineer specialized in Java and Development Infrastructure. At this blog, he writes about his personal visions and thoughts.

Back to blog-index

Share |

17 thoughts on “RRiBbit 2.3.0: Further Spring Integration

  1. Hello Kangs, thanks for your response!

    Unfortunately, there is no Chinese Documentation, as I don’t know Chinese and English is the main language in Java Software Development. As far as JavaDoc is concerned, only a single language can be used to document the actual class files and for RRiBbit, English was chosen.

  2. Schouten:

    Thanks a lot for providing such for integration between projects.

    In actual practise, I found the rribbit should improve the support of SpringBeanClassBasedListenerObjectCreator for classes annotated with @Listener with the configuration of “packageNames”. for once I deployed those in bat or shell enviroment I didn’t
    get those listener classes loaded from the configuration just like this:

    ${WBANK_LISTENER_CLASS}

    ${WBANK_LISTENER_PACKAGE}

    as shown above WBANK_LISTENER_PACKAGE is from another project with some classes annotated with @Listener. but once I deployed them in jar and started it
    like java -cp XXX1.jar;xxx2.jar I could not find that the creator load the classes while
    we set the classNames(the actual class with the @Listener, that such way worked fine.)

    so I dare say that it might be something ignored to load the classes from jar,so I hope
    you could point out whether I was wrong to make it run or improve the support towards packages support. for once we had many projects to be integrated resort to rribbit. packages configruation will be more appreciated.

    Looking forward to your reply soon and best wishes.

    jerryscott

  3. Schouten:

    It will be much appreciated once you leave us your explanation towards my doubtness
    occured in last mail.

    maybe add more support in balance or more protocol just like the zenbi described that it will support jrmp protocol.

    hope you can reply soon.
    jerryscott

  4. Hello Jerry,

    Thanks for your comment!

    As I understand, you’re having problems with using the SpringBeanClassBasedListenerObjectCreator because it does not scan the packages that you specify, whereas it does work if you just scan the classes?

    In this Thread, I can only see ${WBANK_LISTENER_CLASS} and ${WBANK_LISTENER_PACKAGE}, I’m not sure that that is what you were trying to say. This blog is created with WordPress, so it could be that WordPress is messing things up… If you could specify how I can reproduce the error, then I will try and fix it as soon as possible. To avoid further WordPress issues, you can send your issue to info@rribbit.org that way, you can be sure that your example code arrives in one piece.

    Again, thanks for your comment and your interest in RRiBbit. Community feedback such as yours is highly appreciated!

  5. Also, you mentioned that you would like to see more protocols supported. Currently, RRiBbit supports RMI (over JRMP), JMS and HTTP. What other protocols would you like to see in RRiBbit?

  6. Hello, I’ve managed to replicate it on my own and I’ve identified the problem. It will be fixed in the next release, which is due before the end of May. Until then, I hope you can get by with using the class based configuration.

  7. Hello Schouten,
    I designed a similar framework in the original system, and now I hope to be able to use RRiBbit.But now there is a problem, whether a listener can listen on more than one hint, such as a log system,i want this code @Listener(hint=”login,add”),but it cannot work,how can i solve this problem?Thanks.

  8. Hello Dennis,

    Thanks for your comment! I see what you mean. Unfortunately, RRiBbit does not support multiple hints per listener, but now that you’ve mentioned it, I’ve put it on the list of future requirements, which means that it will be out in a few months.

    In the meantime, you could have 2 methods, each with a Listener, one of them has the functionality, whereas the other simply calls the first method. It’s a bit of a hack, but it will work until the new functionality is released.

  9. Hello Dennis and Jerry,

    I would like to inform you that RRiBbit 2.4.0 has been released, which solves both of your issues, i.e. the package scanning problem and the ability to add multiple hints per Listener. I hope this will satisfy your requirements. If you need any assistance, I’d be more than happy to help.

    Cheers!

    Gert-Jan

  10. You’re welcome! By the way, the different hints have to be separate strings, like @Listener(hint={“foo”,”bar”}) instead of a comma separated string in your example. Let me know if it works all right :-)

  11. Hello Schouten,
    It works well. When i used it deeper, I think i can give you a suggestion。

    Now we config listeners like below:

    com.***.LogListener
    com.***.PointListener

    And i config like this

    com.***

    It need config all the Listeners in one bean。I think it’s better to allow config in any where,every module in application can config it’s own creator。These users who write the module code does not have the permission to rewrite the global config,and the module listener class may In different ClassLoader。
    I hope you will consider this suggestion。

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>