Hello,

We have recently created an association in order to promote OFBiz in Francophony (France, Belgium, etc.)

For that purpose we would like to build with the community an integrated tool which allow to manage extensions (add/modification of source code or file, dependency/compatibility). OFBiz already offers extensions tools, but in some specific cases, these tools don't fit completely, they miss some functionalities. The realization of an extension manager is motivated by the following reasons:
- Need of pre-parametered solution in one domain
- To offer a possibility for companies to extend OFBiz, identify their addings, manage their own modifications (because not integrable in trunk for licence reason, code quality or simply by choice). This can be done by creating modules in their OFBiz development, ie by identifying, grouping and managing the different parts of a development. - Simplify contribution tests and exchanges by standardization of installation (same install system for: patch, patch + add of file, or component hot-deploy + patch) - Industrialization of development/quality control and projects environment methods.

Two cases can illustrate the utility of an extensions manager: labels management and framework modifications: - Concerning labels management, the creation of an extension for rarely used languages would allow to not load all languages in OFBiz. - Concerning framework modifications, it should be able to supply an extension allowing to modify non-overloadable labels, like entities labels.

The Nereide company, a member of the association OFBiz-France, already tried to build such a tool, but did it without prior exchanges with the community.

So, there is an available POC. It contains some gaps (no cross-platform, no external tools used), but this tool partially fills our first needs. Using this tool allows to no longer develop in a monolithic way for each customer, but to split functionalities by modules, reusable in several projects.

It is very useful for industrializing methods of development/receipt and for launching in production OFBiz based projects.

We have a good feedback of experience which reinforces our convictions to go further on this kind of tool. We are firmly convinced that it should be very helpful to increase the use of OFBiz in integration companies. This notion has nothing original ..., no ? (just take a look to the "competitors": Magento, Odoo, etc.), but we think this is the first step to make OFBiz really modular. Making an ERP modular is something complex but desirable. Others before us succeeded in this complex task, we think in particular of PC operating systems such as GNU/Linux. To go further, we have realized a first specification on the expected functionalities of an extension manager : *** It has to be able to get back extensions from previously identified deposits. *** It has to easily identify any modifications done on OFBiz (with or without extensions). *** It has to be able to choose, in an autonomous way, the best solution of storage according to identified modifications.
For example:
* Add/Remove code in a XML DOM.
* Add/Remove code in a text file: line or semantic (method in Java class)
* Add/Remove text or binary files
The chosen storage solution must be as strong as possible. It should make extensions resistant to the evolution of OFBiz arborescence and to potentially conflicting modifications of other extensions. *** It has to preserve the formatting of lines which are not modified (indent, attributes order, etc.). *** It has to authorize adding, then removing a modification, while leaving OFBiz arborescence in its initial state (in particular by deleting added folders). Process must be clean and so reversible. *** It has to be self-sufficient and time-honoured. The tool must generate clean files of adding/modifying. *** It has to allow cross-platform patching. All must be realized through Java (or any other cross-plateforms solution). For example by using Patch source code of Eclipse, Netbeans, etc. *** It has to propose a set of functionalities for extension management (release number, release log, etc.). *** It has to be very simple of use in order to be quickly taken in hand by developers novice to this tool. *** It has to manage dependency between extensions. It must allow separation of modifications which could potentially be used by several extensions.
*** It has to manage the extension documentation (list, add, remove).
*** the notion of pre/post installation process (target ant) of the extension could be useful (launching junit, tests, automatic data loading, etc.).
*** It has to be usable as command line such as OFBiz webapp.

This is only a working base to begin a discussion allowing everyone to express his opinion and to bring ideas in order to build together a reliable and complete tool.
Prepare your critics, looking forward for your answers :)


Group manager of Contributions workgroup
OFBiz-France

Reply via email to