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
This file is usually placed in and executed from the root project directory.
Developer Environment Doc, Java File Placement
You will need to remove or comment out sections that build tool-specific classes you don't support. You may also need to edit any path information based on your environment and build output folders.
The default JARIT file assumes you are building output classes to a "<projectroot>/classes" subdirectory.
Do this with and without the Debug Log (below) to see framework coordination.
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.
Do this with and without the Debug Log to see framework coordination.
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.
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:
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:
Some JavaDoc examples: