/** * Copyright (c) 2007, Peace Technology, Inc. * $Author:Roytman, Alex$ * $Revision$ * $Date$ * $NoKeywords$ */ package com.peacetech.jaxrs.providers; import com.peacetech.jaxrs.CleanupHelper; import org.jetbrains.annotations.NotNull; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.Context; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; @Provider public class CleanupServiceContextResolver implements ContextResolver { @NotNull private final HttpServletRequest request; @NotNull private final CleanupService instance; public CleanupServiceContextResolver(@Context @NotNull HttpServletRequest request) { this.request = request; instance = new CleanupService() { @Override public void register(@NotNull Object closeable) { CleanupHelper.register(closeable, CleanupServiceContextResolver.this.request); } }; } @Override public CleanupService getContext(Class type) { return type.isAssignableFrom(CleanupService.class) ? instance : null; } }