One of the tasks that has been the subject of debate within the BlackTie team is the subject of a deployable artifact format for the C++ XATMI services.
We have created a Jira issue for this:
We have scheduled the implementation for this two sprints down the track so in the mean time if you would like to get involved with suggestions and so forth we are available on IRC (http://www.jboss.org/blacktie/irc.html) or the forum or Jira.
The current implementation is a standalone C++ server process, but we also have ideas around JNI integration to an EJB/MDB or maybe an OSGI bundle.
Thanks in advance for any contributions you make!
As a follow up to this:
One route that we are currently considering is to provide a simple Microcontainer plugin: http://www.jboss.org/jbossmc/
This should hopefully allow us to integrate into the JON tooling as well as launch the C services via JNI.
A few Qs first so I get a feeling for what exactly you do and want. :-)
How exactly do you currently deploy BlactTie stuff?
(OK, the server is C++ standalone process)
What's the deployment unit?
As it's been a while since I did JNI,
how hard or how exactly would you launch your services?
Afaik you load your .dll into system cl, and then get a handle on your native code.
I doubt we can make anything smaller that the current JBossAS.
Since currently the only thing that knows how to talk to JON (and not even this in a full extent) is the JBossAS's ProfileService (PS).
Good thing is that PS was stripped out as a spi,
and I believe Scott is doing some embedded experiments with it.
WRT small runtime env
Have a look at my MC demos env:
It's fully mavenized, hence trivial to setup in IDE.
The bootstrap is very simple, but it does the job.
The actual integration work
* C service via JNI --> deployers usage
* JON extensions --> hooking onto JNI interfaces + wrapping it with Managed/MetaType annotated objects
* PS exposure --> nag PS people to make it standalone :-)
Thankyou very much for your response here are the answers:
1. Deployment is currently achieved at the "server" level, this is an executable native binary which allows individual "services" to be started/stopped but not new ones added, ergo, the deployment unit is the "server (.exe)" so to speak
2. I can already launch this deployment unit (when compiled as a shared library instead of executable) from JNI (and can debug it with GDB - if readers are interested you may like to check out a wiki article we put together on it https://www.jboss.org/community/docs/DOC-13325)
3. Re: the comments on JON, point taken and very useful pointers for me
4. Re, the microcontainer demo, thanks for the pointer and I will certainly look into this
Thanks again for your time and I think we will continue to pursue the idea of creating a Microcontainer service wrapper for our JNI "server" with a proof of concept piece of work in the next few weeks.