Menifest
Dependencies 페이지
1. Menifest는 플러그인들의 의존관계를 표시
Require-Bundle: org.eclipse.ui,
Org.eclipse.core.runtime
이 뜻은 해당 두개의 플러그인에 현재 플러그인이 종속된다는 것을 의미한다.
해당 의미는 컴파일시 결정되는 종속성이 아닌 플러그인의 실행시에 사용되는 종속성이다.
실행 중 참조해야 할 플러그인이 어떤 것인지 확인한다. 클래스 로드 중 Require-Bundle에 명시된 항목 중 클래스를 찾을 수 없을 경우 NoClassDefFoundError 예외가 발생한다.
Require-Bundle: org.eclipse.ui,
Org.eclipse.core.runtime;resolutoin=optional // 없어도 실행되는것(있어도 좋고 없어도 상관 없음)
Import-package: org.eclipse.ui.views,
Org.eclipse.runtime.model
이 뜻은 종속성을 표현하기도 한다.
Import-Package는 Require-Bundle과 비슷하지만 번들 이름을 지정하는 대신에 패키지 이름을 대신한다.
말 그대로 Require-Bundle은 제공자를 기재하지만 Import-Pageck는 필요한 패키지만을 찝어서 기재한다. 그렇기 때문에 해당 패키지를 가진 다른 플러그인으로 쉽게 대체가 가능하다.(하지만 제공자를 알기는 어렵다)
2. Runtime 페이지
Menifest에서 Runtime 페이지는 Bundle-ClassPath와 연관이 있다. Bundle-ClassPath는 플러그인과 함께 전달함으로써 플러그인을실행할 때 사용할 라이브러리가 무엇인지, 다른 플러그인이 라이브러리의 코드를 참조할 수 있는지 여부 등을 정의힌다.
Bundle-ClassPath: favirites.jar 라고 plugin.xml에 기재할 경우 Menifest.xml에Runtime 영역의 Classpath에 기재되고
해당 플러그인의 모든 소스는 해당 라이브러리를 참조하게 된다.
3. Extension 페이지
해당 페이지는 현재 플러그인이 시스템의 다른 플러그인에서 이미 제공 제공하는 기능을 어떻게 보완하는지 볼 수 있다.
<extension point="org.eclipse.ui.view">
<category
Name = "Quality Eclipse"
Id = "com.qualityeclipse.favorites">
</category>
<view
Name = "Favorites"
Icon = "icons/sample.gif"
Category = "com.qualityeclipse.favorites"
Class="com.qualityeclise.favorites.views.FaoviritesView"
Id = "com.qualityeclise.favorites.views.FaoviritesView">
</view>
</extension>
위에 내용을 보게 되면 해당 플러그인은 org.eclipse.ui.view 확장점을 사용해 org.eclipse.ui 플러그인에 대한 확장을 선언한다. 선언된 확장은 Quality Eclipse 라는 이름의 뷰 카테고리를 추가하며 그 카테고리 안에 Favorites라는 이름의 새로운 뷰를 제공한다.
4. Extension Point 페이지
간편하게 새 확장점을 정의할 수 있다. 확장점은 해당 플러그인이 제공하는 기능을 다른 플러그인이 보완할 수 있게 한다. (확장점을정의 하지 않으면 다른 플러드인에서 해당 플러그인을 확장하여 사용할 수 없다.)
플러그인 ID
- 플러그인 ID는 단 하나의 플러그인을 식별하기 위해 설계된 것. (com.<회사명>.<제품명>의 형태로 구현한다.)
'RCP > SWT & JFACE' 카테고리의 다른 글
OSGI & Platform (0) | 2016.12.24 |
---|---|
RCP 프레임워크 프로젝트의 플러그인 클래스 (0) | 2016.12.24 |
Action 클래스 살펴보기 (0) | 2016.12.24 |
rcp프레임워크의 shell객체의 이벤트 처리 설명 (0) | 2016.12.24 |
event doit 설명 (0) | 2016.12.24 |