package inject;
import common.cms.CmsService;
import common.contexts.ProjectContext;
import common.pages.ReverseRouter;
import common.templates.TemplateService;
import io.sphere.sdk.categories.CategoryTree;
import pages.ReverseRouterImpl;
import play.api.Environment;
import play.api.inject.Binding;
import play.api.inject.Module;
import productcatalog.services.CategoryService;
import productcatalog.services.ProductProjectionService;
import productcatalog.services.ShippingMethodService;
import scala.collection.Seq;
import javax.inject.Singleton;
/**
* Configuration for the Guice {@link com.google.inject.Injector} which
* shall be used in production and integration tests.
*/
public class ApplicationProductionModule extends Module {
@Override
public Seq<Binding<?>> bindings(final Environment environment, final play.api.Configuration configuration) {
return seq(
bind(ProjectContext.class).toProvider(ProjectContextProvider.class).in(Singleton.class),
bind(CategoryTree.class).toProvider(CategoryTreeProvider.class).in(Singleton.class),
bind(TemplateService.class).toProvider(TemplateServiceProvider.class).in(Singleton.class),
bind(CmsService.class).toProvider(CmsServiceProvider.class).in(Singleton.class),
bind(CategoryService.class).toProvider(CategoryServiceProvider.class).in(Singleton.class),
bind(ProductProjectionService.class).toProvider(ProductProjectionServiceProvider.class).in(Singleton.class),
bind(ShippingMethodService.class).toProvider(ShippingMethodServiceProvider.class).in(Singleton.class),
bind(ReverseRouter.class).toInstance(new ReverseRouterImpl())
);
}
}