@Provides @Singleton @Named("plugin") public ClassLoader providesClassLoader(@Named("home") Path homeDirectory, Settings<FileSystemConf> settings) { final Path pluginPath = settings.getPath(FileSystemConf.PLUGIN, homeDirectory); log.info("Loading plugins from '{}'.", pluginPath); return ClassLoaderUtils.initiate(pluginPath); } }
@Provides @Singleton @Named("plugin") public ClassLoader providesClassLoader(@Named("home") Path homeDirectory, Settings<FileSystemConf> settings) { final Path pluginPath = settings.getPath(FileSystemConf.PLUGIN, homeDirectory); log.info("Loading plugins from '{}'.", pluginPath); return ClassLoaderUtils.initiate(pluginPath); } }
private ConnectionFactory createConnectionFactory(boolean profileSql) throws MalformedURLException, ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { Path jdbcDriverClassPath = settings.getPath(PersistenceConf.DRIVER_PATH, homeFolder); ClassLoader classLoader = ClassLoaderUtils.initiate(jdbcDriverClassPath); String jdbcDriverClassName = settings.getString(PersistenceConf.DRIVER_CLASS); URI connectURI = URI.create(settings.getString(PersistenceConf.JDBC_CONNECTION_URI)); // + "?initialTimeout=2"; String userName = settings.getString(PersistenceConf.JDBC_USERNAME); String password = settings.getString(PersistenceConf.JDBC_PASSWORD); Class<?> aClass; try { aClass = Class.forName(jdbcDriverClassName, true, classLoader); } catch (ClassNotFoundException e) { throw new IllegalStateException(String.format( "Unable to locate class '%s' in class path '%s'", jdbcDriverClassName, jdbcDriverClassPath)); } Driver driver = (Driver) aClass.newInstance(); assertTrue(driver.acceptsURL(connectURI.toString())); Properties properties = new Properties(); properties.put("user", userName); properties.put("password", password); if (profileSql) { properties.put("profileSQL", "true"); // MySQL debug option } return new DriverConnectionFactory(driver, connectURI.toString(), properties); }
ClassLoader classLoader = ClassLoaderUtils.initiate(jdbcDriverClassPath);
ClassLoader classLoader = ClassLoaderUtils.initiate(jdbcDriverClassPath);
@Test public void testBasicDataSource() throws Exception { Path jdbcDriverClassPath = settings.getPath(PersistenceConf.DRIVER_PATH, homeFolder); ClassLoader classLoader = ClassLoaderUtils.initiate(jdbcDriverClassPath); BasicDataSource basicDataSource = new BasicDataSource(); basicDataSource.setDriverClassName(settings.getString(PersistenceConf.DRIVER_CLASS)); basicDataSource.setUrl(settings.getString(PersistenceConf.JDBC_CONNECTION_URI)); basicDataSource.setUsername(settings.getString(PersistenceConf.JDBC_USERNAME)); basicDataSource.setPassword(settings.getString(PersistenceConf.JDBC_PASSWORD)); // Does not work in 1.4, fixed in 1.4.1 basicDataSource.setDriverClassLoader(classLoader); try { Connection connection = basicDataSource.getConnection(); assertNotNull(connection); } catch (SQLException e) { // As expected when using DBCP 1.4 } }