package org.dcache.restful;
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import org.glassfish.jersey.message.GZipEncoder;
import org.glassfish.jersey.message.filtering.EntityFilteringFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.filter.EncodingFilter;
import org.dcache.restful.filters.ResponseHeaderFilter;
import org.dcache.restful.providers.ObjectMapperProvider;
import org.dcache.restful.qos.QosManagement;
import org.dcache.restful.resources.namespace.FileResources;
/**
*
*/
public class DcacheRestApplication extends ResourceConfig
{
public DcacheRestApplication()
{
packages("org.dcache.restful",
"org.glassfish.jersey.jackson;",
"com.fasterxml.jackson.jaxrs.json");
//register application resources controller
register(FileResources.class);
register(QosManagement.class);
//register filters
register(ResponseHeaderFilter.class);
//register features/provider
register(ObjectMapperProvider.class);
register(JacksonJsonProvider.class);
register(JacksonJaxbJsonProvider.class);
register(EntityFilteringFeature.class);
/**
* Jersey framework has a built-in functionality to easily enable content encoding.
* Uncomment the line below to activate this default built-in functionality
*/
EncodingFilter.enableFor(this, GZipEncoder.class);
}
}