Thank you all for your feedback and votes. I just counted 12 positive
votes to go ahead.

I have created a JIRA [1] for this task and I will work on it, but it
would be fantastic if someone is willing to take the lead on this so
that I can focus on refactoring the rest of the core framework. Also
any volunteers to commit or provide patches are more than welcomed.

[1] https://issues.apache.org/jira/browse/OFBIZ-9501

On Tue, Jul 18, 2017 at 6:57 PM, Nicolas Malin <nicolas.ma...@nereide.fr> wrote:
> +1
>
>
>
> Le 14/07/2017 à 11:59, Taher Alkhateeb a écrit :
>>
>>   Hello Everyone,
>>
>> Data loading in OFBiz is quite fragile. A small change could crash the
>> system and finding out the reason can be difficult. I really felt the
>> pain of this when trying to disentangle the framework from data
>> dependencies on plugins [1].
>>
>> I've been thinking about a solution to reduce fragility, and here are
>> my thoughts:
>> - The less data files the better.
>> - The less data the better.
>> - The less distance (e.g. same directory) between data files the better.
>> - No circular dependencies (file dependencies should be like a tree).
>> - Fail fast [2].
>>
>> Therefore, I suggest the following action points:
>> - Create a directory structure similar to [3] in the datamodel component.
>> - For any data that two or more files depend on, immediately move it
>> to the common-<reader>.xml file.
>> - For any data that does not belong to any domain (e.g. marketing,
>> content, etc ..) move it to the common-<reader>.xml.
>> - Maintain a strict dependency hierarchy of demo -> seed -> seed-initial.
>> - Gradually and carefully move data from all applications to the
>> datamodel component as per above guidelines.
>> - Cleanup and refactor the data as we move it including any tests that
>> depend on it.
>>
>> What do you think of this proposal? Does it sound reasonable? Also
>> given the size of what I'm proposing I think we need multiple people
>> to work on this. So is anyone interested in taking part in this
>> initiative?
>>
>> Cheers,
>>
>> Taher Alkhateeb
>>
>> [1] https://issues.apache.org/jira/browse/OFBIZ-9322
>> [2]
>> https://lists.apache.org/thread.html/a18b5d4086a07ff34a0cb950999e8f8e869a6aa7efa2fc866a75a7b6@%3Cdev.ofbiz.apache.org%3E
>> [3] directory structure:
>> data/
>> ├── demo
>> │   ├── accounting-demo.xml
>> │   ├── common-demo.xml
>> │   ├── content-demo.xml
>> │   ├── humanres-demo.xml
>> │   ├── manufacturing-demo.xml
>> │   ├── marketing-demo.xml
>> │   ├── order-demo.xml
>> │   ├── party-demo.xml
>> │   ├── product-demo.xml
>> │   ├── shipment-demo.xml
>> │   └── workeffort-demo.xml
>> ├── seed
>> │   ├── accounting-seed.xml
>> │   ├── common-seed.xml
>> │   ├── content-seed.xml
>> │   ├── humanres-seed.xml
>> │   ├── manufacturing-seed.xml
>> │   ├── marketing-seed.xml
>> │   ├── order-seed.xml
>> │   ├── party-seed.xml
>> │   ├── product-seed.xml
>> │   ├── shipment-seed.xml
>> │   └── workeffort-seed.xml
>> └── seed-initial
>>      ├── accounting-seed-initial.xml
>>      ├── common-seed-initial.xml
>>      ├── content-seed-initial.xml
>>      ├── humanres-seed-initial.xml
>>      ├── manufacturing-seed-initial.xml
>>      ├── marketing-seed-initial.xml
>>      ├── order-seed-initial.xml
>>      ├── party-seed-initial.xml
>>      ├── product-seed-initial.xml
>>      ├── shipment-seed-initial.xml
>>      └── workeffort-seed-initial.xml
>>
>

Reply via email to