[ 
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

Reply via email to