DPML
News at DPML
HomeUtilitiesStationMetroDepotTransit
News & Events
27 July 2006 Formal 1.0.0 Release

The DPML is proud to announce the formal distribution of version 1.0.0 of the DPML SDK.

Transit Transit is a resource management system that lets you work with uris instead of urls - where uris include artifact:[group]/[name]#[version] (for cached based retrieval of versioned resources backed by local and/or remote repositories), link:[group]/[name]#[version] which provides an equivalent concept to a symlink, and local:[group]/[name]#[version] for retrieval of local preferences. Above the resource management layer is a plugin management system that combines 'deployment data' and 'classloader chain' information into XML files that can be used by the system to automatically deploy complex systems.
Depot The Depot library provides a framework for <resource> (e.g. jar file, XML files, etc.), <project>, and <module> declarations. Modules identify a namespace for a group of resource and/or projects. Projects identify a working base directory. Projects can declare scoped dependencies covering BUILD, TEST and RUNTIME phases. Runtime phases can be further qualified to separate PUBLIC, PROTECTED and PRIVATE scopes. In addition project definitions may include property and filter declarations and (which may be direct name/token substitution or feature based substitution - e.g. lookup the version of project X and replace token Y with the value). The build system includes a command line handler that uses the library to resolve project base directories, transitive dependencies, properties, and filters. It uses the Transit system for all resource management concerns including support within Transit for the declaration and deployment of plugins (where a plugin is somewhat equivalent to an antlib plus classloader definition). Depot uses Transit for loading build templates and antlibs. Depot also includes a small number of Ant tasks that enable build automation of the majority of the DPML project. Generally speaking these ant tasks are simply pulling in info from the library (e.g. compile path creation, test path creation, meta-data creation, property resolution, etc.). When the generic Depot tasks don't meet all of our needs - we simply add extra extra instructions into build.xml files (i.e. its just driving classic Ant).
Metro Metro is a next-gen deployment strategy for plugins. In effect Transit plugin definitions allow for the declaration of alternative object deployment strategies. While the basic Transit plugin model supports a simple generic framework (including antlib resources loading) - the Metro system goes orders of magnitude further in its provision for composite objects, lifecycle management, custom lifestyle, Context-IOC, remote management, logging, and bunch other stuff that makes for very easy development. The Metro platform also includes a the 'Station' - in effect a server handles multiple JVMs and provides support for remote application management.