Skip to content

Instantly share code, notes, and snippets.

@lincolnthree
Created August 9, 2011 18:58
Show Gist options
  • Save lincolnthree/1134884 to your computer and use it in GitHub Desktop.
Save lincolnthree/1134884 to your computer and use it in GitHub Desktop.
/*
* JBoss, Home of Professional Open Source
* Copyright 2011, Red Hat, Inc., and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package com.ocpsoft.rewrite.cdi;
import javax.enterprise.event.Observes;
import javax.servlet.http.HttpServletRequest;
import org.jboss.seam.conversation.spi.SeamConversationContext;
import com.ocpsoft.rewrite.cdi.events.AfterRewriteLifecycle;
import com.ocpsoft.rewrite.cdi.events.BeforeRewriteLifecycle;
import com.ocpsoft.rewrite.event.Rewrite;
import com.ocpsoft.rewrite.servlet.http.event.HttpServletRewrite;
/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*
*/
public class ConversationSupport
{
public void setup(@Observes BeforeRewriteLifecycle event, SeamConversationContext<HttpServletRequest> scc)
{
Rewrite rewrite = event.getRewrite();
if (rewrite instanceof HttpServletRewrite)
{
HttpServletRequest request = ((HttpServletRewrite) rewrite).getRequest();
String cid = request.getParameter("cid");
scc.associate(request).activate(cid);
}
}
public void teardown(@Observes AfterRewriteLifecycle event, SeamConversationContext<HttpServletRequest> scc)
{
Rewrite rewrite = event.getRewrite();
if (rewrite instanceof HttpServletRewrite)
{
HttpServletRequest request = ((HttpServletRewrite) rewrite).getRequest();
scc.invalidate().deactivate().dissociate(request);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment