This is an old revision of the document!
Tutorial: Plugins
Learning Objectives:
- What does a plugin do?
- System plugins
- Develop custom plugin
- Deploy custom plugin
- Sharing custom plugin
Develop custom plugin
Set plugin development environment using Eclipse IDE:
- create a java project
- add toplugin.jar to build path (project properties)
Create plugin package Create plugin class inheriting from PluginAncestor class Add @TO_PLUGIN annotation to the class Implement required methods Add your plugin functions, declare as public functions Compile and fix errors
package com.mine.plugin; import com.testoptimal.plugin.MScriptInterface.IGNORE_INHERITED_METHOD; import com.testoptimal.plugin.MScriptInterface.TO_PLUGIN; import com.testoptimal.plugin.PluginAncestor; @IGNORE_INHERITED_METHOD @TO_PLUGIN public class MyPlugin extends PluginAncestor { @Override public String getPluginID() { return "MYPLUGIN"; } @Override public String getPluginDesc() { return "My Plugin"; } @NOT_MSCRIPT_METHOD @Override public void start() throws Exception { System.out.println("My Plugin started"); } @NOT_MSCRIPT_METHOD @Override public void close() { System.out.println("My Plugin closed"); } public String doSomething (String something_p) { System.out.println("My plugin: " + something_p); return "Done"; } }
By default, all public methods declared as well as inherited are exposed as MScript function. To exclude certain methods from being exposed as MScript function, add annotation @NOT_MSCRIPT_METHOD to the method. Add annotation @IGNORE_INHERITED_METHOD to the plugin class to exclude inherited methods from exposed as MScript functions.
Write your junit test to test the plugin functions.
Deploy Custom Plugin: Export project as jar file Copy plugin jar file to /lib folder Register your plugin package in config.properties
plugin.packages=your_plugin_package_path
Restart TestOptimal server
Use Custom Plugin: Open an existing model or create a new model Select SCRIPT tab Click on “P” icon on SCRIPT tab toolbar Check the checbox for your custom plugin Your plugin should show up on CodeAssist list as “$'pluginID'”, e.g. $MYPLUGIN CodeAssist on your custom plugin should automatically be added.