Java 类com.google.inject.servlet.ServletScopes 实例源码

项目:gerrit    文件:GuiceRequestScopePropagator.java   
/** @see RequestScopePropagator#wrap(Callable) */
// ServletScopes#continueRequest is deprecated, but it's not obvious their
// recommended replacement is an appropriate drop-in solution; see
// https://gerrit-review.googlesource.com/83971
@SuppressWarnings("deprecation")
@Override
protected <T> Callable<T> wrapImpl(Callable<T> callable) {
  Map<Key<?>, Object> seedMap = new HashMap<>();

  // Request scopes appear to use specific keys in their map, instead of only
  // providers. Add bindings for both the key to the instance directly and the
  // provider to the instance to be safe.
  seedMap.put(Key.get(typeOfProvider(String.class), CanonicalWebUrl.class), Providers.of(url));
  seedMap.put(Key.get(String.class, CanonicalWebUrl.class), url);

  seedMap.put(Key.get(typeOfProvider(SocketAddress.class), RemotePeer.class), Providers.of(peer));
  seedMap.put(Key.get(SocketAddress.class, RemotePeer.class), peer);

  return ServletScopes.continueRequest(callable, seedMap);
}
项目:nexus-public    文件:ExtDirectJsonRequestProcessorThread.java   
public ExtDirectJsonRequestProcessorThread() {
  Subject subject = SecurityUtils.getSubject();
  checkState(subject != null, "Subject is not set");
  // create the thread state by this moment as this is created in the master (web container) thread
  threadState = new SubjectThreadState(subject);

  final String baseUrl = BaseUrlHolder.get();

  processRequest = ServletScopes.transferRequest(new Callable<String>()
  {
    @Override
    public String call() {
      threadState.bind();
      UserIdMdcHelper.set();
      try {
        // apply base-url from the original thread
        BaseUrlHolder.set(baseUrl);

        return ExtDirectJsonRequestProcessorThread.super.processRequest();
      }
      finally {
        UserIdMdcHelper.unset();
        threadState.restore();
      }

    }
  });
}
项目:gerrit    文件:GuiceRequestScopePropagator.java   
@Inject
GuiceRequestScopePropagator(
    @CanonicalWebUrl @Nullable Provider<String> urlProvider,
    @RemotePeer Provider<SocketAddress> remotePeerProvider,
    ThreadLocalRequestContext local,
    Provider<RequestScopedReviewDbProvider> dbProviderProvider) {
  super(ServletScopes.REQUEST, local, dbProviderProvider);
  this.url = urlProvider != null ? urlProvider.get() : null;
  this.peer = remotePeerProvider.get();
}
项目:dropwizardry    文件:GuiceContainer.java   
@Override
public Map<Scope, ComponentScope> createScopeMap() {
    Map<Scope, ComponentScope> m = super.createScopeMap();

    m.put(ServletScopes.REQUEST, ComponentScope.PerRequest);
    return m;
}
项目:agathon    文件:ModuleTester.java   
@Override
protected void configure() {
  bindScope(RequestScoped.class, ServletScopes.REQUEST);
  for (Binding binding : bindings) {
    binding.bind();
  }
}
项目:agon    文件:GuiceContainer.java   
@Override
public Map<Scope, ComponentScope> createScopeMap() {
    Map<Scope, ComponentScope> m = super.createScopeMap();
    m.put(ServletScopes.REQUEST, ComponentScope.PerRequest);
    return m;
}
项目:agathon    文件:ModuleTester.java   
private static Object doInRequestScope(Callable<Object> callable) throws Exception {
  return ServletScopes.scopeRequest(callable, Collections.<Key<?>, Object>emptyMap()).call();
}