An even better solution would be to disentangle these optionals into
separate OFBiz controlled code repositories. This allows the project to
differentiate between release cycles for the base stack (framework and the
base applications) and for the special purpose solutions.

This would make OFBiz even more appealing to adopters. The base would be
smaller in size. The perception of bloatware would be gone. The adopter can
choose and pick a release of any special purpose components, in accordance
to their business needs. Like Chinese and other oriental restaurants offer
their customers.

Ohh,  and did I mention that the release cycle of those special purpose
components could be significantly shorter? This would feed into an churn
rate that - on average - is higher than what we have now. We can then
release smaller, more often. Also appealing to adopters.

Best regards,

Pierre Smits

ORRTIZ.COM <http://www.orrtiz.com>
OFBiz based solutions & services

OFBiz Extensions Marketplace
http://oem.ofbizci.net/oci-2/

On Tue, Aug 2, 2016 at 6:55 PM, Pierre Smits <pierre.sm...@gmail.com> wrote:

> Hi Taher,
>
> The hot-deploy folder doesn't have the constraint that it needs a
> component present. The folder is there. The folder is and always has been
> intended for adopter to put their special purpose and custom built
> solutions in (as per *their* business requirements). As far as I am
> concerned, the special purpose folder holds components that an adopter can
> regard as optional (based on their business requirements).
>
> Like any one else, I accept the location and the fact that the special
> purpose components are under control of the project. But the aspect of
> optionality is not there. But today - given the existing build and run
> code-requirement - the special purpose folder must exist, and must have at
> least one component.
>
> Given that the special purpose components exists and are under control of
> the project, I would suggest that we keep that as it is (to be able to
> provide updates and include all of them in releases., but we remove the
> build and run code-requirement.
> And if an adopter wants to use one or more of those components, he can
> easily copy these (and their updated versions) to the hot-deploy folder.
> This way we kill the proverbial birds with 1 stone: reduction of
> superfluous code, offering updates and flexibility to the adopters, while
> retaining control on OFBiz special purpose components.
>
> Best regards,
>
> Pierre Smits
>
> ORRTIZ.COM <http://www.orrtiz.com>
> OFBiz based solutions & services
>
> OFBiz Extensions Marketplace
> http://oem.ofbizci.net/oci-2/
>
> On Tue, Aug 2, 2016 at 6:38 PM, Taher Alkhateeb <
> slidingfilame...@gmail.com> wrote:
>
>> Hi Pierre,
>>
>> Thank you for the input. I'm not sure what is your suggestion? Are you
>> recommending that we handle the plugins in the hot-deploy folder?
>>
>> Taher Alkhateeb
>>
>> On Aug 2, 2016 7:28 PM, "Pierre Smits" <pierre.sm...@gmail.com> wrote:
>>
>> > Hi all,
>> >
>> > Thanks, Taher, for looking into the code.
>> >
>> > Deploying 'plugins' and/or external components in the hot-deploy folder
>> > achieves the same result. And then we wouldn't need the whole code set
>> to
>> > take components in the specialpurpose folder into consideration when
>> > building and running OFBiz.
>> >
>> > Best regards,
>> >
>> >
>> >
>> > Pierre Smits
>> >
>> > ORRTIZ.COM <http://www.orrtiz.com>
>> > OFBiz based solutions & services
>> >
>> > OFBiz Extensions Marketplace
>> > http://oem.ofbizci.net/oci-2/
>> >
>> > On Tue, Aug 2, 2016 at 4:37 PM, Taher Alkhateeb <
>> > slidingfilame...@gmail.com>
>> > wrote:
>> >
>> > > Hi Pierre, All
>> > >
>> > > I was looking through the code and with a little bit of work on
>> > > ComponentContainer, ComponentLoaderConfig I think we can fix this
>> issue.
>> > >
>> > > So +1 for allowing zero components in specialpurpose. This is a good
>> step
>> > > towards implementing the plugins logic as you stated.
>> > >
>> > > Taher Alkhateeb
>> > >
>> > > On Tue, Aug 2, 2016 at 12:51 PM, Taher Alkhateeb <
>> > > slidingfilame...@gmail.com
>> > > > wrote:
>> > >
>> > > > Hi Pierre,
>> > > >
>> > > > This is a minor issue that we can fix easily by looking at the XML
>> > > parsing
>> > > > code I don't think it's a big deal.
>> > > >
>> > > > I am assuming you're working on the ecommerce demo data right? For
>> > > testing
>> > > > purposes for now I would suggest that you enable the example
>> component,
>> > > it
>> > > > does not have anything required by the inner components.
>> > > >
>> > > > Taher Alkhateeb
>> > > >
>> > > > On Aug 2, 2016 12:30 PM, "Pierre Smits" <pierre.sm...@gmail.com>
>> > wrote:
>> > > >
>> > > >> Hi all,
>> > > >>
>> > > >> While working on OFBIZ-7016 (removing dependencies on e-commerce),
>> I
>> > > >> tested
>> > > >> also whether it was possible to do a deployment without any of the
>> > > special
>> > > >> purpose components activated.
>> > > >> First, I tested this by commenting out all components in the
>> > > >> component-load.xml file in the specialpurpose folder.
>> > > >>
>> > > >> This generated following error:
>> > > >>
>> > > >> 2016-08-02 11:18:38,224 |main                 |ComponentContainer
>> > > >>   |I| Auto-Loading component directory :
>> > > >> [/Users/pierre/dev/ofbiz/ofbiz-gradle/specialpurpose]
>> > > >>
>> > > >> Exception in thread "main" java.lang.NullPointerException
>> > > >>
>> > > >> at
>> > > >>
>> > >
>> >
>> java.util.Collections$UnmodifiableCollection.<init>(Collections.java:1026)
>> > > >>
>> > > >> at
>> > java.util.Collections$UnmodifiableList.<init>(Collections.java:1302)
>> > > >>
>> > > >> at java.util.Collections.unmodifiableList(Collections.java:1287)
>> > > >>
>> > > >> at
>> > > >>
>> > > >>
>> > >
>> >
>> org.apache.ofbiz.base.component.ComponentLoaderConfig.getComponentsFromConfig(ComponentLoaderConfig.java:105)
>> > > >>
>> > > >> at
>> > > >>
>> > > >>
>> > >
>> >
>> org.apache.ofbiz.base.container.ComponentContainer.loadComponentDirectory(ComponentContainer.java:144)
>> > > >>
>> > > >> at
>> > > >>
>> > > >>
>> > >
>> >
>> org.apache.ofbiz.base.container.ComponentContainer.loadComponentFromConfig(ComponentContainer.java:129)
>> > > >>
>> > > >> at
>> > > >>
>> > > >>
>> > >
>> >
>> org.apache.ofbiz.base.container.ComponentContainer.loadComponents(ComponentContainer.java:95)
>> > > >>
>> > > >> at
>> > > >>
>> > > >>
>> > >
>> >
>> org.apache.ofbiz.base.container.ComponentContainer.init(ComponentContainer.java:73)
>> > > >>
>> > > >> at
>> > > >>
>> > > >>
>> > >
>> >
>> org.apache.ofbiz.base.container.ContainerLoader.loadContainer(ContainerLoader.java:186)
>> > > >>
>> > > >> at
>> > > >>
>> > > >>
>> > >
>> >
>> org.apache.ofbiz.base.container.ContainerLoader.load(ContainerLoader.java:98)
>> > > >>
>> > > >> at
>> > > >>
>> > > >>
>> > >
>> >
>> org.apache.ofbiz.base.start.StartupControlPanel.loadStartupLoaders(StartupControlPanel.java:249)
>> > > >>
>> > > >> at
>> > > >>
>> > > >>
>> > >
>> >
>> org.apache.ofbiz.base.start.StartupControlPanel.start(StartupControlPanel.java:72)
>> > > >>
>> > > >> at org.apache.ofbiz.base.start.Start.main(Start.java:84)
>> > > >>
>> > > >> I also tested with the component-load.xml file removed from the
>> > > >> specialpurpose folder.
>> > > >>
>> > > >> This generated the following build error:
>> > > >>
>> > > >> FAILURE: Build failed with an exception.
>> > > >>
>> > > >>
>> > > >> * Where:
>> > > >>
>> > > >> Script '/Users/pierre/dev/ofbiz/ofbiz-gradle/common.gradle' line:
>> 22
>> > > >>
>> > > >>
>> > > >> * What went wrong:
>> > > >>
>> > > >> A problem occurred evaluating settings 'ofbiz'.
>> > > >>
>> > > >> >
>> > /Users/pierre/dev/ofbiz/ofbiz-gradle/specialpurpose/component-load.xml
>> > > >> (No such file or directory)
>> > > >>
>> > > >> It seems to me there is - currently - a hard coded requirement on
>> > > >>
>> > > >>    1. the existence of component-load.xml in the special purpose
>> > folder,
>> > > >> and
>> > > >>    2. at least 1 special purpose component listed in the
>> > > >> component-load.xml
>> > > >>    file
>> > > >>
>> > > >> However, it is very well possible that an adopter decides to *not*
>> use
>> > > any
>> > > >> of the special purpose components. And also, the discussion of the
>> > > 'plugin
>> > > >> deployment/activation' solution seems to suggest that it is even
>> > > possible
>> > > >> to deactivate all special purpose components (remove from
>> > > >> component-load.xml?).
>> > > >>
>> > > >> I believe we should more carefully look into this regarding how we
>> > deal
>> > > >> with this scenario.
>> > > >>
>> > > >> WDYT?
>> > > >>
>> > > >> Best regards,
>> > > >>
>> > > >> Pierre Smits
>> > > >>
>> > > >> ORRTIZ.COM <http://www.orrtiz.com>
>> > > >> OFBiz based solutions & services
>> > > >>
>> > > >> OFBiz Extensions Marketplace
>> > > >> http://oem.ofbizci.net/oci-2/
>> > > >>
>> > > >
>> > >
>> >
>>
>
>

Reply via email to