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/ |
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/ > |
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/ >> > |
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/ > >> > > > |
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/ > > >> > > > > > > |
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/ > > > >> > > > > > > > > > > |
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/ >> > > >> >> > > > >> > > >> > >> > > |
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/ >>> |
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/ >>>> >>>> > |
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/ > >>>> > >>>> > > > |
Free forum by Nabble | Edit this page |