qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fraser Adams (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (QPID-3695) In the Perl binding there doesn't appear to be a way to set the encoding of header properties to UTF8.
Date Sat, 17 Dec 2011 10:38:31 GMT
In the Perl binding there doesn't appear to be a way to set the encoding of header properties
to UTF8.
------------------------------------------------------------------------------------------------------

                 Key: QPID-3695
                 URL: https://issues.apache.org/jira/browse/QPID-3695
             Project: Qpid
          Issue Type: Bug
          Components: Interop Testing
    Affects Versions: 0.12
         Environment: Perl
            Reporter: Fraser Adams


There have been some interoperability issues reported between Java/C++/Perl whereby there
is sometimes a mismatch between C++ qpid::messaging client defaults of binary strings and
expected UTF8 Strings - especially noticeable with headers exchange matching.

One of the most significant issues is with the qpid::messaging AddressParser which is resolved
here:

https://issues.apache.org/jira/browse/QPID-3492

However with qpid::messaging producers one must also be careful to call setEncoding("utf8")
when setting string properties.

This is OK with C++ qpid::messaging as long as one is aware of the potential issue however
there's a more significant issue with the Perl binding, which is a SWIG wrapper around qpid::messaging.
This "transparently" maps Perl strings into binary strings and there doesn't appear to be
any way to explicitly set the encoding as the Variant type implementation is abstracted away
in Perl.

The following trivial snippet allows a UTF8 property to be set on a Message:

/*
    This method properly encodes the value parameter as a UTF8 Variant type then sets the
Property 
    on the Message passed in as a parameter.
*/
void setUtf8Property(Message& message, const char* key, const char* value) {
    Variant utf8Value(value);
    utf8Value.setEncoding("utf8");
    message.setProperty(key, utf8Value);
}

Obviously to be of any use in the Perl binding it would need to be added to the SWIG interface.

Perhaps there's another way to set Message properties as UTF8 from the Perl binding?





--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


Mime
View raw message