자동으로 이벤트 컨텐츠 완료

등록 정보 및 정책을 설정함으로써 이벤트 컨텐츠가 자동으로 완료될 수 있습니다.

일부 상황에서, 사용자는 작성하는 이벤트마다 일부 이벤트 등록 정보 데이터를 자동으로 설정하려고 합니다. 이는 변경되지 않는 특정 표준 값(예: 응용프로그램 이름)을 입력하거나, 런타임 환경에서 사용 가능한 정보에 기초하여 일부 등록 정보(예: 작성 시간 또는 스레드 정보)를 설정하는 방법입니다. 또한 비즈니스 규칙에 따라 이벤트 컨텐츠를 관리하는 정책을 설정할 수도 있습니다. 예를 들어, 특정 확장자 이름이 있는 이벤트는 해당 심각도를 특정 값으로 설정해야 할 수도 있습니다.

컨텐츠 핸들러를 작성하여 이 작업을 수행할 수 있습니다. 컨텐츠 핸들러는 사용하려는 임시 정책을 기반으로 각 이벤트의 등록 정보 값을 자동으로 설정하는 오브젝트입니다. 공통 이벤트 하부 구조는 이벤트가 공통 기본 이벤트 스펙을 준수하는 한, 컨텐츠 핸들러의 이벤트 데이터 수정 방법을 제한하지 않습니다.

모든 이벤트 소스가 동일한 정책을 준수하도록 하기 위해 컨텐츠 핸들러와 연관된 이벤트 팩토리를 작성(EventFactoryFactory를 사용하여)한 후 JNDI 네임 스페이스에 작성된 이벤트 팩토리를 바인드할 수 있습니다. 고유한 이벤트 팩토리를 작성하는 대신 이벤트 소스는 JNDI 찾아보기를 수행하여 컨텐츠 핸들러에 대한 어떤 지식도 없이 이미 존재하는 이벤트 팩토리에 액세스할 수 있습니다. 비즈니스 규칙이 나중에 변경되는 경우 한 곳에서 컨텐츠 핸들러를 수정할 수 있습니다.

이벤트 소스가 컨텐츠 완료를 가능하게 하기 위해 어떤 것도 수행할 필요가 없습니다. 이벤트 팩토리가 컨텐츠 핸들러와 연관되는 경우 이벤트 팩토리가 작성하는 각 이벤트는 해당 컨텐츠 핸들러에 대한 참조를 수반합니다. 이벤트를 이미터에 제출할 때 이벤트는 컨텐츠 핸들러의 completeEvent() 메소드를 호출하여 자신에 대한 참조를 전달합니다. 이를 통해 이벤트 서버가 이벤트 특정 등록 정보 설정을 완료한 후, 이미터가 이벤트를 유효성 검증하고 처리하기 전에 이벤트에 올바른 정책을 적용할 수 있습니다.
주: 프로세스 간에 이벤트를 전송할 때, 컨텐츠 핸들러에 대한 참조는 함께 전송되지 않습니다. 이는 이벤트가 시작된 환경에 따라 컨텐츠가 완료되므로 어디에서나 필요한 정보를 사용할 수는 없기 때문입니다. 이 제한은 서로 로컬 위치에 있는 응용프로그램 사이의 호출(예: 로컬 인터페이스를 사용하는 Enterprise Bean에 대한 호출)에는 영향을 주지 않습니다.

컨텐츠 핸들러를 작성하려면, 다음 단계를 따르십시오.

  1. org.eclipse.hyades.logging.events.cbe.ContentHandler 인터페이스를 구현하는 새 Java 클래스를 작성하십시오. 이 인터페이스는 completeEvent(CommonBaseEvent)라고 부르는 단일 메소드를 정의합니다. 매개변수는 그의 컨텐츠가 완료될 이벤트입니다. 이 메소드 구현에서는 CommonBaseEvent의 Getter 및 Setter 메소드를 사용하여 적용되는 모든 정책에 따라서 이벤트 등록 정보 데이터를 처리할 수 있습니다.
    주: 이벤트 소스가 JNDI를 사용하여 이벤트 팩토리를 검색할 때 컨텐츠 핸들러가 이벤트 팩토리와 함께 리턴됩니다. 이러한 이유로 컨텐츠 핸들러는 일련화 가능해야 합니다.

    다음 예는 각 이벤트의 확장자 이름을 자동으로 설정하는 간단한 컨텐츠 핸들러입니다.

    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. 컨텐츠 핸들러를 이벤트 팩토리와 연관시키십시오. 이를 수행하려면 이벤트 팩토리를 작성할 때 컨텐츠 핸들러를 지정하십시오.
    EventFactory eventFactory =
         (EventFactory) EventFactoryFactory.createEventFactory(contentHandler);
    리턴된 이벤트 팩토리는 지정된 컨텐츠 핸들러에 영구적으로 연관되어 있습니다.

이용약관 |

최종 갱신: Fri Jun 2 2006

(c) Copyright IBM Corporation 2005.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)