Frage

Seam wird Feuer verschiedene Arten von Veranstaltungen , die beziehen sich auf bestimmte Bereiche, Aufgaben oder Prozesse und fügt den Namen des Bereichs, Aufgabe oder einen Prozess bis zum Ende der Veranstaltung.

Wie höre ich alle Ereignisse eines Typs?

z. für jeden <name> würde Ich mag an Veranstaltungen wie diese hören:

  • org.jboss.seam.createProcess.<name> - aufgerufen, wenn der Prozess erstellt wird
  • org.jboss.seam.endProcess.<name> - aufgerufen, wenn der Prozess endet
  • org.jboss.seam.initProcess.<name> - aufgerufen, wenn der Prozess mit dem Gespräch zugeordnet ist
  • org.jboss.seam.startTask.<name> - genannt, wenn der Task gestartet wird
  • org.jboss.seam.endTask.<name> - aufgerufen, wenn die Aufgabe beendet

Ich brauche dies zu tun obwohl sie nicht die Liste der gültigen Namen zu kennen vorne ...: - (

Ich hoffe @Observer wurde mit dem Betrachter zu schaffen, oder etwas ähnliches, und ich werde bis zu zwei Ereignisklassen in der gleichen Komponente hören.

War es hilfreich?

Lösung

Sie können dies ganz einfach durch Naht des Event Klasse mit Ihrer eigenen Implementierung ersetzen. Dann suchen Sie nach Ereignissen, die ausgelöst werden, die mit einer bestimmten Zeichenkette beginnen:

@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.
   }
}

Sie können nun beobachten „org.jboss.seam.createProcess“, um alle Create Veranstaltungen.

Andere Tipps

Innerhalb der, wenn Sie müssen super.raiseEvent (...) schreiben sonst werden Sie eine Endlosschleife bekommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top