2013-07-10 4 views
3

필자는 기능으로 구성된 번들로 구성된 Eclipse 기반 OSGi 애플리케이션을 보유하고 있습니다. 필자는 제품 정의를 사용하여 응용 프로그램을 시작합니다. 이 정의에서 내 번들의 시작 레벨을 설정할 수도 있습니다.동적 Eclipse 기능의 시작 레벨 설정 : p2.inf 대신?

이제 실행중인 응용 프로그램에 기능을 추가하려고합니다. 이 기능에서 번들의 시작 레벨을 지정하는 유일한 방법은 p2.inf 파일입니까? 제품을 다시 정의하고 다시 시작하는 것이 실제로는 역동적이지 않기 때문에 최적의 솔루션이라고는 할 수 없습니다.

+0

"제품 다시 시작"이란 무엇을 의미합니까? p2를 사용하면 실행중인 제품의 새 버전을 설치할 수 있습니다. AFAIK를 다시 시작하지 않아도됩니다. – oberlies

+0

좋은 힌트입니다, 감사합니다. 즉, 우리는 다음을 할 수 있습니다. 1. 새로운 번들을 설치할 시작 레벨이 포함 된 새로운 버전의 제품을 만듭니다. 2.이 제품 버전을 설치하십시오. 3. 응용 프로그램에 새 기능을 추가하십시오. – usan

답변

1

필자는 기능 수준에서 번들의 시작 수준을 설정하기위한 실제 툴링 지원을 알지 못합니다. 유일한 옵션은 p2.inf를 이용한 수동 해킹입니다.

시작 레벨을 설정하는 것이 실제로 제품에서만 지원되는 이유는 p2가 시작 레벨이 여러 번 지정된 경우를 처리 할 수 ​​없다고 생각하기 때문입니다. 기능 수준의 시작 수준 설정을 권장하면 쉽게 발생할 수 있습니다.

따라서이 기능은 기능 수준에서 수행 할 수 있지만 내가하는 일을 알고있는 경우에만 가능합니다.

1

나는 동일한 문제를 안고 있습니다. 나는 패키지 된 제품의 일부이고 Eclipse IDE에 설치 될 업데이트 사이트에있는 기능을 가지고 있습니다. 또한 초기 시작을 보장하기 위해 일부 플러그인의 시작 수준을 설정하려고합니다.

instructions.configure=setStartLevel(startLevel:1);markStarted(started: true); 
instructions.unconfigure=setStartLevel(startLevel:-1);markStarted(started: false); 

이 (내가 제거 시도하지 않은하지만 난 더 이상 제품 정의에서 시작 레벨을 지정할 필요가 있다고 생각하지 않습니다

나는 다음과 같은 내용으로 p2.inf 파일이 극복).

원래 레벨 2에서 시작했지만, 적어도 Juno 패키지에는 레벨 1에서 시작되는 일부 플러그인이 있으므로 레벨 1도 사용합니다.

+0

제품에서 시작 수준 사양을 제거하려고 시도했지만 올바르게 작동하지 않는 것 같습니다. - http://stackoverflow.com/a/17532669/796559 –