All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.voodoodyne.gwizard.rest.JaxrsModule Maven / Gradle / Ivy

The newest version!
package com.voodoodyne.gwizard.rest;

import com.google.inject.servlet.RequestScoped;
import com.google.inject.servlet.ServletModule;
import lombok.EqualsAndHashCode;
import lombok.RequiredArgsConstructor;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import javax.inject.Provider;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.UriInfo;

/**
 * 

We need to make the JAXRS classes available. Resteasy provides a RequestScopeModule * but that conflicts with Guice's servlet modules (and uses its own @RequestScoped), * so we have to duplicate the relevant parts here. I have no idea what the Resteasy * team is thinking, but that's not very Guicy.

* *

This is automatically installed by the RestModule.

*/ @EqualsAndHashCode(of={}) // makes installation of this module idempotent public class JaxrsModule extends ServletModule { @Override protected void configureServlets() { bind(Request.class).toProvider(new ResteasyContextProvider(Request.class)).in(RequestScoped.class); bind(HttpHeaders.class).toProvider(new ResteasyContextProvider(HttpHeaders.class)).in(RequestScoped.class); bind(UriInfo.class).toProvider(new ResteasyContextProvider(UriInfo.class)).in(RequestScoped.class); bind(SecurityContext.class).toProvider(new ResteasyContextProvider(SecurityContext.class)).in(RequestScoped.class); } @RequiredArgsConstructor private static class ResteasyContextProvider implements Provider { private final Class instanceClass; @Override public T get() { return ResteasyProviderFactory.getContextData(instanceClass); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy