I've gone through the component-showcase-portlets example running on Pluto in more detail with all the components. The current status is pretty good. Most things appear to work. There are some general styling issues - mostly due to the default font being fairly large and a fair amount of extra spacing but I wouldn't expect people to deploy their portal pages to the default Pluto theme normally. As for technical issues, I found the following:
1) As noted above, there is logging to indicate that resources aren't being handled/processed correctly. It appears that the PortletFaces Bridge is expecting javax.faces.resource to always end in a slash but that it can be delivered without. After discussing with Neil, I've created a JIRA in the PortletFaces system: http://jira.portletfaces.org/browse/BRIDGE-55.
2)The File Download component does not work. It throws an NullPointerException when attempting to download any of the sample files:
java.lang.NullPointerException
org.portletfaces.bridge.context.ExternalContextImpl.getResourceAsStream(ExternalContextImpl.java:868)
org.icefaces.application.showcase.view.bean.examples.component.outputResource.MyResource.open(OutputResourceBean.java:119)
com.icesoft.faces.component.outputresource.RegisteredResource.open(OutputResource.java:460)
com.icesoft.faces.context.ResourceRegistryLocator$DynamicResourceDispatcherAdapter$DynamicResourceAdapter.open(ResourceRegistryLocator.java:118)
org.icefaces.impl.push.DynamicResourceDispatcher$ResourceServer.respond(DynamicResourceDispatcher.java:225)
org.icefaces.impl.push.DynamicResourceDispatcher$ResourceServer.handleResourceRequest(DynamicResourceDispatcher.java:202)
org.icefaces.impl.push.DynamicResourceDispatcher$Mapping.handleResourceRequest(DynamicResourceDispatcher.java:371)
org.icefaces.impl.push.DynamicResourceDispatcher.handleResourceRequest(DynamicResourceDispatcher.java:90)
org.icefaces.application.ResourceRegistry.handleResourceRequest(ResourceRegistry.java:76)
org.icefaces.impl.application.WindowScopeManager.handleResourceRequest(WindowScopeManager.java:114)
javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:393)
The cause appears to be that the ExternalContext.release method is called and nulls our the internally referenced portletContext value. The portletContext is needed as it provides the underlying getResourceAsStream method. As a test, I commented out where this was set to null and everything worked fine. I'll need to discuss this with Neil as to the timing of the release call and why the portletContext is nulled out. Will create a JIRA if deemed necessary
3) The logging approach taken by the PortletFaces Bridge attempts to detect which logging library to use. Recent changes to the Log4J detection code seem to trigger classloading of log4j classes. Since neither Pluto or our examples include log4j, I saw a NoClassDefFoundException when attempting to deploy the sample application. The quick workaround was to simply include a log4j.jar with the sample app. Probably need a JIRA.
4) The selectInputText doesn't work. The drop down list of choices is never displayed. I can see in the Chrome console that the Ajax response is returned with the list of applicable values, but it's either not properly applied or not properly displayed. There were no errors so more investigation is required.
Maven builds were required before Pluto testing could be done.