Essential ATG Dynamo Training - Got atg Certified Relationship Management Developer?
This is not an official ATG site: ATG, Dynamo, Scenario Server and Personalization Server are trademarks or registered trademarks of Art Technology Group
Articles Exercises Resources Links Search

Overview

A module is a formalized configuration layer, allowing you to group application files and configuration into a discreet package for deployment.

Setting up a module

Here's how to get your module to appear in the Dynamo DCC. Here are the steps, we'll use the name MyModule in this example

Create the module folders

Create a sub folder for your module in your <dynamo_ root>  on my machine that would be: C:\ATG\Dynamo5.1

So our new folder is C:\ATG\Dynamo5.1\MyModule. This folder will contain all the files for your module

Create the following sub folders

  • classes - your java classes will go here
  • config - your global module configuration files/layer will go here
  • doc - your web pages will go here
  • localconfig - I think this is for machine specific config files/layer
  • META-INF - your module manifest will go here
  • bin - your OS specific configuration files will go here

Create a MANIFEST.MF file

Create a file called MANIFEST.MF in the META-INF directory

ATG-Product: MyModule

Manifest-Version: 1.0

ATG-Config-Path: config/

ATG-Class-Path: classes/

ATG-Required: DAS

This has many effects.

ATG-Config-Path: config/

This appends the specified directory to the CONFIGPATH at startup, enabling your modules customizations

ATG-Class-Path: classes/

This pre-pends the classes sub folder to the CLASSPATH enabling your java classes that are placed there

ATG-Required: DAS

This forces the DAS modules to be loaded before your module. This is your dependency list, for example if you module relies on DPS as well you would specify..

ATG-Required: DAS DPS

Similarly 

ATG-Required: DAS DPS DSS DCS CSR Fulfillment

Would force all these modules to load before MyModule

Your module is now set up, we just need to tell Dynamo to use it.

Starting Dynamo with your Module

The module list to load is specified by using the -m flag on the startDynamo command line.

To set this up create a copy of your standard shortcut to Dynamo, then modify the new Shortcutby adding MyModule to the end of the -m portion your link might look like this:

C:\WINNT\System32\cmd.exe /k C:\ATG\Dynamo5.1\home\bin\startDynamo.bat -m MyModule

This tells Dynamo to look for your module at start up.

Optional: Displaying Web Content for your Module

Dynamo does not support multiple document roots, any content to be displayed must be positioned somewhere under the system's doc root. This leaves you with two options

  1. Copy your content into the document root hierarchy
  2. Set the system doc root to your own doc directory

The first of these two is doesn't really need to be explained here, so we'll deal with how to set Dynamo's doc root to your doc directory in the case where your module is active. This is useful for sample applications and allows you to easily test and demonstrate the functionality of your module without polluting the shared file system with sample files.

To get the web server to display our module's content we need to do two things

  1. In your doc directory create a index.html file - some kind of hello world
  2. In your config\atg\ folder create a new folder dynamo, create a file called

Configuration.properties with this line in it

documentRoot=D:\\ATG\\Dynamo5.1\\MyModule\\doc

This configuration layer will tell the web server to use your doc directory as the website root. This will only work for you if MyModule is the last configuration layer which specifies documentRoot.

Optional: Making your configuration layer the default for updates

When you modify the configuration in the DCC the changes are written back to the properties files in the default update layer. You can make your layer the default by specifying the following line in the CONFIG.properties file in your config folder.

defaultForUpdates=true

Optional: Registering your Module with the System

This step is not required for packaging purposes but does allow you to use some advanced module features

Create or modify CONFIG.properties file in your config directory adding the following 2 lines followed by an empty line (Do not delete the defaultForUpdate property if you added it in the previous step)

name=MyModule

module=MyModule

In your config directory create a sub folder 'atg' then inside that another subfolder 'modules'. In that directory (e.g. C:\ATG\Dynamo5.1\MyModule\config\atg\modules)...

Create a file MyModule.properties with the following, followed by an empty line:

$class=atg.service.modules.Module

moduleName=MyModule

(This creates an component MyModule of class atg.service.modules.Module with the moduleName parameter set to MyModule)

Create a file ModuleManager.properties with a the following, followed by an empty line:

modules+=MyModule

This tells adds the MyModule component to the ModuleManager modules list and presents your module in the DCC module list

Optional: Environment setup files

If you need to set some environment variables every time your module is started you can do this via the manifest file.

Add this line to your MANIFEST.MF file:

ATG-Config-Scripts: bin/setup

This causes the file bin/setup.bat to be executed at startup, which can be very handy.

So you'll also need to add that file to the bin directory, including your environment setup

rem Add your start time configuration settings here 

 


Advertise your Training Programs for Free!