A related question:
The QuickStart guide mentions that connectionFactory objects can be instantiated without using JNDI - does anyone know how?
Here is a snippet that instantiates a TopicConnection without using JNDI. Connection is made to a local JBoss3.0.4 instance. This example uses UIL, but you use OIL if you just change the port to 8090, and pretty much put OIL everywhere you see UIL.
Properties sILprops = new Properties();
//UIL specific properties
connFactory = new SpyConnectionFactory(sILprops);
tConn = (SpyConnection)connFactory.createTopicConnection("john","needle");
I'm also interested in using JBoss from a C# application. Something we can do is to try to try to compile the JBOssMQ client Java library with J# (the problem is that the java code must be JDK1.1 compliant).
Another think would be to write a .Net version of the UIL or OIL IL. If anyone has the exact specification of the serialization protocol I can try to work on that.
I am working on the UIL protocol. Problem is the protocol mixes writing primitives (byte, int, short) and objects. I am trying to get UIL working on a java client using JSX (object serialization to XML).
Unfortunately, JSX doesn't handle writing primitives well -- the only alternative I can see is wrapping the primitives into an object. Ideally, I like to find a way to write primitives as primitives and objects as xml strings.
UIL is further complicated by the multiplexing layer.I made the mistake of diving right into UIL, because my application requires it - OIL may be a simpler first step.
For each IL, I think there are basically two protocols: ClientIL to ClientILService and ServerIL to ServerILService. for UIL there is the additional multiplexing protocol.
I re-examined the classes which are directly serialize with writeObject, and most implement externalizable, which means they handle their own serialization with readObject and writeObject. The authors of JBossMQ were very effective in compacting the objects for transport, so the read/writeObject overrides that I have been looking at use primaries only.
The few classes which do not override read/write would be pretty easy to extend to include the overrides. So I think it may be possible to use the UIL nearly as is.
To that end, I have ported the org.jboss.mq.il.uil.multiplexor package to C#. Currently, the classes run and pass the unit test included with the JBoss3.0.4 source distribution (though I had to also port the test to C#...). I will try muxed communication over the wire with a java test class shortly.
anyone interested in helping with port of the remaining UIL classes?
I'm very interesting in helping you to make something to port the IL. How can we proceed ?