There are two issues I'd like to report here.
1) Bridge Class is specific to Apache
org.apache.myfaces.shared.util.ExternalContextUtils.java / isPortlet(ExternalContext ec) does the following:
This class. contains the logic to determine if Portlet is supported by finding a Bridge class and can return the incorrect value when a Bridge other than the Apache Bridge is available. For instance in
WebSphere Application Server (WAS) when running in a Portlet environment the MyFaces code incorrectly returns a Servlet RequestType.
After looking at the code I see why this is:
//Summary of values obtained
javax.portlet.PortletContext = _PORTLET_CONTEXT_CLASS
javax.portlet.ActionRequest = _PORTLET_ACTION_REQUEST_CLASS
javax.portlet.RenderRequest = PORTLET_RENDER_REQUEST_CLASS
javax.portlet.ResourceRequest = _PORTLET_RESOURCE_REQUEST_CLASS
//Find bridge to tell if portal is supported
Class<?> bridge = ClassLoaderUtils.loadClass("javax.portlet.faces.Bridge");
If the above javax.portlet.faces.Bridge Class is not found then PortletSupported variables are set to false. There needs to be a better way to determine if a Bridge is
available and therefore determine if Portlets are supported in this environment.
2) Portlet support is determined globally which is not always the case, a more granular determination is needed at the application level.
|Field||Original Value||New Value|
|Status||Open [ 1 ]||Resolved [ 5 ]|
|Assignee||Leonardo Uribe [ lu4242 ]|
|Fix Version/s||2.0.10 [ 12317870 ]|
|Fix Version/s||2.1.4 [ 12317868 ]|
|Resolution||Fixed [ 1 ]|
|Status||Resolved [ 5 ]||Closed [ 6 ]|