BPM-Engine

 view release on metacpan or  search on metacpan

META.yml  view on Meta::CPAN

  Silly::Werder: 0.90
  Sub::Exporter: 0.98
  Template: 2.20
  Text::Xslate: 1.0012
  Text::Xslate::Bridge::TT2Like: 0
  Try::Tiny: 0.11
  XML::LibXML: 1.70
  XML::LibXML::Simple: 0.13
  YAML::LibYAML: 0.18
  aliased: 0
  namespace::autoclean: 0.11
  namespace::clean: 0.18
  parent: 0
  perl: 5.10.0
resources:
  homepage: http://bpmengine.org/
  license: http://dev.perl.org/licenses/
  repository: git://github.com/sitetechie/BPM-Engine.git
version: 0.01

Makefile.PL  view on Meta::CPAN


# minimum versions required upstream (indirect deps)
requires        'MooseX::Method::Signatures' => '0.42';
requires        'YAML::LibYAML'              => '0.18';
requires        'Config::Any'                => '0.23';

# direct dependencies
requires        'aliased'                    => '0';
requires        'parent'                     => '0';
requires        'namespace::clean'           => '0.18';
requires        'namespace::autoclean'       => '0.11';
requires        'DateTime'                   => '0.53';
requires        'Sub::Exporter'              => '0.98';
requires        'Path::Class'                => '0.21';
requires        'File::ShareDir'             => '1.03';
requires        'JSON'                       => '0';
requires        'Silly::Werder'              => '0.90';
requires        'Data::GUID'                 => '0.046';
requires        'Class::MOP'                 => '1.1';
requires        'Try::Tiny'                  => '0.11';
requires        'Exception::Class'           => '1.29';

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

lib/BPM/Engine/Logger.pm  view on Meta::CPAN

package BPM::Engine::Logger;
BEGIN {
    $BPM::Engine::Logger::VERSION   = '0.01';
    $BPM::Engine::Logger::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
use MooseX::StrictConstructor;

with qw/MooseX::LogDispatch::Levels MooseX::LogDispatch::Interface/;

$Log::Dispatch::Config::CallerDepth = 1;

has log_dispatch_conf => (
    is      => 'ro',
    lazy    => 1,

lib/BPM/Engine/ProcessRunner.pm  view on Meta::CPAN

    $BPM::Engine::ProcessRunner::VERSION   = '0.01';
    $BPM::Engine::ProcessRunner::AUTHORITY = 'cpan:SITETECH';
    }

use Moose;
use MooseX::StrictConstructor;
use DateTime;
use BPM::Engine::Types qw/Bool ArrayRef HashRef CodeRef Exception Row/;
use BPM::Engine::Exceptions qw/throw_model throw_abstract throw_runner/;
use BPM::Engine::Util::ExpressionEvaluator;
use namespace::autoclean;    # -also => [qr/^_/];

with qw/
    MooseX::Traits
    BPM::Engine::Role::WithLogger
    BPM::Engine::Role::WithCallback
    /;

BEGIN {
    for my $event (qw/start continue complete execute/) {
        for my $entity (qw/process activity transition task/) {

lib/BPM/Engine/Role/EngineAPI.pm  view on Meta::CPAN

package BPM::Engine::Role::EngineAPI;
BEGIN {
    $BPM::Engine::Role::EngineAPI::VERSION   = '0.01';
    $BPM::Engine::Role::EngineAPI::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;

requires qw(
    new
    new_with_config

    logger
    log_dispatch_conf

    log

lib/BPM/Engine/Role/HandlesAssignments.pm  view on Meta::CPAN

package BPM::Engine::Role::HandlesAssignments;
BEGIN {
    $BPM::Engine::Role::HandlesAssignments::VERSION   = '0.01';
    $BPM::Engine::Role::HandlesAssignments::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;
use BPM::Engine::Util::ExpressionEvaluator;

requires qw/process_instance process/;

before 'start_process' => sub {
    my $self = shift;

    my @assignments = $self->process->start_assignments;
    return unless scalar @assignments;

lib/BPM/Engine/Role/HandlesIO.pm  view on Meta::CPAN

package BPM::Engine::Role::HandlesIO;
BEGIN {
    $BPM::Engine::Role::HandlesIO::VERSION   = '0.01';
    $BPM::Engine::Role::HandlesIO::AUTHORITY = 'cpan:SITETECH';
    }

use Moose::Role;
use namespace::autoclean;

before '_execute_implementation' => sub {
    my ($self, $activity, $instance) = @_;

    if ($activity->input_sets) {
        my $pi         = $instance->process_instance;
        my $artifacts  = $pi->process->package->artifacts;
        my $attributes = $pi->attributes_rs;

        my @inputs = ();

lib/BPM/Engine/Role/HandlesTaskdata.pm  view on Meta::CPAN

package BPM::Engine::Role::HandlesTaskdata;
BEGIN {
    $BPM::Engine::Role::HandlesTaskdata::VERSION   = '0.01';
    $BPM::Engine::Role::HandlesTaskdata::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;
use Data::GUID;
use Try::Tiny;

requires qw/
    process_instance
    process
    /;

before 'execute_task' => sub {

lib/BPM/Engine/Role/RunnerAPI.pm  view on Meta::CPAN

package BPM::Engine::Role::RunnerAPI;
BEGIN {
    $BPM::Engine::Role::RunnerAPI::VERSION   = '0.01';
    $BPM::Engine::Role::RunnerAPI::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;

requires qw(
    log
    debug
    info
    notice
    warning
    error
    critical

lib/BPM/Engine/Role/WithCallback.pm  view on Meta::CPAN

package BPM::Engine::Role::WithCallback;
BEGIN {
    $BPM::Engine::Role::WithCallback::VERSION   = '0.01';
    $BPM::Engine::Role::WithCallback::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;
use BPM::Engine::Types qw/CodeRef/;

has 'callback' => (
    traits    => ['Code'],
    is        => 'rw',
    isa       => CodeRef,
    required  => 0,
    predicate => 'has_callback',
    handles   => { call_callback => 'execute', },

lib/BPM/Engine/Role/WithLogger.pm  view on Meta::CPAN

package BPM::Engine::Role::WithLogger;
BEGIN {
    $BPM::Engine::Role::WithLogger::VERSION   = '0.01';
    $BPM::Engine::Role::WithLogger::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;
use BPM::Engine::Logger;

has 'logger' => (
    does       => 'MooseX::LogDispatch::Interface',
    is         => 'ro',
    lazy_build => 1,
    handles    => 'MooseX::LogDispatch::Interface',
    );

lib/BPM/Engine/Role/WithPersistence.pm  view on Meta::CPAN

package BPM::Engine::Role::WithPersistence;
BEGIN {
    $BPM::Engine::Role::WithPersistence::VERSION   = '0.01';
    $BPM::Engine::Role::WithPersistence::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;
use BPM::Engine::Types qw/ConnectInfo Schema/;
use BPM::Engine::Store;
use BPM::Engine::Exceptions qw/throw_param/;

has schema => (
    isa        => Schema['BPM::Engine::Store'],
    is         => 'ro',
    lazy_build => 1,
    predicate  => 'has_schema',

lib/BPM/Engine/Store/Result.pm  view on Meta::CPAN

package BPM::Engine::Store::Result;
BEGIN {
    $BPM::Engine::Store::Result::VERSION   = '0.01';
    $BPM::Engine::Store::Result::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
use MooseX::NonMoose;
extends qw/DBIx::Class::Core/;

__PACKAGE__->load_components(qw/InflateColumn::DateTime/);

## no critic (ProhibitUnusedPrivateSubroutines)
# override call from within DBIx::Class::InflateColumn::DateTime
sub _inflate_to_datetime {
    my ($self, @args) = @_;

lib/BPM/Engine/Store/Result/Activity.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::Activity;
BEGIN {
    $BPM::Engine::Store::Result::Activity::VERSION   = '0.01';
    $BPM::Engine::Store::Result::Activity::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
extends qw/BPM::Engine::Store::Result/;
with    qw/BPM::Engine::Store::ResultBase::Activity
           BPM::Engine::Store::ResultRole::WithAssignments/;

__PACKAGE__->load_components(qw/ InflateColumn::Serializer /);
__PACKAGE__->table('wfd_activity');
__PACKAGE__->add_columns(
    activity_id => {
        data_type         => 'INT',

lib/BPM/Engine/Store/Result/ActivityInstance.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::ActivityInstance;
BEGIN {
    $BPM::Engine::Store::Result::ActivityInstance::VERSION   = '0.01';
    $BPM::Engine::Store::Result::ActivityInstance::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
use DateTime;

BEGIN {
  extends qw/BPM::Engine::Store::Result/;
  with    qw/BPM::Engine::Store::ResultBase::ActivityInstance
             BPM::Engine::Store::ResultRole::ActivityInstanceJoin
             BPM::Engine::Store::ResultRole::WithAttributes/;
  }

lib/BPM/Engine/Store/Result/ActivityInstanceAttribute.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::ActivityInstanceAttribute;
BEGIN {
    $BPM::Engine::Store::Result::ActivityInstanceAttribute::VERSION   = '0.01';
    $BPM::Engine::Store::Result::ActivityInstanceAttribute::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
extends qw/BPM::Engine::Store::Result/;

__PACKAGE__->load_components(qw/ Core /);
__PACKAGE__->table('wfe_activity_instance_attr');
__PACKAGE__->add_columns(
    activity_instance_id => {
        data_type         => 'INT',
        is_nullable       => 0,        
        size              => 11,

lib/BPM/Engine/Store/Result/ActivityInstanceState.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::ActivityInstanceState; 
BEGIN {
    $BPM::Engine::Store::Result::ActivityInstanceState::VERSION   = '0.01';
    $BPM::Engine::Store::Result::ActivityInstanceState::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
use MooseX::NonMoose;
extends qw/DBIx::Class::Core/;
with qw/Class::Workflow::Instance/;

__PACKAGE__->load_components(qw/TimeStamp/);
__PACKAGE__->table('wfe_activity_instance_journal');
__PACKAGE__->add_columns(
    event_id => {
        data_type         => 'INT',

lib/BPM/Engine/Store/Result/ActivityTask.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::ActivityTask;
BEGIN {
    $BPM::Engine::Store::Result::ActivityTask::VERSION   = '0.01';
    $BPM::Engine::Store::Result::ActivityTask::AUTHORITY = 'cpan:SITETECH';
    }

use Moose;
use MooseX::NonMoose;
use namespace::autoclean;
extends 'DBIx::Class::Core';

__PACKAGE__->load_components(qw/ InflateColumn::Serializer /);
__PACKAGE__->table('wfd_activity_task');
__PACKAGE__->add_columns(
    task_id => {
        data_type         => 'INT',
        is_auto_increment => 1,
        is_nullable       => 0,
        extras            => { unsigned => 1 }

lib/BPM/Engine/Store/Result/Process.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::Process;
BEGIN {
    $BPM::Engine::Store::Result::Process::VERSION   = '0.01';
    $BPM::Engine::Store::Result::Process::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
extends qw/BPM::Engine::Store::Result/;
with    qw/BPM::Engine::Store::ResultBase::Process
           BPM::Engine::Store::ResultRole::WithAssignments
          /;

__PACKAGE__->load_components(qw/
    InflateColumn::DateTime InflateColumn::Serializer UUIDColumns
    /);

lib/BPM/Engine/Store/Result/ProcessInstance.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::ProcessInstance;
BEGIN {
    $BPM::Engine::Store::Result::ProcessInstance::VERSION   = '0.01';
    $BPM::Engine::Store::Result::ProcessInstance::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
extends qw/BPM::Engine::Store::Result/;
with    qw/BPM::Engine::Store::ResultBase::ProcessInstance
           BPM::Engine::Store::ResultRole::WithAttributes/;

use Silly::Werder;

my $WORDGEN = Silly::Werder->new();

__PACKAGE__->load_components(qw/TimeStamp DynamicDefault/);

lib/BPM/Engine/Store/Result/ProcessInstanceAttribute.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::ProcessInstanceAttribute;
BEGIN {
    $BPM::Engine::Store::Result::ProcessInstanceAttribute::VERSION   = '0.01';
    $BPM::Engine::Store::Result::ProcessInstanceAttribute::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
use BPM::Engine::Exceptions qw/throw_abstract/;
extends qw/BPM::Engine::Store::Result/;

__PACKAGE__->load_components(qw/InflateColumn::Serializer/);
__PACKAGE__->table('wfe_process_instance_attr');
__PACKAGE__->add_columns(
    process_instance_id => {
        data_type         => 'INT',
        is_nullable       => 0,

lib/BPM/Engine/Store/Result/ProcessInstanceState.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::ProcessInstanceState;
BEGIN {
    $BPM::Engine::Store::Result::ProcessInstanceState::VERSION   = '0.01';
    $BPM::Engine::Store::Result::ProcessInstanceState::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
use MooseX::NonMoose;
extends qw/DBIx::Class::Core/;
with qw/Class::Workflow::Instance/;

__PACKAGE__->load_components(qw/TimeStamp/);
__PACKAGE__->table('wfe_process_instance_journal');
__PACKAGE__->add_columns(
    event_id => {
        data_type         => 'INT',

lib/BPM/Engine/Store/Result/Transition.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::Transition;
BEGIN {
    $BPM::Engine::Store::Result::Transition::VERSION   = '0.01';
    $BPM::Engine::Store::Result::Transition::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
extends qw/BPM::Engine::Store::Result/;
with qw/
           BPM::Engine::Store::ResultBase::ProcessTransition
           BPM::Engine::Store::ResultRole::WithAssignments
       /;

#__PACKAGE__->load_components(qw/ Core /);
__PACKAGE__->table('wfd_transition');
__PACKAGE__->add_columns(

lib/BPM/Engine/Store/Result/WorkItem.pm  view on Meta::CPAN

package BPM::Engine::Store::Result::WorkItem;
BEGIN {
    $BPM::Engine::Store::Result::WorkItem::VERSION   = '0.01';
    $BPM::Engine::Store::Result::WorkItem::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose;
extends qw/BPM::Engine::Store::Result/;

__PACKAGE__->load_components(qw/ Core /);
__PACKAGE__->table('wfe_workitem');
__PACKAGE__->add_columns(
    workitem_id => {
        data_type         => 'INT',
        is_auto_increment => 1,
        is_nullable       => 0,

lib/BPM/Engine/Store/ResultBase/Activity.pm  view on Meta::CPAN

package BPM::Engine::Store::ResultBase::Activity;
BEGIN {
    $BPM::Engine::Store::ResultBase::Activity::VERSION   = '0.01';
    $BPM::Engine::Store::ResultBase::Activity::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;
with qw/
    Class::Workflow::State
    Class::Workflow::State::TransitionHash
    Class::Workflow::State::AcceptHooks
    Class::Workflow::State::AutoApply
    /;

sub new_instance {
    my ($self, $args) = @_;

lib/BPM/Engine/Store/ResultBase/ActivityInstance.pm  view on Meta::CPAN

package BPM::Engine::Store::ResultBase::ActivityInstance;
BEGIN {
    $BPM::Engine::Store::ResultBase::ActivityInstance::VERSION   = '0.01';
    $BPM::Engine::Store::ResultBase::ActivityInstance::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;
use BPM::Engine::Util::YAMLWorkflowLoader qw/load_workflow_from_yaml/;
with 'BPM::Engine::Store::ResultRole::WithWorkflow';

my $W = undef;

sub get_workflow {
    unless($W) {
        my $yaml = do { local $/ = undef; <DATA> };
        $W = load_workflow_from_yaml($yaml);

lib/BPM/Engine/Store/ResultBase/Process.pm  view on Meta::CPAN

package BPM::Engine::Store::ResultBase::Process;
BEGIN {
    $BPM::Engine::Store::ResultBase::Process::VERSION   = '0.01';
    $BPM::Engine::Store::ResultBase::Process::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;

sub new_instance {
    my ($self, $attrs) = @_;
    $attrs ||= {};
    
    my $guard = $self->result_source->schema->txn_scope_guard;    

    my $process_instance = $self->add_to_instances($attrs);
    

lib/BPM/Engine/Store/ResultBase/ProcessInstance.pm  view on Meta::CPAN

package BPM::Engine::Store::ResultBase::ProcessInstance;
BEGIN {
    $BPM::Engine::Store::ResultBase::ProcessInstance::VERSION   = '0.01';
    $BPM::Engine::Store::ResultBase::ProcessInstance::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;
use BPM::Engine::Util::YAMLWorkflowLoader qw/load_workflow_from_yaml/;
with 'BPM::Engine::Store::ResultRole::WithWorkflow';

my $W = undef;

sub get_workflow {
    unless($W) {
        my $yaml = do { local $/ = undef; <DATA> };
        $W = load_workflow_from_yaml($yaml);

lib/BPM/Engine/Store/ResultBase/ProcessTransition.pm  view on Meta::CPAN

package BPM::Engine::Store::ResultBase::ProcessTransition;
BEGIN {
    $BPM::Engine::Store::ResultBase::ProcessTransition::VERSION   = '0.01';
    $BPM::Engine::Store::ResultBase::ProcessTransition::AUTHORITY = 'cpan:SITETECH';
    }

use namespace::autoclean;
use Moose::Role;

with 'BPM::Engine::Store::ResultRole::TransitionCondition';

has to_activity => (
    does => "Class::Workflow::State",
    is   => "rw",
    required => 0,
    );

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.238 second using v1.00-cache-2.02-grep-82fe00e-cpan-c98054f2a92 )