
com.bendb.dropwizard.jooq.jersey.DSLContextValueFactoryProvider 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.api.Factory;
import org.glassfish.jersey.server.model.Parameter;
import org.glassfish.jersey.server.spi.internal.ValueFactoryProvider;
import org.jooq.Configuration;
import org.jooq.DSLContext;
import javax.inject.Singleton;
import java.util.Map;
@Singleton
public final class DSLContextValueFactoryProvider implements ValueFactoryProvider {
final Map configurationMap;
public DSLContextValueFactoryProvider(Map configurationMap) {
this.configurationMap = configurationMap;
}
@Override
public Factory> getValueFactory(Parameter parameter) {
final Class> classType = parameter.getRawType();
final JooqInject jooqInjectParam = parameter.getAnnotation(JooqInject.class);
return (classType == null || !classType.equals(DSLContext.class) || jooqInjectParam == null)
? null // return null when parameter not supported
: new DSLContextFactory(getConfiguration(configurationMap, jooqInjectParam.value())
);
}
@Override
public PriorityType getPriority() {
return ValueFactoryProvider.Priority.NORMAL;
}
private Configuration getConfiguration(
final Map configurationMap,
final String key
) {
return (configurationMap.containsKey(key))
? configurationMap.get(key)
: configurationMap.values().stream().findFirst().orElse(null);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy