package org.koshinuke.jersey;
import java.net.URL;
import javax.servlet.ServletContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.ext.Provider;
import org.koshinuke.conf.Configuration;
import org.koshinuke.conf.PropertiesConfiguration;
import com.sun.jersey.spi.inject.SingletonTypeInjectableProvider;
import com.sun.jersey.spi.resource.Singleton;
/**
* @author taichi
*/
@Singleton
@Provider
public class ConfigurationProvider extends
SingletonTypeInjectableProvider<Context, Configuration> {
public ConfigurationProvider(@Context ServletContext context)
throws Exception {
super(Configuration.class, configure(context));
}
static Configuration configure(ServletContext context) throws Exception {
URL url = (URL) context.getAttribute(Configuration.NAME);
Configuration conf = new PropertiesConfiguration();
conf.configure(url);
return conf;
}
}