/** Create an instance of the {@link APIConfiguration} object to setup the framework etc.. */ private APIConfigurationImpl createDefaultAPIConfiguration(LocalConnectorInfoImpl localInfo) { // setup classloader since we are going to construct the config bean ThreadClassLoaderManager.getInstance() .pushClassLoader(localInfo.getConnectorClass().getClassLoader()); try { Class<? extends Connector> connectorClass = localInfo.getConnectorClass(); APIConfigurationImpl rv = new APIConfigurationImpl(); Configuration config = localInfo.getConnectorConfigurationClass().newInstance(); boolean pooling = PoolableConnector.class.isAssignableFrom(connectorClass); rv.setConnectorPoolingSupported(pooling); rv.setConfigurationProperties(JavaClassProperties.createConfigurationProperties(config)); rv.setConnectorInfo(localInfo); rv.setSupportedOperations(FrameworkUtil.getDefaultSupportedOperations(connectorClass)); return rv; } catch (Exception e) { throw ConnectorException.wrap(e); } finally { ThreadClassLoaderManager.getInstance().popClassLoader(); } }