Managed Hosting



Project Home Known Issues Contact Project

Author: Paul Marcotte (All RIAForge projects by this author)
Last Updated: November 4, 2009 1:32 AM
Version: 0.9.2
Views: 42,721
Downloads: 1,443
License: Apache License, Version 2


While developing projects with Transfer over the course of the past year, I've noticed a repetition
in the application model code that led me to adopt some basic conventions thereby actively generating
much of the code I would have created with passive code generation. Convention based code generation will only get you so far, there are nuances to an application model that are difficult to achieve with code generation. To hedge this, Metro makes it easy to define concrete components (services or gateways) that extend the core Metro components, so one can write custom code to override and/or augment the actively generated code.

The over-reaching convention for metro is the concept of packaging related object so that they are managed
by a single service. As an example, Metro includes a security package with simple User, Role and Permission
objects that are managed by a single SecurityService composed with a gateway for each object. To achieve this, Metro parses the transfer XML configuration into a simplified config structure.

A service created by the Metro ServiceFactory provides get(), new(), list(), save() and delete() methods for objects under a given package. For example, the security package included in metro contains three objects: User, Role and Permission. One can use get("objectName") or get{objectName}(), etc. for each object managed by the service. The syntactic sugar of get{objectName}() is achieved through onMissingMethod.


Transfer ORM
ColdFusion 8.01

Issue Tracker:

There are no issues for this project.

To enter issues for this (or any other) project, you must be logged in.