return new Liquibase(changeLogFile, new CompositeResourceAccessor(openmrsFO, fsFO), database);
/** * Interface used for callbacks when updating the database. Implement this interface and pass it * to {@link DatabaseUpdater#executeChangelog(String, Map, ChangeSetExecutorCallback)} */ public interface ChangeSetExecutorCallback { /** * This method is called after each changeset is executed. * * @param changeSet the liquibase changeset that was just run * @param numChangeSetsToRun the total number of changesets in the current file */ public void executing(ChangeSet changeSet, int numChangeSetsToRun); }
protected ResourceAccessor getFileOpener(ClassLoader cl) { ResourceAccessor mFO = new MavenResourceAccessor(cl); ResourceAccessor fsFO = new FileSystemResourceAccessor(project.getBasedir().getAbsolutePath()); return new CompositeResourceAccessor(mFO, fsFO); }
@Override protected ResourceAccessor getFileOpener(ClassLoader cl) { List<ResourceAccessor> resourceAccessors = new ArrayList<ResourceAccessor>(); resourceAccessors.add(new MavenResourceAccessor(cl)); resourceAccessors.add(new FileSystemResourceAccessor(project.getBasedir().getAbsolutePath())); if (changeLogDirectory != null) { calculateChangeLogDirectoryAbsolutePath(); resourceAccessors.add(new FileSystemResourceAccessor(changeLogDirectory)); } return new CompositeResourceAccessor(resourceAccessors); }
public static void runChangeLog(DataSource dataSource, String mainChangelogFile) { try (Connection connection = dataSource.getConnection()) { JdbcConnection jdbcConnection = new JdbcConnection(connection); Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(jdbcConnection); ClassLoader classLoader = LiquibaseChangelogRunnerUtils.class.getClassLoader(); if (classLoader == null) { throw new RuntimeException("Could not get a classloader"); } ResourceAccessor classLoaderResourceAccessor = new ClassLoaderResourceAccessor(classLoader); ResourceAccessor fileSystemResourceAccessor = new FileSystemResourceAccessor(); CompositeResourceAccessor resourceAccessor = new CompositeResourceAccessor(classLoaderResourceAccessor, fileSystemResourceAccessor); Liquibase liquibase = new Liquibase(mainChangelogFile, resourceAccessor, database); liquibase.update(""); } catch (SQLException e) { throw new RuntimeException("SQL error", e); } catch (DatabaseException e) { throw new RuntimeException("Database error", e); } catch (LiquibaseException e) { throw new RuntimeException("Liquibase error", e); } } }
composite = new CompositeResourceAccessor(clFO, threadClFO);
CompositeResourceAccessor fileOpener = new CompositeResourceAccessor(fsOpener, clOpener);