Hello Michael, Michael Brohl <michael.br...@ecomify.de> writes:
> thanks for your proposal. Just a few questions to get the whole picture: > > 1. do we really have a complexity problem here? The removed code seems > not too complicated or long. I would claim that we have a complexity problem in OFBiz in general. Some is essential (the data model) but a lot of it is accidental (ad-hoc semantics of the XML, Groovy and Freemarker DSLs, data manipulation across programming layers, complex unused abstractions...). I agree that when considering the change I am proposing in isolation it is not that big in term of complexity reduction. However in the long-run incremental clean-ups that are reducing the number of unused/unnecessary moving parts will allow significative improvements in term of simplification. It is similar to juggling, getting from 7 balls to 6 balls does not reduce the difficulty, however when having only 2 or 3 balls it starts to become manageable for most human. My underlying goal is to empower most OFBiz integrators/contributors by allowing them to put every OFBiz elements (containers, entity engine, service engine, webapps, screen renderer, components) in their brain at the same time and reason informally about the relations between those elements without getting headaches. > 2. what do we lose with the removal? I see one can not only configure > the ComponentContainer class but also set different loaders. I see 2 things we are losing: - The ability to desactivate/replace the "component-container" container a.k.a the ‘ComponentContainer’ class which is augmenting the classpath to add the “src” directories from the components to be able to among other things to find the class implementing the containers defined inside components. - The ability to define a container without associating it to a component. I am not sure to understand what you mean by "set(ting) different loaders" here? As I understand it, "loaders" are set in the ‘Config’ class from the "ofbiz.start.loaders" property which is defined in “{load-data,rmi,start,test}.properties” file or by the arguments passed to the JVM. Am I missing something? Thanks. -- Mathieu Lirzin GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37