Skip to content
This repository was archived by the owner on Nov 26, 2024. It is now read-only.

Commit a6fc35c

Browse files
Liquibase's XMLChangeLogSAXParser now gets the Resource instead of an InputStream, LiquibaseMigrate adapted to these changes.
1 parent f7a7fe5 commit a6fc35c

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

dbmigrate/src/main/java/se/fortnox/reactivewizard/dbmigrate/LiquibaseMigrate.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
import liquibase.ext.TimeoutLockService;
1616
import liquibase.lockservice.LockServiceFactory;
1717
import liquibase.resource.ClassLoaderResourceAccessor;
18-
import liquibase.resource.InputStreamList;
18+
import liquibase.resource.Resource;
19+
import liquibase.resource.URIResource;
1920
import se.fortnox.reactivewizard.db.DbDriver;
2021

2122
import javax.inject.Inject;
2223
import java.io.IOException;
23-
import java.io.InputStream;
2424
import java.net.URI;
2525
import java.net.URISyntaxException;
2626
import java.net.URL;
@@ -56,9 +56,7 @@ public LiquibaseMigrate(LiquibaseConfig liquibaseConfig) throws LiquibaseExcepti
5656
while (resources.hasMoreElements()) {
5757
URL url = resources.nextElement();
5858
String file = url.toExternalForm();
59-
int jarFileSep = file.lastIndexOf('!');
60-
String loggedFileName = file.substring(jarFileSep + 1);
61-
Liquibase liquibase = new Liquibase(loggedFileName, new UrlAwareClassLoaderResourceAccessor(file), conn);
59+
Liquibase liquibase = new Liquibase(file, new UrlAwareClassLoaderResourceAccessor(file), conn);
6260
liquibase.getDatabase().setDefaultSchemaName(liquibaseConfig.getSchema());
6361

6462
liquibaseList.add(liquibase);
@@ -152,34 +150,30 @@ void exit() {
152150
System.exit(0);
153151
}
154152

155-
class UrlAwareClassLoaderResourceAccessor extends ClassLoaderResourceAccessor {
153+
static class UrlAwareClassLoaderResourceAccessor extends ClassLoaderResourceAccessor {
156154
private final String realFileName;
157155

158156
public UrlAwareClassLoaderResourceAccessor(String realFileName) {
159157
this.realFileName = realFileName;
160158
}
161159

162160
@Override
163-
public InputStreamList openStreams(String relativeTo, String path) throws IOException {
161+
public Resource get(String path) throws IOException {
164162
if (realFileName.endsWith(path)) {
165163
path = realFileName;
166164
}
167165

168166
if (path.startsWith("file:") || path.startsWith("jar:file:")) {
169167
URL url = new URL(path);
170-
InputStream resourceAsStream = url.openStream();
171-
InputStreamList inputStreamList = new InputStreamList();
172168
URI uri;
173169
try {
174170
uri = url.toURI();
175171
} catch (URISyntaxException e) {
176172
throw new RuntimeException(e);
177173
}
178-
inputStreamList.add(uri, resourceAsStream);
179-
180-
return inputStreamList;
174+
return new URIResource(path, uri);
181175
}
182-
return super.openStreams(relativeTo, path);
176+
return super.get(path);
183177
}
184178
}
185179
}

0 commit comments

Comments
 (0)