2010-08-09 2 views
2

Eclipse RCP 응용 프로그램을 빌드하려고하는데이 과정에서 자동으로 업데이트하도록 응용 프로그램을 설정하려고합니다. 환경 설정 -> 설치/업데이트 -> 자동 업데이트 페이지에서 자동으로 올바른 환경 설정을 지정하려고합니다.Eclipse RCP의 plugin_customization.ini를 사용하여 org.eclipse.equinox.p2.ui.sdk.scheduler/enabled를 true로 설정하려면 어떻게합니까?

.product (예 : org.eclipse.equinox.p2.ui.sdk.scheduler/download = true)의 plugin_customization.ini 파일에서 원하는 모든 환경 설정을 설정했으며 거의 ​​모든 그 (것)들은 일한다. 그러나 하나의 환경 설정은 자동으로 설정되지 않는 것처럼 보입니다 : 이것은 org.eclipse.equinox.p2.ui.sdk.scheduler/enabled 환경 설정입니다 (AutomaticUpdatesPreferencePage의 "자동으로 새 업데이트 찾기 및 알림"확인란에 의해 참조되는 환경 설정). . 소스 코드를 파헤쳐 보면 왜 제대로 설정되지 않았는지 이해하지만, 어떻게해야하는지 모르겠습니다.

다음은 본질적으로 작동하지 않는 이유입니다. AutomaticUpdatePlugin의 마지막 줄에 이 플러그인의 시작 방법입니다으로 .start 방법, 그것은 환경 설정의이 PLUGIN_CUSTOMIZATION.INI에서 읽기 전에 이런 일이 발생,

PreferenceInitializer.migratePreferences(); 

를 호출합니다. migratePreferences는이 환경 설정을 마이그레이션하려고합니다, 그것은 3.4와 3.3의 다른 장소에 있었다. AutomaticUpdatePlugin에는이 마이그레이션을 수행했는지 여부를 확인하는 숨겨진 "마이그레이션 된 34Prefs"환경 설정이 있습니다.이 마이그레이션은 활성화 된 환경 설정의 값을 false로 설정하므로 어떻게 든이 마이그레이션을 수행하지 못하게 할 수 있습니다. 3.5에서 빌드 한 것처럼 3.3 또는 3.4에서 마이그레이션하지 않아도됩니다.) 모든 것이 정상적으로 작동합니다. 기본값은 plugin_customization.ini를 통해 올바르게 설정되지만 실제 값은 여전히 ​​false입니다 (예 : RCP를 처음 열었을 때 환경 설정 페이지에서 기본값 복원을 누르면 확인란이 선택되지 않음에서 선택됨).

이 모든 것이 시작 메소드에서 발생하기 때문에 plugin_customization에서 migrated34Prefs의 값을 true로 설정할 수 없습니다. 마이그레이션이 이미 발생한 후에야 읽을 수 있기 때문입니다. 문제가 무엇인지는 알지만 기본적으로 활성화되도록 마지막 단계를 볼 수 없습니다. 내가 설정할 수있는 다른 것, 또는 내가 찾을 수 없었던 다른 해결 방법이 있습니까?

답변

2
이에 대한 해결 방법은 환경 설정 초기화 예를 들면, 자신의 플러그인에서 직접 AutomaticUpdatePlugin의 기본 설정에 액세스하는 것입니다

:

Preferences node = new DefaultScope().getNode(AutomaticUpdatePlugin.PLUGIN_ID); 
node.putBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED, true); 
관련 문제