Spring DM

A collection of 33 posts

스프링 슬라이스

스프링 슬라이스(Spring Slice)

참조 http://blog.springsource.com/2009/07/10/pluggable-styling-with-springsource-slices/ http://blog.springsource.com/2009/06/22/modular-web-applications-with-springsource-slices/ 음.. 웹 애플리케이션을 OSGi 번들로 구성할 때, web 번들 하나랑 기타 서비스 번들 여러 개로 쪼개야 하는구나.. 라고 만 생각하고 있었는데, 그렇지 않았네요. 스프링 슬라이스를 이용해서 하나의

스프링 DM

오호.. 스프링소스 manifest 헤더가 OSGi에 추가되는군요

참조: http://blog.springsource.com/2008/11/27/springsource-manifest-headers-registered-with-osgi/ OSGi 진영에서 public registry에 밴더별 헤더를 등록해서 중복하는 헤더를 방지하고자 하는 것 같습니다. 추가된 스프링소스의 헤더 7개– Import-Bundle– Import-Library– Module-Scope– Modeul-Type– Web-Contextpath– Web-DispatcherServletUrlPatterns– Web-FilterMappings 추가된 bnd 헤더 2개&

Archetype

Spring Dynamic Modules Maven Archetype

스프링 DM은 메이븐 아키타입archetype을 제공하여 스프링 DM 번들 개발 시에 사용할 수 있는 자바 프로젝트 기본 틀을 제공한다. 아키타입을 실행하려면 다음의 명령어를 사용하면 된다. mvn archetype:generate 메이븐 플러그인이 가용한 archetype을 보여줄 것이다. 그 중에서 spring-osgi-bundle-archetype을 선택하면 된다.(현재 32번으로 설정되어 있다.) 그리고 프로젝트에

Chapter 5

5.6. Considerations when using external libraries

대부분의 엔터프라이즈 애플리케이션 라이브러리들은 context class loader를 통해서 타입과 리소스를 로딩할 수 있다고 가정한다. 보통 개발자가 이 것을 직접 다루지는 않지만, 애플리케이션 서버, 컨테이너 또는 멀티 쓰레드로 동작하는 애플리케이션들은 context class loader를 사용하고 있다. OSGi R4에서는 context class loader를 통해 가용한 타입이나 리소스 집합에

Chapter 5

5.5. Importing and Exporting packages

Import-Package와 Export-Package manifest 헤더에 대한 자세한 내용은 OSGi 스펙을 참조하도록. 번들은 자신이 의존성을 가지는 모든 외부 패키지들을 Import-Package를 사용해서 설정한다. 만약 다른 번들들이 사용할 필요가 있는 타입을 제공해야 한다면, Export-Package를 사용하여 외부 번들에서 사용할 수 있는 모든 패키지를 설정한다.

Chapter 5

5.2. Extender configuration options

번들과 관련된 설정이외에, 스프링 DM은 extender의 기본 행위를 설정할 수도 있다. 이것은 Spring-DM을 관리하는 환경Managed Environment에 포함시키거나 여러 번들에 걸친 기능이 필요할 때 유용하다. 확장 가능한 설정을 위해, extender는 OSGi의 fragment를 사용하여 기본 값을 재정의 할 수 있다. extender는 META-INF/spring 밑에 있는 모든

Chapter 5

5.1. Bundle format and Manifest headers

각각의 애플리케이션 모듈은 OSGi 번들로 패키징해야 한다. 번들은 META-INF/MANIFEST.MF 파일을 가지고 있는 jar 파일이다. OSGi 서비스 플랫폼 핵심 스팩 3.2에서 그 자세한 내용을 살펴볼 수 있다. 몇몇 OSGi 구현체들은 풀어헤쳐진 jar 파일을 지원하지만 형식은 동일하다. 스프링 Extender는 번들은 “스프링이 가미된&

Spring DM

웹 애플리케이션과 OSGi

참조 : http://blog.springsource.com/main/2008/04/29/web-applications-and-osgi/왜 WAR를 OSGi에 배포하려는가? 쉬운 질문이군. OSGi는 기본적으로 버전잉과 패키지 엮기 그리고 핫 릴로딩을 지원한다. 여러분의 애플리케이션이 이런 장점들을 얻을 수 있다는 것을 상상해보라. .. 나머진 생략 .. 왜 웹 애플리케이션이 OSGi에서 문제가 되는가? – Servlet

Chapter 4

4.7. Stopping the extender bundle

Extender 번들이 멈추게stop 되면, Extender가 만든 모든 application context가 제거 될 것이다. Application context가 제거되는 순서는 다음과 같다. 1. 어떤 서비스도 export하지 않았거나, export 했지만 다른 번들들이 참조하지 않고 있는 application context를 가장 먼저 없앤다. 없앨 때는 번들 id의 역순으로 가장 최근에 설치된 번들의

Chapter 4

4.6. Application Context Destruction

application context의 삶은 자신이 포함되어 있는 번들에 달려있다. 따라서 만약에 번들을 제거uninstall 하면, application context도 제거되고, export 했던 서비스들도 레지스트리에서 내리고, import 했던 서비스들도 제거한다. 번들만 별도로 닫히거나 전체 OSGi 플랫폼을 끄는 것과 같은 매우 큰 이벤트의 일부로 닫힐 수가 있다. 이런 경우이거나 extender

Chapter 4

4.4. The Resource abstraction

스프링은 리소스 추상화 계층을 제공합니다.– Application Context는 그 녀석을 기본으로 탑재하고 있습니다.– 모든 리소스는 application context가 가지고 있는 org.springframework.core.io.ResourceLoader가 읽어옵니다. 물론 이 녀석을 별도의 bean에 주입하고 직접 코딩을 통해서 리소스를 읽어와도 됩니다.– 리소스의 경로 앞에 classpath: 또는

Chpater 4

4.5. Accessing the BundleContext

스프링 DM을 사용하면 OSGi API에 의존하지 않아도 된다.– 정말로 OSGi의 BundleContext 객체에 접근하고 싶다면, 스프링이 도와줄 것이다.– Extender가 만들어준 application context에는 BundleContext 타입의 bean 하나를 bundleContext라는 이름으로 항상 가지고 있다.– 이 bean을 application context내의 다른 bean에 얼마든지 중입inject 할 수 있다.

Chapter 4

4.3. Bundle Lifecycle

OSGi는 다이내믹 플랫폼으로, 프레임워크가 동작하고 있는 도중에 번들을 설치, 시작, 업데이트, 멈춤, 제거 할 수 있다. 번들이 멈추면be stopped – 번들이 등록한 서비스들은 모두 등록이 해지되고unregistered 번들은 RESOLVED 상태가 된다.– 번들이 가지고 있던 자원을 반납하고 쓰레드도 종료한다.– 번들이 노출 시켰던 패키지들은 번들이

Chapter 4

4.2. Application Context Creation

Extender 번들은 application context를 비동기적으로 생성한다.– OSGi 서비스 플랫폼 시작 속도를 빠르게 해준다.– 서비스들 간의 종속성으로 인한 데드락의 위험이 없다.– 따라서 스프링 DM을 사용한 번들의 application context가 만들어지기 전에 STARTED 상태가 될 수 있다.– 5.1을 참조하면, 동기적으로 번들을 생성하도록

Chpater 4

4.1. The Spring Dynamic Modules Extender bundle

스프링 DM은 org.springframework.osgi.bundle.extender라는 번들을 제공한다. 이 번들은 번들에서 사용할 스프링 application context를 생성해준다. 스프링 웹 애플리케이션의 ContextLoaderListener와 같은 역할을 한다. extender 번들이 설치 installed 되고 시작 started 되면 이미 Activce인 상태의 번들 중에 스프링 DM을 사용하는 번들을 찾아서 application context를

You've successfully subscribed to Whiteship!
Could not sign up! Invalid sign up link.