/** 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()); Main.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()); }
/** 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(); Main.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()); }
/** 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(); Main.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()); }