<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.infinite-erp.co.id/index.php?action=history&amp;feed=atom&amp;title=How_to_publish_a_Module</id>
	<title>How to publish a Module - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.infinite-erp.co.id/index.php?action=history&amp;feed=atom&amp;title=How_to_publish_a_Module"/>
	<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=How_to_publish_a_Module&amp;action=history"/>
	<updated>2026-04-06T16:45:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.infinite-erp.co.id/index.php?title=How_to_publish_a_Module&amp;diff=2470&amp;oldid=prev</id>
		<title>Wikiadmin: /* Central Repository */</title>
		<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=How_to_publish_a_Module&amp;diff=2470&amp;oldid=prev"/>
		<updated>2021-11-20T14:55:57Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Central Repository&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:55, 20 November 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot; &gt;Line 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:CentralRepository.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;svg&lt;/del&gt;| center]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:CentralRepository.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;png&lt;/ins&gt;| center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Life Cycle ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Life Cycle ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-2469:rev-2470 --&gt;
&lt;/table&gt;</summary>
		<author><name>Wikiadmin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.infinite-erp.co.id/index.php?title=How_to_publish_a_Module&amp;diff=2469&amp;oldid=prev</id>
		<title>Wikiadmin: Created page with &quot;{{RatingArticle}}  == Overview ==  This document explains how to publish and manage modules in Central Repository to make them available to any Openbravo ERP instance.  == Cen...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=How_to_publish_a_Module&amp;diff=2469&amp;oldid=prev"/>
		<updated>2021-11-20T14:53:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{RatingArticle}}  == Overview ==  This document explains how to publish and manage modules in Central Repository to make them available to any Openbravo ERP instance.  == Cen...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{RatingArticle}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This document explains how to publish and manage modules in Central Repository to make them available to any Openbravo ERP instance.&lt;br /&gt;
&lt;br /&gt;
== Central Repository ==&lt;br /&gt;
&lt;br /&gt;
The Central Repository is a system embedded in the [http://forge.openbravo.com/ Openbravo Forge] to provide services related to Openbravo ERP ''Modules'' for developers and users:&lt;br /&gt;
&lt;br /&gt;
* For developers:&lt;br /&gt;
** '''Register a module''': a developer registers a new module in the Central Repository to get global unique identifiers to be used for development (it's highly recommended to register a module before starting the module's development).&lt;br /&gt;
** '''Publish a new version''' of a module: a module can have different versions in its life cycle. For each of them module owners need to update the information in the Central Repository to make this new version available for users.&lt;br /&gt;
** '''Manage life cycle''' of a version: a module version can be in different statuses during its life cycle, each of these statuses makes it available to different kinds of Openbravo ERP instances.&lt;br /&gt;
&lt;br /&gt;
* For users:&lt;br /&gt;
** '''Search for modules''': from the MMC users can query the Central Repository to get a list of modules that match with user request.&lt;br /&gt;
** '''Scan for updates''' of a list of module versions: from the MMC users can request to the Central Repository if there are available updates (newer versions) for all the modules installed in their instances (or just for one of them).&lt;br /&gt;
** '''Get the code of a module version''' (to be installed): for both installing new modules and updating current ones it's needed to get the compressed file (.obx file) that stores module code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CentralRepository.svg| center]]&lt;br /&gt;
&lt;br /&gt;
== Life Cycle ==&lt;br /&gt;
&lt;br /&gt;
This section explains the complete life cycle of a module starting from its creation.&lt;br /&gt;
&lt;br /&gt;
=== Creation ===&lt;br /&gt;
&lt;br /&gt;
==== Register Module ====&lt;br /&gt;
&lt;br /&gt;
There are two properties in the modules that are very important to be unique and no other module has the same value for them. They are ''Java Package'' and ''DB_Prefix''. If more than one module with the same ''Java Package'' or ''DB_Prefix'' is tried to be installed in the same Openbravo ERP instance there would be conflicts between them that would prevent the correct installation. This is why it is very important to guarantee uniqueness for these properties.&lt;br /&gt;
&lt;br /&gt;
The way to guarantee this uniqueness worldwide is to register modules in Central Repository just after their [[Modularity_Concepts#Register_a_Module|creation]]. In this way you will notice in case other registered module is making use of the same ''Java Package'' or ''DB_Prefix'' you want to use and in this, case you will be prompted to change your initial election. It is important to register new modules just after their creation before starting their development, doing so you will notice possible conflicts in ''Java Package'' or ''DB_Prefix'' that would affect your module's artifacts' names and would require a lot of work to change if it was registered after they were developed.&lt;br /&gt;
&lt;br /&gt;
You can register your module through the ''Register Module'' button in the main tab of the ''Module'' window. It sends your module's information to Central Repository, checks ''Java Package'' and ''DB_Prefix'' are not already registered by any other module and reserves them for yours making not possible other modules to use them. In case they are already used, an the process is aborted and an error message is shown you to change them before trying to register again.&lt;br /&gt;
&lt;br /&gt;
A registered module is not publicly available for download, so even you don't plan to publish your module it is recommended to register it just to prevent other registered modules to use the same ''Java Package'' or ''DB_Prefix'' you took for yours.&lt;br /&gt;
&lt;br /&gt;
{{(!)|You can check out which are modules already registered in Central Repository in http://forge.openbravo.com/openbravo/moduleslist }}&lt;br /&gt;
&lt;br /&gt;
After registering a module it is possible to unregister it in case it has not been already associated with any project, see [[#Unregister_Module | Unregister Module section]].&lt;br /&gt;
&lt;br /&gt;
==== Associate with a Forge Project ====&lt;br /&gt;
&lt;br /&gt;
To be able to publish a module to the Central Repository so they are accessible through the [[ERP/3.0/Configuration_Manual/Modules_Management|Module Manager Console]], it is necessary to associate it with a Forge Project.&lt;br /&gt;
&lt;br /&gt;
===== Register Project =====&lt;br /&gt;
&lt;br /&gt;
Registering a project is your first step to get involved in the Openbravo ecosystem. Follow this short guide to learn how to register a project in [http://centralrepository.openbravo.com/heartbeat-server/org.openbravo.forge.ui/AllForgeModules Openbravo Forge].&lt;br /&gt;
&lt;br /&gt;
It is a simple 2 step wizard which asks the minimum information to create the project. Note that you will be able to change the configuration afterwards using the administration panel.&lt;br /&gt;
&lt;br /&gt;
First go to the register form:&lt;br /&gt;
&lt;br /&gt;
* On the '''Project Directory''' box (left column) there's an option at the bottom.&lt;br /&gt;
*: [[Image:Create_New_Project.png]]&lt;br /&gt;
&lt;br /&gt;
Then you only need to fill the form:&lt;br /&gt;
&lt;br /&gt;
# '''Fill the basic project information:'''&lt;br /&gt;
#* ''Name:'' The project name. Can have spaces and should be enough to understand the project's aim.&lt;br /&gt;
#* ''Short name:'' A short version of the project's name without spaces. It will be used in project's URL.&lt;br /&gt;
#* ''Description:'' A brief description of the project. What it is about, its goals, its target market.&lt;br /&gt;
#* ''License:'' Choose one of the different licenses for your project. You can choose (if needed) ''other open source'' if non of the combo-box licenses is the one you have chosen for your project. If that's the case, please specify it on the Description field.&lt;br /&gt;
#* ''Project type:'' Whether the project is a translation project or any other kind of project.&lt;br /&gt;
#* ''Category:'' Choose if your project targets Openbravo ERP or Openbravo POS.&lt;br /&gt;
#* ''Subcategory:'' Choose one of the subcategories for the category previously selected.&lt;br /&gt;
#*: '''Note:''' later you will be able to add your project to two more categories in your admin interface.&lt;br /&gt;
#* ''Visibility:'' &lt;br /&gt;
# '''Fill the links to the services associated to the project'''.&amp;lt;br&amp;gt;You can add here the links to your '''own system services''' if any, otherwise Openbravo recommends the usage of [https://bitbucket.org/ bitbucket] as free source code hosting.&lt;br /&gt;
#* ''Forums Link:''&lt;br /&gt;
#* ''Downloads link:''&lt;br /&gt;
#* ''Bugtracking Link:'' &lt;br /&gt;
#* ''Code Link:'' &lt;br /&gt;
#* ''Wiki Link:'' &lt;br /&gt;
&lt;br /&gt;
:Please note that in the case you are a &amp;quot;Professional&amp;quot; localizer registering a &amp;quot;Localization&amp;quot; module or pack the &amp;quot;Forge Project Tools&amp;quot; listed below need to point to Openbravo tools, such as:&lt;br /&gt;
:* '''Wiki Link''' to the corresponding wiki page which needs to be tagged at the very end of the document as [http://wiki.openbravo.com/wiki/Category:Mexico Category:Mexico], for instance. &amp;lt;br&amp;gt;Please contact the Openbravo Localization Lead at (patricia.sanjuan@openbravo.com), before creating your country &amp;quot;Category&amp;quot;.&lt;br /&gt;
:* '''Bugtracking Link''' to the [https://issues.openbravo.com/my_view_page.php Openbravo Issues system - Project: Professional Localizations - Category: Professional Localization Mexico], for instance&amp;lt;br&amp;gt;If you do not find the specific Professional Localization &amp;quot;Category&amp;quot; for your country please contact the Openbravo Localization Lead at (patricia.sanjuan@openbravo.com).&amp;lt;br&amp;gt;Either you want to report an issue or monitor the issues entered, you need to create an account &amp;quot;username&amp;quot; here: [https://login.openbravo.com login Openbravo].&lt;br /&gt;
:** if you are the owner of the &amp;quot;Professional&amp;quot; localization for your country,please contact the Openbravo Localization Lead to inform her about the username who will monitor the issues of any kind reported for your localization project.&lt;br /&gt;
:* and a '''Code Link''' to the corresponding (to be defined).&lt;br /&gt;
&lt;br /&gt;
:If you have any question related to any &amp;quot;localization&amp;quot; project tools link please contact the Openbravo Localization Lead at (patricia.sanjuan@openbravo.com).&lt;br /&gt;
&lt;br /&gt;
And that's all you have to do to create a new project in Openbravo Forge.&lt;br /&gt;
&lt;br /&gt;
Now you can go to your recently created project homepage:&lt;br /&gt;
&lt;br /&gt;
[[Image:Forge_Project.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===== Associate Project with your Module =====&lt;br /&gt;
&lt;br /&gt;
Once there is a project registered in the forge, the next step is to associate the module just registered with it.&lt;br /&gt;
&lt;br /&gt;
It is important to remark that the just registered module does not have a published version yet, therefore you will be able to find it if you select the checkbox &amp;quot;Show modules without published version&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Show_Modules.png|200px]]&lt;br /&gt;
&lt;br /&gt;
You can find this checkbox while browsing Modules by pressing the process button &amp;quot;Show advanced filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Browse_All_Modules.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Then click on the My Modules link in the left menu. Then a window will be opened where all the modules you are admin for are listed. Among them, you'll find the one you just registered.&lt;br /&gt;
&lt;br /&gt;
[[Image:MyModules.png|250px|center]]&lt;br /&gt;
&lt;br /&gt;
If you click in the module name, a new window will be open where you can pick the project you want to associate your module with.&lt;br /&gt;
&lt;br /&gt;
A module can only be associated with one project, but projects can be associated with several modules.&lt;br /&gt;
&lt;br /&gt;
[[Image:AssociateModuleProject.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
===== Unregister Module =====&lt;br /&gt;
&lt;br /&gt;
Right now it is not possible to unregister a module.&lt;br /&gt;
&lt;br /&gt;
Unregistering a module will release the ''Java Package'' and ''DB_Prefix'' that module has making them available again.&lt;br /&gt;
&lt;br /&gt;
=== Support by Author ===&lt;br /&gt;
&lt;br /&gt;
Module's author can decide, at any point in time, which is the support type for each of the modules owned by him.&lt;br /&gt;
&lt;br /&gt;
The possible values are:&lt;br /&gt;
&lt;br /&gt;
* Included in Openbravo Subscription&lt;br /&gt;
* Included in Module Subscription&lt;br /&gt;
* Available as Extra Service&lt;br /&gt;
* No Commercial Support&lt;br /&gt;
* No Information&lt;br /&gt;
&lt;br /&gt;
[[Image:Support_Type.png|center|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Version Life Cycle ===&lt;br /&gt;
&lt;br /&gt;
==== Publish Version ====&lt;br /&gt;
&lt;br /&gt;
When a module version is completed and [[How_To_Create_and_Package_a_Module#Packaging_a_module |packaged]] it can be published in Central Repository.&lt;br /&gt;
&lt;br /&gt;
#Access to the module you want to publish the version for.&lt;br /&gt;
#Click on ''Upload new version'' button.&lt;br /&gt;
#Select the obx file with the version to publish.&lt;br /&gt;
#Select the initial maturity status for that version. Maturity statuses are detailed in [[#Version_Life_Cycle| Version Life Cycle]] section.&lt;br /&gt;
&lt;br /&gt;
[[Image:PublishVersion.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
==== Version Life Cycle ====&lt;br /&gt;
&lt;br /&gt;
During the life of a module, it can be at different maturity statuses in Central Repository. The maturity status for a version should be promoted after passing some tests and/or being used for some time in a real production instance. Setting the maturity for a version is up to the module administrator.&lt;br /&gt;
&lt;br /&gt;
The possible values version maturity status can have are:&lt;br /&gt;
&lt;br /&gt;
*'''Test''': This status is intended to be used for versions that have not been completely tested. A version published with this status should be installed only in instances which desire to test it, generally to provide feedback to the module administrator/owner. Versions with this maturity shouldn't be installed in production environments. ''Not recommended for production purposes''.&lt;br /&gt;
*'''QA'''. During this stage the module must pass all the test defined by the Quality Assurance to confirm it as ''QA Approved''.&lt;br /&gt;
*'''QA Approved''': At this stage the version has been deeply tested and it is ready for production. The module owner feels confident with it, but he wants to have some maturity period before he tags it as ''Confirmed Stable''. It will become available for all the Community instances and the Professional and Basic ones that want to install it at this stage and can be safely installed for production.. ''Recommended for production purposes to early adopters''.&lt;br /&gt;
*'''Confirmed Stable''': It is the final stage for a version. It is supposed to have passed the three previous ones, so it is tested and it has been working during some time in production instances. It is available for every instance. ''Recommended for production purposes to all users''.&lt;br /&gt;
*'''Canceled''': Canceled versions are not available to be installed in any instance.&lt;br /&gt;
&lt;br /&gt;
===== Setting Module Version Maturity =====&lt;br /&gt;
&lt;br /&gt;
Maturity level for a version is set by the module owner and by the administrators of the project the module is associated with. They should define and follow some rules to decide which is the correct status for each version of his modules, but finally is up to him to set it.&lt;br /&gt;
&lt;br /&gt;
====== Initial Status ======&lt;br /&gt;
&lt;br /&gt;
When [[#Publish_Version|publishing a new version]] in Central Repository, the module administrator will be prompted to select the initial maturity status for that new version. Being ''Test'' the default value.&lt;br /&gt;
&lt;br /&gt;
Note that the status for a version can always be upgraded but it cannot be downgraded.&lt;br /&gt;
&lt;br /&gt;
====== Promotion ======&lt;br /&gt;
&lt;br /&gt;
At any point of time, the module administrator can promote the maturity of a version.&lt;br /&gt;
&lt;br /&gt;
The steps to do it are:&lt;br /&gt;
#Select in the [http://forge.openbravo.com forge] the module that contains the version to promote.&lt;br /&gt;
#All the versions of the module are listed below the module details.&lt;br /&gt;
#Change the maturity status of the version you want to promoto, and click on the Update button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PromoteModule.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
====== Cancel ======&lt;br /&gt;
&lt;br /&gt;
In case in a published version a critical issue is found and the module owner wants to prevent this version to be installed in more instances, he can cancel it.&lt;br /&gt;
&lt;br /&gt;
Once a version is canceled it will not appear to be installed or upgraded in any instance. Note that instances that have already installed it, this version will still be usable.&lt;br /&gt;
&lt;br /&gt;
To cancel a version, you have to click on the version number in the module details window. Then the version details is open, and you can click on the Cancel version button on the top right corner.&lt;br /&gt;
&lt;br /&gt;
===== Allowed Maturity Status in Openbravo ERP =====&lt;br /&gt;
&lt;br /&gt;
{{(!)|Professional and Basic instances are defaulted to just accept versions in  '''Confirmed Stable''' maturity status.&lt;br /&gt;
&lt;br /&gt;
Community instances are defaulted to accept versions in at least '''QA Approved''' maturity status.}}&lt;br /&gt;
&lt;br /&gt;
Minimum maturity status accepted in Openbravo ERP instances can be configured. Detailed explanation about how to do that can be found in [[ERP/3.0/Configuration_Manual/Modules_Management#Allowed_Maturity_Status|Modules Management Configuration Manual]].&lt;br /&gt;
&lt;br /&gt;
== Selling modules ==&lt;br /&gt;
&lt;br /&gt;
Module versions can be defined as '''commercial''', which means they may only be installed and used in an Openbravo instance that has been activated with a license key that includes the commercial module (normally added after purchase).  &lt;br /&gt;
&lt;br /&gt;
To increase the accessibility of your commercial module, we strongly recommend that you identify it as '''Available for Trial License''', which means that users who opt for a free 30 Trial license of Openbravo Professional Edition will be able to install and try out your commercial module for 30 days. &lt;br /&gt;
&lt;br /&gt;
More information about selling modules can be found in this [http://wiki.openbravo.com/wiki/How_to_sell_a_module article].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
		
	</entry>
</feed>