Utilisez les interfaces home de fabrique d'événements CBE (Common Base Event) personnalisés pour contrôler la configuration et l'implémentation des fabriques d'événements uniques.
Avant de commencer
Les interfaces home de fabrique d'événements créent et fournissent des interfaces home pour des instances de fabrique d'événements. Chaque interface home de fabrique d'événements comporte un gestionnaire du contenu.
Ce gestionnaire est affecté à chaque interface home de fabrique d'événements créée. Ensuite, lorsqu'un événement CBE (Common Base Event) est créé, le gestionnaire de contenu de la fabrique d'événements lui est affecté. Les instances de fabrique d'événements sont gérées par l'interface home de la fabrique d'événements associée en fonction de leur nom unique. Par exemple, lorsque le code de l'application demande une fabrique d'événements
nommée, l'instance de fabrique d'événements nouvellement créée est renvoyée
et est rendue persistante pour les futures demandes de cette fabrique d'événements
nommée.
Les classes suivantes ont été ajoutées pour faciliter l'utilisation des interfaces home de fabrique d'événements pour consigner des événements CBE :
Nom de classe |
Description |
WsEventFactoryHomeImpl |
Cette classe étend la classe org.eclipse.hyades.logging.events.cbe.impl.AbstractEventFactoryHome. Cette interface home de fabrique d'événements renvoie les instances de fabrique d'événements associées au gestionnaire de contenu WsContentHandlerImpl. WsContentHandlerImpl est le gestionnaire de contenu utilisé par défaut par WebSphere Application Server lorsqu'aucun modèle de fabrique d'événements n'est utilisé. |
WsTemplateEventFactory
HomeImpl
|
Cette classe étend la classe org.eclipse.hyades.logging.events.cbe.impl.EventXMLFileEventFactoryHomeImpl. Cette interface home de fabrique d'événements renvoie les instances de fabrique d'événements associées au gestionnaire du contenu WsTemplateContentHandlerImpl. La classe WsTemplateContentHandlerImpl correspond au gestionnaire de contenu utilisé par WebSphere Application Server lorsqu'un modèle de fabrique d'événements est nécessaire. |
Pourquoi et quand exécuter cette tâche
Les interfaces home de fabrique d'événements personnalisés prennent en charge l'utilisation du format CBE pour la consignation dans WebSphere Application Server. Elles facilitent la consignation et la rendent cohérente entre l'environnement d'exécution de WebSphere Application Server et les programmes d'exploitation de cette API. Les classes
CustomEventFactoryHome et
CustomTemplateEventFactoryHome sont utilisées pour obtenir une fabrique d'événements. Ces classes sont prévues pour s'assurer que le gestionnaire de contenu approprié est utilisé avec une fabrique d'événements particulière. La classe
CustomEventFactoryHelper est un exemple de la manière dont un fournisseur d'infrastructure peut masquer les détails de sélection de fabrique pour les utilisateurs de l'infrastructure, à l'aide de leur propre ensemble de paramètres pour déterminer la fabrique d'événements appropriée.
Procédure
- L'exemple de code ci-dessous fournit des exemples d'implémentation et d'installation de la classe CustomEventFactoryHome.
- L'implémentation de la classe CustomEventFactoryHome est la suivante :
public class CustomEventFactoryHome extends AbstractEventFactoryHome {
public CustomEventFactoryHome() {
super();
// TODO Custom intialization code goes here
}
public ContentHandler createContentHandler(String arg0) {
// Always use custom content handler
return resolveContentHandler();
}
public ContentHandler resolveContentHandler() {
// Always use custom content handler
return new CustomContentHandler();
}
}
- Voici un exemple d'utilisation de la classe CustomEventFactoryHome :
// get the event factory
EventFactory eventFactory=(new CustomEventFactoryHome()).getEventFactory("XYZ");
// create an event - call appropriate method
eventFactory.createCommonBaseEvent();
// log event ...
- Pour la classe CustomTemplateEventFactoryHome, vous pouvez utiliser le code ci-dessous pour l'implémentation et l'utilisation :
- Implémentez la classe CustomTemplateEventFactoryHome à l'aide de ce code :
public class CustomTemplateEventFactoryHome extends
EventXMLFileEventFactoryHomeImpl {
public CustomTemplateEventFactoryHome() {
super();
// TODO Custom intialization code goes here
}
public ContentHandler createContentHandler(String arg0) {
// Always use custom content handler
return resolveContentHandler();
}
public ContentHandler resolveContentHandler() {
// Always use custom content handler
return new CustomTemplateContentHandler();
}
}
- Utilisez la classe CustomTemplateEventFactoryHome en suivant cet exemple de code :
// get the event factory
EventFactory eventFactory=(new
CustomTemplateEventFactoryHome()).getEventFactory("XYZ");
// create an event - call appropriate method
eventFactory.createCommonBaseEvent();
// log event ...
- La classe CustomEventFactoryHelper peut être implémentée et utilisée en utilisant le code indiqué ici :
- Implémentez la classe CustomEventFactoryHelper personnalisée en utilisant ce code :
public class CustomTemplateEventFactoryHome extends
EventXMLFileEventFactoryHomeImpl {
public CustomTemplateEventFactoryHome() {
super();
// TODO Custom intialization code goes here
}
public ContentHandler createContentHandler(String arg0) {
// Always use custom content handler
return resolveContentHandler();
}
public ContentHandler resolveContentHandler() {
// Always use custom content handler
return new CustomTemplateContentHandler();
}
}
// Figure 4 CustomTemplateEventFactoryHome class
public class CustomEventFactoryHelper {
// name of the event factory to use
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:
// Add default for event factory
break;
}
return factory;
}
private static int resolveFactory(String param1, String param2) {
int factory=0;
// Add code here to resolve which factory to use
return factory;
}
}
- Pour utiliser la classe CustomEventFactoryHelper, utilisez le code suivant :
// get the event factory
EventFactory eventFactory=
CustomEventFactoryHelper.getEventFactory("param1","param2","param3");
// create an event - call appropriate method
eventFactory.createCommonBaseEvent();
// log event ...
Résultats
Utilisez les informations fournies ici pour implémenter une interface home de fabrique de contenu personnalisée et les classes associées en fonction des paramètres spécifiés.