Issue with Spring boot 1.4.0 - 1.4.3

Description

When running Spring boot 1.4.0 (liquibase 3.5.1), with following configuration :

Java 1.8.0
The db.changelog-master.yaml contains an includeAll reference (relative to file location)
SpringBoot is ran not as standalone but as a Jar deployed from an existing Tomcat instance

we have following problem :

Liquibase complains the folder is empty / no file found.
Tracing down roughly shows that the system is comparing a start path like 'jar:file:[correct path to jar]![correct includeAll folder path]' to the path inside the jar, like includeAll folder path...
obviously, it cannot work...

A QUICK fix would be much appreciated as this is blocking our migration to SpringBoot 1.4.0 (SpringBoot 1.3.6, with liquibase 3.5.2 works with exactly the same configuration)

Environment

springboot 1.4.0, tomcat 7, java 8

Attachments

1

Activity

Show:

Former user May 11, 2018 at 6:20 AM

Seems the fix doesn't consider the situation when includeAll is used with classpath and folder is located in another jar (Java 1.8, Spring boot 1.5.10 and liquibase 3.5.5 or 3.6.1).

Jochen Hebbrecht April 6, 2018 at 2:35 PM

I have the same problem, I upgraded to liquibase 3.5.4 but it is still a problem. The includeAll doesn't seem to find the files which are located in the 'path' property

Nathan Voxland January 22, 2018 at 6:06 AM

Bartek Paczkowski January 3, 2018 at 6:34 PM

Same issue, same circumstances. includeAll not detecting changelogs being included in a nested jar inside a bigger application jar. Version 3.5.3

Stefano Scerra November 15, 2017 at 9:31 AM
Edited

Hello,
as others have said in previous comments, the problem arises when the changelogs are placed in a different jar than the application one. That's the case of a multi-module maven project.

The structure of my project (Spring Boot 1.5.8, Liquibase 3.5.3) consists of 3 maven modules, main application being inside the webapi module:

backend


webapi (war)
--------- src/main/resources/
------------- application.properties


services (jar)
...


dal (jar)
---------- src/main/resources/
--------------- changelog-master.xml
--------------- changelogs/
------------------- changelog_20171010_123010.xml
------------------- changelog_20171011_111520.xml

application.properties

changelog-master.xml

When the application starts on the server, the master changelog is detected, but the actual changelogs in the directory aren't. However, if I include manually each file, it works:

changelog-master.xml

So, it looks a like a problem with includeAll and changelogs in a separate jar.
Thanks,
Stefano

Fixed

Details

Reporter

Fix versions

Affects versions

Priority

Created August 20, 2016 at 2:16 PM
Updated May 11, 2018 at 6:20 AM
Resolved February 8, 2018 at 3:14 PM