diff --git a/jOOQ-meta-extensions/src/main/java/org/jooq/meta/extensions/liquibase/LiquibaseDatabase.java b/jOOQ-meta-extensions/src/main/java/org/jooq/meta/extensions/liquibase/LiquibaseDatabase.java index 51fcb3e367..85fb0812c3 100644 --- a/jOOQ-meta-extensions/src/main/java/org/jooq/meta/extensions/liquibase/LiquibaseDatabase.java +++ b/jOOQ-meta-extensions/src/main/java/org/jooq/meta/extensions/liquibase/LiquibaseDatabase.java @@ -58,6 +58,8 @@ import liquibase.database.Database; import liquibase.database.DatabaseFactory; import liquibase.database.jvm.JdbcConnection; +import liquibase.resource.ClassLoaderResourceAccessor; +import liquibase.resource.CompositeResourceAccessor; import liquibase.resource.FileSystemResourceAccessor; /** @@ -135,11 +137,22 @@ else if (key.startsWith("changeLogParameters.")) { contexts = "" + entry.getValue(); } } + // Retrieve changeLog table names as they might be overridden by configuration setters databaseChangeLogTableName = database.getDatabaseChangeLogTableName(); databaseChangeLogLockTableName = database.getDatabaseChangeLogLockTableName(); - Liquibase liquibase = new Liquibase(scripts, new FileSystemResourceAccessor(), database); + // [#9866] Allow for loading included files from the classpath or using absolute paths. + Liquibase liquibase = new Liquibase( + scripts, + new CompositeResourceAccessor( + new FileSystemResourceAccessor(), + new ClassLoaderResourceAccessor(), + new ClassLoaderResourceAccessor(Thread.currentThread().getContextClassLoader()) + ), + database + ); + liquibase.update(contexts); }