package bo.gotthardt.todolist.application; import bo.gotthardt.ebean.EbeanBundle; import bo.gotthardt.model.Widget; import bo.gotthardt.queue.rabbitmq.RabbitMQBundle; import bo.gotthardt.rest.CrudService; import com.avaje.ebean.EbeanServer; import com.codahale.metrics.MetricRegistry; import io.dropwizard.setup.Environment; import lombok.RequiredArgsConstructor; import org.glassfish.hk2.api.TypeLiteral; import org.glassfish.hk2.utilities.binding.AbstractBinder; @RequiredArgsConstructor public class TodoListHK2Binder extends AbstractBinder { private final Environment environment; private final TodoListConfiguration configuration; private final EbeanBundle ebeanBundle; private final RabbitMQBundle rabbitMqBundle; @Override protected void configure() { bind(environment.metrics()).to(MetricRegistry.class); bind(ebeanBundle.getEbeanServer()).to(EbeanServer.class); // bindFactory(rabbitMqBundle.getQueueFactory("username", User.class)) // .to(new TypeLiteral<MessageQueue<User>>() {}) // .named("username"); bindFactory(WidgetCrudFactory.class).to(new TypeLiteral<CrudService<Widget>>(){}); // guice // bind(EmailService.class).toProvider(EmailServiceProvider.class); // bind(new TypeLiteral<HasSendGridConfiguration>(){}).toInstance(configuration); } }