Support for RabbitMQ ?

Discussion for potential new features

Support for RabbitMQ ?

Postby ali.raza » Thu Oct 27, 2011 10:39 am

Hi,

Is there any support for the RabbitMQ ?
http://www.rabbitmq.com/

Thanks

Ali
ali.raza
 
Posts: 1
Joined: Thu Oct 27, 2011 10:35 am

Re: Support for RabbitMQ ?

Postby felix » Tue Apr 10, 2012 9:14 am

Hi,

I'm trying to do a plugin for rabbitmq, my idea is using qpid plugin as the base due to qpid is AMQP compliance like RambbitMQ. I'm not an expert with hermesjs nor amqp, but I'm seeing the code of the plugin http://code.google.com/p/hermesjms-qpid-plugin and I think it's doable.

Does anyone know where i can find some kind of tutorial of making a HermesJs plugin?

I've created a repo in my github, now it's empty :) but I hope to start adding things right now.

Thanks, Félix
felix
 
Posts: 5
Joined: Tue Apr 10, 2012 8:40 am

Re: Support for RabbitMQ ?

Postby Colin » Wed Apr 11, 2012 7:15 am

Getting your IDE set up for creating a Hermes plugin is not documented.

Here is how I do it:

1. Install HermesJMS.
1.1 Copy all the jide-XXX jar files to a separate directory "jide-install". For license reason I cannot put them into SVN.
2. Check out the code.
3. Go to Build -Path -> Libraries -> Variables.
3.1 Set HERMES_HOME to be the root of where you checked out HermesMS.
3.2 Set JIDE_HOME to the the jide-install from 1.1
3.3 Delete all references to other plugins. You don't need them.
3.4 Create a RABBITMQ_ROOT variable and use it to include the Java client libraries for RabbitMQ
4. Create the hermes.ext.rabbitmq package.
5. Add an entry in confighelper.properties for the class name of the provider and its JAR file.
6. In the build.xml copy and existing provider such as QPID.

Colin.
Colin
Site Admin
 
Posts: 913
Joined: Sun Sep 19, 2004 4:49 pm
Location: London, UK

Re: Support for RabbitMQ ?

Postby felix » Wed Apr 11, 2012 4:39 pm

Thanks a lot!

I have some doubts.
- Which IDE do you use? I use Eclipse.
- Do you add the hermes source as project before step3?
- When I try to compile with ant, i have a lot problems with the dependencies, for example with jamsel. or I'm wrong and i don't need to compile hermesjms?

Thanks, Félix
felix
 
Posts: 5
Joined: Tue Apr 10, 2012 8:40 am

Re: Support for RabbitMQ ?

Postby Colin » Thu Apr 12, 2012 6:45 am

Yes I use Eclipse you should find the .project and .classpath checked in.

Jamsel is in src/lib/selector-1.1.jar

Here is my .classpath. You can see I use variables for all of the dependencies so they either need setting in Eclipse or removing if you don't want to work on that provider.

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
   <classpathentry kind="src" path="src/java"/>
   <classpathentry kind="src" path="src/test"/>
   <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/naming-java.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/namespace.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/jta-spec1_0_1.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/naming-factory.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/relaxngDatatype.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/naming-common.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/commons-logging.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/naming-resources.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/jsp-api.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/activation.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/jasper-runtime.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/servlet-api.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/jlfgr-1_0.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/commons-beanutils.jar" sourcepath="/LOCAL/commons-beanutils-1.7.0-src/src/java"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/commons-collections.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/jaas.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/commons-digester.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/jasper-compiler.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/xsdlib.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/commons-codec-1.1.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/displaytag-1.0-b2.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/javax.jms.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/jmx.jar"/>
   <classpathentry exported="true" kind="var" path="JIDE_ROOT/lib/jide-action.jar"/>
   <classpathentry exported="true" kind="var" path="JIDE_ROOT/lib/jide-common.jar"/>
   <classpathentry exported="true" kind="var" path="JIDE_ROOT/lib/jide-components.jar"/>
   <classpathentry exported="true" kind="var" path="JIDE_ROOT/lib/jide-dialogs.jar"/>
   <classpathentry exported="true" kind="var" path="JIDE_ROOT/lib/jide-dock.jar"/>
   <classpathentry exported="true" kind="var" path="JIDE_ROOT/lib/jide-grids.jar"/>
   <classpathentry exported="true" kind="var" path="ARJUNA_ROOT/lib/ams-client.jar"/>
   <classpathentry exported="true" kind="var" path="ARJUNA_ROOT/lib/ams-client-core.jar"/>
   <classpathentry exported="true" kind="var" path="ARJUNA_ROOT/lib/ams-adminapi.jar"/>
   <classpathentry exported="true" kind="var" path="ARJUNA_ROOT/lib/ams-common.jar"/>
   <classpathentry exported="true" kind="var" path="ARJUNA_ROOT/lib/ext/mw-common.jar"/>
   <classpathentry kind="var" path="EMS_ROOT/lib/tibjms.jar"/>
   <classpathentry kind="var" path="EMS_ROOT/lib/tibjmsadmin.jar"/>
   <classpathentry exported="true" kind="var" path="FIORANO_ROOT/lib/fmq-client.jar"/>
   <classpathentry exported="true" kind="var" path="FIORANO_ROOT/lib/fmq-admin-impl.jar"/>
   <classpathentry exported="true" kind="var" path="FIORANO_ROOT/lib/fmq-common-all.jar"/>
   <classpathentry exported="true" kind="var" path="JBOSS_ROOT/client/jbossall-client.jar"/>
   <classpathentry exported="true" kind="var" path="OPENJMS_ROOT/lib/openjms-client-0.7.6.1.jar"/>
   <classpathentry exported="true" kind="var" path="WME_ROOT/lib/BrokerJMS61.jar"/>
   <classpathentry exported="true" kind="var" path="WME_ROOT/lib/client61.jar"/>
   <classpathentry exported="true" kind="var" path="WEBLOGIC_ROOT/weblogic.jar"/>
   <classpathentry exported="true" kind="var" path="SONICMQ_ROOT/lib/mgmt_agent.jar"/>
   <classpathentry exported="true" kind="var" path="SONICMQ_ROOT/lib/mgmt_client.jar"/>
   <classpathentry exported="true" kind="var" path="SONICMQ_ROOT/lib/mgmt_config.jar"/>
   <classpathentry exported="true" kind="var" path="SONICMQ_ROOT/lib/jmxri.jar"/>
   <classpathentry exported="true" kind="var" path="SONICMQ_ROOT/lib/mfcontext.jar"/>
   <classpathentry exported="true" kind="var" path="SONICMQ_ROOT/lib/sonic_Client.jar"/>
   <classpathentry exported="true" kind="var" path="SONICMQ_ROOT/lib/sonic_mgmt_client.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/xercesImpl.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/commons-dbutils-1.0.jar"/>
   <classpathentry exported="true" kind="var" path="WEBSPHERE_ROOT/java/com.ibm.mq.jar"/>
   <classpathentry exported="true" kind="var" path="WEBSPHERE_ROOT/java/com.ibm.mqjms.jar"/>
   <classpathentry exported="true" kind="var" path="WEBSPHERE_ROOT/java/commonservices.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/selector-1.1.jar" sourcepath="/LOCAL/jamsel/selector-1.1.jar"/>
   <classpathentry kind="src" path="src/resources"/>
   <classpathentry kind="var" path="WEBLOGIC_ROOT/com.bea.core.utils.full_1.0.0.0.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/log4j-1.2.15.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/jsyntaxpane-0.9.1.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/hermes-sapjms.jar"/>
   <classpathentry exported="true" kind="var" path="ORACLEAQ_ROOT/aqapi.jar"/>
   <classpathentry exported="true" kind="var" path="ORACLEAQ_ROOT/castor-1.0.5-xml.jar"/>
   <classpathentry exported="true" kind="var" path="ORACLEAQ_ROOT/ojdbc6.jar"/>
   <classpathentry exported="true" kind="var" path="ACTIVEMQ_ROOT"/>
   <classpathentry exported="true" kind="var" path="ACTIVEMQ_ROOT/lib/activemq-core-5.3.1.jar"/>
   <classpathentry exported="true" kind="var" path="JORAM_ROOT/lib/joram-client.jar"/>
   <classpathentry exported="true" kind="var" path="JORAM_ROOT/lib/joram-shared.jar"/>
   <classpathentry exported="true" kind="var" path="JORAM_ROOT/lib/ow_monolog.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/derby.jar"/>
   <classpathentry exported="true" kind="var" path="WEBSPHERE_ROOT/java/com.ibm.mq.pcf.jar"/>
   <classpathentry exported="true" kind="var" path="MX4J_ROOT/lib/mx4j.jar"/>
   <classpathentry exported="true" kind="var" path="MX4J_ROOT/lib/mx4j-tools.jar"/>
   <classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/ant.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/ArtTk.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/commons-lang-2.1.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/datatips.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/providers/imq/lib/imq.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/JyConsole.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/jython.jar"/>
   <classpathentry kind="var" path="HERMES_ROOT/src/lib/mina-core-1.1.7.jar"/>
   <classpathentry kind="var" path="HERMES_ROOT/src/lib/quickfixj-all-1.5.0.jar" sourcepath="/HOME/Applications/quickfixj/src.zip"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/tools.jar"/>
   <classpathentry exported="true" kind="var" path="HORNETQ_ROOT/client/hornetq-jms-client.jar"/>
   <classpathentry exported="true" kind="var" path="HORNETQ_ROOT/client/jnp-client.jar"/>
   <classpathentry exported="true" kind="var" path="HORNETQ_ROOT/client/hornetq-core-client.jar"/>
   <classpathentry exported="true" kind="var" path="HORNETQ_ROOT/lib/netty.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/cglib-nodep-2.2.2.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/asm-all-4.0_RC1.jar"/>
   <classpathentry exported="true" kind="var" path="HERMES_ROOT/src/lib/forms-1.3.0.jar"/>
   <classpathentry kind="output" path="ebuild/classes"/>
</classpath>
Colin
Site Admin
 
Posts: 913
Joined: Sun Sep 19, 2004 4:49 pm
Location: London, UK

Re: Support for RabbitMQ ?

Postby felix » Thu Apr 12, 2012 8:59 am

Thanks now I have the eclipse working.

So, now i can run Hermes from eclipse, the next thing i've done it's created the package ext.rabbitmq, but I don't understand the step 5 "Add an entry in confighelper.properties for the class name of the provider and its JAR file."

What jar? The plugin i'm making? If so, why do I need to add the same code in the package ext.rabbitmq?

I thought that once you have the package, you could already start the hermes (in eclipse) and add the new provider to start testing things. But It's always saying the message:"unable to locate this plugin" when I select the Plugin RabbitMQ, even though I've added the group RAbbitMq and the jars.

Thanks
felix
 
Posts: 5
Joined: Tue Apr 10, 2012 8:40 am

Re: Support for RabbitMQ ?

Postby felix » Thu Apr 12, 2012 9:28 am

I've already have the plugin working but i've just found out that the rabbitmq doesn't implement JMS, so when the tool scan the client library doesn't find any class.

I'll try with https://github.com/imatix/openamq-jms
felix
 
Posts: 5
Joined: Tue Apr 10, 2012 8:40 am


Return to New Features

Who is online

Users browsing this forum: No registered users and 1 guest