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