Whiteship's Note

'Spring DM/Appendix A'에 해당되는 글 2건

  1. 2008.07.07 A.1. Configuration Admin
  2. 2008.07.07 Compendium Services

A.1. Configuration Admin

Spring DM/Appendix A : 2008.07.07 23:20


A.1.1. Property placeholder support

스프링 DM은 빈 속성 값을 OSGi Configuration Administration 서비스에서 가져오는 기능을 지원한다. 이 기능은 property-placeholder 엘리먼트를 이용하여 사용할 수 있다.  property placeholder 엘리먼트는 "${...}" 이런 형태의 구분자를 사용한 부분의 빈 속성 값을 Configuration Administratino 서비스에서 가져와서 설정해준다. 이 때 persistent-id 속성으로 Configuration dictionary의 키에 해당하는 id를 설정해준다.

나중에 이 부분은 스프링 프레임워크에 있는 방법과 동일하게 변결 될 거라고 합니다.

<osgix:property-placeholder persistent-id="com.xyz.myapp"/>

<bean id="someBean" class="AClass">
  <property name="timeout" value="${timeout}"/>
</bean>

someBean의 timeout 속성 com.xyz.myapp 라는 persistent id로 등록된 Configuration Ditionary 안에 있는 timeout의 값으로 대치 한다.

placeholder 문자열은 빈을 생성할 시점에 대치가 된다. 프로퍼티 값을 변경했다고 해서 생성한 빈 속성을 다시 주입하지는 않는다. 이런 방법이 필요하면 Appendix B의 managed-service와 managed-service-reference를 참조하라. placeholder-prefix와 placeholder-suffix를 사용하여 구분자를 변경할 수 있다.

프로퍼티 값들을 Configuration Dictionary에 두지 않고 직접 생성해서 사용해도 된다. default-propertiies라는 내부 엘리먼트를 사용한다.

<osgix:property-placeholder persistent-id="com.xyz.myapp">
  <default-properties>
     <property name="productCategory" value="E792"/>
     <property name="businessUnit" value="811"/>
  </default-properties>
</osgix:property-placeholder>

이때 persistent-id 속성은 OSGi ManagerdService를 참조해야 한다. ManagedServiceFactory를 참조하면 에러난다.

A.1.2.  Configuration Dictionaries

설정 객체 및 그와 연관된 딕셔너리에 접근하는 방법을 제공하며, 설정 객체에서 직접 빈 객체를 생성하는 것이 스프링 DM 로드맵으로 잡혀있다. Appendix F. Roadmap을 참조하라.

'Spring DM > Appendix A' 카테고리의 다른 글

A.1. Configuration Admin  (0) 2008.07.07
Compendium Services  (0) 2008.07.07
top

Write a comment.


Compendium Services

Spring DM/Appendix A : 2008.07.07 23:04


OSGi Service Platform Service Compendium 스펙에는 OSGi 구현체가 지원할 수도 있는(may be supported) 부가 서비스를 정의하고 있다. 스프링 DM은 추가로 "compendium" 네임스페이스를 지원하여 그런 서비스를 사용할 수 있게 해준다. 보통 해당 네임스페이스 이름으로 osgix를 사용한다.

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/osgi"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:osgix="http://www.springframework.org/schema/osgi-compendium"
   xmlns:beans="http://www.springframework.org/schema/beans"
   xsi:schemaLocation="http://www.springframework.org/schema/osgi 
        http://www.springframework.org/schema/osgi/spring-osgi.xsd
        http://www.springframework.org/schema/osgi-compendium
        http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd
        http://www.springframework.org/schema/beans  
        http://www.springframework.org/schema/beans/spring-beans.xsd">

   <!-- use the OSGi namespace elements directly -->
   <service id="simpleServiceOsgi" ref="simpleService"
       interface="org.xyz.MyService" />

   <!-- qualify compendium namespace elements -->
   <osgix:property-placeholder persistent-id="com.xyz.myapp"/>

</beans:beans>

현재 이 네임스페이스는 Configuration Admin 서비스만 지원하며 다른 서비스 지원 기능은 추후에 추가될 예정이다.

'Spring DM > Appendix A' 카테고리의 다른 글

A.1. Configuration Admin  (0) 2008.07.07
Compendium Services  (0) 2008.07.07
top

Write a comment.