Search in sources :

Example 11 with DataSourceAssembler

use of org.qi4j.library.sql.assembly.DataSourceAssembler 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;
}
Also used : ModuleAssembly(org.qi4j.bootstrap.ModuleAssembly) DataSourceAssembler(org.qi4j.library.sql.assembly.DataSourceAssembler) PostgreSQLIndexQueryAssembler(org.qi4j.index.sql.assembly.PostgreSQLIndexQueryAssembler) ApplicationAssembly(org.qi4j.bootstrap.ApplicationAssembly) DBCPDataSourceServiceAssembler(org.qi4j.library.sql.dbcp.DBCPDataSourceServiceAssembler) PostgreSQLEntityStoreAssembler(org.qi4j.entitystore.sql.assembly.PostgreSQLEntityStoreAssembler) LayerAssembly(org.qi4j.bootstrap.LayerAssembly)

Aggregations

ModuleAssembly (org.qi4j.bootstrap.ModuleAssembly)11 DataSourceAssembler (org.qi4j.library.sql.assembly.DataSourceAssembler)11 DBCPDataSourceServiceAssembler (org.qi4j.library.sql.dbcp.DBCPDataSourceServiceAssembler)9 EntityTestAssembler (org.qi4j.test.EntityTestAssembler)9 OrgJsonValueSerializationAssembler (org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler)6 PostgreSQLEntityStoreAssembler (org.qi4j.entitystore.sql.assembly.PostgreSQLEntityStoreAssembler)3 Test (org.junit.Test)2 Assembler (org.qi4j.bootstrap.Assembler)2 SingletonAssembler (org.qi4j.bootstrap.SingletonAssembler)2 DerbySQLEntityStoreAssembler (org.qi4j.entitystore.sql.assembly.DerbySQLEntityStoreAssembler)2 PostgreSQLIndexQueryAssembler (org.qi4j.index.sql.assembly.PostgreSQLIndexQueryAssembler)2 C3P0DataSourceServiceAssembler (org.qi4j.library.sql.c3p0.C3P0DataSourceServiceAssembler)2 ResultSet (java.sql.ResultSet)1 SQLException (java.sql.SQLException)1 ArrayList (java.util.ArrayList)1 DataSource (javax.sql.DataSource)1 ActivationEvent (org.qi4j.api.activation.ActivationEvent)1 ActivationEventListener (org.qi4j.api.activation.ActivationEventListener)1 Application (org.qi4j.api.structure.Application)1 Module (org.qi4j.api.structure.Module)1