You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/11/06 21:01:05 UTC
tomee git commit: supporting @Context ResourceInfo
Repository: tomee
Updated Branches:
refs/heads/develop 1d55b1f89 -> bdd8fd5b2
supporting @Context ResourceInfo
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/bdd8fd5b
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/bdd8fd5b
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/bdd8fd5b
Branch: refs/heads/develop
Commit: bdd8fd5b256bfdf938545587e053a64bc2ba8ef7
Parents: 1d55b1f
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Thu Nov 6 20:00:03 2014 +0000
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Thu Nov 6 20:00:03 2014 +0000
----------------------------------------------------------------------
.../openejb/assembler/classic/JndiEncBuilder.java | 5 +++++
.../apache/openejb/rest/ThreadLocalContextManager.java | 13 ++++++++++++-
.../org/apache/openejb/server/cxf/rs/Contexts.java | 8 ++++++++
3 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/bdd8fd5b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
index f670ad7..c3ca786 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
@@ -71,6 +71,7 @@ import javax.transaction.TransactionManager;
import javax.transaction.UserTransaction;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
+import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.SecurityContext;
@@ -327,6 +328,10 @@ public class JndiEncBuilder {
reference = new ObjectReference(ThreadLocalContextManager.SERVLET_CONTEXT);
} else if (HttpServletResponse.class.equals(type)) {
reference = new ObjectReference(ThreadLocalContextManager.HTTP_SERVLET_RESPONSE);
+ } else if (javax.ws.rs.container.ResourceInfo.class.equals(type)) {
+ reference = new ObjectReference(ThreadLocalContextManager.RESOURCE_INFO);
+ } else if (Configuration.class.equals(type)) {
+ reference = new ObjectReference(ThreadLocalContextManager.CONFIGURATION);
} else {
reference = new MapObjectReference(ThreadLocalContextManager.OTHERS, referenceInfo.referenceType);
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/bdd8fd5b/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java b/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
index c457d9c..743f94b 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
@@ -22,7 +22,9 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.container.ResourceInfo;
import javax.ws.rs.core.Application;
+import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.SecurityContext;
@@ -44,7 +46,8 @@ public class ThreadLocalContextManager {
public static final ThreadLocalContextResolver CONTEXT_RESOLVER = new ThreadLocalContextResolver();
public static final ThreadLocalProviders PROVIDERS = new ThreadLocalProviders();
public static final ThreadLocal<Application> APPLICATION = new ThreadLocal<>();
- public static final ThreadLocal<Application> CONFIGURATION = new ThreadLocal<Application>();
+ public static final ThreadLocal<Configuration> CONFIGURATION = new ThreadLocal<>();
+ public static final ThreadLocal<ResourceInfo> RESOURCE_INFO = new ThreadLocal<>();
public static final ThreadLocal<Map<String, Object>> OTHERS = new ThreadLocal<Map<String, Object>>();
public static void reset() {
@@ -60,6 +63,8 @@ public class ThreadLocalContextManager {
CONTEXT_RESOLVER.remove();
PROVIDERS.remove();
APPLICATION.remove();
+ CONFIGURATION.remove();
+ RESOURCE_INFO.remove();
final Map<String, Object> map = OTHERS.get();
if (map != null) {
@@ -91,6 +96,12 @@ public class ThreadLocalContextManager {
return ThreadLocalContextManager.SERVLET_CONFIG;
} else if (ServletContext.class.equals(type)) {
return ThreadLocalContextManager.SERVLET_CONTEXT;
+ } else if (ResourceInfo.class.equals(type)) {
+ return ThreadLocalContextManager.REQUEST;
+ } else if (Application.class.equals(type)) {
+ return ThreadLocalContextManager.APPLICATION;
+ } else if (Configuration.class.equals(type)) {
+ return ThreadLocalContextManager.CONFIGURATION;
}
return null;
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/bdd8fd5b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java
----------------------------------------------------------------------
diff --git a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java
index f08adc7..fc207bc 100644
--- a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java
+++ b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java
@@ -33,7 +33,9 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.container.ResourceInfo;
import javax.ws.rs.core.Application;
+import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Request;
@@ -162,6 +164,12 @@ public final class Contexts {
} else if (ServletConfig.class.equals(type)) {
final ServletConfig servletConfig = JAXRSUtils.createContextValue(exchange.getInMessage(), null, ServletConfig.class);
ThreadLocalContextManager.SERVLET_CONFIG.set(servletConfig);
+ } else if (Configuration.class.equals(type)) {
+ final Configuration config = JAXRSUtils.createContextValue(exchange.getInMessage(), null, Configuration.class);
+ ThreadLocalContextManager.CONFIGURATION.set(config);
+ } else if (ResourceInfo.class.equals(type)) {
+ final ResourceInfo config = JAXRSUtils.createContextValue(exchange.getInMessage(), null, ResourceInfo.class);
+ ThreadLocalContextManager.RESOURCE_INFO.set(config);
} else {
final Message message = exchange.getInMessage();
final ContextProvider<?> provider = ProviderFactory.getInstance(message).createContextProvider(type, message);