use of org.qi4j.entitystore.sql.assembly.PostgreSQLEntityStoreAssembler in project qi4j-sdk by Qi4j.
the class PostgreSQLEntityStoreTest method assemble.
@Override
public // START SNIPPET: assembly
void assemble(ModuleAssembly module) throws AssemblyException {
// END SNIPPET: assembly
super.assemble(module);
ModuleAssembly config = module.layer().module("config");
new EntityTestAssembler().assemble(config);
new OrgJsonValueSerializationAssembler().assemble(module);
// START SNIPPET: assembly
// DataSourceService
new DBCPDataSourceServiceAssembler().identifiedBy("postgresql-datasource-service").visibleIn(Visibility.module).withConfig(config, Visibility.layer).assemble(module);
// DataSource
new DataSourceAssembler().withDataSourceServiceIdentity("postgresql-datasource-service").identifiedBy("postgresql-datasource").visibleIn(Visibility.module).withCircuitBreaker().assemble(module);
// SQL EntityStore
new PostgreSQLEntityStoreAssembler().visibleIn(Visibility.application).withConfig(config, Visibility.layer).assemble(module);
}
use of org.qi4j.entitystore.sql.assembly.PostgreSQLEntityStoreAssembler in project qi4j-sdk by Qi4j.
the class PostgreSQLEntityStorePerformanceTest method createAssembler.
private static Assembler createAssembler() {
return new Assembler() {
@Override
public void assemble(ModuleAssembly module) throws AssemblyException {
ModuleAssembly config = module.layer().module("config");
config.services(MemoryEntityStoreService.class);
// DataSourceService
new DBCPDataSourceServiceAssembler().identifiedBy("postgresql-datasource-service").visibleIn(Visibility.module).withConfig(config, Visibility.layer).assemble(module);
// DataSource
new DataSourceAssembler().withDataSourceServiceIdentity("postgresql-datasource-service").identifiedBy("postgresql-datasource").withCircuitBreaker().assemble(module);
// SQL EntityStore
new PostgreSQLEntityStoreAssembler().withConfig(config, Visibility.layer).assemble(module);
}
};
}
use of org.qi4j.entitystore.sql.assembly.PostgreSQLEntityStoreAssembler in project qi4j-sdk by Qi4j.
the class AppAssembler method assemble.
@Override
public ApplicationAssembly assemble(ApplicationAssemblyFactory applicationFactory) throws AssemblyException {
ApplicationAssembly appAss = applicationFactory.newApplicationAssembly();
appAss.setName("SQL Support Sample");
// Config
LayerAssembly configLayer = appAss.layer("config");
ModuleAssembly configModule = configLayer.module("config");
{
configModule.services(OrgJsonValueSerializationService.class).taggedWith(ValueSerialization.Formats.JSON);
configModule.services(MemoryEntityStoreService.class).visibleIn(Visibility.module);
// Use a PreferenceEntityStore instead if you want the configuration to be persistent
// new PreferenceEntityStoreAssembler( Visibility.module ).assemble( configModule );
}
// Infra
LayerAssembly infraLayer = appAss.layer("infra");
ModuleAssembly persistenceModule = infraLayer.module("persistence");
{
persistenceModule.services(OrgJsonValueSerializationService.class).taggedWith(ValueSerialization.Formats.JSON);
// SQL DataSource Service
String dataSourceServiceIdentity = "postgresql-datasource-service";
new DBCPDataSourceServiceAssembler().identifiedBy(dataSourceServiceIdentity).visibleIn(Visibility.module).withConfig(configModule, Visibility.application).assemble(persistenceModule);
// SQL EntityStore DataSource and Service
new DataSourceAssembler().withDataSourceServiceIdentity(dataSourceServiceIdentity).identifiedBy("postgresql-es-datasource").visibleIn(Visibility.module).withCircuitBreaker(DataSources.newDataSourceCircuitBreaker()).assemble(persistenceModule);
new PostgreSQLEntityStoreAssembler().visibleIn(Visibility.application).withConfig(configModule, Visibility.application).assemble(persistenceModule);
// SQL Index/Query DataSource and Service
new DataSourceAssembler().withDataSourceServiceIdentity(dataSourceServiceIdentity).identifiedBy("postgresql-index-datasource").visibleIn(Visibility.module).withCircuitBreaker().assemble(persistenceModule);
new PostgreSQLIndexQueryAssembler().visibleIn(Visibility.application).withConfig(configModule, Visibility.application).assemble(persistenceModule);
}
// App
LayerAssembly appLayer = appAss.layer("app");
ModuleAssembly domainModule = appLayer.module("domain");
{
domainModule.entities(PretextEntity.class);
}
// Uses
infraLayer.uses(configLayer);
appLayer.uses(infraLayer);
return appAss;
}
Aggregations