2011-05-09 6 views
5

Eclipse RCP를 사용하고 있습니다.하지만 UI를 완벽하게 제어 할 수 있기 때문에 (주로 모든 기고가 제거되고 처음부터 환경 설정이 적용되었습니다) 복잡성과 수요를 수용 할 수 없기 때문에 주로 사용합니다. 포함 된 UPDATE MANAGER (또한, PLUGINS가 아닌 기능을 사용하고 응용 프로그램 플러그인을 추출해야합니다 - 비록 내가이 마지막 호를 arround받을 수 있음).간단한 "Java 용 업데이트 확인"라이브러리

어쨌든, 첫 번째 접근에서 나는 단지 을 확인하고 싶습니다. 사용 가능한 새로운 버전의 응용 프로그램이 있는지 확인하십시오.

논리적 인 방법은 서버에서 파일 (xml?)을 확인하는 것입니다.

좋은 라이브러리와 예제가 있습니까?

감사합니다.

답변

1

Java Web Start을 사용하여 앱을 실행하십시오. 자동 업데이트는 JWS의 주요 기능 중 하나입니다.

+0

감사합니다. 그러나 질문이 ... 나는 설치 프로그램을 사용합니다. – marcolopes

3

Eclipse는 이제 이전 업데이트 관리자보다 훨씬 유연한 시스템 인 p2를 지원합니다. 새로운 소프트웨어를 설치하고 기존 소프트웨어의 업데이트를 확인하는 데 사용할 수 있습니다.

새로운 업데이트를 설치> 도움말을 포함하는 전체 프로세스가 여기에 설명되어 있지만 당신은 당신이 사용하는 경우 이클립스 http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application

모든 업데이트가 관리자에게 쉽게, 아니 UI와 P2의 자기 갱신 부분을 포함 할 수

기능이 있지만이 기능은 RCP 앱 플러그인을 항아리가 아닌 디렉토리로 확장하도록 표시 할 수있는 곳입니다. 자동으로 실행됩니다.

모든 앱에 자체 업데이트를 추가하는 것은 간단합니다. 한 번에 모든 항아리를 업데이트하거나 하나만 선택합니까? 어느 항아리가 동시에 업데이트하는 것이 의미가 있습니까? OSGi 기반의 Eclipse를 사용하면 어떻게 업데이트하여 시스템을 작동 상태로 유지할 수 있습니까? p2는 이러한 활용 사례를 관리하는 데 도움이되도록 제작되었습니다.가 이

간단한 자기 갱신은 UI 코드의 포함하지 않고 P2 API를 사용하여 추가 할 수 있습니다

:

public class SelfUpdateOperation { 
    public static void update() { 
     BundleContext context = FrameworkUtil.getBundle(
       SelfUpdateOperation.class).getBundleContext(); 
     ServiceReference<?> reference = context 
       .getServiceReference(IProvisioningAgent.SERVICE_NAME); 
     if (reference == null) 
      return; 
     Object obj = context.getService(reference); 
     IProvisioningAgent agent = (IProvisioningAgent) obj; 
     ProvisioningSession session = new ProvisioningSession(agent); 
     UpdateOperation update = new UpdateOperation(session); 
     IStatus result = update.resolveModal(new NullProgressMonitor()); 
     if (result.isOK()) { 
      update.getProvisioningJob(new NullProgressMonitor()).schedule(); 
     } else { 
      // can't update for some reason 
     } 
     context.ungetService(reference); 
    } 
} 

이 약간의 작업을 필요로를 (아마도 제품이있다 http://wiki.eclipse.org/P2

편집 참조 업데이트 사이트 포함). 기본 API입니다.

+0

OP를 사용하고 있지 않기 때문에 p2에 대해 언급하고 싶다고 생각했지만 OP로 전환하지 않았으며 전환 할 의사가 없을 것 같습니다. – Sandman

+0

:-) 그것이 말하자면, 만약 누군가가 업데이트 기능을 원한다면, 뭔가를 고르도록해야합니다. JWS는 업데이트 된 상태로 설계되었으며 (필자가 이미 가지고있는 오버랩을 이해함) p2는 Eclipse/OSGi 애플리케이션을 업데이트하도록 특별히 설계되었습니다. –

+0

폴, 노력해 주셔서 감사 합니다만, p2를 사용하는 것은 현재 실행 가능한 경로가 아닙니다. 나는 모든 UI 기여도를 원하지 않는다. (RCP의 모든 것들이 그렇듯이 내가 찾고있는 단순함 때문에 너무 지저분하다.) 그래서 그것은 매우 시간 소모적이다. – marcolopes