[seam-issues] [JBoss JIRA] (SEAMFACES-222) Support Portlet deployments

Neil Griffin (JIRA) jira-events at lists.jboss.org
Thu May 3 17:32:18 EDT 2012


    [ https://issues.jboss.org/browse/SEAMFACES-222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12690230#comment-12690230 ] 

Neil Griffin commented on SEAMFACES-222:
----------------------------------------

I think the only file that has a ClassCastException type of problem would be FacesServletContextBeanManagerProvider.java

Specifically, these lines of code:
{code}ServletContext servletContext = (ServletContext) facesContext.getExternalContext().getContext();
...
beanManager = (BeanManager) servletContext.getAttribute(key);
{code}
In order to avoid a compile-time dependency on PortletContext, I recommend doing this instead:
{code}beanManager = (BeanManager) facesContext.getExternalContext().getApplicationMap().get(key);{code}
This is because Section 6.1.3.2 of JSR 329 spec requires the portlet bridge to have ExternalContext.getApplicationMap().get(String) to be a wrapper around PortletContext.getAttribute(String). Additionally, I just checked the Liferay and Pluto PortletContextImpl classes and PortletContext.getAttribute(String) simply wraps ServletContext.getAttribute(String). According to the JavaDocs for PortletContext, "The portlet context leverages most of its functionality from the servlet context of the portlet application." So it's probably safe to assume that all portlet containers do the same thing.

                
> Support Portlet deployments
> ---------------------------
>
>                 Key: SEAMFACES-222
>                 URL: https://issues.jboss.org/browse/SEAMFACES-222
>             Project: Seam Faces
>          Issue Type: Feature Request
>          Components: CDI Integration
>    Affects Versions: 3.1.0.Beta4
>            Reporter: Ken Finnigan
>            Assignee: Ken Finnigan
>
> Currently Faces assumes that a ServletContext will always be available to retrieve a BeanManager, amongst other things.  Support needs to be added for retrieving the BeanManager from a PortalContext when running inside a Portal environment.
> https://github.com/seam/faces/blob/develop/impl/src/main/java/org/jboss/seam/faces/beanManager/FacesServletContextBeanManagerProvider.java and https://github.com/seam/faces/blob/develop/impl/src/main/java/org/jboss/seam/faces/beanManager/BeanManagerServletContextListener.java definitely need Portal equivalents, and additional code could require updates but need to search for ServletContext to confirm.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the seam-issues mailing list