Seleccionar página

Limitación en re-utilización de componentes Seam

por | Oct 28, 2010 | Seam

Intentando heredar de un componente de seam, me he topado con que el modo en que Seam carga los componentes puede limitarnos a la hora de hacer subclases de componentes existentes (Eso si, si el nuevo componente heredado no sobreescribe al padre instalandolo com más prioridad).

El problema viene en el modo en que Seam lee las anotaciones de los métodos del componente. Para ello, en org.jboss.seam.Component, encontramos lo siguiente:

    ....
    for ( ; clazz!=Object.class; clazz = clazz.getSuperclass() )  {
        for ( Method method: clazz.getDeclaredMethods() )  {
            scanMethod(applicationContext, selectionSetters, dataModelNames, method);
        }
    .....

O lo que es lo mismo, procesa todos los métodos de las superclases de forma normal, por lo que si nuestra clase padre (como en mi caso) tiene un método anotado con @Factory(“unidentificadorcualquiera”), no podremos heredar de ella, puesto que al arrancar nuestro nuevo componente, seam lanzará un error indicando que ambos componentes (padre e hijo) declaran una factoría llamada “unidentificadorcualquiera”.

Te puede interesar…

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *