BPM-Engine
view release on metacpan or search on metacpan
lib/BPM/Engine.pm view on Meta::CPAN
package BPM::Engine;
BEGIN {
$BPM::Engine::VERSION = '0.01';
$BPM::Engine::AUTHORITY = 'cpan:SITETECH';
}
use 5.010;
use namespace::autoclean;
use Moose;
use MooseX::StrictConstructor;
#use Scalar::Util ();
use BPM::Engine::Exceptions qw/throw_engine/;
use BPM::Engine::Store;
use BPM::Engine::ProcessRunner;
use BPM::Engine::Types qw/ArrayRef/;
with qw/
MooseX::SimpleConfig
MooseX::Traits
BPM::Engine::Role::WithCallback
BPM::Engine::Role::WithPersistence
BPM::Engine::Role::WithLogger
BPM::Engine::Handler::ProcessDefinitionHandler
BPM::Engine::Handler::ProcessInstanceHandler
BPM::Engine::Handler::ActivityInstanceHandler
/;
with 'BPM::Engine::Role::EngineAPI';
#has '+configfile' => ( default => '/etc/bpmengine/engine.yaml' );
has '+_trait_namespace' => (default => 'BPM::Engine::Trait');
has 'runner_traits' => (
isa => ArrayRef,
is => 'rw',
default => sub { [] },
predicate => 'has_runner_traits'
);
sub runner {
my ($self, $pi) = @_;
#Scalar::Util::weaken($self);
my $args = {
process_instance => $pi,
#engine => $self, # DEPRECATED
logger => $self->logger,
};
$args->{callback} = $self->callback if $self->has_callback;
$args->{traits} = $self->runner_traits if $self->has_runner_traits;
return BPM::Engine::ProcessRunner->new_with_traits($args);
}
__PACKAGE__->meta->make_immutable;
1;
__END__
=pod
=encoding utf-8
=head1 NAME
BPM::Engine - Business Process Execution Engine
( run in 1.702 second using v1.01-cache-2.11-cpan-39bf76dae61 )