OSGi Metatype Service를 사용하여 구성 설명

각 서비스의 구성 특성은 OSGi Metatype Service 스펙과 함께 컴파일되는 메타데이터에 설명되어 있습니다. 메타데이터에는 기본값, 번역 가능한 이름과 설명 및 유효성을 검증할 수 있는 정보를 포함할 수 있습니다. 결과 XML 파일은 스펙에 따라 OSGI-INF/metatype 디렉토리에 서비스가 포함된 번들로 패키지됩니다.

이 태스크 정보

구성을 설명하기 위해 선택적으로 메타데이터를 제공할 수 있습니다. 메타데이터를 제공하면 다음과 같은 이점이 있습니다.
  • 기본값은 구현 코드와 분리하여 기본값을 찾기 쉬운 메타 유형 XML 파일에 둘 수 있습니다.
  • 각 속성에 대해 적절한 데이터 유형과 기타 유효성 검증 데이터를 지정하여 구성 구문 분석기 및 개발자 도구로 유효성을 검증할 수 있도록 하고 속성을 처리하기 위해 작성하는 코드를 단순화할 수 있습니다.
  • 개발자 도구 및 기타 유틸리티에서 사용 가능한 구성에 대해 설명하는 XML 스키마에 구성이 포함됩니다.
  • 각 속성에 대한 번역 가능한 이름과 설명을 제공할 수 있으며 이러한 이름과 설명은 개발자 도구에 표시됩니다.

프로시저

  1. 번들의 OSGI-INF/metatype 디렉토리에 xml 파일을 작성하고 OSGi Metatype 네임스페이스의 네임스페이스 선언을 추가하십시오.
    <metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.1.0">
    </metatype:MetaData>
  2. ID와 선택적으로 이름 및 설명이 포함된 속성 세트를 포함하도록 오브젝트 클래스 정의(OCD) 요소를 추가하십시오. server.xml 파일과 코드에서 사용한 PID에 OCD를 맵핑하도록 Designate 요소도 제공하십시오.
    <OCD name="b2c" description="bundle two config" id="b2c-id">
    </OCD>
    
    <Designate pid="testBundleTwo">
    <Object ocdref="b2c-id" />
    </Designate>
  3. OCD에서 각 구성 특성의 속성 정의(AD) 요소를 추가하십시오. 각 속성에는 삽입된 구성을 받는 코드와 server.xml 파일에서도 사용하는 ID가 필요합니다. 선택적으로, 개발자 도구와 기타 그래픽 도구에서 사용할 수 있는 이름과 설명도 있습니다. 데이터 유형을 지정하면 런타임 환경이 해당 유형에 대한 입력의 유효성을 검사할 수 있으며 처리 코드가 간단해집니다. 유용한 기본값을 지정하면 사용자 제공 구성을 최소화할 수 있으며 알려진 위치에 구성 기본값이 모두 포함됩니다.
    <AD name="boolProperty" description="a boolean property" id="boolProp" 
        type="Boolean" default="false" />
  4. 이제 다음과 같은 metatype.xml 파일이 작성됩니다.
    <?xml version="1.0" encoding="UTF-8"?>
    <metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.1.0">
    
    		<OCD name="b2c" description="bundle two config" id="testBundleTwo-2-id">
    				<AD name="textProperty" description="a text property"
                  id="textProp" type="String" default="default string" />
    				<AD name="boolProperty" description="a boolean property"
                  id="boolProp" type="Boolean" default="false" />
    				<AD name="intProperty" description="an integer property"
                  id="intProp" type="Integer" default="14" /> 
    	</OCD>
    
    		<Designate pid="testBundleTwo-2">
    				<Object ocdref="testBundleTwo-2-id" />
    	</Designate>
    
    </metatype:MetaData>
  5. 구성 특성을 받도록 서비스를 코딩하십시오. 메타 유형 설명이 없으면 모든 특성이 String 값으로 제공되며 다음과 같이 처리됩니다.
    String textProp = (String) properties.get("textProp");
    Boolean boolProp = Boolean.parseBoolean((String) properties.get("boolProp"));
    int intProp = Integer.parseInt((String) properties.get("intProp"));
    
    String textProp = (String) properties.get("textProp");
    Boolean boolProp = (Boolean) properties.get("boolProp");
    int intProp = (Integer) properties.get("intProp");

    런타임 환경은 입력 값의 유효성을 이미 검사하여 올바른 유형의 입력 값임을 확인합니다.


주제의 유형을 표시하는 아이콘 태스크 주제



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