Developing an Extension in AIP
This page is dedicated to understanding the principles of field extension development of extensions beyond product and product road map
There are 5 types of extension development
- Adding custom rules on top of existing supported AIP technologies not in the product road map.
- Creating supported extensions for unsupported AIP technologies not in the product road map
- Enhancing existing user community extensions with new version support for technologies which are not in the product road map
- Developing an extension using existing OpenSource code checkers to insert new metrics in AIP
- Converting old UA-based technology to full-SDK-Python
The objective of creating an extension
- It is possible to “extend” CAST AIP with an extension to provide additional analysis and measurement capabilities both for technologies that are not supported “out-of-the-box“ and for technologies supported by CAST AIP
- “Official” CAST AIP Extensions are provided by CAST and are downloaded and installed on top of CAST AIP to provide support for specific technologies (analysis/measurement/discovery/extraction) that are not supported “out-of-the-box” by CAST AIP
Extensions are developed using the full Python SDK
The prerequisite skills for extension development are:
Python programming experience, including
- File stream object knowledge for reading and writing files
- Collections use knowledge, for example List, directory and tuples
- Knowledge on the file parsing concept
- Usage of third-party libraries
- Knowledge of database query execution
- Usage of library xml.etree.ElementTree which is needed for parsing xml-based source code
- Usage of lxml library which is needed for xml-based source code
- Knowledge of writing log messages using libraries like logging..
- Writing function
- Debugging programs using eclipse
CAST AIP basic certification including
- 1.Schema creation extension installation knowledge
- Source code packaging
- Adding extension in CMS related to that technology
- Knowledge of analysis and snapshot launching
- Enlighten knowledge
It is normally a two-day course to cover concepts, including practical work. The course Powerpoint is available at the CAST University
There are some basic concepts for the development of an Extension in AIP
- You need to configure the CAST SDK to develop the custom extensions.
- To develop Custom Extensions to analyse a language not already supported by CAST, you need to follow the following three-step process:
- Define the language and objects for the language you want to analyse
- Define how to analyse the language you want to analyse - only necessary if analyzing source code
- Test the configuration files for completeness and then include the configuration files in a custom extension
Information on extending CAST AIP is available at Extending CAST AIP
CAST has a specific site for extensions which is located at CAST Extend
There are some examples available within CAST Extend which are SDK training samples on extending