SAFS Development Details

Last Updated by Carl Nagle: Dec 14, 2009

This document suggests a specific order to learn more about the framework and framework tools to start a new developer down the active path of development in SAFS. In many cases, we specifically talk about development in the org.safs.rational space, but the information applies to core SAFS and the space of other tools, as well.

1. Create Development Environment
2. Build with JARIT
3. Validate Core with runTIDTest
4. Explore Debug Log
5. Explore STAFProcessContainer
6. Explore 'Hook Script'
7. Review Standard Recognition Strings
8. Review Existing Keyword Source and Code

  1. Successfully populate your development environment from CVS

  2. Successfully build all classes in your environment

  3. Review and run runTIDTest to validate the core SAFS framework

    • View the runTIDTest script to see what a TID launch of SAFS looks like
      • Windows: C:\SAFS\Project\runTIDTest.BAT

    • View the TIDTEST.INI file to see what settings are there
    • Run the runTIDTest script and check the output in Project\Datapool\Logs

      Do this with and without the Debug Log (below) to see framework coordination.

  4. Successfully explore the use of SAFS TestLog (org.safs.Log aka Debug Log):

  5. Successfully use and explore the use of the new STAFProcessContainer

    This new general-purpose Process Container tool is intended to talk to all compliant SAFS Engines. It is intended to replace similar tool-specific scripts like Functional Tester's 'RunProcessContainer' script. Of course, only a 'compliant' SAFS engine that supports the "E" Engine Commands will respond properly to STAFProcessContainer requests for info.

    The level of engine compliance can be determined from the Engine Commands Reference.

  6. Manually launch and shutdown the 'Hook Script' in normal and debug modes.

    The 'Hook Script' is what we call the tool-specific script or code that connects to STAF and registers that tool as a SAFS Engine.

  7. Review the use and purpose of Standard Component Recognition:

    The following files are used in various engines and STAFProcessContainer as part of the implementation of Standard Component Recognition:

    Some class references providing more info:

  8. Review sourcecode for existing keyword implementations and begin development

    In general, a developer can review the sourcecode for existing keywords and simply modify to accommodate new keywords. When a new engine is being developed and no keywords yet exist then it is often beneficial to review the implementation in other engines.

    Keywords are generally implemented in SAFS libraries conforming to a naming convention:

    • Component Functions: CF<compType> as in, CFCheckBox
    • Driver Commands: DCDriver<type>Commands as in, DCDriverFlowCommands

    Some JavaDoc examples:


More info will be added as feedback is provided.