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 >> >