next up previous contents index
Next: Messpunkte in Javabeans und Up: Architekturkonzept Previous: Übersicht

Messpunkte in Hooks

Die Hook-Objekte, die die Verbindungen zwischen den Javabeans erzeugen, werden nach Eingabe der relevanten Verbindungsdaten automatisch vom Beanbox-Programm HookupManager im Hintergrund erzeugt. Die Instrumentierung der Hooks wird daher über die Instrumentierung des HookupManagers durchgeführt.

Der HookupManager schreibt mittels out.println pro Verbindung ein Hookupnnn.java-File mit den Methoden:

In den *Performed-Methoden wird der von der SourceBean abgefeuerte Event empfangen und die benötigte Methode des TargetBeans aufgerufen. Nur der StartButton empfängt einen Event mit einer anderen, nämlich mit der MousePressed-Methode; diese kommt in keinem Hook vor.

In dieses Hook-File werden Aufrufe von Methoden eines Messobjekt so eingefügt, dass die Zeit vor und nach Ausführung der Zielmethode im TargetBean festgehalten wird.

Die verbundenen Javabeans und die Hooks werden von der Beanbox zu einer Gesamtanwendung (Beispiel AbApplet unten) zusammengefügt, die als Applet abgespeichert werden kann.
Die folgenden Codezeilen zeigen einen Ausschnitt aus einem solchen Applet mit den für die Verbindung der Javabeans relevanten Anweisungen:

 

public class AbApplet extends Applet implements Serializable {

    public AbApplet() {
    ...
1.        // Create nested beans

        mediBean1 = (MediBean) Beans.instantiate(myLoader,"MediBean");

        ourButton1 = (sunw.demo.buttons.StartButton)
                   Beans.instantiate(myLoader,"sunw.demo.buttons.StartButton");
        addConnections();
    }

    private void addConnections() {
        try {
2.            hookup0 = new tmp.sunw.beanbox.___Hookup_16b2e51e6d();
              hookup0.setTarget(med6Bean1);
              ourButton1.addActionListener(hookup0);

        } catch (Exception ex) {
            System.err.println("Problems adding a target: "+ex);
            ex.printStackTrace();
        }
    }

 3.   // The fields used to hold the beans

    private MediBean mediBean1;
    private sunw.demo.buttons.StartButton ourButton1;

    // The hookups
    private tmp.sunw.beanbox.___Hookup_16b2e51e6d hookup0;
    private ClassLoader myLoader;
}

Feuert die SourceBean den ActionEvent, so gelangt er zunächst zum Hook-Objekt und veranlasst dort, dass die gewünschte Methode der TargetBean zwischen zwei eingefügten Messpunkten aufgerufen wird:

...
 actionPerformed(ActionEvent arg0){
...
 // setze Messpunkt (Targetname,..) 
   target.zielmethode();
//  setze Messpunkt  (Targetname,..)
...
}

Mittels dieser Messpunkte wird im Agenten die Laufzeit der Zielmethode berechnet.


next up previous contents index
Next: Messpunkte in Javabeans und Up: Architekturkonzept Previous: Übersicht
Copyright Munich Network Management Team