// which seems to cut out all kettle-specific stuff that has not been abstracted out.
final IDatabaseConnection connection1 = generateDatabaseConnection();
final IDatabaseConnection connection2 = generateDatabaseConnection();
final FileDataSourceMgmtWriter writer = new FileDataSourceMgmtWriter();
final ByteArrayOutputStream bout = new ByteArrayOutputStream();
writer.write(new IDatabaseConnection[]{connection1, connection2}, bout);
final ResourceManager mgr = new ResourceManager();
mgr.registerDefaults();
final Resource directly = mgr.createDirectly(bout.toByteArray(), DatabaseConnectionCollection.class);
final DatabaseConnectionCollection resource = (DatabaseConnectionCollection) directly.getResource();