Font Size:
Ask Joget AI

Introduction to Plugin Architecture

Introduction

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.
Note
With the latest requirements to run Java 17 or higher, Joget DX 9 introduces automatic migration of plugins from the legacy javax.* namespace to the jakarta.* namespace. During this process, intermediary files such as .lock and .transformed may be created, and upon completion, you will see both the transformed .jar file and the untouched .original file for safekeeping. Refer to Migrating plugins from Joget DX 8 to Joget DX 9 for more information.

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.

Plugin Types

Created by Aadrian Last modified by Debanraj Ravindran on Apr 24, 2026