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