[ https://issues.apache.org/jira/browse/QPID-4479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Ross updated QPID-4479: ------------------------------ Fix Version/s: 0.21 > spout/drain examples fixes and improvements > ------------------------------------------- > > Key: QPID-4479 > URL: https://issues.apache.org/jira/browse/QPID-4479 > Project: Qpid > Issue Type: Improvement > Reporter: Darryl L. Pierce > Assignee: Darryl L. Pierce > Priority: Minor > Fix For: 0.20, 0.21 > > > (From BZ#878940) > Description of problem: > It is unable to set message properties with spout.pl, following change needs > to be made to fix this issue: > - $message->getProperties()->{$name} = $value; > + $message->setProperty($name, $value); > Below are proposed changes to the spout/drain examples to be more conformable > to other clients (c++, python, java), I think it is valuable to have all the > client examples working the same way: > Patch files for both spout.pl/drain.pl can be found in attachment. > * drain.pl *: > Drain do not output the message properties in usable form (properties are > displayed as a hash), ie: > # perl /usr/share/doc/perl-qpid-0.18/examples/drain.pl -c 1 q > Message(properties=HASH(0x8f1ecc8),content='') > It also can be useful to display if the message is redelivered as other > clients do. > Proposing following change to fix these issues: > +sub printProperties { > + my $h = shift(); > + return qq[{${\(join', ',map"'$_': '$h->{$_}'",keys%$h)}}] > +} > - print "Message(properties=" . $message->getProperties() . ",content='"; > + my $redelivered = ($message->getRedelivered) ? "redelivered=True, " : ""; > + print "Message(" . $redelivered . "properties=" . > printProperties($message->getProperties()) . ", content='"; > Proposing to set default timeout to 0 (to be more conformable to other > clients): > - my $timeout = 60; > + my $timeout = 0; > Proposing to set default messages count to 0 (to be more conformable to other > clients) > - my $count = 1; > + my $count = 0; > * both spout.pl/drain.pl *: > It is good practise to output usage with -h/--help options, or if the input > is wrong. It is also in place to stop the program execution after the bad > input/help request. > Proposing following change: > - "connection-options=s" => \ $connectionOptions, > -); > - > - > -if (! $result) { > - print "Usage: perl drain.pl [OPTIONS]\n"; > -} > - > + "connection-options=s" => \ $connectionOptions, > + "help|h" => \ &usage > +) or usage(); > +sub usage { > + print "Usage: perl drain.pl [OPTIONS]\n"; > + exit; > +} > Version-Release number of selected component (if applicable): > perl-qpid-0.18-1.el6 > Actual results: > Unable to set message properties with spout.pl, spout/drain behaviour differs > from other clients (c++,py,java) > Expected results: > Message properties can be set using spout.pl, spout/drain behaviour more > concords to other clients -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org