OSGi Metatype Service 확장기능
Liberty 런타임 환경과 개발자 도구는 사용자 인터페이스에서 더 나은 프리젠테이션을 제공하고 더 복잡한 구성을 위해 OSGI Metatype 스펙이 일부 확장되었음을 인식합니다.
런타임 메타 유형 확장기능
xmlns:ibm="http://www.ibm.com/xmlns/appservers/osgi/metatype/v1.0.0"
- ibm:alias
별명 확장자는 구성에 사용 가능한 이름을 정의하기 위하여 사용하는 한편, server.xml 파일에서 구성 요소의 이름이 충돌하는 위험을 감소시키기 위해 사용합니다.
다음 예제에서는 ibm:alias 확장을 보여줍니다.
<OCD id="com.ibm.ws.jdbc.dataSource.properties" name="%properties" description="%properties.desc" ibm:alias="properties"> <AD id="username".../> </OCD>
이 예에서 properties는 구성에 사용 가능한 이름입니다. 별명은 ID와 달라야 합니다.
ibm:alias 항목을 server.xml 파일에서 사용할 때 접두부로 제품 확장기능의 이름이 지정되어야 합니다. 기본 사용자 위치에 설치된 확장기능의 제품 확장기능 이름은 usr입니다. wlp/etc/extension 디렉토리에서 extension-name.properties 파일을 사용하여 Liberty 설치에 대해 정의된 제품 확장기능의 경우, 제품 확장기능 이름은 extension-name에 대해 선택된 이름입니다.
이전 예에 표시된 메타 유형의 경우, 기능이 기본 usr 위치에 설치되었으면 유효한 server.xml 항목의 예는 다음과 같습니다.<usr_properties username="JANE"/>
<com.ibm.ws.jdbc.dataSource.properties username="JANE"/>
- ibm:type
표준 속성 유형은 메타 유형 스펙에 정의되어 있습니다. 여러 IBM® 확장 유형이 사용 가능합니다. 자세한 정보는 확장 유형의 내용을 참조하십시오.
- ibm:reference
참조 속성은 PID가 참조하는 OCD 유형을 지정합니다. ibm:pid 유형과만 사용하며 server.xml 파일에 요소를 중첩하도록 지원합니다. 구성 요소 중첩의 내용을 참조하십시오.
다음 예제에서는 ibm:reference 확장을 보여줍니다.
<AD id="fooRef" type="String" ibm:type="pid" ibm:reference="com.ibm.ws.foo".../>- ibm:final
final 속성은 구성에 값을 지정할 수 없음을 표시합니다. 대신 메타 유형의 기본값을 항상 사용합니다. name="internal"을 사용하여 도구가 이 특성을 표시하지 않는다는 점을 표시하십시오.
다음 예제에서는 ibm:final 확장을 보여줍니다.
<AD id="foo" name="internal" ibm:final="true" type="String" default=${someVariable}"/>- ibm:variable
variable 속성은 값이 지정되지 않은 경우 기본값으로 사용할 변수를 지정하는 데 사용합니다. 다음과 같은 순서로 선택합니다.
- server.xml에 지정된 값
- 예를 들어, bootstrap.properties에 시스템 특성으로 지정된 값
- 메타 유형의 기본값
다음 예제에서는 ibm:variable을 보여줍니다.
<AD id="traceString" ibm:variable="trace.string" default=*.all=enabled".../>- ibm:unique
- unique 속성은 동일한 고유 속성 그룹을 사용하는 모든 속성 정의에서 구성 값이 고유해야 함을 표시합니다. 다음과 같은 고유 속성 그룹이 지원됩니다.
-
jndiName: osgi.jndi.service.name 특성을 JNDI 이름과 함께 사용하여 서비스를 등록하는 속성에서 이 그룹을 사용하십시오. 자세한 정보는 다음을 참조하십시오. Liberty 기능에서 JNDI 기본 네임스페이스로 개발
-
- 기본값 구문
기본 표현식에서 ${prop-name} 구문을 사용하여 기타 구성 특성으로부터 문자열을 구성합니다.
다음 예제에서는 기본값 구문을 보여줍니다.
<AD id="httpEndpoint.target" name="internal" description="internal use only" ibm:final="true" required="false" type="String" default="(&(virtualHost=${id}) (enabled=true))"/>
확장 유형
- Duration
duration 유형을 사용하여 시간을 표시합니다. 이 유형은 여러 시간 단위로 묘사합니다. 예를 들어, "1h30m"은 1시간 30분입니다. "1d5h10s"는 1일, 5시간 10초입니다.
다음 목록에서는 사용 가능한 단위를 보여줍니다.
- d - 일
- h - 시간
- m - 분
- s - 초
- ms - 밀리초
기본적으로 유형 지속 기간을 사용하는 경우 사용자가 지정하는 값은 밀리초 단위로 평가됩니다. 예를 들어, "10s"는 사전에서는 10000의 긴 값입니다. 또한 사용자가 단위 없이 값을 지정하는 경우 이 값은 밀리초 단위로 평가됩니다. 예를 들어, "10" 값은 10밀리초로 평가됩니다. 그러나 다른 단위로 평가되도록 기간 유형을 지정할 수도 있습니다. 예를 들어, ibm:type="duration(s)"이 포함된 "10" 값을 지정하면 10초로 평가되고 사전에서 10으로 저장됩니다.
다음 목록에서는 가능한 유형을 보여줍니다.
- duration(h)
- duration(m)
- duration(s)
- duration(ms)
- duration
duration을 지정하는 것과 duration(ms)을 지정하는 것에는 차이가 없습니다.
참고:우수 사례: 항상 값에 단위를 포함하고 가장 읽기 쉬운 단위로 값을 표현하십시오. 예를 들어, ibm:type="duration(s)"이 포함된 "7200" 값을 지정하는 대신 값을 "2h"로 지정하십시오.
다음 예는 duration 유형을 표시합니다.
- <AD id="timeout" type="String" ibm:type="duration(s)".../>
- <AD id="timeout" type="String" ibm:type="duration".../>
- 위치
UI 도구에서 location 유형을 사용하여 다양한 파일과 디렉토리 위치를 표시하는 여러 유용한 속성 표시를 제공할 수 있습니다. 런타임 환경의 처리에는 영향을 미치지 않습니다. 사전 오브젝트는 항상 String입니다.
다음 예는 가능한 유형을 보여줍니다.
- location
- 파일을 참조합니다. 참조는 절대 파일, 상대 파일 또는 파일의 url일 수 있습니다.
- location(file)
- 절대 또는 상대 파일 경로를 사용하여 파일을 참조합니다.
- location(dir)
- 절대 또는 상대 파일 경로를 사용하여 디렉토리를 참조합니다.
- location(url)
- url의 끝에서 파일을 참조합니다.
다음 예제에서는 위치 유형을 보여줍니다.
<AD id="location" name="%appmgr.location.name" description="%appmgr.location.desc" type="String" required="true" ibm:type="location"/>- Password
비밀번호 유형은 비밀번호 필드에 사용됩니다. 사용되면 사전 오브젝트가 com.ibm.wsspi.kernel.service.utils.SerializableProtectedString의 인스턴스입니다. 비밀번호 필드의 값은 추적 파일에 로깅되지 않습니다. 개발자 도구는 비밀번호 필드에 사용할 수 있는 인코딩 옵션을 표시합니다. 올바른 인코딩 옵션은 xor 및 aes입니다.
다음 예제에서는 비밀번호 유형을 보여줍니다.
<AD id="password" type="String" ibm:type="password".../>- 해시 비밀번호
passwordHash 유형은 password 유형과 유사하며 해시 비밀번호 필드에 사용됩니다. 사용되면 사전 오브젝트가 com.ibm.wsspi.kernel.service.utils.SerializableProtectedString의 인스턴스입니다. 해시 비밀번호 필드의 값은 추적 파일에 로깅되지 않습니다. 개발자 도구는 해시된 비밀번호 필드에 사용할 수 있는 인코딩 옵션을 표시합니다. 올바른 인코딩은 xor, aes 및 hash입니다.
다음 매개변수와 함께 PasswordUtil.encode(String, String, Map) 메소드를 사용하여 해시 비밀번호에 대해 새 비밀번호를 유효성 검증하십시오.- 새 비밀번호.
- PasswordUtil.getCryptoAlgorithm 메소드를 호출하여 얻는 해시 알고리즘. 해시 알고리즘은 해시된 비밀번호의 알고리즘과 일치해야 합니다.
- 특성 중 하나가 키에 대해 PasswordUtil.PROPERTY_HASH_ENCODED를 사용하고 값에 대해 해시된 비밀번호를 사용하는 특성 오브젝트.
다음 예는 passwordHash 유형을 보여줍니다.
<AD id="hashedPassword" type="String" ibm:type="passwordHash".../>- Pid
pid 유형을 사용하여 구성에 있는 다른 오브젝트를 참조합니다. ibm:reference 속성과 함께 사용되며 server.xml에서 요소 중첩을 지원합니다. 구성 요소 중첩의 내용을 참조하십시오.
다음 예제에서는 pid 유형을 보여줍니다.
<AD id="fooRef" type="String" ibm:type="pid" ibm:reference="com.ibm.ws.foo".../>- OnError
onError 유형을 사용하면 사전에 onError 열거 인스턴스가 작성됩니다. 가능한 값은 WARN, FAIL 및 IGNORE입니다.
다음 예제에서는 onError 유형을 보여줍니다.
<AD id="errorBehavior" type="String" ibm:type="onError".../>- 토큰
토큰 유형은 구성에 지정된 값에서 문자열 앞이나 뒤에 나타나는 공백을 잘라야 함을 표시하는 데 사용됩니다.
다음 예는 토큰 유형을 사용하여 정의된 속성을 표시합니다.
<AD id="name" type="String" ibm:type="token" .../>
사용자 인터페이스 메타 유형 확장
xmlns:ibmui="http://www.ibm.com/xmlns/appservers/osgi/metatype/ui/v1.0.0"
- ibmui:localization
localization 확장기능을 사용하여 메타 유형 자국어 지원 파일을 지정합니다. 메타 유형 자국어 지원 파일을 사용하여 레이블의 번역과 기타 UI 확장기능에 대한 설명을 검색합니다. 대부분의 경우 ibmui:localization 확장기능의 값은 <Metadata> 요소의 현지화 속성과 일치합니다.
다음 예제에서는 ibmui:localization 확장을 보여줍니다.
<OCD id="com.ibm.ws.jdbc.dataSource.properties" name="%properties" description="%properties.desc" ibmui:localization="OSGI-INF/l10n/metatype"> <AD id="username".../> </OCD>
- ibmui:extraProperties
extraProperties 확장기능은 이 구성에 임의의 구성 속성 세트를 설정할 수 있음을 나타내는 데 사용합니다.
다음 예제에서는 ibmui:extraproperties 확장을 보여줍니다.
<OCD id="com.ibm.ws.jdbc.dataSource.properties" name="%properties" description="%properties.desc" ibmui:extraProperties="true"> <AD id="username".../> </OCD>
확장기능과 연관된 레이블 및 설명은 메타 유형 자국어 지원 파일에서 검색합니다(ibmui:localization 확장기능을 사용하여 파일이 지정된 경우). 확장 레이블의 경우 먼저 extraProperties.<ocd id>.name을 검사한 후 extraProperties.name 키를 검사합니다. 확장 설명의 경우 extraProperties.<ocd id>.description을 먼저 검사한 후 extraProperties.description 키를 검사합니다.
- ibmui:group
group 확장기능은 속성이 그룹에 속함을 지정하는 데 사용합니다. 사용자 인터페이스에서 동일한 그룹의 어노테이션이 있는 속성을 그룹화합니다.
다음 예는 ibmui:group 확장을 보여줍니다.
- <AD id="username" ibmui:group="userInfo".../>
- <AD id="password" ibmui:group="userInfo".../>
- <AD id="port" ibmui:group="hostInfo".../>
그룹 레이블 및 설명 정보는 메타 유형 자국어 지원 파일에서 검색합니다(ibmui:localization 확장기능을 사용하여 파일이 지정된 경우). 그룹 레이블의 경우 먼저 <group>.<ocd id>.name을 검사한 후 <group>.name 키를 검사합니다. 그룹 설명의 경우 먼저 <group>.<ocd id>.description을 검사한 후 <group>.description 키를 검사합니다.