Problem(s) with special purpose

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem(s) with special purpose

Pierre Smits
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 | Threaded
Open this post in threaded view
|

Re: Problem(s) with special purpose

taher
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" <[hidden email]> 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 | Threaded
Open this post in threaded view
|

Re: Problem(s) with special purpose

taher
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 <[hidden email]
> 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" <[hidden email]> 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 | Threaded
Open this post in threaded view
|

Re: Problem(s) with special purpose

Pierre Smits
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 <[hidden email]>
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 <
> [hidden email]
> > 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" <[hidden email]> 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 | Threaded
Open this post in threaded view
|

Re: Problem(s) with special purpose

taher
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" <[hidden email]> 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 <
> [hidden email]>
> 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 <
> > [hidden email]
> > > 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" <[hidden email]>
> 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 | Threaded
Open this post in threaded view
|

Re: Problem(s) with special purpose

Pierre Smits
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 <[hidden email]>
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" <[hidden email]> 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 <
> > [hidden email]>
> > 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 <
> > > [hidden email]
> > > > 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" <[hidden email]>
> > 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 | Threaded
Open this post in threaded view
|

Re: Problem(s) with special purpose

Pierre Smits
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 <[hidden email]> 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 <
> [hidden email]> 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" <[hidden email]> 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 <
>> > [hidden email]>
>> > 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 <
>> > > [hidden email]
>> > > > 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" <[hidden email]>
>> > 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 | Threaded
Open this post in threaded view
|

Re: Problem(s) with special purpose

Jacques Le Roux
Administrator
In reply to this post by taher
I'd recommend an improvement or task Jira to remember and share the work ;)

Jacques


Le 02/08/2016 à 16:37, Taher Alkhateeb a écrit :

> 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 <[hidden email]
>> 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" <[hidden email]> 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 | Threaded
Open this post in threaded view
|

Re: Problem(s) with special purpose

taher
Hi Pierre,

I did not see anything of your above recommendations that is not compatible
with the plugin system. Everything like repositories and adding and
removing is already there. The only difference I notice is your
recommandation to not have component-load.xml so people just download and
go. However this might have some drawbacks such as being unable to revert
installation tasks or activating deactivating components on demand.

Anyway, this discussion was too long and I got lost in some parts of it. I
will work on a new proposal with a supporting patch soon as the building
block with something more concrete.

Taher Alkhateeb

On Aug 2, 2016 8:22 PM, "Jacques Le Roux" <[hidden email]>
wrote:

> I'd recommend an improvement or task Jira to remember and share the work ;)
>
> Jacques
>
>
> Le 02/08/2016 à 16:37, Taher Alkhateeb a écrit :
>
>> 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 <
>> [hidden email]
>>
>>> 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" <[hidden email]> 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 | Threaded
Open this post in threaded view
|

Re: Problem(s) with special purpose

Pierre Smits
Hi Taher,

When you're saying 'Everything like repositories and adding and removing is
already there', are you saying it is in your proposal regarding the plugin
solution? Which is spread over a lot of dev mail postings? I am a bit lost
as well.

I suggest to capture all regarding your proposal in a wiki page. That way
contributors can add comments to it on the page, and if accepted go into
the next revision of the page. And if the community feel the proposals is
complete, and all potential issues and risks are addressed (also planning
wise), we have something tangible to start planning for realisation. And we
should opt for low-hanging fruit first, instead of only considering a
complex construct, that is intended to catch all kinds of scenarios.

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 8:16 PM, Taher Alkhateeb <[hidden email]>
wrote:

> Hi Pierre,
>
> I did not see anything of your above recommendations that is not compatible
> with the plugin system. Everything like repositories and adding and
> removing is already there. The only difference I notice is your
> recommandation to not have component-load.xml so people just download and
> go. However this might have some drawbacks such as being unable to revert
> installation tasks or activating deactivating components on demand.
>
> Anyway, this discussion was too long and I got lost in some parts of it. I
> will work on a new proposal with a supporting patch soon as the building
> block with something more concrete.
>
> Taher Alkhateeb
>
> On Aug 2, 2016 8:22 PM, "Jacques Le Roux" <[hidden email]>
> wrote:
>
> > I'd recommend an improvement or task Jira to remember and share the work
> ;)
> >
> > Jacques
> >
> >
> > Le 02/08/2016 à 16:37, Taher Alkhateeb a écrit :
> >
> >> 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 <
> >> [hidden email]
> >>
> >>> 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" <[hidden email]>
> 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/
> >>>>
> >>>>
> >
>