Hi Rupert,

> Problem 1: Qpid.Client.Message.QpidHeaders is equivalent to
> org.apache.qpid.client.message.JMSHeaderAdapter in the Java code. It
> prepends the header field types onto the property names which the Java
> code no longer does. Sending a message with a field table from .Net to
> Java confuses the Java because it gets the property names wrong. I'm
> bringing QpidHeaders inline with the Java code at the moment so I'll
> patch that one soon enough.

Yep, noticed that one. But there's much more wrong there.

> 
> Problem 2: Sending a header field from Java to .Net causes
> NotImplementedException at Qpid.Buffer.FixedByteBuffer, line 178
> (slice method). Not sure of the cause of this yet but will be
> investigating soon.

I know it. Implementing it with the code as is, is a lot of work.

> Yes, I see what you mean about lack of tests and dependencies. I'll
> follow your approach of changing as little as possible, and
> documenting as I go for the moment.

Rupert, if you want, I spent some time working this weekend on this and made
a lot of progress here. If you're interested, I can send you my code.
Basically, I've got an experimental patch that:

- Reimplements Qpid.Buffer almost from scratch with only what we need for
now. It's got a new set of unit tests giving close to 80% coverage for now.
It probably has bugs, but it works pretty well so far. It also implements
the necessary Slice(), fixes the coding convention names (i.e gets rid of
the java naming)

- Fixed several bugs I ran into in FieldTable while testing
- Alreary rewrites the QpidHeaders class to get rid of the type code issue
and fixes a couple more things there
- Fixes some issues in the EncodingUtils class I ran into
- Fixes some issues in how the message expiration header was getting parsed
(it was handled incorrectly which sometimes caused a NullReferenceException
to get thrown, plus, the field was of the wrong type).

With this changes, I've been able to successfully send a message from a Java
client to a .NET client and back through the Java broker and back, including
having a custom int header property. So that much works on my current
implementation.

If you're interested in it, it might be a place to start.


Tomas Restrepo
[EMAIL PROTECTED]
http://www.winterdom.com/weblog/



Reply via email to