사용자 정의 블루프린트 네임스페이스 핸들러

OSGi 엔터프라이즈 스펙 릴리스 5에서 소개된 블루프린트 컨테이너 스펙은 Java™ 코드에 복잡도를 더 추가하지 않고도 OSGi 환경에서 동적 애플리케이션을 작성하기 위한 쉽고 단순한 프로그래밍 모델을 제공합니다.

OSGi 엔터프라이즈 릴리스 스펙에 대한 자세한 정보는 OSGi 스펙 다운로드를 참조하십시오.

블루프린트 컨테이너 스펙은 OSGi에 대한 Dependency injection 프레임워크를 정의합니다. 이는 OSGi의 동적 네이처를 처리하도록 디자인되어 있으며 여기서 서비스는 언제든지 사용 가능 또는 사용 불가능하게 될 수 있습니다. 또한 OSGi 프레임워크 내부 및 외부에서 동일한 오브젝트를 사용할 수 있도록 이 스펙은 POJO(Plain Old Java Object)에 대해 작업하도록 디자인되어 있습니다. 애플리케이션의 다양한 컴포넌트를 정의하고 설명하는 블루프린트 XML 파일은 블루프린트 프로그래밍 모델에 중요합니다. 이 스펙에서는 실행 중인 애플리케이션을 형성하기 위해 컴포넌트가 인스턴스화되고 함께 연결되는 방법에 대해 설명합니다. 자세한 정보는 WebSphere Developer Tools 문서에서 OSGi 블루프린트 컨테이너 스펙에 대한 정보를 참조하십시오.

블루프린트 런타임이 번들의 블루트린트 컴포넌트를 처리하려면 각각의 블루프린트 번들이 블루프린트 XML 파일을 포함하고 있어야 합니다. 표준 블루프린트 요소는 OSGi 블루프린트 스펙에 의해 정의되며 모든 블루프린트 XML 문서에서 필요합니다. 이는 기본 문서 네임스페이스를 http://www.osgi.org/xmlns/blueprint/v1.0.0으로 설정합니다. 예를 들어, 다음과 같습니다.
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
사용자 정의 XML 요소에서 직접 또는 접두부가 있는 항목으로 표준 XML 규칙을 사용하여 블루프린트에 기타 네임스페이스를 추가할 수 있습니다. 이 네임스페이스는 최상위 레벨에서 추가하거나 사용자 정의 XML 요소와 인라인이 될 수 있습니다. 올바른 XML인 경우에는 올바르게 구문 분석됩니다. 예를 들어, 최상위 레벨 블루프린트 요소에서 정의되는 경우:
<blueprint 
  xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
  xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0">
예를 들어, 사용자 정의 요소에서 인라인인 경우:
<transaction method="*" value="Required"
  xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0"/>

Apache Aries 프로젝트에서 제공하는 블루프린트 런타임 구현은 Liberty용 OSGi 애플리케이션에 포함되는 블루프린트 번들을 지원하는데 사용됩니다. 자세한 정보는 Apache Aries를 참조하십시오. Aries 블루프린트 런타임은 네임스페이스 핸들러라는 확장 메커니즘을 제공합니다. 네임스페이스 핸들러는 사용자 정의 블루프린트 확장 또는 네임스페이스에 대한 프로세서를 제공합니다. 네임스페이스 핸들러는 org.apache.aries.blueprint.NamespaceHandler 인터페이스를 구현하며 연관된 osgi.service.blueprint.namespace 서비스 특성으로 OSGi 서비스 레지스트리에 등록되어야 합니다. 이 특성은 이 핸들러가 처리할 수 있는 네임스페이스 URI를 나타냅니다. 예: http://aries.apache.org/xmlns/transactions/v1.0.0. 서비스 특성 값은 단일 String 또는 URI이거나 Collection이거나 String 또는 URI의 배열일 수 있습니다.

블루프린트 런타임은 블루프린트 디스크립터를 두 번 구문 분석합니다. 첫 번째 전달은 빠르며 블루프린트 번들에서 사용하는 모든 네임스페이스만 찾습니다. 블루프린트 번들에서 비표준 네임스페이스를 사용하는 경우 블루프린트 컨테이너는 각 사용자 정의 네임스페이스에 대한 OSGi 서비스 레지스트리에서 NamespaceHandler 서비스를 찾습니다. NamespaceHandler 서비스는 OSGi 서비스 특성을 사용하여 처리할 수 있는 모든 XML 네임스페이스를 알립니다. 번들에서 사용되는 모든 사용자 정의 네임스페이스에 대한 NamespaceHandler 서비스를 찾을 수 있을 때까지 블루프린트 런타임은 블루프린트 XML을 구문 분석하지 않습니다. 모든 사용자 정의 네임스페이스에 대한 NamespaceHandler 서비스를 찾을 수 있는 경우가 아니면 블루프린트 컨테이너는 번들을 처리할 수 없습니다. 이 결과는 NamespaceHandler가 없으면 블루프린트 컨테이너가 무기한 대기함을 의미할 수 있습니다. 이 상황이 발생하면 블루프린트 컨테이너는 로그에 경고를 발행합니다. 블루프린트 구문 분석기는 블루프린트 XML 파일 구문 분석을 시작할 때 표준 블루프린트 요소를 모두 구문 분석합니다. 이 구문 분석기는 사용자 정의 요소에 도달하면 사용자 정의 요소의 네임스페이스에 대한 지원을 알린 NamespaceHandler에 대해 콜 아웃합니다. 여기서 NamespaceHandler는 사용자 정의 요소에 있는 정보를 처리하거나 런타임 블루프린트 모델을 수정하거나 기타 조작을 수행할 수 있습니다. 네임스페이스 정의에 입력 오류가 있으면 블루프린트는 거의 확실히 시작에 실패합니다.

사용자 정의 NamespaceHandler 서비스는 Liberty 기능 번들 및 OSGI 애플리케이션 번들을 포함한 Liberty에서 실행 중인 번들에 의해 제공될 수 있습니다.


주제의 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwlp_blueprint_namespace_handler
파일 이름: rwlp_blueprint_namespace_handler.html