package ameba.mvc.template.internal; import org.glassfish.jersey.internal.inject.AbstractBinder; import org.glassfish.jersey.server.model.ModelProcessor; import org.glassfish.jersey.server.mvc.spi.ViewableContext; import javax.inject.Singleton; import javax.ws.rs.ext.MessageBodyWriter; import javax.ws.rs.ext.WriterInterceptor; /** * Provides MVC functionality. * * @author Michal Gajdos (michal.gajdos at oracle.com) * @author icode * */ public class MvcBinder extends AbstractBinder { /** * {@inheritDoc} */ @Override protected void configure() { bind(TemplateMethodInterceptor.class).to(WriterInterceptor.class).in(Singleton.class); //noinspection unchecked bind(ViewableMessageBodyWriter.class).to(MessageBodyWriter.class).in(Singleton.class); bind(TemplateModelProcessor.class).to(ModelProcessor.class).in(Singleton.class); bindAsContract(ResolvingViewableContext.class).in(Singleton.class); bind(ResolvingViewableContext.class).to(ViewableContext.class).in(Singleton.class).ranked(1); } }