Hello,

I'd like to get opinions from the devs on whether it is worth pursuing
changes to include database driver resolution in ofbiz builds.

PR246 (https://github.com/apache/ofbiz-framework/pull/246) was an
experiment to try and configure an instance of ofbiz from the gradle build,
covering database driver resolution and populating entityengine.xml with
username, password, etc needed to access a DBMS.

I've since learned about how ofbiz uses the Application gradle plugin to
create distributions (distTar / distZip) where it probably wouldn't be
appropriate to embed username and password at build time. Therefore I don't
think it is worth pursuing use of build-time properties to configure
database access.

However I do wonder if it is still worth using a build-time property to
target a build and its distributions for use with a particular DBMS type
(mysql, postgres, etc). Although they wouldn't be distributed by Apache,
another party might then be able to then create and host ofbiz
distributions for each of the major DBMS platforms, with the appropriate
client access DBMS library already included. I think this would assist in
creation of container images targeting different databases too.

We already specify versions of all other ofbiz dependencies, but we don't
specify the versions of DBMS access libraries that should be used. This
creates an extra deployment step for an ofbiz administrator and might
potentially be a source of confusion.

By making DBMS choice a build-time property we can declare, in code, which
libraries are officially supported by the project.

If this is worth pursuing the next step will be to identify the database
driver versions used by the community for their ofbiz deployments.

Please let me know what you think.

Thanks,

Dan

On Mon, 30 Nov 2020 at 20:45, Daniel Watford <d...@foomoo.co.uk> wrote:

> Hello,
>
> I'ved added a PR for OFBIZ-12081 where I add a gradle runtime dependency
> to download a specific database driver. Currently I have only added a
> driver for Postgres, but it should be simple to nominate drivers for other
> DBMS where they can be downloaded and distributed.
>
> Are there any issues with having an ofbiz 'approved' version of a database
> driver specified as part of the ofbiz build process?
>
> If this is a reasonable thing to do please nominate dependencies for the
> other DBMS supported by ofbiz.
>
> The same PR also adds a new build task to modify values in
> entityengine.xml corresponding to the DBMS selected in gradle.properties.
>
> I propose these additions to support building multiple varieties of docker
> images which are pre-loaded with the database driver for a particular DBMS.
> These pre-configured docker images can then be used as part of ofbiz
> published docker-compose specifications which couple a docker image with a
> particular DBMS, all running in their own containers.
>
> Please let me know if there are any concerns with pre-configuring builds
> in this way.
>
> Thanks,
>
> Dan.
>
> --
> Daniel Watford
>


-- 
Daniel Watford

Reply via email to