Utilice las ubicaciones locales de la fábrica Common Base Event (CBE) para
controlar la configuración e implementación de fábricas de sucesos exclusivas.
Antes de empezar
Las ubicaciones locales de fábricas de sucesos crean y proporcionan ubicaciones locales para instancias de fábricas de sucesos. Cada ubicación local de una fábrica de sucesos tiene un manejador de contenido.
Este manejador de contenido se asigna a cada una de las fábricas de sucesos que crea la ubicación local de la fábrica de sucesos. A su vez, cuando se crea un suceso base común, se le asigna el manejador de contenido de la fábrica de sucesos. La ubicación local de
la fábrica de sucesos mantiene las instancias de fábricas de sucesos
basándose en el nombre exclusivo de las mismas. Por ejemplo, cuando el código de aplicación solicita una fábrica de sucesos concreta, se devuelve la instancia de fábrica de sucesos recién creada y se persiste para las solicitudes futuras de dicha fábrica de sucesos.
Se han añadido las clases siguientes para facilitar el uso de las ubicaciones locales de fábrica de sucesos en las anotaciones de suceso base común:
Nombre de clase |
Descripción |
WsEventFactoryHomeImpl |
Esta clase extiende la clase org.eclipse.hyades.logging.events.cbe.impl.AbstractEventFactoryHome. Esta ubicación local de fábrica de sucesos devuelve instancias de fábrica de sucesos asociadas al manejador de contenido WsContentHandlerImpl. WsContentHandlerImpl es el manejador de contenido utilizado por
WebSphere
Application Server de forma predeterminada cuando no se utiliza la plantilla de fábrica de
sucesos. |
WsTemplateEventFactory
HomeImpl
|
Esta clase extiende la clase org.eclipse.hyades.logging.events.cbe.impl.EventXMLFileEventFactoryHomeImpl. Esta ubicación local de fábrica de sucesos devuelve instancias de fábrica de sucesos asociadas al manejador de contenido WsTemplateContentHandlerImpl. WsTemplatceContentHandlerImpl es el manejador
de contenido utilizado por WebSphere Application Server cuando se necesita un plantilla de fábrica de sucesos. |
Acerca de esta tarea
Las ubicaciones locales de fábrica de sucesos personalizadas soportan el uso de
Common Base Event en
WebSphere
Application Server y hacen que el registro cronológico sea más fácil y coherente entre el
entorno de ejecución de
WebSphere
Application Server y los usuarios de esta API. Las clases
CustomEventFactoryHome y
CustomTemplateEventFactoryHome se utilizan para obtener una fábrica de sucesos. Estas clases garantizan que se utilice el manejador de contenido adecuado con una determinada fábrica de sucesos. La clase
CustomEventFactoryHelper
es un ejemplo de cómo el proveedor de la infraestructura puede ocultar los detalles de la selección de fábrica
a los usuarios de la infraestructura, utilizando su propio conjunto de parámetros para decidir cuál es la
fábrica de sucesos adecuada.
Procedimiento
- El siguiente código de ejemplo proporciona ejemplos de cómo implementar y utilizar la clase
CustomEventFactoryHome.
- La implementación de la clase CustomEventFactoryHome es la siguiente:
public class CustomEventFactoryHome extends AbstractEventFactoryHome {
public CustomEventFactoryHome() {
super();
// TODO El código de inicialización personalizado iría aquí
}
public ContentHandler createContentHandler(String arg0) {
// Se usa siempre un manejador de contenido personalizado
return resolveContentHandler();
}
public ContentHandler resolveContentHandler() {
// Se usa siempre un manejador de contenido personalizado
return new CustomContentHandler();
}
}
- A continuación se muestra un ejemplo de cómo utilizar la clase CustomEventFactoryHome:
// se obtiene la fábrica de sucesos
EventFactory eventFactory=(new CustomEventFactoryHome()).getEventFactory("XYZ");
// se crea un suceso - se invoca el método apropiado
eventFactory.createCommonBaseEvent();
// se anota el suceso ...
- En la clase CustomTemplateEventFactoryHome se puede usar el código siguiente para su implementación y uso:
- Implemente la clase CustomTemplateEventFactoryHome utilizando este código:
public class CustomTemplateEventFactoryHome extends
EventXMLFileEventFactoryHomeImpl {
public CustomTemplateEventFactoryHome() {
super();
// TODO El código de inicialización personalizado iría aquí
}
public ContentHandler createContentHandler(String arg0) {
// Se usa siempre un manejador de contenido personalizado
return resolveContentHandler();
}
public ContentHandler resolveContentHandler() {
// Se usa siempre un manejador de contenido personalizado
return new CustomTemplateContentHandler();
}
}
- Utilice la clase CustomTemplateEventFactoryHome tomando como ejemplo este código:
// obtener la fábrica de sucesos
EventFactory eventFactory=(new
CustomTemplateEventFactoryHome()).getEventFactory("XYZ");
// se crea un suceso - se invoca el método apropiado
eventFactory.createCommonBaseEvent();
// se anota el suceso ...
- La clase CustomEventFactoryHelper se puede implementar y utilizar de la manera siguiente:
- Implemente la clase CustomEventFactoryHelper personalizada utilizando este código:
public class CustomTemplateEventFactoryHome extends
EventXMLFileEventFactoryHomeImpl {
public CustomTemplateEventFactoryHome() {
super();
// TODO El código de inicialización personalizado iría aquí
}
public ContentHandler createContentHandler(String arg0) {
// Se usa siempre un manejador de contenido personalizado
return resolveContentHandler();
}
public ContentHandler resolveContentHandler() {
// Se usa siempre un manejador de contenido personalizado
return new CustomTemplateContentHandler();
}
}
// Figura 4 clase CustomTemplateEventFactoryHome
public class CustomEventFactoryHelper {
// nombre de la fábrica de sucesos que hay que usar
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:
// Se añade el valor predeterminado para la fábrica de sucesos
break;
}
return factory;
}
private static int resolveFactory(String param1, String param2) {
int factory=0;
// Aquí se añade código para determinar qué fábrica se usa
return factory;
}
}
- Para usar la clase CustomEventFactoryHelper, utilice el código siguiente:
// se obtiene la fábrica de sucesos
EventFactory eventFactory=
CustomEventFactoryHelper.getEventFactory("param1","param2","param3");
// se crea un suceso - se invoca el método apropiado
eventFactory.createCommonBaseEvent();
// se anota el suceso ...
Resultados
Utilice la información proporcionada aquí para implementar una ubicación local de la fábrica
de contenidos personalizada y las clases asociadas a partir de los valores que especifique.