<div dir="ltr"><div class="gmail_quote"><div>Matthias, <br>&nbsp;<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Bear in mind that the Erlang client code base can operate in both direct and networked mode. For the former you definitely need a server.</blockquote>
<div>&nbsp;</div><div class="Ih2E3d">I do understand, but there should be separate direct network clients. I think it&#39;s asking for trouble, and untidy, to have references in code to something that it will never use and will crash if it ever magically does try to use it. It also confuses dependency analysis tools. I want to build a release consisting only of modules that are needed for a network client, for a sort of embedded server scenario. As things stand now, I will have to pull in some or all of the rabbitmq_server application, and I will have to have the server code installed on the build system even if I am never going to use it on that system. Maybe I am being picky here (call me &quot;purist&quot;, if you must), but that doesn&#39;t feel right to me. I didn&#39;t need the server code to build client-related code with WebSphere MQ.<br>

<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I respectfully suggest that the above RabbitMQ server modules, and their dependencies, be bundled with the Erlang client. Ideally, I would think it would be best perhaps to put them a separate Erlang library application (maybe &quot;rabbitmq_common&quot;) that is used both by the server and the Erlang client.<br>

</blockquote>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The above is on our todo list. Refactoring the code is the easy part. The challenges are in:<br>
<br>
- updating the module structure of the VCS - is rabbitmq_common going to be a separate HG module?</blockquote><div><br>That depends. Is it something that is reusable in a number of contexts? If so, I would say yes, although I am not sure what the HG-specific consequences are of having a separate HG module.<br>
&nbsp;<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
- figuring out how rabbitmq_common will be distributed. This can be a combination of all of the following: a) separately, b) as part of the Erlang client and server source packages, c) as part of the Erlang client and server binary packages. Then there also the Debian and RPM packages to consider - are we going to have a separate packages for rabbitmq_common or will it be bundled with the existing packages?</blockquote>
<div>&nbsp;</div><div>I think of this as a library on which multiple different applications depend, something like glibc. It needs to be there, in the correct version, before you can install packages that depend on it. So it needs to be a separately installable app. rabbitmq_server.app, rabbitmq_direct_client.app, and rabbitmq_network_client.app will all show rabbitmq_common as an included_application. <br>
<br>If you do this, I believe it fits in to the Debian/RPM/Yum/YaST/Uncle Tom Cobbleigh and all&#39;s dependency model.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Depending on the above choices a significant amount of work needs to be put into revising the build system, the packaging system, our automated deployment system, the documentation, and parts of the web site.<br>
</blockquote><div><br>That&#39;s for sure!<br>&nbsp;<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
That&#39;s why it hasn&#39;t happened yet.<div class="Ih2E3d"></div></blockquote><div><br>I understand. I was just caught by surprise trying to create what is effectively an embedded client. I&#39;ve been trying to tease apart the dependencies of many products for a few days now :(<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Regards,<br><font color="#888888">
<br>
Matthias.<br>
<br>
</font></blockquote></div><br></div>