Hello Eugeu,

Thanks for this discussion,

I'm a little overworked to read and response quietly. I will try to work
on next week, I plead your patience :)

Nicolas

On 02/08/2021 21:45, Eugen Stan wrote:
> Hello,
>
> This is to start a discussion around how OFBiz is being built and see
> how to improve the current situation.
>
> Some background:
>
> We plan to use (pitch stage) OFBiz with a client in a cloud setup to
> offer warehouse management functionality and more for an existing web
> store. The end goal is to help multiple small businesses have an
> online presence.
>
> IMO the current OFBiz setup is not very well suited for cloud
> deployments. It's quite large, has a lot of components that we don't
> plan to use => are a maintenance burden, might (have) caused security
> leaks. Some components could be split into another process and scaled
> independently: email sending, pdf rendering, batch jobs etc.
>
> Proposal:
>
> I believe that we need to use gradle projects/subprojects and exposes
> ofbiz components and plugins as concrete projects / jar libraries.
>
> This is in contrast to how it's currently done where there is a single
> gradle project that has subprojects created dynamically from ofbiz
> components.
>
>
> IMO, the benefits would be:
>
> * Ability to publish components as jar libraries to consume in other
> projects
> * Increase reusability of components and hopefully - more third party
> adoption. Ex: ofbiz entity engine could be used outside OFBiz and
> improved at a different pace this way
> * Modular design - where dependencies for each component/plugin are
> visible and may evolve independently (this ties well with java modules)
> * Ability for third party to create a custom OFBiz distribution based
> on select components/plugins. These can be slim/specialized version of
> OFBiz suitable for cloud deployment
> * Proper gradle dependency management and explicit dependencies
> https://issues.apache.org/jira/browse/OFBIZ-3500 (Think also IDE
> support for component projects).
>
> * ?!? I might have missed something.
>
> What changes:
>
> IMPORTANT: These changes will enable users to do more with OFBiz. They
> will not change developer workflow that much.
>
> * Create a build.gradle for each ofbiz component in ofbiz-framework
> and later for plugins
> * Depend on the gradle projects. This means using explicit include
> 'project-component' instead of dynamically adding them via
> settings.gradle / activeComponents .
> * Move java dependencies to each subproject
>
> * We can still keep the option to include projects dynamically
> * Apache OFBiz does not have to publish the jar libraries, but can
> offer support for users to do that
>
>
> Next steps:
>
> * Provide code sample to build a light OFBIz framework
> * Split some components into their own gradle module - to make them
> optional: service engines seems like a good candidate (JavaScript,
> http, etc)
>
>
> I am willing to work on this with the community when we reach
> consensus. I am not and OFBiz developer so I will need help pushing
> these upstream.
>
>
> Related issues that would be easier to solve
> * https://issues.apache.org/jira/browse/OFBIZ-12263
> * https://issues.apache.org/jira/browse/OFBIZ-3500
> * https://issues.apache.org/jira/browse/OFBIZ-9322
>

Reply via email to