+1 -- Kind Regards Ashish Vijaywargiya HotWax Systems - est. 1997 <http://www.hotwaxsystems.com/>
On Fri, Jul 14, 2017 at 3:29 PM, 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/a18b5d4086a07ff34a0cb950999e8f > 8e869a6aa7efa2fc866a75a7b6@%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 >