Whiteship's Note


Spring Dynamic Modules Maven Archetype

Spring DM/Appendix D : 2008.07.09 11:16


스프링 DM은 메이븐 아키타입archetype을 제공하여 스프링 DM 번들 개발 시에 사용할 수 있는 자바 프로젝트 기본 틀을 제공한다. 아키타입을 실행하려면 다음의 명령어를 사용하면 된다.

mvn archetype:generate

메이븐 플러그인이 가용한 archetype을 보여줄 것이다. 그 중에서 spring-osgi-bundle-archetype을 선택하면 된다.(현재 32번으로 설정되어 있다.) 그리고 프로젝트에 필요한 몇 가지 정보를 입력한다.(그룹id, 아티팩트id, 버전, 패키지) 가용한 모든 아키타입과 버전은 여기를 참조하라.

물론 archetype:create를 사용해서 직접 아키타입을 설정하여 프로젝트를 생성할 수도 있다.

mvn archetype:create \
-DarchetypeGroupId=org.springframework.osgi \
-DarchetypeArtifactId=spring-osgi-bundle-archetype \
-DarchetypeVersion=   \
-DgroupId=<your-project-groupId>  \
-DartifactId=<your-project-artifactId> \
-Dversion=<your-project-version>

(과연 누가 저렇게 쓸까;;; 오타 없아 커맨드 창에 저걸 전부 입력 할 수 있는 사람~?)

둘 모두 같은 프로젝트 구조를 생성해준다. 그 안에 두 개의 스프링 설정 파일 src/main/resources/META-INF/spring/bundle-context.xml 와 src/main/resources/META-INF/spring/bundle-context-osgi.xml 가 있다. 프로젝트는 OSGi 번들로 패키지 형태가 설정되어 있다.

프로젝트에 MANIFEST.MF 파일이 없는데, 이 건 메이븐의 bnd 플러그인으로 자동 생성한다. 따라서 번들을 생성하고 싶으면 다음과 같이 하면 된다.

mvn package

번들 말고, MANIFEST.MF 파일만 생성하고 싶을 때는 다음과 같이 한다.

mvn org.apache.felix:maven-bundle-plugin:manifest

D.1. 생성한 프로젝트 살펴보기
  • OSGi 번들로 패키징 함.
  • MATA-INF/MANIFEST.MF 는 자동 생성함.
  • src/main/java/<package> 번들이 공개할 패키지
  • src/main/java/<package>/internal 번들이 공개하지 않을 패키지
  • src/main/resources/META-INF/spring/bundle-context.xml 번들 내부에서 사용할 스프링 설정 파일
  • src/main/resources/META-INF/spring/bundle-context-osgi.xml OSGI 관련 스프링 설정 파일
  • .project, .classpath, 그리고 build.properties 파일은 이 프로젝트를 이클립스 PDE 플러긴 프로젝트로 인식하게 해 줌.



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

Spring Dynamic Modules Maven Archetype  (0) 2008.07.09
top

Write a comment.


Spring DM, Eclipse 플러그인 개발 환경에 통합하기

Spring DM/Appendix C : 2008.07.09 10:32


참조: http://static.springframework.org/osgi/docs/current/reference/html/appendix-pde-integration.html

레퍼런스대로 하면, 잘 안 될 겁니다. Spring DM 최신 버전도 못 쓰고 말이죠. Spring DM 때문에 Spring IDE를 설치해야 하는 것도 아닌데, Spring DM 레퍼런스 이 부분은 별로 네요. 그래서 제 맘대로 다시 작성합니다.

Eclipse의 Target Platform에 Spring DM 관련 번들들을 설정 해 놓고 손 쉽게 Equinox위에서 해당 번들들을 돌릴 환경을 마련하는 과정입니다. 간단합니다.

먼저 Spring DM 프로젝트를 다운로드 합니다.

http://www.springframework.org/osgi

압축을 풀고, lib과 dist에 있는 모든 번들들(*source*가 들어간건 제외합니다. 소스는 필요 없습니다.)을 복사해서 특정 폴더 하나로 이동시켜둡니다.

사용자 삽입 이미지

그리고 Eclipse의 Target Platform 설정으로 들어가서 해당 폴더를 Location으로 잡아주고, Reload 버튼을 클릭합니다. 환경 설정은 끝났습니다.

사용자 삽입 이미지

이제 Equinox를 실행해보죠.

사용자 삽입 이미지

흠.. 뭐 별게 없스니다. 왼쪽에 있는 서브 메뉴에서 OSGi Framework을 더블클릭해서 새로운 Run Configuration 인스턴스를 만들고 이름을 Spring DM이라고 지어줬습니다. 번들들은 알아서 Target Platform에 설정해 둔것들을 로딩해 왔을 겁니다. Apply를 클릭하고 Run을 클릭합니다.

번들들의 상태와 Equinox 명령어를 확인해보죠.

사용자 삽입 이미지

test랑 jetty fragment는 resolved 상태로 되어 있네요. test 번들은 저렇게 설치할 용도로 만들어진게 아니니까 폴더에서 빼줘야 될 것 같네요. jetty fragment는 나중에 Jetty를 서브릿 컨테이너로 사용할 때 제티 설정을 변경할 수 있는 번들이니까 뭐.. 일단 내비둬도 상관없겠네요.

중요한 건, Extender가 제대로 동작 중이냐 입니다. 번들 ID 3번으로 잘 동작하고 있군요. Spring DM에서 가장 중요한 번들이 Extender입니다. 좀 더 자세히 봐볼까요?

사용자 삽입 이미지

흠.. 확실히 콘솔 명령어는 Felix보다 Equinox가 좀 더 많고 편합니다.

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

Spring DM, Eclipse 플러그인 개발 환경에 통합하기  (0) 2008.07.09
top

Write a comment.


웃음 바이러스

모하니?/Watching : 2008.07.09 08:19




이거 보면서 웃음을 참아 보라는데.. 도무지 못 참겠네요. 얘기 웃음은 '뭐야~' 그러면서 넘어갔는데, 흑형의 저음 때문에 피식 웃었다가 할아버지 웃음 소리 때문에 아주 죽겠네요. 뒤집어졌습니다.

이런 바이러스는 얼마든지 퍼져도 좋을 것 같습니다.
top

Write a comment.