ModuleAssembly createModule( LayerAssembly layer ) { module = layer.module( moduleName ); return module; }
@Override public ModuleAssembly module(String layerName, String moduleName) { return layerAssembly.application().module(layerName, moduleName); }
@Override protected void defineApplication( ApplicationAssembly applicationAssembly ) throws AssemblyException { LayerAssembly accessLayer = applicationAssembly.layer( "Access Layer" ); LayerAssembly domainLayer = applicationAssembly.layer( "Domain Layer" ); LayerAssembly infrastructureLayer = applicationAssembly.layer( "Infrastructure Layer" ); LayerAssembly configLayer = applicationAssembly.layer( "Configuration Layer" ); accessLayer.uses( domainLayer.uses( infrastructureLayer.uses( configLayer ) ) ); defineConfigModule( configLayer.module( "Configuration Module" ) ); defineSerializationModule( configLayer.module( "Serialization Module" ) ); defineStorageModule( infrastructureLayer.module( "Storage Module" ) ); defineMonetaryModule( domainLayer.module( "Monetary Module" ) ); definePeopleModule( domainLayer.module( "People Module" ) ); defineLegalModule( domainLayer.module( "Legal Module" ) ); defineTestModule( accessLayer.module( "TestCase Module" ) ); }
public static InfrastructureLayer create( LayerAssembly layer ) { ModuleAssembly config = layer.application().layer( ConfigurationLayer.NAME ).module( ConfigurationModule.NAME ); return new InfrastructureLayer( config ); }
@Override public void assemble( ModuleAssembly module ) throws AssemblyException { LayerAssembly layer = module.layer(); assembleValues( module, Visibility.module ); assembleEntities( module, Visibility.module ); ModuleAssembly storeModule = layer.module( "store" ); new EntityTestAssembler().visibleIn( Visibility.layer ).assemble( storeModule ); assembleValues( storeModule, Visibility.module ); ModuleAssembly indexModule = layer.module( "index" ); new RdfNativeSesameStoreAssembler( Visibility.layer, Visibility.module ).assemble( indexModule ); LayerAssembly configLayer = module.layer().application().layer( "config" ); module.layer().uses( configLayer ); ModuleAssembly config = configLayer.module( "config" ); config.entities( NativeConfiguration.class ).visibleIn( Visibility.application ); config.forMixin( NativeConfiguration.class ).declareDefaults() .dataDirectory().set( tmpDir.getRoot().getAbsolutePath() ); new EntityTestAssembler().assemble( config ); }
void initialize( HashMap<String, LayerAssembly> createdLayers ) { for( String uses : using ) { LayerAssembly usedLayer = createdLayers.get( uses ); layer.uses( usedLayer ); } for( ModuleDeclaration module : modules.values() ) { module.initialize(); } } }
@Override public void assemble( ModuleAssembly module ) throws AssemblyException { module.layer().application().withActivators( AlphaApplicationActivator.class, BetaApplicationActivator.class ); module.layer().withActivators( AlphaLayerActivator.class, BetaLayerActivator.class ); module.withActivators( AlphaModuleActivator.class, BetaModuleActivator.class ); }
@Override public void assemble( ModuleAssembly module ) { module.layer().setName( name ); } }
@Test public void testInjectionServiceBetweenLayers() throws ActivationException { SingletonAssembler assembly = new SingletonAssembler( module -> { module.services( MyServiceComposite.class ) .identifiedBy( "Foo" ) .setMetaInfo( new ServiceName( "Foo" ) ); module.services( StringService.class, LongService.class ); LayerAssembly layerAssembly = module.layer(); module.objects( ServiceUser.class ); ApplicationAssembly applicationAssembly = layerAssembly.application(); LayerAssembly layer2Assembly = applicationAssembly.layer( "Other layer" ); layerAssembly.uses( layer2Assembly ); ModuleAssembly module2 = layer2Assembly.module( "Other module" ); ServiceDeclaration service2Decl = module2.services( MyServiceComposite2.class ); service2Decl.identifiedBy( "Bar" ).setMetaInfo( new ServiceName( "Bar" ) ).visibleIn( application ); } ); testInjection( assembly ); }
private SingletonAssembler activateEmbeddedElasticsearch( final String name ) { try { return new SingletonAssembler( module -> { module.layer().application().setName( name ); ModuleAssembly config = module.layer().module( "config" ); new EntityTestAssembler().assemble( config ); new EntityTestAssembler().assemble( module ); new FileConfigurationAssembler() .withOverride( new FileConfigurationOverride().withConventionalRoot( tmpDir.getRoot() ) ) .assemble( module ); new ESFilesystemIndexQueryAssembler() .identifiedBy( name ) .withConfig( config, Visibility.layer ) .assemble( module ); } ); } catch( ActivationException | AssemblyException ex ) { throw new RuntimeException( "Embedded Elasticsearch Rule - Failed to activate", ex ); } }
void initialize( HashMap<String, LayerAssembly> createdLayers ) { for( String uses : using ) { LayerAssembly usedLayer = createdLayers.get( uses ); layer.uses( usedLayer ); } for( ModuleDeclaration module : modules.values() ) { module.initialize(); } } }
@Override public void assemble( ModuleAssembly module ) { module.layer().setName( name ); } }
ModuleAssembly createModule( LayerAssembly layer ) { module = layer.module( moduleName ); return module; }
@Override protected void defineApplication( ApplicationAssembly applicationAssembly ) throws AssemblyException { LayerAssembly accessLayer = applicationAssembly.layer( "Access Layer" ); LayerAssembly domainLayer = applicationAssembly.layer( "Domain Layer" ); LayerAssembly infrastructureLayer = applicationAssembly.layer( "Infrastructure Layer" ); LayerAssembly configLayer = applicationAssembly.layer( "Configuration Layer" ); accessLayer.uses( domainLayer.uses( infrastructureLayer.uses( configLayer ) ) ); defineConfigModule( configLayer.module( "Configuration Module" ) ); defineSerializationModule( configLayer.module( "Serialization Module" ) ); defineStorageModule( infrastructureLayer.module( "Storage Module" ) ); defineMonetaryModule( domainLayer.module( "Monetary Module" ) ); definePeopleModule( domainLayer.module( "People Module" ) ); defineLegalModule( domainLayer.module( "Legal Module" ) ); defineTestModule( accessLayer.module( "TestCase Module" ) ); }
assembleValues( module, Visibility.layer ); module = module.layer().module( "module2" ); new EntityTestAssembler().visibleIn( Visibility.layer ).assemble( module ); LayerAssembly configLayer = module.layer().application().layer( "config" ); module.layer().uses( configLayer ); ModuleAssembly config = configLayer.module( "config" ); new EntityTestAssembler().assemble( config );
@Override public void assemble( ModuleAssembly module ) { module.layer().application().setName( name ); } }
@Override protected void assembleLayers( ApplicationAssembly assembly ) { LayerAssembly accessLayer = createLayer( AccessLayer.class ); LayerAssembly domainLayer = createLayer( DomainLayer.class ); LayerAssembly persistenceLayer = createLayer( PersistenceLayer.class ); LayerAssembly indexingLayer = createLayer( IndexingLayer.class ); LayerAssembly configLayer = createLayer( ConfigLayer.class ); accessLayer.uses( domainLayer ); domainLayer.uses( persistenceLayer, indexingLayer ); persistenceLayer.uses( configLayer ); indexingLayer.uses( configLayer ); }
LayerAssembly createLayer( ApplicationAssembly application ) { layer = application.layer( layerName ); layer.setName( layerName ); for( ModuleDeclaration module : modules.values() ) { ModuleAssembly assembly = module.createModule( layer ); } return layer; }
private static void createPayablesModule( LayerAssembly layer ) { layer.module("payables-module"); }