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.
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
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.
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
Please see the project blueprints (AKA: todo list) on launchpad: https://blueprints.launchpad.net/activator-framework
L<Activator::DB> L<Activator::Registry> L<Activator::Exception> L<Activator::Log> L<Activator::Pager> L<Activator::Dictionary> L<Activator::Options> L<Activator::Tutorial>
Karim A. Nassar
Copyright (c) 2007 Karim A. Nassar <email@example.com>
You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.