Search code examples
erlangrabbitmqmongoose-im

How to build erlang AMQP client in Mongooseim


I am new in erlang. I am trying to build RabitMQ Erlang AMQP client library with my mongoose source so that I can use the library within my mongooseim modules. I downloaded the library source from here. The .ez file contains two directories, ebin and includes. ebin contains .beam files and include contains erlang .hrl files. Will it work if I drop all the .hrl files into mongooseim's apps/ejabberd/include directory and all .beam files into ebin directory? I am using make and make rel for compiling mongooseim.


Solution

  • I found its much easier and cleaner using Jon Brisbin's rebar friendly amqp library (https://github.com/jbrisbin). All I had do is to add rabbit_common and amqp_client repo in my dependency list from rebar.config file.

    diff --git a/rebar.config b/rebar.config
    index c719d98..cafdb0f 100644
    --- a/rebar.config
    +++ b/rebar.config
    @@ -36,6 +36,8 @@
       {pa, ".*", {git, "git://github.com/lavrin/pa.git", "c616d3f9"}},
       {ecoveralls, ".*", {git, "git://github.com/nifoc/ecoveralls.git", "40fa0d2f2057fff29e964f94fccf6ef2f13d34d2"}},
       {mustache, ".*", {git, "git://github.com/mojombo/mustache.erl.git", "d0246fe143058b6404f66cf99fece3ff6e87b7ed"}},
    +  {rabbit_common, ".*", {git, "git://github.com/jbrisbin/rabbit_common.git", "rabbitmq-3.5.0"}},
    +  {amqp_client, ".*", {git, "git://github.com/jbrisbin/amqp_client.git", {tag, "rabbitmq-3.5.0"}}},
       {recon, "2.2.1", {git, "git://github.com/ferd/recon.git", {tag, "2.2.1"}}}
      ]}.
    

    Then make and make rel. I can include amqp_client header from any mongooseim module using:

    -include_lib("amqp_client/include/amqp_client.hrl").