NAME

Activator Development Framework - Object Oriented framework to ease creation and rapid development of multi-developer distributed mixed environment perl based software projects, especially Catalyst based websites.

DESCRIPTION

Overview

Activator provides modules to support rapid software development throughout the software life-cycle:

  • Role-based project configuration supporting development, QA, and production needs

  • A globally accessible variable registry for all components within a project including the Catalyst web app, crons and daemons

  • Key/Value dictionary lookups provide context sensitive messages to users and/or logs

  • Template based email using a role-based delivery mechanism

  • Role based logging utilizing Log4Perl

  • Global database access definitions allowing generic abstraction of database queries (supports intentionally avoiding an ORM)

  • Role and configuration file aware command line options processing

Motivation

We are users of Catalyst. We love it, but sometimes making all the parts of our projects play nice together within our eco-system is difficult. As software would travel from inception to development, to QA, to production, there were always design issues that would crop up making someones' life difficult. Activator eases the pain. If you don't use Activator, you have to go through great pains to avoid these problems:

  • Make sure that all developers don't forget to use the correct database connections

  • Insure that the systems team has email configured correctly on all development machines.

  • Make sure your code loads config files from the same place, no matter if you are in production, QA or dev environment. Make sure this place is maintainable, so that emergency issues can easily be resoloved.

  • Code review to insure a strong separation between the 3 parts of an MVC codebase.

  • Come up with yet another standard so that crons, command line tools, and web site code all play nice together.

  • Come up with yet another mechanism for providing I18N that works across all aspects of a project.

  • Make sure you edit all the configurations necessary when creating a new dev environment

Activator solves all of the above, and many more problems. Read the Activator::Tutorial to find out how.

DEPENDANCIES

Data::Dumper
Scalar::Util
IO::Capture
Exception::Class
Test::Exception
Test::Pod
Class::StrongSingleton
Hash::Merge
Time::HiRes
Exception::Class::TryCatch
Exception::Class::DBI
Crypt::CBC
Crypt::Blowfish
MIME::Lite
HTML::Entities
Email::Send
Template::Plugin::HTML::Strip

On a CentOS system, this should get you going with Catalyst:

yum install perl-Catalyst-Runtime \ perl-Class-Accessor \ perl-Class-Data-Inheritable \ perl-YAML \ perl-Catalyst-Plugin-ConfigLoader \

# Test::WWW::Mechanize::Catalyst \ # Catalyst::View::TT \ # Template::Timer \ # HTTP::Request::AsCGI \ # Catalyst::Plugin::Static::Simple \ # Catalyst::Engine::Apache \ # Catalyst::Action::RenderView \ # HTML::Lint \ # Catalyst::Plugin::Authentication::User::Hash \ # WWW::Mechanize \ # Catalyst::Plugin::Static::Simple \ # Catalyst::Plugin::Authentication \ # Catalyst::Plugin::Authentication::Store::DBIC \ # Catalyst::Plugin::Authentication::Credential::Password \ # Catalyst::Plugin::Authorization::Roles \ # Catalyst::Plugin::Session \ # Catalyst::Plugin::Session::Store::Memcached \ # Catalyst::Plugin::Session::State::Cookie \ # Catalyst::Plugin::Cache::Memcached \

#yum install \ perl-Data-Dumper \ perl-Scalar-Util \ perl-IO-Capture \ perl-Exception-Class \ perl-Test-Exception \ perl-Test-Pod \ perl-Hash-Merge \ perl-Time-HiRes \ perl-Exception-Class-DBI \ perl-Crypt-CBC \ perl-Crypt-Blowfish \ perl-MIME-Lite \ perl-HTML-Entities \ perl-Template-Plugin-HTML-Strip \

python-crypto python-paramiko memcached

cd /root/downloads/activator-rpms && rpm -Hiv \ perl-Class-StrongSingleton-0.02-1.noarch.rpm \ perl-Data-Validate-IP-0.08-1.noarch.rpm \ perl-Data-Validate-URI-0.04-1.noarch.rpm \ perl-Exception-Class-TryCatch-1.10-1.noarch.rpm

FUTURE WORK

Please see the project blueprints (AKA: todo list) on launchpad: https://blueprints.launchpad.net/activator-framework

SEE ALSO

L<Activator::DB>
L<Activator::Registry>
L<Activator::Exception>
L<Activator::Log>
L<Activator::Pager>
L<Activator::Dictionary>
L<Activator::Options>
L<Activator::Tutorial>

AUTHOR

Karim A. Nassar

COPYRIGHT

Copyright (c) 2007 Karim A. Nassar <karim.nassar@acm.org>

You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.