Hi Mua,

This topic was discussed earlier at
https://lists.apache.org/thread.html/2d84501386e0479e9016e3c6cbbaafbcea0aa1afdff6f19caadc8658@%3Cdev.fineract.apache.org%3E
.

Here's the relevant snippet with details of alternatives for
TaskInternal.execute()

Details of a quick fix I attempted to work around the removed
TaskInternal.execute() method follow.

Using finalizedBy instead of execute ( i.e migrateTenantListDB.finalizedBy
flywayMigrate) led to the error "Could not get unknown property
'classesDir' for integration test classes of type
org.gradle.api.internal.tasks.DefaultSourceSetOutput". This was fixed by
upgrading flyway plugin to.

apply plugin: 'org.flywaydb.flyway'
dependencies {
classpath
"gradle.plugin.com.boxfuse.client:gradle-plugin-publishing:5.2.4"
}
}

However, this does not seem to work with the current drizzle driver on the
classpath (results in the error "MySQL upgrade required: MySQL 0.1 is
outdated and no longer supported by Flyway. Flyway currently supports MySQL
5.1 and newer"). It runs without issues if I swap in a MySQL driver though.


So, the work for completing the gradle upgrade is blocked due to the issue
with the drizzle driver (at
https://github.com/krummas/DrizzleJDBC/blob/master/LICENSE.txt), which is
no longer maintained.  We cannot change the driver to MySQL connector etc
due to licensing issues (GPL v2 used by the driver is not compatible with
the Apache license). The other popular alternative i.e MariaDB connector
uses an LGPL license, is also not compatible with Apache license.

Here are some things we could explore

-> Raise an issue with https://github.com/flyway/flyway and explore the fix
needed to be made for this error i.e "MySQL upgrade required: MySQL 0.1 is
outdated and no longer supported by Flyway. Flyway currently supports MySQL
5.1 and newer" when using Drizzle driver.
This error message seems wrong since the MySQL version we are using is
greater than 5.1
-> (Long term solution) Find another MySQL driver using a permitted licence
(BSD , MIT etc. permitted licenses at
https://www.apache.org/legal/resolved.html#category-a)

Regards,
Vishwas

On Mon, Mar 18, 2019 at 7:38 AM Mua Rachmann <muarachm...@gmail.com> wrote:

> Hello everyone,
>
> Trust you are all well. I have been working on MIcheal's PR to upgrade the
> gradle to 5.2.1 here - https://github.com/apache/fineract/pull/525
>
> Currently I upgraded the flyway plugin of which i found a compatible mysql
> connector (mysql-connector 8.0.12) which makes it possible to migrate the
> sql files with some few warnings of which i handled in the PR. see here -
> https://github.com/apache/fineract/pull/550
>
> For some reasons I don't know why the migrations perform the same stuffs.I
> would love for someone to please review and tell me what i am doing wrong.
>
> Also due to the execute() method being removed in gradle 5. I keep on
> getting this error when i run any command like ./gradlew flywayMigrate,
> ./gradlew tomcatRunWar. See sample here - https://pastebin.com/VfyGXG9j
>
> I would love to know how to make the default execute() functions in the
> build.gradle file work thanks
>
> Best regards, Mua
>

Reply via email to