# JFire

JFire was an enterprise resource planning and customer relationship management system.
The system has been written entirely in Java and is based on the technologies Java EE 5 (formerly J2EE), JDO 2, Eclipse RCP 3. Hence, both client and server can easily be extended and it requires only a relatively low effort to customize it for specific sectors or companies.
Since November 2009, there is a stable JFire release containing many modules, e.g. for user and access rights control, accounting, store management, direct online trade with other companies or end-customers (e.g. via a web shop), an editor for interactive 2-dimensional graphics and other useful plugins. A reporting module which is based on BIRT allows for the editing and rendering of reports, statistics and similar documents (e.g. invoices).
Even though the main goal of the project is to serve as a robust and flexible framework and thus to ease the implementation of sector-specific applications, it contains modules for the out-of-the-box usage in small and medium-sized enterprises.
Because JFire uses JDO as persistence layer, it is independent of the underlying database management system (DBMS) and spares developers the error-prone work of writing SQL. Furthermore, the use of JDO makes it possible to employ other DBMS types (e.g. object databases). According to the project's website, JFire is shipped with the JDO2 reference implementation DataNucleus, which supports many relational databases and db4o.
Even though Java EE, JDO and Eclipse RCP provide many advantages, they have the disadvantage that they require a longer training period than older technologies (e.g. direct SQL).
JFire was published in January 2006 under the conditions of the GNU Lesser General Public License (LGPL). Therefore, it is Free Software and everyone can redistribute it, modify it and use it free of charge.
The project has been shut down. The developer, Nightlabs, went into liquidation on 1 January 2015.

## History

The history of JFire starts in 2003, when the company NightLabs decided to develop a new ticket sales and distribution software. Because they wanted to base this new system on an ERP within one integrated application suite (rather than multiple separate programs), they started to search for a suitable framework. After some research and evaluations, they decided to launch such an ERP framework project based on new technologies like JDO and Eclipse RCP, which make it easy for other projects to build upon.
When first released in January 2006, it quickly gained attention in the Eclipse community: The German Eclipse Magazine published an article in May 2006, the project was invited to the EclipseCon 2006, the Eclipse Magazine India published an article in December 2006 and in April 2007, the JFire project was invited to the Eclipse Forum Europe, where it impressed the BIRT team with its graphical parameter workflow builder.
In late 2009, Jfire had been absorbed by the company VIENNA Advantage.

## Architecture

JFire consists of two parts - the server and different types of clients. So far, the most comprehensive client is a rich client. Additionally, there exists a JSP web client, which currently supports only a part of the functionality (e.g. a web shop). Some applications built on JFire employ other types of clients, as well (e.g. mobile devices used in Yak, an access control system). Because JFire enables different companies/organizations to cooperate directly, a server acts as client to other servers, as well. Each organization has its own JDO datastore, which guarantees a very high degree of protection of privacy. Between organizations, only data essentially required by the business partner are exchanged.
Following the framework idea, JFire is built very modular: In the client, it consists of OSGi plug-ins based on the Eclipse Rich Client Platform (RCP) and in the server, JFire is composed of Java EE EAR modules. Due to its modularity, JFire is used as base for non-ERP applications, too, which employ a smaller number of modules (e.g. only the user, access rights and organization management).

### Server

The Base-Module is responsible for Authentication, User- and Rightsmanagement and builds the core for transactions between different organisations and servers. On top of it comes the Trade-Module which includes Accounting, Store-Management, Reporting and forms the base for a general distribution sales network.
The Trade-Module offers many interfaces for easy integration of external systems like third-party payment- or delivery-systems. Additionally it provides extension possibilities to build your own Business Application on top of JFire.