Adición de atributos personalizados al componente autocompletado de Primefaces en JSF

Pregunté acerca de pasar a través de atributos en unapregunta diferente y encontré que podía crear un renderizador personalizado para el<p:autocomplete> pero el problema es que mi renderizador personalizado se usaría para cada p: autocompletar en mi proyecto (en todo el sitio). Por lo tanto, he elegido crear un componente personalizado que se extiendeorg.primefaces.component.autocomplete.AutoComplete y agrega los atributos necesarios al cuadro de texto.

Mi idea inicial fue agregar un constructor, pero no parece funcionar porque el mapa de atributos es nulo en este punto:

<code>@FacesComponent("com.mycomponents.SiteSearch")
public class SiteSearch extends AutoComplete {

    public SiteSearch() {
        Map<String,Object> attrs = getAttributes();
        attrs.put("x-webkit-speech", null); 
        attrs.put("x-webkit-grammer", "builtin:search");
        attrs.put("onwebkitspeechchange", "this.form.submit();");
        attrs.put("placeholder", "Enter a Search Term");
    }   
}
</code>

Mi otro pensamiento fue dejar este componente personalizado vacío (clase vacía) y luego especificar un renderizador personalizado que se extiendaorg.primefaces.component.autocomplete.AutoCompleteRenderer y modificar los atributos allí.

Después de todo lo dicho y hecho, solo necesito una forma de mantener estos atributos separados en este cuadro de texto, por lo que simplemente poner un renderizador personalizado en la p: autocompletar no funcionará (a menos que tal vez pueda usar el atributo renderType = para este) p: autocompletar?).

Respuestas a la pregunta(1)

Su respuesta a la pregunta