Author: dblevins
Date: Mon Sep 24 02:32:53 2012
New Revision: 1389186
URL: http://svn.apache.org/viewvc?rev=1389186&view=rev
Log:
Fixing empty file
Modified:
openejb/branches/openejb-4.5.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java
Modified:
openejb/branches/openejb-4.5.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.5.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java?rev=1389186&r1=1389185&r2=1389186&view=diff
==============================================================================
---
openejb/branches/openejb-4.5.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java
(original)
+++
openejb/branches/openejb-4.5.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java
Mon Sep 24 02:32:53 2012
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.server.cxf.rs;
+
+import org.apache.cxf.jaxrs.ext.ContextProvider;
+import org.apache.cxf.jaxrs.model.ClassResourceInfo;
+import org.apache.cxf.jaxrs.model.OperationResourceInfo;
+import org.apache.cxf.jaxrs.provider.ProviderFactory;
+import org.apache.cxf.jaxrs.utils.JAXRSUtils;
+import org.apache.cxf.message.Exchange;
+import org.apache.cxf.message.Message;
+import org.apache.openejb.rest.ThreadLocalContextManager;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Request;
+import javax.ws.rs.core.SecurityContext;
+import javax.ws.rs.core.UriInfo;
+import javax.ws.rs.ext.ContextResolver;
+import javax.ws.rs.ext.Providers;
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
+
+public final class Contexts {
+ private Contexts() {
+ // no-op
+ }
+
+ public static void bind(final Exchange exchange) {
+ if (exchange == null) {
+ return;
+ }
+
+ final ClassResourceInfo cri =
exchange.get(OperationResourceInfo.class).getClassResourceInfo();
+
+ // binding context fields
+ for (Field field : cri.getContextFields()) {
+ Class<?> type = field.getType();
+ if (Request.class.equals(type)) {
+ Request binding =
JAXRSUtils.createContextValue(exchange.getInMessage(), null, Request.class);
+ ThreadLocalContextManager.REQUEST.set(binding);
+ } else if (UriInfo.class.equals(type)) {
+ UriInfo binding =
JAXRSUtils.createContextValue(exchange.getInMessage(), null, UriInfo.class);
+ ThreadLocalContextManager.URI_INFO.set(binding);
+ } else if (HttpHeaders.class.equals(type)) {
+ HttpHeaders binding =
JAXRSUtils.createContextValue(exchange.getInMessage(), null, HttpHeaders.class);
+ ThreadLocalContextManager.HTTP_HEADERS.set(binding);
+ } else if (SecurityContext.class.equals(type)) {
+ SecurityContext binding =
JAXRSUtils.createContextValue(exchange.getInMessage(), null,
SecurityContext.class);
+ ThreadLocalContextManager.SECURITY_CONTEXT.set(binding);
+ } else if (ContextResolver.class.equals(type)) {
+ ContextResolver<?> binding =
JAXRSUtils.createContextValue(exchange.getInMessage(), type,
ContextResolver.class);
+ ThreadLocalContextManager.CONTEXT_RESOLVER.set(binding);
+ } else if (Providers.class.equals(type)) {
+ Providers providers =
JAXRSUtils.createContextValue(exchange.getInMessage(), null, Providers.class);
+ ThreadLocalContextManager.PROVIDERS.set(providers);
+ } else if (ServletRequest.class.equals(type)) {
+ ServletRequest servletRequest =
JAXRSUtils.createContextValue(exchange.getInMessage(), null,
ServletRequest.class);
+ ThreadLocalContextManager.SERVLET_REQUEST.set(servletRequest);
+ } else if (HttpServletRequest.class.equals(type)) {
+ HttpServletRequest httpServletRequest =
JAXRSUtils.createContextValue(exchange.getInMessage(), null,
HttpServletRequest.class);
+
ThreadLocalContextManager.HTTP_SERVLET_REQUEST.set(httpServletRequest);
+ } else if (HttpServletResponse.class.equals(type)) {
+ HttpServletResponse httpServletResponse =
JAXRSUtils.createContextValue(exchange.getInMessage(), null,
HttpServletResponse.class);
+
ThreadLocalContextManager.HTTP_SERVLET_RESPONSE.set(httpServletResponse);
+ } else if (ServletConfig.class.equals(type)) {
+ ServletConfig servletConfig =
JAXRSUtils.createContextValue(exchange.getInMessage(), null,
ServletConfig.class);
+ ThreadLocalContextManager.SERVLET_CONFIG.set(servletConfig);
+ } else {
+ final Message message = exchange.getInMessage();
+ final ContextProvider<?> provider =
ProviderFactory.getInstance(message).createContextProvider(type, message);
+ if (provider != null) {
+ final Object value = provider.createContext(message);
+ Map<String, Object> map =
ThreadLocalContextManager.OTHERS.get();
+ if (map == null) {
+ map = new HashMap<String, Object>();
+ ThreadLocalContextManager.OTHERS.set(map);
+ }
+ map.put(type.getName(), value);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file