Cumplimentación del contenido del suceso de forma automática

Mediante el establecimiento de propiedades y políticas, se puede cumplimentar automáticamente el contenido de sucesos.

Por qué y cuándo realizar esta tarea

En algunas situaciones, es posible que desee que algunos datos de propiedades de los sucesos se establezcan automáticamente para todos los sucesos que cree. Esto puede resultar útil si desea rellenar determinados valores estándar que no cambian (por ejemplo, el nombre de la aplicación) o si desea establecer algunas propiedades basadas en la información que está disponible en el entorno de ejecución (por ejemplo, la hora de creación o información sobre la hebra). También puede establecer políticas que rijan el contenido de los sucesos según las normas de la empresa. Por ejemplo, es posible que requiera que los sucesos con un nombre de extensión determinado tengan su nivel de gravedad establecido en un valor concreto.

Puede llevarlo a cabo creando un manejador de contenido. Un manejador de contenido es un objeto que establece automáticamente los valores de propiedad de cada suceso según cualquier política arbitraria que desee utilizar. Common Event Infrastructure no impone ninguna restricción en el modo en que el manejador de contenido pueda modificar los datos de sucesos, siempre que el suceso se ajuste a la especificación de Common Base Event.

Para asegurarse de que todos los orígenes de sucesos cumplan con las mismas políticas, puede crear una fábrica de sucesos asociada a un manejador de contenido (utilizando EventFactoryFactory) y luego enlazar la fábrica de sucesos creada con un espacio de nombres JNDI. De este modo, en lugar de crear sus propias fábricas de sucesos, los orígenes de sucesos pueden realizar búsquedas JNDI para acceder a la fábrica de sucesos que ya existe, sin tener información del manejador de contenido. Si posteriormente las normas de su empresa cambian, puede modificar el manejador de contenido en un solo lugar.

Un origen de suceso no necesita hacer nada para habilitar la cumplimentación del contenido. Si una fábrica de sucesos está asociada a un manejador de contenido, cada suceso que cree transportará una referencia a dicho manejador de contenido. Cuando se envía a un emisor, el suceso llama al método completeEvent() del manejador de contenido y le pasa su propia referencia. De este modo, se asegura de que se aplicarán las políticas correctas al suceso después de que el origen de suceso haya acabado de establecer las propiedades específicas del suceso pero antes de que el emisor valide y procese el suceso.
Nota: Cuando se transmite un suceso de un proceso a otro, la referencia al manejador de contenido no se transmite junto con el mismo. Esto es debido a que la cumplimentación del suceso depende del entorno donde se origina el suceso y es posible que la información necesaria no esté disponible en otro lugar. Esta restricción no afecta a las llamadas entre aplicaciones que son locales entre sí (por ejemplo, una llamada a un enterprise bean que utilice su interfaz local).

Para crear un manejador de contenido, siga estos pasos:

Pasos para realizar esta tarea

  1. Cree una nueva clase Java que implemente la interfaz org.eclipse.hyades.logging.events.cbe.ContentHandler. Esta interfaz define un método individual denominado completeEvent(CommonBaseEvent); el parámetro es el suceso cuyo contenido se ha de completar. En la implementación de este método, puede utilizar los métodos getter y setter de CommonBaseEvent para procesar los datos de propiedades del suceso de acuerdo con cualquier política aplicable.
    Nota: Cuando un origen de suceso utiliza JNDI para recuperar una fábrica de sucesos, se devuelve el manejador de contenido junto con la fábrica de sucesos. Por este motivo, es necesario que el manejador de contenido se pueda serializar.

    El ejemplo siguiente es un sencillo manejador de contenido que establece automáticamente el nombre de extensión de cada suceso:

    import java.io.Serializable;
    import org.eclipse.hyades.logging.events.cbe.*;
    
    public class BusinessContentHandler
         implements ContentHandler, Serializable {
    
           public void completeEvent(CommonBaseEvent event)
              throws CompletionException {
                  event.setExtensionName("business");
         }
    }
  2. Asocie el manejador de contenido a una fábrica de sucesos. Para hacerlo, especifique el manejador de contenido cuando cree la fábrica de sucesos:
    EventFactory eventFactory =
         (EventFactory) EventFactoryFactory.createEventFactory(contentHandler);
    La fábrica de sucesos devuelta se asociará de forma permanente con el manejador de contenido especificado.

Condiciones de uso |


(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)