[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