Figure 1: Joget Plugin Architecture
Standard Java Plugin
- Build as a standard Java JAR
- Plugin classes should be placed in a package name starting with “org.joget”.
- Make JAR available in the Java classpath (e.g., place it under WEB-INF/lib).
- Requires restarting the JVM for deployment or changes
- May cause library version conflicts with base libraries or other plugins
- Easier to develop and test using normal Java classes and libraries
Dynamic OSGi Plugin
- Build as an OSGi (Open Services Gateway initiative framework) JAR bundle
- Deploy JAR using the Manage Plugins in the Web Console.
- Supports dynamic loading/unloading/reloading without restarting
- Runs in isolated mode, preventing library version conflict with base libraries or other plugins
- More difficult to develop and test due to OSGi configuration and isolation
- Technology powering this structure: Apache Felix