[jboss-svn-commits] JBL Code SVN: r18947 - in labs/jbossforums/branches/forums110P26/forums/src: resources/portal-forums-war/WEB-INF and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 13 17:44:45 EDT 2008


Author: unibrew
Date: 2008-03-13 17:44:45 -0400 (Thu, 13 Mar 2008)
New Revision: 18947

Added:
   labs/jbossforums/branches/forums110P26/forums/src/main/org/jboss/portlet/forums/ui/ForumsPortletExternalContextImpl.java
Modified:
   labs/jbossforums/branches/forums110P26/forums/src/main/org/jboss/portlet/forums/ui/ForumsJSFPortlet.java
   labs/jbossforums/branches/forums110P26/forums/src/resources/portal-forums-war/WEB-INF/web.xml
Log:
[JBFORUMS-257] Rendered views have now acceptable size after render.

Modified: labs/jbossforums/branches/forums110P26/forums/src/main/org/jboss/portlet/forums/ui/ForumsJSFPortlet.java
===================================================================
--- labs/jbossforums/branches/forums110P26/forums/src/main/org/jboss/portlet/forums/ui/ForumsJSFPortlet.java	2008-03-13 21:44:01 UTC (rev 18946)
+++ labs/jbossforums/branches/forums110P26/forums/src/main/org/jboss/portlet/forums/ui/ForumsJSFPortlet.java	2008-03-13 21:44:45 UTC (rev 18947)
@@ -24,6 +24,7 @@
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.portlet.PortletFileUpload;
+import org.apache.log4j.Logger;
 
 import java.io.IOException;
 import java.lang.reflect.Field;
@@ -37,13 +38,19 @@
 // JSF
 import javax.faces.component.UIViewRoot;
 import javax.faces.context.FacesContext;
+import javax.faces.context.ExternalContext;
 
 //myfaces
 import org.apache.myfaces.portlet.MyFacesGenericPortlet;
+import org.apache.myfaces.config.FacesConfigurator;
+import org.apache.myfaces.context.ReleaseableExternalContext;
+import org.apache.myfaces.webapp.webxml.WebXml;
 
 //portlet api
 import javax.portlet.ActionRequest;
 import javax.portlet.ActionResponse;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletResponse;
 import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
 import javax.portlet.PortletException;
@@ -65,6 +72,8 @@
  */
 public class ForumsJSFPortlet extends MyFacesGenericPortlet 
 {
+    
+    private static Logger log = Logger.getLogger(ForumsJSFPortlet.class);
 
     /**
      * PortletRequest parameter for JBoss Forums Portlet for replacing
@@ -235,6 +244,45 @@
 
     }
 
+    protected void initMyFaces()
+    {
+        try
+        {
+            Boolean b = (Boolean)portletContext.getAttribute(FACES_INIT_DONE);
+
+            if (b == null || b.booleanValue() == false)
+            {
+                log.info("Initializing MyFaces");
+                //Load the configuration
+                ExternalContext externalContext = new ForumsPortletExternalContextImpl(portletContext, null, null);
+
+                //And configure everything
+                new FacesConfigurator(externalContext).configure();
+
+                // parse web.xml - not sure if this is needed for portlet
+                WebXml.init(externalContext);
+
+                portletContext.setAttribute(FACES_INIT_DONE, Boolean.TRUE);
+            }
+            else
+            {
+                log.info("MyFaces already initialized");
+            }
+        }
+        catch (Exception ex)
+        {
+            log.error("Error initializing MyFacesGenericPortlet", ex);
+            JSFUtil.handleException(ex);
+        }
+
+        log.info("PortletContext '" + portletContext.getRealPath("/") + "' initialized.");
+    }
+    
+    protected ReleaseableExternalContext makeExternalContext(PortletRequest request, PortletResponse response)
+    {
+        return (ReleaseableExternalContext)new ForumsPortletExternalContextImpl(portletContext, request, response);
+    }
+
     /**
      * Called by the portlet container to allow the portlet to process an action request.
      */

Copied: labs/jbossforums/branches/forums110P26/forums/src/main/org/jboss/portlet/forums/ui/ForumsPortletExternalContextImpl.java (from rev 18943, labs/jbossforums/branches/forums101P26/forums/src/main/org/jboss/portlet/forums/ui/ForumsPortletExternalContextImpl.java)
===================================================================
--- labs/jbossforums/branches/forums110P26/forums/src/main/org/jboss/portlet/forums/ui/ForumsPortletExternalContextImpl.java	                        (rev 0)
+++ labs/jbossforums/branches/forums110P26/forums/src/main/org/jboss/portlet/forums/ui/ForumsPortletExternalContextImpl.java	2008-03-13 21:44:45 UTC (rev 18947)
@@ -0,0 +1,31 @@
+package org.jboss.portlet.forums.ui;
+
+import javax.portlet.PortletContext;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletResponse;
+
+import org.apache.myfaces.context.portlet.PortletExternalContextImpl;
+
+/**
+ * The class changes encodeNamespace method to reduce the size of generated pages.
+ * 
+ * @author <a href="ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
+ *
+ */
+public class ForumsPortletExternalContextImpl extends
+        PortletExternalContextImpl
+{
+
+    public ForumsPortletExternalContextImpl(PortletContext portletContext, PortletRequest portletRequest, PortletResponse portletResponse)
+    {
+        super(portletContext, portletRequest, portletResponse);
+        // TODO Auto-generated constructor stub
+    }
+
+    public String encodeNamespace(String name)
+    {
+        super.encodeNamespace(name);
+        return this.getInitParameter("org.jboss.forums.UNIQUE_ID")+name;
+    }    
+
+}

Modified: labs/jbossforums/branches/forums110P26/forums/src/resources/portal-forums-war/WEB-INF/web.xml
===================================================================
--- labs/jbossforums/branches/forums110P26/forums/src/resources/portal-forums-war/WEB-INF/web.xml	2008-03-13 21:44:01 UTC (rev 18946)
+++ labs/jbossforums/branches/forums110P26/forums/src/resources/portal-forums-war/WEB-INF/web.xml	2008-03-13 21:44:45 UTC (rev 18947)
@@ -24,11 +24,16 @@
    <context-param>
         <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
         <param-value>true</param-value>
+   </context-param>
+   
+   <context-param>
+        <param-name>org.jboss.forums.UNIQUE_ID</param-name>
+        <param-value>f</param-value>
    </context-param>
 
    <context-param>
         <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
-        <param-value>client</param-value>
+        <param-value>server</param-value>
         <description>
             State saving method: "client" or "server" (= default)
             See JSF Specification 2.5.2




More information about the jboss-svn-commits mailing list