+1

Regards,
James Yong

On 2017-07-14 17:59 (+0800), Taher Alkhateeb <slidingfilame...@gmail.com> 
wrote: 
>  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