use of org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner in project flyway by flyway.
the class ClassUtilsSmallTest method addDirectoryToClasspath.
/**
* Tests dynamically adding a directory to the classpath.
*/
@Test
public void addDirectoryToClasspath() throws Exception {
assertFalse(new ClassPathResource("pkg/runtime.conf", getClassLoader()).exists());
String folder = new ClassPathResource("dynamic", getClassLoader()).getLocationOnDisk();
ClassUtils.addJarOrDirectoryToClasspath(folder);
assertTrue(new ClassPathResource("pkg/runtime.conf", getClassLoader()).exists());
Resource[] resources = new ClassPathScanner(getClassLoader()).scanForResources(new Location("classpath:pkg"), "run", ".conf");
assertEquals("pkg/runtime.conf", resources[0].getLocation());
}
use of org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner in project flyway by flyway.
the class ClassUtilsSmallTest method addJarToClasspath.
/**
* Tests dynamically adding a jar file to the classpath.
*/
@Test
public void addJarToClasspath() throws Exception {
assertFalse(new ClassPathResource("db/migration/V1__Initial_structure.sql.sql", getClassLoader()).exists());
assertFalse(ClassUtils.isPresent("org.flywaydb.sample.migration.V1_2__Another_user", getClassLoader()));
String jar = new ClassPathResource("flyway-sample.jar", getClassLoader()).getLocationOnDisk();
assertTrue(new File(jar).isFile());
ClassUtils.addJarOrDirectoryToClasspath(jar);
assertTrue(new ClassPathResource("db/migration/V1__Initial_structure.sql", getClassLoader()).exists());
assertTrue(ClassUtils.isPresent("org.flywaydb.sample.migration.V1_2__Another_user", getClassLoader()));
Resource[] resources = new ClassPathScanner(getClassLoader()).scanForResources(new Location("classpath:db/migration"), "V1__", ".sql");
assertEquals("db/migration/V1__Initial_structure.sql", resources[0].getLocation());
Class<?>[] classes = new ClassPathScanner(getClassLoader()).scanForClasses(new Location("classpath:org/flywaydb/sample/migration"), SpringJdbcMigration.class);
assertEquals("org.flywaydb.sample.migration.V1_2__Another_user", classes[0].getName());
}
use of org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner in project flyway by flyway.
the class ClassUtilsSmallTest method addDirectoryToClasspathDefaultPackage.
/**
* Tests dynamically adding a directory to the default package of classpath.
*/
@Test
public void addDirectoryToClasspathDefaultPackage() throws Exception {
assertFalse(new ClassPathResource("runtime.conf", getClassLoader()).exists());
String folder = new ClassPathResource("dynamic/pkg2", getClassLoader()).getLocationOnDisk();
ClassUtils.addJarOrDirectoryToClasspath(folder);
assertTrue(new ClassPathResource("funtime.properties", getClassLoader()).exists());
Resource[] resources = new ClassPathScanner(getClassLoader()).scanForResources(new Location("classpath:"), "fun", ".properties");
assertEquals("funtime.properties", resources[1].getLocation());
}
use of org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner in project che by eclipse.
the class ResourcesFinder method findResources.
/**
* Finds script resources in configured {@link FlywayConfiguration#getLocations()}.
*
* @param configuration
* flyway configuration to find scripts
* @return found scripts or an empty list if nothing found
* @throws IOException
* when any io error occurs during scripts look up
*/
Map<Location, List<Resource>> findResources(FlywayConfiguration configuration) throws IOException {
final String prefix = configuration.getSqlMigrationPrefix();
final String suffix = configuration.getSqlMigrationSuffix();
final ClassPathScanner cpScanner = new ClassPathScanner(configuration.getClassLoader());
final FileSystemScanner fsScanner = new FileSystemScanner();
final Map<Location, List<Resource>> resources = new HashMap<>();
for (String rawLocation : configuration.getLocations()) {
final Location location = new Location(rawLocation);
if (location.isClassPath()) {
resources.put(location, newArrayList(cpScanner.scanForResources(location, prefix, suffix)));
} else {
resources.put(location, newArrayList(fsScanner.scanForResources(location, prefix, suffix)));
}
}
return resources;
}
use of org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner in project flyway by flyway.
the class ClassUtilsSmallTest method addJarToClasspathNoDirectoryEntries.
/**
* Tests dynamically adding a jar file to the classpath.
*/
@Test
public void addJarToClasspathNoDirectoryEntries() throws Exception {
assertTrue(new ClassPathResource("db/migration/V1_11__Create_tbl_bob.sql", getClassLoader()).exists());
Resource[] resources = new ClassPathScanner(getClassLoader()).scanForResources(new Location("classpath:db/migration"), "V1_11", ".sql");
Class[] classes = new ClassPathScanner(getClassLoader()).scanForClasses(new Location("classpath:db/migration"), JdbcMigration.class);
assertEquals("db/migration/V1_11__Create_tbl_bob.sql", resources[0].getLocation());
assertEquals(0, classes.length);
}
Aggregations