Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tutorial:plugins [2020/06/06 19:58] – [Develop custom plugin] admintutorial:plugins [2024/01/03 19:56] (current) – removed admin
Line 1: Line 1:
-====== 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. 
- 
-