package org.qi4j.entitystore.hazelcast.assembly;
import org.qi4j.api.common.Visibility;
import org.qi4j.bootstrap.Assembler;
import org.qi4j.bootstrap.AssemblyException;
import org.qi4j.bootstrap.ModuleAssembly;
import org.qi4j.entitystore.hazelcast.HazelcastConfiguration;
import org.qi4j.entitystore.hazelcast.HazelcastEntityStoreService;
import org.qi4j.entitystore.memory.MemoryEntityStoreService;
import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
/**
* @author Paul Merlin <paul@nosphere.org>
*/
public class HazelcastEntityStoreAssembler
implements Assembler
{
private Visibility visibility;
public HazelcastEntityStoreAssembler( Visibility visibility )
{
this.visibility = visibility;
}
public void assemble( ModuleAssembly module )
throws AssemblyException
{
module.services( HazelcastEntityStoreService.class ).visibleIn( visibility ).instantiateOnStartup();
module.services( UuidIdentityGeneratorService.class ).visibleIn( visibility );
// FIXME Remove from here and update documentation accordingly
ModuleAssembly config = module.layer().module( "config" );
config.entities( HazelcastConfiguration.class ).visibleIn( Visibility.layer );
config.services( MemoryEntityStoreService.class );
}
}