Since there was no opposition, I committed the proposed changes.

Mathieu Lirzin <mathieu.lir...@nereide.fr> writes:

> Hello Michael,
>
> Michael Brohl <michael.br...@ecomify.de> writes:
>
>> sorry for the late reply. I meant the loaders configuration attribute
>> and corresponding loading code:
>>
>> <container name="component-container"
>> loaders="main,rmi,load-data,test"
>> class="org.apache.ofbiz.base.container.ComponentContainer"/>
>
> Ah I see what you meant.  To my understanding, the ‘loaders’ attribute
> tells OFBiz to load a container only if there are some elements in
> common between actual loaders (defined at runtime in the
> ‘Config#loaders’ field) and the one declared by the containers, with the
> special case where the loaders are empty.  You can take a look at the
> ‘Container#intersects’ method which implements this logic:
>
>     private static boolean intersects(Collection<?> a, Collection<?> b) {
>         return UtilValidate.isEmpty(a) && UtilValidate.isEmpty(b)
>                 || !Collections.disjoint(a, b);
>     }
>
> Since the “loaders” attribute is not specific to the containers defined
> in the “ofbiz-containers.xml” file, I don't think there will by any
> feature loss in that regard.
>
> I have proposed those changes about a month ago and nobody opposed to
> them. As a consequence I would like to move forward by committing the
> patches from OFBIZ-11100 [1] on ‘trunk’. Are you opposing that Michael?
>
> Thanks.
>
> [1] https://issues.apache.org/jira/browse/OFBIZ-11100
>
>> Am 14.06.19 um 21:30 schrieb Mathieu Lirzin:
>>> 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

Reply via email to