[ANNOUNCE] Apache Qpid Proton 0.25.0 released

2018-09-07 Thread Robbie Gemmell
The Apache Qpid (http://qpid.apache.org) community is pleased to announce
the immediate availability of Apache Qpid Proton 0.25.0.

Apache Qpid Proton is a messaging library for the Advanced Message Queuing
Protocol 1.0 (AMQP 1.0, ISO/IEC 19464, http://www.amqp.org). It can be used
in a wide range of messaging applications including brokers, clients,
routers, bridges, proxies, and more.

The release is available now from our website:
http://qpid.apache.org/download.html

Release notes can be found at:
http://qpid.apache.org/releases/qpid-proton-0.25.0/release-notes.html

Thanks to all involved,
Robbie

-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: Building qpid proton proactor on linux 2.6...

2018-09-07 Thread Alan Conway
On Thu, Sep 6, 2018 at 3:53 PM, Cliff Jansen  wrote:

> Have you tried the libuv proactor implementation for Proton-C?  See
> qpid-proton/c/CMakeLists.txt.
>
> The current release of libuv claims to be fully supported on "Linux >=
> 2.6.32 with glibc >= 2.12".
>
> If libuv works for you, that might be the easiest solution.
>

+1 to that. We have specific proactors for linux (assumes timerfd and
epoll) and iocp (windows) but we're hoping that libuv will be good-enough
everywhere else. In principle you can write new proactor impls for specific
platforms but if libuv can do it (or be fixed/improved to do it) then we'd
prefer to offload the porting work to the libuv folks. The reason for
specific linux/epoll proactors is more about avoiding dependencies than
performance, libuv should perform well (although it hasn't had as much
testing)


> On Thu, Sep 6, 2018 at 4:26 AM,   wrote:
> >
> > Hi,
> >
> > I am trying to port a project which was implemented using
> qpid-proton-cpp from a fairly recent Fedora linux kernel to an older RHEL
> linux 2.6.
> >
> > The older kernel is required because the end user unfortunately only
> runs the older linux kernel, and due to company policy they cannot upgrade
> in the near future.
> >
> > Unfortunately when we try to build on linux kernel 2.6 there are
> dependency issues which relate to the older kernel not including support
> for timerfd which is used in qpid-proton-proactor.
> >
> > We did also encounter some other build issues with some of the cpp
> templates in proton-cpp due to bugs in the older GNU compiler version which
> we fixed using workarounds, but getting the proactor to work on the older
> kernel looks like it will be less than trivial without timerfd.
> >
> > I do see what appears to be an older implementation for IO etc named
> reactor as opposed to proactor in the proton c implementations, but
> unfortunately the cpp container implementation which we are using does not
> seem to have an implementation using reactor instead of proactor?
> >
> > Is there any way around this - is it possible to use container without
> having timerfd support in the kernel?
> >
> > Performance isn't important for us in this so a simple socket read loop
> would be fine - just I am not sure how to shoehorn that into what we have
> already implemented using container...?
> >
> > Thanks
> > N
> >
> > -
> > To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
> > For additional commands, e-mail: users-h...@qpid.apache.org
> >
>
> -
> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
> For additional commands, e-mail: users-h...@qpid.apache.org
>
>


Re: qpid-proton-cpp decoder.cpp - possible bug?

2018-09-07 Thread Alan Conway
I think this is a bug I fixed recently, it should be in the latest release
proton-0.25. If you still have a problem please raise a JIRA.

Here's the fix - NULL is somewhat special but it is a valid scalar type, so
I added it to type_id_is_scalar()

https://github.com/alanconway/qpid-proton/commit/9e8edc17#diff-d6a2b218a8187976430ae388c2a9b176



On Thu, Sep 6, 2018 at 7:55 AM,  wrote:

> Hi,
>
> Around line 180, decoder.cpp has the following:
>
>
> decoder& decoder::operator>>(scalar& x) {
> internal::state_guard sg(*this);
> type_id got = pre_get();
>
> if (!type_id_is_scalar(got))
> throw conversion_error("expected scalar, found "+type_name(got));
>
> x.set(pn_data_get_atom(pn_object()));
> sg.cancel();// No error, no rewind
> return *this;
> }
>
>
> When our client code is talking to a 3rd party system's broker, we find
> that the scalar in argument "x" is coming through from the other party as
> type NULL in some cases - which causes the throw in the above method to get
> triggered and then disconnects us from the broker.
>
> However, if we comment out the if/throw from the code in decoder.cpp,
> everything then appears to be workding 100% correctly.
>
> Is there a correct way to do this without removing the throw? - it seems
> that if the check is there it must have a purpose, so by removing the check
> I am probably opening myself up to some other issues further down the line?
>
> Thanks
> N
>
> -
> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
> For additional commands, e-mail: users-h...@qpid.apache.org
>
>