문제
서로 자동으로 내리는 이클립스 플러그인을 만들 수 있습니까?
두 가지 주요 상황에서 작동 해야하는 플러그인 세트를 개발하고 있습니다.
- 개별적으로
- 서로 협력합니다.
개별적으로 실행되면 플러그인은 "그냥 작동"해야하지만 콘서트에서 동일한 모델 컨텐츠 중 일부를 공유하고 플러그인 중 하나는 사용자에게 콘텐츠를 공유 할 다른 플러그인 목록을 제공해야합니다. 예 :
Foo 플러그인은 다음 플러그인을 감지하여 온톨로지를 공유 할 수 있습니다.
] 바 플러그인
] BAZ 플러그인
] 공유하지 마십시오
Eclipse는 다른 플러그인의 이러한 종류의 자동 감지를 용이하게하는 내부 간행물 / 탐지 방법을 제공합니까?
해결책
대답은이를 통해 이루어져야합니다 선언적 서비스, Eclipse XML 확장 및 OSGI POJO 서비스의 장점을 결합합니다. OSGI 서비스와 같이 암시 적으로 역동적이지만 Eclipse Extensions와 같이 "주문형"을로드했습니다.
Eclipse3.3을 위해 2006 년에 소개되면 다음에 설명 된 개념을 찾을 수 있습니다. 이 프레젠테이션.
선언 서비스는 다른 서비스에 대한 참조를 정의 할 수있는 옵션을 제공합니다. 참조의 카디널리티를 지정할 수도 있습니다. 카디널리티는 두 숫자를 사용하여 지정됩니다. 첫 번째 숫자 0 또는 1은 옵션, 두 번째 숫자, 1 또는 n은 다중성을 나타냅니다.
실제로, 그것들 DS (선언 서비스) BundleContext에 액세스해야하므로 사용하기 쉽지 않습니다. 항상 쉬운 것은 아닙니다...
필요한 것이 일종의 서비스 지향 구성 요소 모델을 정의하는 것이라면 이 프레젠테이션 오늘날 존재하는 다양한 대안을 제공하고 "선언적 서비스"를 자세히 설명해야합니다.
DS와 관련하여 RCRESWICK가 찾은 것을 게시하려면 :
- OSGI를 시작하기 : 선언적 서비스 소개
- OSGI를 시작하기 : 선언 서비스 및 의존성
다른 팁
OSGI Service Registry는 플러그인 자체가 아니라 런타임에 Pojo 기반 서비스를 공유 할 수 있습니다. OSGI API, 선언 서비스, Spring DM 및 Ipojo에 직접 코딩하는 등이를 용이하게하는 몇 가지 옵션이 있습니다 (다른 것도 확실합니다).
역동적 인 관찰자/관측 가능한 스타일 솔루션을 달성하는 수단으로 화이트 보드 패턴을 확인할 수 있습니다.