도서 소개
acorn+PACKT 시리즈. 기본적인 이클립스 플러그인 개발에서 더 나아가 사용자 정의 확장점과 서비스나 외부 라이브러리의 정적/동적 연결을 통해 애플리케이션의 기능을 더욱 풍부하게 구현하는 방법을 소개한다. 또한 업데이트 사이트와 도움말 등을 통해 사용자가 애플리케이션을 편리하게 사용하도록 지원하는 기능을 제공하는 방법도 다룬다. 이 책을 통해 플러그인 개발 경험이 있는 개발자는 자신의 애플리케이션을 더욱 화려하게 만들 수 있는 팁을 얻게 될 것이다.
다른 플러그인이 기능을 기여할 수 있는 사용자 정의 확장점 생성, 선언적 서비스(Declarative Services)와 블루프린트(Blueprint)를 사용해서 동적으로 OSGi에 기여, 중첩된 콘텐츠를 제공해서 공통 탐색기 프레임워크(Common Navigator Framework) 확장, 내장된 Gogo 셸의 확장을 위한 커맨드 작성, 플러그인에 네이티브 코드를 기여하기 위한 프래그먼트 사용 등을 다룬다.
출판사 리뷰
★ 요약 ★
기본적인 이클립스 플러그인 개발에서 더 나아가 사용자 정의 확장점과 서비스나 외부 라이브러리의 정적/동적 연결을 통해 애플리케이션의 기능을 더욱 풍부하게 구현하는 방법을 소개한다. 또한 업데이트 사이트와 도움말 등을 통해 사용자가 애플리케이션을 편리하게 사용하도록 지원하는 기능을 제공하는 방법도 다룬다. 이 책을 통해 플러그인 개발 경험이 있는 개발자는 자신의 애플리케이션을 더욱 화려하게 만들 수 있는 팁을 얻게 될 것이다.
★ 이 책에서 다루는 내용 ★
■ 다른 플러그인이 기능을 기여할 수 있는 사용자 정의 확장점 생성
■ 선언적 서비스(Declarative Services)와 블루프린트(Blueprint)를 사용해서 동적으로 OSGi에 기여
■ 중첩된 콘텐츠를 제공해서 공통 탐색기 프레임워크(Common Navigator Framework) 확장
■ 내장된 Gogo 셸의 확장을 위한 커맨드 작성
■ 플러그인에 네이티브 코드를 기여하기 위한 프래그먼트 사용
■ 서비스 로더를 사용한 코드 수정과 OSGi에 친화적이지 않은 JAR 래핑
■ 약결합의 디자인 패턴으로 모듈형 애플리케이션 개발
★ 이 책의 대상 독자 ★
이 책은 이클립스 플러그인 환경에 익숙한 자바 개발자가 진정한 전문가가 되기 위해 알아야 할 높은 수준의 개념을 다룬다. 이클립스 플러그인을 작성해본 경험이 있다는 가정하에 이 책을 작성했다.
★ 이 책의 구성 ★
1장, 'JFace와 공통 탐색기 프레임워크에 연결'에서는 JFace 마법사 생성법과 공통 탐색기 프레임워크에 콘텐츠를 통합하는 방법을 설명한 다음, 패키지 탐색기(Package Explorer)에 프로젝트 콘텐츠를 트리 뷰로 표시해본다.
2장, '사용자 정의 확장점 생성'은 다른 플러그인이 기능을 기여할 수 있는 확장 가능한 플러그인을 생성하기 위해 이클립스 확장 저장소를 사용하는 방법과 OSGi나 이클립스 런타임 밖에서 플러그인을 사용하는 방법을 설명한다.
3장, 'OSGi 서비스를 이용한 애플리케이션 동적 연결'에서는 애플리케이션의 기능을 확장하는 수단으로서 OSGi 서비스를 소개한다. 이 장은 선언적 서비스(Declarative Services)나 블루프린트(Blueprint)를 이용해 선언적으로 OSGi 서비스를 설정하는 방법을 설명하고, OSGi R6에서 새롭게 추가된 Config Admin을 이용해서 서비스를 설정하는 방법을 설명한다.
4장, 'Gogo 셸과 커맨드 사용'은 이클립스 4에 포함된 Gogo 셸의 사용법과 Gogo 스크립트와 자바로 사용자 정의 커맨드를 생성해 셸을 확장하는 방법을 설명한다.
5장, '네이티브 코드와 프래그먼트 번들'에서는 OSGi나 이클립스 애플리케이션으로 네이티브 코드를 로드하는 방법과 프래그먼트를 사용해 프레임워크나 기존의 OSGi 번들의 기능을 확장하는 방법을 설명한다.
6장, '클래스로더 이해'에서는 자바 클래스로더(ClassLoader)의 기본적인 동작 원리를 자세히 살펴보고, OSGi 런타임에서 클래스로더를 어떻게 사용했는지 알아본다. OSGi가 아닌 JAR 파일에 대한 업그레이드 전략과 함께 스레드 컨텍스트 클래스로더(Thread Context ClassLoader)와 서비스로더(ServiceLoader) 같은 OSGi가 아닌 다른 런타임에서 OSGi 프레임워크를 사용하는 방법도 설명한다.
7장, '모듈형 애플리케이션 설계'는 18가지 모범 사례와 함께 화이트보드 패턴(whiteboard pattern)과 익스텐더 패턴(extender pattern) 같은 모듈형 설계 패턴을 설명하고, 버전 번호 관리를 자동화하는 시맨틱 버전관리와 도구를 사용하는 방법도 다룬다.
8장, 'EventAdmin을 이용한 이벤트 기반 애플리케이션'에서는 OSGi EventAdmin 서비
작가 소개
저자 : 알렉스 블루윗
1996년 자바 버전 1.0이 릴리스된 이후부터 지금까지 자바 애플리케이션 개발자로 활동 중이다. IBM 웹스피어 스튜디오(WebSphere Studio) 제품군의 일부로 이클립스 플랫폼이 처음 릴리스된 이후부터 이클립스 플랫폼을 사용해왔으며, 디자인 패턴의 자동 검증에 대한 자신의 박사 논문에서 비주얼에이지 포 자바(VisualAge for Java)의 몇 가지 플러그인을 웹스피어 스튜디오/이클립스로 마이그레이션하기도 했다. 맥 OS X용 이클립스 2.1을 릴리스할 때는 테스터로서 오픈소스 커뮤니티에 참여했으며, 이후 이클립스존(EclipseZone) 편집자로 활동했다. 2007년 이클립스 앰버서더(Eclipse Ambassador)의 결승 진출자이기도 하다.최근에는 제너릭 자바(generic Java)를 다루는 InfoQ에 이클립스와 OSGi를 주제로 한 기고문을 실었다. 2011 OSGi 커뮤니티 행사에서 OSGi의 과거와 현재, 미래를 주제로 기조 연설을 했다. InfoQ 홈페이지에는 이클립스 플랫폼의 릴리스 소식과 이클립스 프로젝트에 대한 보도뿐만 아니라 이클립스 프로젝트 리더의 비디오 인터뷰도 있다. 이런 공로를 인정받아 알렉스는 2012년 이클립스 최고 기여자 시상식(Eclipse Top Contributor 2012 award)에서 상을 받았다현재 런던의 투자 은행에서 근무 중이며, 밴들렘 리미티드(Bandlem Limited)를 통해 앱스토어에 많은 앱을 등록하기도 했다.블로그(http://alblue.bandlem.com)와 트위터 계정(@alblue)에 정기적으로 글을 기고하고 있으며, 팩트 출판사의 『이클립스 4 플러그인 개발』(에이콘출판, 2013년)의 저자다.
목차
1장. JFace와 공통 탐색기 프레임워크에 연결
__JFace 마법사
____피드 마법사 생성
______클래스 생성하기
______마법사에 페이지 추가
______페이지에 콘텐츠 추가
______마법사 테스트
______제목과 이미지 추가
______도움말 추가
______마법사 완료
______FeedWizard를 newWizards 확장점에 추가
______진행 모니터 추가
____미리 보기 표시
__공통 탐색기
____콘텐츠와 레이블 프로바이더 생성
____공통 탐색기와 통합
____콘텐츠 탐색기와 뷰 연결
____공통 탐색기에 커맨드 추가
____변경에 반응
____뷰어 업데이트 최적화
____선택 변경 연결
______편집기 열기
______콘텐츠가 있는 줄 찾기
______선택 항목 설정하기
__정리
2장. 사용자 정의 확장점 생성
__확장과 확장점
____확장점 생성
______IFeedParser 인터페이스 생성
______MockFeedParser 클래스 생성
______확장점 스키마 생성
______확장점 사용
______콘텐츠와 레이블 프로바이더를 확장에 통합
______브라우저에 피드 표시
______실제 피드 분석기 구현
______Atom 지원
______분석기에서 네임스페이스 인식
______우선순위와 순서
______실행 가능한 확장과 데이터
______실행 가능한 확장 팩토리
____OSGi 외부에서 확장 저장소 사용
______확장 저장소 캐시 사용
______클래스 경로의 모든 확장 로드
__정리
3장. OSGi 서비스를 이용한 애플리케이션 동적 연결