On Fri, Apr 5, 2013 at 3:38 PM, Ken Giusti <kgiu...@redhat.com> wrote:
> ----- Original Message ----- > > From: "Bill Freeman" <ke1g...@gmail.com> > > QMF V2 has been available for some time now, and we've cut all the project > tools and libraries over to speaking it. If we start down the road to > deprecating V1, turning off the broker updates is about the least risky > first step I can think of. It would not remove v1 at all - but it would > require manual intervention to restore the old behavior. Having to > explicitly take that action would be a (hopefully gentle) nudge to assess a > deployment's V1 dependency. > > > I think the on line documentation may have something to answer for here. When I started this project, since we are using MRG, I started with RedHat's documentation, but didn't find any advice about coding QMF. Then Google got me to the Apache Qpid pages, link to QMF, and eventually dribbled down to an example that became the base of my current design. That was based on qmf.console. There was no insight there about selecting V1 versus V2. There were also several pages, at least, that seemed to imply that V1 was now, and everything would support it, while V2 was new and for the future, and not universally supported (and that turned out to be correct until your patch). I think that the concept that consoles, for some time yet to come, should endeavor to support both versions, is a good one. They should perhaps log a deprecation warning if they discover a V1 only broker (aren't V2 brokers supposed to translate for V1 only agents?), but they should work anyway. One thing that makes it tough for consoles to do so, at least if they are based on qmf.console, is the fact that the objectProps callback is shared between versions, but has a different meaning. One callback carrying deltas is a good design, but it seems that either it should use a completely separate callback, or it should call both objectProps and objectStats (in that order), omitting objectProps if it has no properties, and omitting objectStats if it has no statistics. A V2 specific callback would be my preference, but only by a little. Since the other stuff has never been called for V2 updates before, this is the time to make that change. And I guess that's also a potential problem with making the fix from your patch: Code that has been working for years using qmf.console has never received a V2 objectProps call before may not work with it (mine certainly didn't). A separate callback for V2 updates fixes this issue. Bill