@Inject public MigrationEngineProvider(Injector injector, NinjaProperties ninjaProperties) { this.factory = new ImplFromPropertiesFactory<>( injector, ninjaProperties, NinjaConstant.MIGRATION_ENGINE_IMPLEMENTATION, MigrationEngine.class, "ninja.migrations.flyway.MigrationEngineFlyway", true, logger); }
@Inject public CacheProvider(Injector injector, NinjaProperties ninjaProperties) { this.factory = new ImplFromPropertiesFactory<>( injector, ninjaProperties, NinjaConstant.CACHE_IMPLEMENTATION, Cache.class, "ninja.cache.CacheEhCacheImpl", true, logger); // lazy singleton this.supplier = Suppliers.memoize(new Supplier<Cache>() { @Override public Cache get() { return factory.create(); } }); }
@Inject public PostofficeProvider(Injector injector, NinjaProperties ninjaProperties) { this.factory = new ImplFromPropertiesFactory<>( injector, ninjaProperties, PostofficeConstant.postofficeImplementation, Postoffice.class, (ninjaProperties.isProd() ? "ninja.postoffice.commonsmail.PostofficeCommonsmailImpl" : PostofficeMockImpl.class.getCanonicalName()), true, logger); // lazy singleton this.supplier = Suppliers.memoize(new Supplier<Postoffice>() { @Override public Postoffice get() { return factory.create(); } }); }