As part of the work to adjust the portlet builds, I tweaked the non-portlet showcase application. Originally, the application was built so that the resource-dependency.xml file for the .war file was located at:
Seeing the META-INF in there seemed odd. Looking at the documentation and inside our jars (icefaces.jar, icefaces-compat.jar, icefaces-ace.jar), the file is always located in the "correct" location at the top-level of the hierarchy. I adjusted the build so that the location in the .war file aligned with the documentation and the .jar files.
However, this move caused the file to stop being read and processed correctly. This is all done in our own org.icefaces.impl.event.ResourceOrdering class via this technique:
Enumeration<URL> urls = this.getClass().getClassLoader().getResources("META-INF/resource-dependency.xml");
This finds all the resource-dependency.xml files in the .jars and finds the resource-dependency.xml in the .war BUT only if it's on the classpath (which it was when it was in its original location under classes). But after I moved it to the "real" META-INF location, it was no longer on the classpath and was no longer found in the .war file. To find the resource-dependency.xml in the war under the official META-INF directory requires a different call using the ServletContext API:
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext ec = fc.getExternalContext();
URL warResourceDependencyURL = ec.getResource("/META-INF/resource-dependency.xml");
So I've tweaked the ResourceOrdering class so that it does both calls and combines them into a single collection of URLs for processing. This allows the file to be located in the actual /META-INF director in the .war file and still be processed.
The builds are now adjusted to default to using LiferayFaces Bridge rather than PortletFaces. This includes using the legacy version of the Liferay Bridge for Liferay 5.2.
Adjusted the Maven builds so that resources that go into the WEB-INF/classes and resources that go into the META-INF are now separated.
Improved the Ant builds to warn when the LiferayFaces libraries are not available and indicating what to do to fix it.
The Wiki pages have been updated to reflect these changes as well.