{
ModuleAssembly testModule = module.layer().module( "TestDS" );
// Create a specific DataSource that uses the "datasource" service to do the main work
new DataSourceAssembler().
withDataSourceServiceIdentity( "datasource-service" ).
identifiedBy( "testds" ).
visibleIn( Visibility.module ).
withCircuitBreaker( DataSources.newDataSourceCircuitBreaker() ).
assemble( testModule );
// Set up Liquibase service that will create the tables
testModule.services( LiquibaseService.class ).identifiedBy( "liquibase1" ).instantiateOnStartup();
testModule.entities( LiquibaseConfiguration.class );
testModule.forMixin( LiquibaseConfiguration.class ).declareDefaults().enabled().set( true );
testModule.forMixin( LiquibaseConfiguration.class ).declareDefaults().changeLog().set( "changelog.xml" );
}
{
ModuleAssembly testModule2 = module.layer().module( "TestDS2" );
// Create another specific DataSource that uses the "datasource" service to do the main work
// Use DataSourceAssembler to assemble the DataSource.
new DataSourceAssembler().
withDataSourceServiceIdentity( "datasource-service" ).
identifiedBy( "testds2" ).
visibleIn( Visibility.module ).
withCircuitBreaker( DataSources.newDataSourceCircuitBreaker() ).
assemble( testModule2 );