Catalyst-Engine-Stomp
view release on metacpan or search on metacpan
lib/Catalyst/Engine/Stomp.pm view on Meta::CPAN
package Catalyst::Engine::Stomp;
use Moose;
use List::MoreUtils qw/ uniq /;
use HTTP::Request;
use Net::Stomp;
use MooseX::Types::Moose qw/Str Int HashRef/;
use namespace::autoclean;
use Encode;
extends 'Catalyst::Engine::Embeddable';
our $VERSION = '0.17';
has connection => (is => 'rw', isa => 'Net::Stomp');
lib/Catalyst/Engine/Stomp.pm view on Meta::CPAN
$app->log->debug("message from $destination ($subscription)")
if $app->debug;
my $controller = $self->destination_namespace_map->{"/subscription/$subscription"}
|| $self->destination_namespace_map->{$destination};
# set up request
my $config = $app->config->{'Engine::Stomp'};
my $url = 'stomp://'.$config->{hostname}.':'.$config->{port}.'/'.$controller;
my $request_headers = HTTP::Headers->new(%{$frame->headers});
my $req = HTTP::Request->new(POST => $url, $request_headers);
$req->content($frame->body);
$req->content_length(length $frame->body);
# dispatch
my $response;
$app->handle_request($req, \$response);
# reply, if header set
if (my $reply_to = $response->headers->header('X-Reply-Address')) {
my $reply_queue = '/remote-temp-queue/' . $reply_to;
lib/CatalystX/Test/MessageDriven.pm view on Meta::CPAN
package CatalystX::Test::MessageDriven;
use Class::MOP;
use Sub::Exporter;
use HTTP::Request;
BEGIN {
$ENV{CATALYST_ENGINE} = 'Test::MessageDriven';
};
=head1 NAME
CatalystX::Test::MessageDriven - test message-driven Catalyst apps
=head1 DESCRIPTION
lib/CatalystX/Test/MessageDriven.pm view on Meta::CPAN
=head1 TODO
Some test wrappers - successful / error message conditions?
=cut
my $message_driven_request = sub {
my ($app, $path, $req_message) = @_;
my $url = "message://localhost:61613/$path";
my $request = HTTP::Request->new( POST => $url );
$request->content($req_message);
$request->content_length(length $req_message);
$request->content_type('application/octet-stream');
my $response;
$app->handle_request($request, \$response);
return $response;
};
( run in 0.547 second using v1.01-cache-2.11-cpan-de7293f3b23 )