org.qi4j.bootstrap

## Interface Assembler

- All Known Subinterfaces:
    Assemblers.Configurable<AssemblerType>, Assemblers.Identifiable<AssemblerType>, Assemblers.Visible<AssemblerType>
  All Known Implementing Classes:
    AbstractAnyQueryTest, AbstractCachePoolTest, AbstractCollectionSerializationTest, AbstractComplexQueryTest, AbstractConfigurationDeserializationTest, AbstractElasticSearchAssembler, AbstractEntityFinderTest, AbstractEntityStoreTest, AbstractEntityStoreWithCacheTest, AbstractJsonDateFormatTest, AbstractNamedQueryTest, AbstractPlainValueSerializationTest, AbstractPooledDataSourceServiceAssembler, AbstractQi4jScenarioTest, AbstractQi4jTest, AbstractQueryTest, AbstractSQLIndexQueryAssembler, AbstractValueCompositeSerializationTest, AlarmSystemAssembler, ApplicationName, AssemblerCollection, Assemblers.Config, Assemblers.Identity, Assemblers.IdentityConfig, Assemblers.Visibility, Assemblers.VisibilityConfig, Assemblers.VisibilityIdentity, Assemblers.VisibilityIdentityConfig, BoneCPDataSourceServiceAssembler, ClientAssembler, DataSourceAssembler, DataSourceJMXAssembler, DBCPDataSourceServiceAssembler, DerbySQLEntityStoreAssembler, EhCacheAssembler, EntityTestAssembler, EntityToValueAssembler, ESClusterIndexQueryAssembler, ESFilesystemIndexQueryAssembler, ESMemoryIndexQueryAssembler, EventsourcingAssembler, ExternalDataSourceAssembler, FileConfigurationAssembler, FileEntityStoreAssembler, H2SQLEntityStoreAssembler, HazelcastEntityStoreAssembler, HttpShiroAssembler, JacksonValueSerializationAssembler, JCloudsMapEntityStoreAssembler, JdbmEntityStoreAssembler, JettyServiceAssembler, JMXAssembler, LayerName, LevelDBEntityStoreAssembler, LiquibaseAssembler, LoggingAssembler, MemcacheAssembler, MemoryEntityStoreAssembler, ModuleName, MongoMapEntityStoreAssembler, MySQLEntityStoreAssembler, OrgJsonValueSerializationAssembler, PasswordDomainAssembler, PermissionsDomainAssembler, PersistingSequencingAssembler, PostgreSQLEntityStoreAssembler, PostgreSQLIndexQueryAssembler, PreferenceEntityStoreAssembler, RdfMemoryStoreAssembler, RdfNativeSesameStoreAssembler, RdfRdbmsSesameStoreAssembler, RedisMapEntityStoreAssembler, RestAssembler, RestServerAssembler, RiakHttpMapEntityStoreAssembler, RiakProtobufMapEntityStoreAssembler, SchedulerAssembler, SecureJettyServiceAssembler, SingletonAssembler, SolrAssembler, SpringImporterAssembler, SQLiteEntityStoreAssembler, StandaloneShiroAssembler, StaxValueSerializationAssembler, TracingAssembler, TransientSequencingAssembler, UoWFileAssembler, UuidServiceAssembler, ValueAssembler, ValueToEntityAssembler, YammerMetricsAssembler

      public interface Assembler

  ModuleAssemblies are configured by Assemblers. This is the interface you would implement in order to provide all configuration and additional metainfo that is needed to instantiate a Zest application.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `assemble(ModuleAssembly module)` Assemblers receive a callback to the ModuleAssembly they are supposed to configure.

- - ### Method Detail

    - #### assemble

          void assemble(ModuleAssembly module)
                        throws AssemblyException

      Assemblers receive a callback to the ModuleAssembly they are supposed to configure. They can use this to register objects, composites, services etc. and the additional metadata that may exist for these artifacts.

      An Assembler may create new Modules by calling `ModuleAssembly.layer()` and then `LayerAssembly.module(String)` (String)}. This allows an Assembler to bootstrap an entire Layer with more Modules.

      Parameters:
        `module` - the Module to assemble
      Throws:
        `AssemblyException` - thrown if the assembler tries to do something illegal