Repository: tomee Updated Branches: refs/heads/master a6e42f4f5 -> 768055ebf
adding a parameter to force using getParameter to get cid param (post case) Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/768055eb Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/768055eb Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/768055eb Branch: refs/heads/master Commit: 768055ebfbcaf560443651f98edd614a2992d5ec Parents: a6e42f4 Author: Romain Manni-Bucau <[email protected]> Authored: Wed Apr 1 20:21:48 2015 +0200 Committer: Romain Manni-Bucau <[email protected]> Committed: Wed Apr 1 20:21:48 2015 +0200 ---------------------------------------------------------------------- .../org/apache/openejb/cdi/CdiAppContextsService.java | 11 +++++++---- tck/cdi-embedded/pom.xml | 1 + tck/cdi-embedded/src/test/resources/failing.xml | 3 ++- tck/cdi-tomee/src/test/resources/arquillian.xml | 1 + 4 files changed, 11 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/768055eb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java index bda7af3..7c3077f 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java @@ -92,6 +92,8 @@ public class CdiAppContextsService extends AbstractContextsService implements Co private volatile Object appEvent; + private final boolean useGetParameter; + private static final ThreadLocal<Collection<Runnable>> endRequestRunnables = new ThreadLocal<Collection<Runnable>>() { @Override protected Collection<Runnable> initialValue() { @@ -126,6 +128,7 @@ public class CdiAppContextsService extends AbstractContextsService implements Co } applicationContext.setActive(true); singletonContext.setActive(true); + useGetParameter = "true".equalsIgnoreCase(SystemInstance.get().getProperty("openejb.cdi.conversation.http.use-get-parameter", "false")); } private void endRequest() { @@ -145,7 +148,7 @@ public class CdiAppContextsService extends AbstractContextsService implements Co @Override public String getConversationId() { - return getHttpParameter("cid"); + return getHttpParameter(CID); } @Override @@ -366,7 +369,7 @@ public class CdiAppContextsService extends AbstractContextsService implements Co //Re-initialize thread local for session final HttpSession session = request.getSession(false); - final String cid = conversationService != null ? getCid(request) : null; + final String cid = conversationService != null ? (!useGetParameter ? getCid(request) : request.getParameter(CID)) : null; if (session != null) { initSessionContext(session); if (autoConversationCheck && conversationService != null && !isConversationSkipped(request)) { @@ -422,7 +425,7 @@ public class CdiAppContextsService extends AbstractContextsService implements Co if (rc != null && rc.getServletRequest() != null && conversationService != null) { final HttpSession session = rc.getServletRequest().getSession(false); if (session != null) { - final String cid = getFromQuery(CID, rc.getServletRequest().getQueryString()); + final String cid = useGetParameter ? rc.getServletRequest().getParameter(CID) : getFromQuery(CID, rc.getServletRequest().getQueryString()); if (cid != null) { final ConversationManager conversationManager = webBeansContext.getConversationManager(); final ConversationImpl c = conversationManager.getPropogatedConversation(cid, session.getId()); @@ -793,7 +796,7 @@ public class CdiAppContextsService extends AbstractContextsService implements Co public String getHttpParameter(final String name) { final ServletRequestContext req = getRequestContext(false); if (req != null && req.getServletRequest() != null) { - return getFromQuery(name, req.getServletRequest().getQueryString()); + return useGetParameter ? req.getServletRequest().getParameter(name) : getFromQuery(name, req.getServletRequest().getQueryString()); } return null; } http://git-wip-us.apache.org/repos/asf/tomee/blob/768055eb/tck/cdi-embedded/pom.xml ---------------------------------------------------------------------- diff --git a/tck/cdi-embedded/pom.xml b/tck/cdi-embedded/pom.xml index e2c9e08..95f0b3e 100644 --- a/tck/cdi-embedded/pom.xml +++ b/tck/cdi-embedded/pom.xml @@ -202,6 +202,7 @@ <openejb.cdi.applicationScope.cached>false</openejb.cdi.applicationScope.cached> <openejb.cdi.producer.interception>false</openejb.cdi.producer.interception> <openejb.cdi.filter.classloader>false</openejb.cdi.filter.classloader> + <openejb.cdi.conversation.http.use-get-parameter>true</openejb.cdi.conversation.http.use-get-parameter> <openejb.jul.forceReload>true</openejb.jul.forceReload> <openejb.strict.interface.declaration>true</openejb.strict.interface.declaration> http://git-wip-us.apache.org/repos/asf/tomee/blob/768055eb/tck/cdi-embedded/src/test/resources/failing.xml ---------------------------------------------------------------------- diff --git a/tck/cdi-embedded/src/test/resources/failing.xml b/tck/cdi-embedded/src/test/resources/failing.xml index 29ceb53..8889a6d 100644 --- a/tck/cdi-embedded/src/test/resources/failing.xml +++ b/tck/cdi-embedded/src/test/resources/failing.xml @@ -29,9 +29,10 @@ -Dopenejb.cdi.debug=true -Dopenejb.http.mock-request=true -Dopenejb.embedded.try-jsp=true + -Dopenejb.cdi.conversation.http.use-get-parameter=true --> <classes> - <class name="org.jboss.cdi.tck.tests.context.conversation.event.LongRunningConversationLifecycleEventTest" /> + <class name="org.jboss.cdi.tck.tests.context.conversation.servlet.ServletConversationTest" /> </classes> </test> </suite> http://git-wip-us.apache.org/repos/asf/tomee/blob/768055eb/tck/cdi-tomee/src/test/resources/arquillian.xml ---------------------------------------------------------------------- diff --git a/tck/cdi-tomee/src/test/resources/arquillian.xml b/tck/cdi-tomee/src/test/resources/arquillian.xml index 3b36c1b..de888b6 100644 --- a/tck/cdi-tomee/src/test/resources/arquillian.xml +++ b/tck/cdi-tomee/src/test/resources/arquillian.xml @@ -38,6 +38,7 @@ openejb.cdi.producer.interception = false openejb.cdi.applicationScope.cached = false openejb.cdi.requestScope.cached = false + openejb.cdi.conversation.http.use-get-parameter = true openejb.classloader.forced-load = org.apache.webbeans.test.tck.,org.apache.openejb.tck.cdi.tomee. jmsRa = new://Resource?type=ActiveMQResourceAdapter
