Whiteship's Note


Spring DM Extentions

Spring DM/Appendix B : 2008.07.07 23:32


이번 Appendix 장에서는 1.0 배포판부터 추가된 핵심 기능을 확장한 기능들을 다루지만, 이 다음 배포판에서도 그대로 확장으로 있을지는 보장하지 못한다. 이 기능들을 핵심 기능 쪽으로 옮기는 것을 생각하고 있기 때문이다.

B.1. 애노테이션 기반 주입

org.springframework.osgi.extensions.annotation 번들은 OSGi 서비스 레퍼런스를 주입하는 애노테이션을 제공한다. 이 기능을 사용하려면 JDK 1.5 이상을 사용해야 한다.

Bean 클래스 세터 메소드 위에 org.springframework.osgi.extensions.annotation.ServiceReference 애노테이션을 사용할 수 있다. 기본으로 속성 타입으로 OSGi 서비스 레지스트리에서 매치하는 서비스 인터페이스를 찾아서 주입해준다. 예를 들어,

<bean id="annotationDriven" class="MyAnnotationDrivenBeanClass"/>

위의 클래스를 다음과 같이 정의한다면,

public class MyAnnotationDrivenBeanClass {

  @ServiceReference
  public void setMessageService(MessageService aService) { ... }

}

MessageService 인터페이스를 구현한 서비스를 찾아서 가장 적합한 레퍼런스를 주입해준다.(이 때 적합한 레퍼런스를 찾는 방법은 reference 엘리먼트와 동일함)

서비스 룩업을 하는 과정에 몇 가지 설정을 할 수 있게 reference 엘리먼트에 상응하는 속성을 가지고 있다. 자세한건 javadoc을 참조하라.


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

Spring DM Extentions  (0) 2008.07.07
top


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


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


Eclipse에서 Felix 사용하기






top


20080707 GMP

모하니?/GMPing : 2008.07.07 09:28


News

skyscraper 마천루, 초고층빌딩(mega building)
pie in the sky 그림의 떡(=pipe dream)
floors 바닦
revolving 회전하는

Is it a skyscraper of the future or just a pie in the sky idea? It's an 80 stories residential tower with revolving floors.

Screen English

I think your sisters are't really happy.
더...
Why do you think so?
You are a good father but sometimes bad dad.
Who told you said that? You can tell me.
No. I maded it up myself.

Pop's English(She's so high)

She is blood, flesh and born.
No types of silicon.
She is touch, smell, sight, taste and sound.

Talk Play Learn

내가 ~면 좋겠어.
I wish I were a puppy.
I wish I were a man.
I wish I were a woman.
I wish I were a teenager.
I wish I were the president.
I wish I were her boyfriend.
I wish I were a time travler.
I wish I were a alabian prince.
I wish I were computer savvy.

Sound Sound Play

d 다음에 r이 오면 드르가 아니라 듀..
dry 듀라이
drive 듀라이브
dream 듀림
draw 듀러
drag 듀렉
drama 듀라마

Learn More

감잡다  = I have a hunch(hint = clue = idea).


'모하니? > GMPing' 카테고리의 다른 글

20080717 GMP  (0) 2008.07.17
20080716 GMP  (0) 2008.07.16
20080715 GMP  (0) 2008.07.15
20080710 GMP  (0) 2008.07.10
20080708 GMP  (0) 2008.07.08
20080707 GMP  (0) 2008.07.07
20080705 GMP  (0) 2008.07.05
20080704 GMP  (0) 2008.07.04
20080703 GMP  (0) 2008.07.03
20080702 GMP  (0) 2008.07.02
20080701 GMP  (0) 2008.07.01
top

TAG GMP