Thanks Mridul and Jacques for the valuable feedback. I also agree with your proposition. My vote is also for approach #1.
Best Pawan On Thu, Jul 30, 2020, 9:32 PM Jacques Le Roux <jacques.le.r...@les7arts.com> wrote: > Hi, > > Like Mridul, I also suggested the 2nd approach. I eventually tend to > agree with Mridul. Having clearly separated packages, even with a bit of > redundancy, simplifies and consolidate things. > > Jacques > > Le 30/07/2020 à 17:37, Mridul Pathak a écrit : > > Hi Pawan, > > > > Though few years ago I was advocate of the approach #2 that you have > suggested here, now I think that #1 is the best approach. In real time > implementations the idea of plugins is to be able to use only what you > need. Like for payment integrations you selectively use the gateways, > mostly one. So it should be as easy to drop the plugin for your preferred > gateway and use it, you shouldn’t need to unnecessarily have to code of all > other payment integrations that you don’t need. Also, from maintenance > perspective even though some of these third party integrations could be > categorised but still each of them have their own API specification, > configurations and they need to be maintained separately. So, my vote would > be to #1 that is to create separate plugins for each third party > integration. > > > > Thanks. > > -- > > Mridul Pathak > > > > > >> On 30-Jul-2020, at 8:34 PM, Pawan Verma <pawan.ve...@hotwaxsystems.com> > wrote: > >> > >> Hi Pritam, > >> > >> I am also more inclined to not create a different repository for > >> third-party-plugins. As we can have any number of plugins in OFBiz and > >> Users can set up required plugins as per their need. > >> > >> I would suggest creating separate plugins for each third-party > integration > >> like ups, firstdatapaymentgateway, etc that way if the user wants only a > >> specific gateway or plugins can have only that one. > >> > >> I suggest two approaches: > >> #1: Create a separate plugin for each integration and put them into the > >> plugins directory. > >> > >> #2: Club all the related plugins into one directory and can add that > parent > >> directory in base/config/component-load.xml. The benefit of this > approach > >> is we can have all payment or other gateways in one place and also don't > >> need to create a separate repository for the third-party-plugins. > >> Example for shipping gateways: > >> > >> 1. Club all shipping gateways into the plugins/shipping-gateway > directory > >> 2. Add this shipping-gateway into base/config/component-load.xml > >> as <load-components parent-directory="plugins/shipping-gateway"/> > >> > >> If we follow the #2 approach we may need to improve our plugin setup > Gradle > >> target i.e. pullPluginSource. > >> > >> Please let me know your thoughts and I can provide more detail if > needed. > >> > >> Best > >> Pawan > >