Pregunta

diferentes tipos de eventos que se refieren a determinados alcances, tareas o procesos y añade el nombre del ámbito, tarea o proceso hasta el final del evento.

¿Cómo puedo escuchar a todos los eventos de un tipo?

por ejemplo. para cualquier <name> me gusta escuchar a eventos como estos:

  • org.jboss.seam.createProcess.<name> - llamada cuando se crea el proceso
  • org.jboss.seam.endProcess.<name> - llamada cuando termine el proceso
  • org.jboss.seam.initProcess.<name> - llama cuando el proceso está asociado con la conversación
  • org.jboss.seam.startTask.<name> - llamada cuando se inicia la tarea
  • org.jboss.seam.endTask.<name> - llamada cuando se termina la tarea

Necesito hacer esto a pesar de no conocer la lista de nombres válidos en la delantera ...: - (

Espero estar usando @Observer para crear el observador, o algo similar, y voy a escuchar a un máximo de dos clases de eventos en el mismo componente.

¿Fue útil?

Solución

Se puede hacer esto mediante la sustitución de la clase Eventos de costura con su propia aplicación. A continuación, busque los eventos que se plantean que comienzan con una cadena en particular:

@Scope(ScopeType.STATELESS)
@BypassInterceptors
@Name("org.jboss.seam.core.events")
@Install(precedence=APPLICATION)
public class Events extends org.jboss.seam.core.Events
{
   @Override
   public void raiseEvent(String type, Object... parameters )
   {
       super.raiseEvent( type, parameters );

       if ( type.startsWith( "org.jboss.seam.createProcess" ) )
       {
           super.raiseEvent( "org.jboss.seam.createProcess", parameters );
       }
       //etc.
   }
}

Ahora puede observar "org.jboss.seam.createProcess" para obtener todos los eventos CreateProcess.

Otros consejos

En el interior del caso, debe escribir super.raiseEvent (...) de lo contrario obtendrá un bucle infinito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top