You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by bl...@apache.org on 2009/10/08 03:30:41 UTC
svn commit: r822994 -
/incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/ResourceImpl.java
Author: bluk
Date: Thu Oct 8 01:30:41 2009
New Revision: 822994
URL: http://svn.apache.org/viewvc?rev=822994&view=rev
Log:
Insert the ProvidersRegistry into RuntimeContext
See [WINK-192]
Modified:
incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/ResourceImpl.java
Modified: incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/ResourceImpl.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/ResourceImpl.java?rev=822994&r1=822993&r2=822994&view=diff
==============================================================================
--- incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/ResourceImpl.java (original)
+++ incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/ResourceImpl.java Thu Oct 8 01:30:41 2009
@@ -43,10 +43,12 @@
import org.apache.wink.client.handlers.HandlerContext;
import org.apache.wink.client.internal.handlers.ClientRequestImpl;
import org.apache.wink.client.internal.handlers.HandlerContextImpl;
+import org.apache.wink.common.RuntimeContext;
import org.apache.wink.common.http.HttpMethodEx;
import org.apache.wink.common.internal.CaseInsensitiveMultivaluedMap;
import org.apache.wink.common.internal.i18n.Messages;
import org.apache.wink.common.internal.registry.ProvidersRegistry;
+import org.apache.wink.common.internal.runtime.RuntimeContextTLS;
import org.apache.wink.common.internal.utils.HeaderUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -200,9 +202,16 @@
Class<?> responseEntity,
Type responseEntityType,
Object requestEntity) {
+
ClientRequest request =
createClientRequest(method, responseEntity, responseEntityType, requestEntity);
HandlerContext context = createHandlerContext();
+
+ ProvidersRegistry providersRegistry = request.getAttribute(ProvidersRegistry.class);
+ ClientRuntimeContext runtimeContext = new ClientRuntimeContext(providersRegistry);
+ RuntimeContext saved = RuntimeContextTLS.getRuntimeContext();
+ RuntimeContextTLS.setRuntimeContext(runtimeContext);
+
try {
ClientResponse response = context.doChain(request);
int statusCode = response.getStatusCode();
@@ -217,6 +226,8 @@
throw e;
} catch (Exception e) {
throw new ClientRuntimeException(e);
+ } finally {
+ RuntimeContextTLS.setRuntimeContext(saved);
}
}