[jboss-cvs] jboss-seam/src/ui/org/jboss/seam/ui/graphicImage ...
Shane Bryzak
sbryzak at redhat.com
Fri Mar 9 02:05:19 EST 2007
User: sbryzak2
Date: 07/03/09 02:05:19
Modified: src/ui/org/jboss/seam/ui/graphicImage
DynamicImageResource.java
Log:
resources manage their own contexts
Revision Changes Path
1.3 +42 -11 jboss-seam/src/ui/org/jboss/seam/ui/graphicImage/DynamicImageResource.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DynamicImageResource.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/ui/org/jboss/seam/ui/graphicImage/DynamicImageResource.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- DynamicImageResource.java 6 Mar 2007 16:56:48 -0000 1.2
+++ DynamicImageResource.java 9 Mar 2007 07:05:19 -0000 1.3
@@ -6,15 +6,20 @@
import java.io.IOException;
+import javax.faces.event.PhaseId;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
import org.jboss.seam.annotations.Install;
import org.jboss.seam.annotations.Intercept;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Startup;
+import org.jboss.seam.contexts.ContextAdaptor;
+import org.jboss.seam.contexts.Lifecycle;
+import org.jboss.seam.core.Manager;
import org.jboss.seam.servlet.AbstractResource;
import org.jboss.seam.ui.graphicImage.DynamicImageStore.ImageWrapper;
@@ -40,8 +45,20 @@
public void getResource(HttpServletRequest request, HttpServletResponse response)
throws IOException
{
- String pathInfo = request.getPathInfo().substring(getResourcePath().length() + 1, request.getPathInfo().lastIndexOf("."));
+ String pathInfo = request.getPathInfo().substring(getResourcePath().length() + 1,
+ request.getPathInfo().lastIndexOf("."));
+ // Set up Seam contexts
+ HttpSession session = request.getSession(true);
+ Lifecycle.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ Lifecycle.setServletRequest(request);
+ Lifecycle.beginRequest(getServletContext(), session, request);
+ Manager.instance().restoreConversation(request.getParameterMap());
+ Lifecycle.resumeConversation(session);
+ Manager.instance().handleConversationPropagation(request.getParameterMap());
+
+ try
+ {
ImageWrapper image = DynamicImageStore.instance().remove(pathInfo);
if (image != null)
{
@@ -56,6 +73,20 @@
{
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
+
+ // TODO: conversation timeout
+ Manager.instance().endRequest(ContextAdaptor.getSession(session));
+ Lifecycle.endRequest(session);
+ }
+ catch (Exception e)
+ {
+ Lifecycle.endRequest();
+ }
+ finally
+ {
+ Lifecycle.setServletRequest(null);
+ Lifecycle.setPhaseId(null);
+ }
}
}
More information about the jboss-cvs-commits
mailing list