Plugins are the only one way to change the functionality of a modeling tool. The main purpose of the plugin architecture is to add a new functionality to your modeling tool. Although there is a limited ability to remove an existing functionality using plugins.
A plugin must contain the following resources:

  • A directory
  • Compiled java files, packaged into a jar file
  • A plugin descriptor file
  • Optional files used by the plugin

Typically a plugin creates some GUI components allowing a user to use the plugin functionality. Generally, this is not necessary because the plugin can listen for some changes in a project and activate itself on the desired changes.