SkinFactoryImpl is failing to recognize skins from trinidad-skins.xml with use of backingBean AgentUtil.
WARNING: Can't find a skin that matches family bigfont and renderkit org.apache.myfaces.trinidad.desktop, so we will use the simple skin We can see from the WARNING that the bigfont family is indeed coming back from the Header request, however, we can not identify the bigfont skin in trinidad-skins.xml ---------------------------- trinidad-skins.xml ---------------------------- <?xml version="1.0" encoding="UTF-8"?> <skins xmlns="http://myfaces.apache.org/trinidad/skin"> <skin> <id>bigfont.desktop</id> <family>bigfont</family> <render-kit-id> org.apache.myfaces.trinidad.desktop </render-kit-id> <style-sheet-name>css/skins/bigfont.css</style-sheet-name> </skin> <skin> <id>androidFamily.pda</id> <family>androidFamily</family> <version>V2</version> <render-kit-id>org.apache.myfaces.trinidad.pda</render-kit-id> <style-sheet-name>css/skins/android.css</style-sheet-name> </skin> <skin> <id>Chrome.desktop</id> <family>Chrome</family> <render-kit-id> org.apache.myfaces.trinidad.desktop </render-kit-id> <style-sheet-name> css/skins/bigfont.css </style-sheet-name> </skin> </skins> ----------------------- trinidad-config.xml ------------------------ <?xml version="1.0" encoding="UTF-8"?> <trinidad-config xmlns="http://myfaces.apche.org/trinidad/config"> <skin-family> #{agentUtil.phoneFamily} </skin-family> </trinidad-config> ------------------------- AgentUtil.java ------------------------- package vin.objects; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; @ManagedBean @SessionScoped public class AgentUtil { private String phoneFamily; private String ANDROID_SKIN = "androidFamily"; private String DEFAULT_SKIN = "bigfont"; private String CHROME_SKIN = "Chrome"; public AgentUtil() { } public String getPhoneFamily() { FacesContext fc = FacesContext.getCurrentInstance(); HttpServletRequest req = (HttpServletRequest) fc.getExternalContext() .getRequest(); String agent = req.getHeader("User-Agent"); if (agent != null && agent.indexOf("Android") > -1) { System.out.println("Agent is not null! It's Android!"); System.out.println(agent.toString()); return ANDROID_SKIN; } else { if (agent != null && agent.indexOf("Chrome") > -1) { System.out.println("Agent is not null! It's Chrome!"); System.out.println(agent.toString()); return CHROME_SKIN; } else { System.out.println("Agent is null!"); System.out.println(agent.toString()); return DEFAULT_SKIN; } } } public void setPhoneFamily(String phoneFamily) { this.phoneFamily = phoneFamily; } } Thanks, Rico D'Amore