Joget supports 2 types of plugin packaging, there are Standard Java Plugin and Dynamic OSGI Plugin.
Standard Java Plugin
- Build as a standard Java JAR
- Plugin classes should be placed in a package name starting with “org.joget”. (OEM release package are allowed to specify other package names)
- Make JAR available in the Java classpath (e.g., place it under WEB-INF/lib or application server lib folder).
- 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.