A distinguished feature of JFire is its extensibility. Owing a great deal to the extension points existing in every JFire module, this unique attribute increases system flexibility and allows for further developmebnt of specialized functions.
In contrast to the existing Open Source ERP solutions, JFire avoids using the Structured Query Language (SQL), which obstructs extensions. Instead it uses the Java Data Objects standard (JDO 2.2), which not only makes extensions easy but also reduces maintenance work. From the developers point of view an extensions to JFire's datastructure can be done using object orientated Java techniques.
Furthermore, the elaborate architecture of JFire comprises a variety of well-structured modules. Thus users may opt for their preferred modules, rather than being confronted with an unnecessarily large monolithic application. Developers may also extend or enhance these modules to even better fit their custom needs.
For instance, within the JFire Trade module, an Application Program Interface (API) and extension-points are defined for product management, purchase and sale. By extending the data model and providing a graphical presentation in the Graphical User Interface (GUI), developers can create custom and specialized product types of their business. Although these product types are highly specialized, different product types can be sold within the same order, thanks to the Rich Client Platform (RCP) extension points which allow for specialized GUI and handling logic. And because most other functions (invoice booking, payments, deliveries, etc) rely on common properties of all product types, no extension work is required.