Mit angepassten CBE-Factory-Home-Objekten (Common Base Event) können Sie die Konfiguration und Implementierung
eindeutiger Ereignis-Factorys steuern.
Vorbereitende Schritte
Ereignis-Factory-Home-Objekte erstellen Home-Objekte für Ereignis-Factory-Instanzen. Jedes Ereignis-Factory-Home-Objekt hat einen Content-Handler.
Dieser Content-Handler
wird jeder Ereignisfactory zugeordnet, die das Ereignis-Factory-Home-Objekt erstellt. Wenn ein
Common Base Event erstellt wird, wird diesem der Content-Handler der Ereignisfactory zugeordnet. Ereignis-Factory-Instanzen werden basierend auf dem
eindeutigen Namen von der zugehörigen Home-Schnittstelle der Ereignisfactory verwaltet. Wenn Anwendungscode beispielsweise
eine bestimmte Ereignisfactory anfordert, wird die neu erstellte Ereignis-Factory-Instanz zurückgegeben und für zukünftige Anforderungen für diese Ereignisfactory
persistent gespeichert.
Die folgenden Klassen wurden hinzugefügt, um die Verwendung von Ereignis-Factory-Home-Objekten für die Protokollierung
von Common Base Events zu vereinfachen:
Klassenname |
Beschreibung |
WsEventFactoryHomeImpl |
Diese Klasse erweitert die Klasse org.eclipse.hyades.logging.events.cbe.impl.AbstractEventFactoryHome. Dieses Ereignis-Factory-Home-Objekt gibt Ereignis-Factory-Instanzen zurück, die dem Content-Handler
WsContentHandlerImpl zugeordnet sind. WsContentHandlerImpl ist der Content-Handler, den WebSphere Application Server standardmäßig verwendet, wenn keine
Ereignis-Factory-Schablone verwendet wird. |
WsTemplateEventFactory
HomeImpl
|
Diese Klasse erweitert die Klasse org.eclipse.hyades.logging.events.cbe.impl.EventXMLFileEventFactoryHomeImpl. Dieses Ereignis-Factory-Home-Objekt gibt Ereignis-Factory-Instanzen zurück, die dem Content-Handler
WsTemplateContentHandlerImpl zugeordnet sind. WsTemplateContentHandlerImpl ist der Content-Handler, den
WebSphere Application Server standardmäßig verwendet, wenn eine Ereignis-Factory-Schablone erforderlich ist. |
Informationen zu diesem Vorgang
Angepasste Ereignis-Factory-Home-Objekte unterstützen die Verwendung von Common Base Event für die Protokollierung
in WebSphere Application Server und sorgen für eine einfache und einheitliche
Protokollierung zwischen der Laufzeitumgebung von WebSphere Application Server und den Benutzern dieser API. Zum Abrufen einer Ereignisfactory werden die Klassen
CustomEventFactoryHome und
CustomTemplateEventFactoryHome verwendet. Mit diesen Klassen wird sichergestellt, dass der richtige Content-Handler für eine bestimmte
Ereignisfactory verwendet wird. Die Klasse
CustomEventFactoryHelper
ist ein Beispiel dafür, wie der Provider der Infrastruktur die Einzelheiten zur Factory-Auswahl vor den Benutzern der
Infrastruktur verbergen kann, indem er eigene Parameter definiert, die bestimmen, welche
Ereignisfactory die richtige ist.
Vorgehensweise
- Die folgenden Codebeispiele veranschaulichen, wie die Klasse
CustomEventFactoryHome implementiert und verwendet wird.
- Implementierung der Klasse CustomEventFactoryHome:
public class CustomEventFactoryHome extends AbstractEventFactoryHome {
public CustomEventFactoryHome() {
super();
// Hier angepassten Initialisierungscode einfügen
}
public ContentHandler createContentHandler(String arg0) {
// Immer den angepassten Content-Handler verwenden
return resolveContentHandler();
}
public ContentHandler resolveContentHandler() {
// Immer den angepassten Content-Handler verwenden
return new CustomContentHandler();
}
}
- Das folgende Beispiel zeigt, wie die Klasse CustomEventFactoryHome
verwendet wird:
// Ereignisfactory abrufen
EventFactory eventFactory=(new CustomEventFactoryHome()).getEventFactory("XYZ");
// Ereignis erstellen - richtige Methode aufrufen
eventFactory.createCommonBaseEvent();
// Ereignis protokollieren...
- Für die Klasse CustomTemplateEventFactoryHome können Sie den folgenden Code für die Implementierung und Verwendung verwenden:
- Implementieren Sie die Klasse CustomTemplateEventFactoryHome mit dem folgenden Code:
public class CustomTemplateEventFactoryHome extends
EventXMLFileEventFactoryHomeImpl {
public CustomTemplateEventFactoryHome() {
super();
// Hier angepassten Initialisierungscode einfügen
}
public ContentHandler createContentHandler(String arg0) {
// Immer den angepassten Content-Handler verwenden
return resolveContentHandler();
}
public ContentHandler resolveContentHandler() {
// Immer den angepassten Content-Handler verwenden
return new CustomTemplateContentHandler();
}
}
- Verwenden Sie die Klasse CustomTemplateEventFactoryHome mit dem folgenden Beispielcode:
// Ereignisfactory abrufen
EventFactory eventFactory=(new
CustomTemplateEventFactoryHome()).getEventFactory("XYZ");
// Ereignis erstellen - richtige Methode aufrufen
eventFactory.createCommonBaseEvent();
// Ereignis protokollieren...
- Die Klasse CustomEventFactoryHelper kann mit dem folgenden Code implementiert und verwendet werden:
- Implementieren Sie die angepasste Klasse CustomEventFactoryHelper mit dem folgenden Code:
public class CustomTemplateEventFactoryHome extends
EventXMLFileEventFactoryHomeImpl {
public CustomTemplateEventFactoryHome() {
super();
// Hier angepassten Initialisierungscode einfügen
}
public ContentHandler createContentHandler(String arg0) {
// Immer den angepassten Content-Handler verwenden
return resolveContentHandler();
}
public ContentHandler resolveContentHandler() {
// Immer den angepassten Content-Handler verwenden
return new CustomTemplateContentHandler();
}
}
// Figure 4 CustomTemplateEventFactoryHome class
public class CustomEventFactoryHelper {
// Name der zu verwendenden Ereignisfactory
public static final String FACTORY_NAME="XYZ";
public static EventFactory getEventFactory(String param1, String param2) {
EventFactory factory=null;
switch (resolveFactory(param1,param2)) {
case 1:
factory=(new CustomEventFactoryHome()).getEventFactory(FACTORY_NAME);
break;
case 2:
factory=(new
CustomTemplateEventFactoryHome()).getEventFactory(FACTORY_NAME);
break;
default:
// Standardwert für Ereignisfactory hinzufügen
break;
}
return factory;
}
private static int resolveFactory(String param1, String param2) {
int factory=0;
// Hier Code für die Ermittlung der zu verwendenden Factory hinzufügen
return factory;
}
}
- Verwenden Sie die Klasse CustomEventFactoryHelper mit dem folgenden Code:
// Ereignisfactory abrufen
EventFactory eventFactory=
CustomEventFactoryHelper.getEventFactory("param1","param2","param3");
// Ereignis erstellen - richtige Methode aufrufen
eventFactory.createCommonBaseEvent();
// Ereignis protokollieren...
Ergebnisse
Verwenden Sie diese Informationen, um ein angepasstes Content-Factory-Home-Objekt
zu die zugehörigen Klassen basierend auf den angegebenen Einstellungen zu implementieren.