
com.bendb.dropwizard.jooq.jersey.JooqBinder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dropwizard-jooq Show documentation
Show all versions of dropwizard-jooq Show documentation
Addon bundle for Dropwizard to support jOOQ for database access
package com.bendb.dropwizard.jooq.jersey;
import org.glassfish.hk2.utilities.binding.AbstractBinder;
import org.glassfish.jersey.process.internal.RequestScoped;
import org.glassfish.jersey.server.spi.internal.ValueFactoryProvider;
import org.jooq.Configuration;
import org.jooq.ConnectionProvider;
import org.jooq.DSLContext;
import java.util.Map;
import java.util.SortedMap;
/**
* Create bindings for {@link DSLContext} (via
* {@link com.bendb.dropwizard.jooq.jersey.DSLContextFactory}),
* {@link org.jooq.Configuration}, and {@link org.jooq.ConnectionProvider}.
*/
public class JooqBinder extends AbstractBinder {
private final SortedMap configurationMap;
public JooqBinder(final SortedMap configurationMap) {
this.configurationMap = configurationMap;
}
@Override
protected void configure() {
// bind default Configuration to DSLContext
bindFactory(new DSLContextFactory(configurationMap.values().stream().findFirst().orElse(null)))
.to(DSLContext.class)
.in(RequestScoped.class);
// bind multiple instances of Configuration and ConnectionProvider for Named DSLContext(s)
for (final Configuration configuration : configurationMap.values()) {
bind(configuration).to(Configuration.class);
bind(configuration.connectionProvider())
.to(ConnectionProvider.class);
}
// bind a ValueFactoryProvider for Named DSLContext(s)
bind(new DSLContextValueFactoryProvider(configurationMap))
.to(ValueFactoryProvider.class);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy