2013-03-24 2 views
0

RCP 응용 프로그램을 개발했으며 p2 업데이트 기능을 제공하고 있습니다.P2.inf : 위치 기반 업데이트 사이트 참조

내 p2.inf에서 나는 업데이트 사이트에 대한 URL을 제공하고 있습니다. 사용자가 사이트를 추가하지 못하게하여 사이트를 추가 할 수있는 옵션을 비활성화했습니다. 사용자 위치 방갈로르이다

instructions.configure=\ 
    addRepository(type:0,location:http${#58}//blrupdates.com/Updates);\ 
    addRepository(type:1,location:http${#58}//blrupdates.com/Updates); 

경우 사용자 위치가 chnupdates.com에서 업데이트를 찾아야한다 첸나이 다음 RCP 응용 프로그램의 경우, RCP 응용 프로그램, brlupdates.com로 이동해야합니다 같은 내 p2.inf 보인다.

p2.inf에 다른 저장소 위치를 추가하는 방법은 무엇입니까?

-Priyank

답변

1

당신은 프로그래밍 방식으로 저장소를 추가해야합니다. 다음 솔루션은 here에서 가져온 것입니다. 또 다른 해결책은 리디렉션을 사용하는 것입니다. 하나의 p2 저장소를 정의한 다음 사용자를 위치 기반 저장소로 리디렉션합니다.

import org.eclipse.equinox.internal.p2.ui.model.MetadataRepositoryElement; 
import org.eclipse.equinox.internal.p2.ui.model.ElementUtils; 

@SuppressWarnings("restriction") 
public class P2Util { 
    private static String UPDATE_SITE = "http://www.example.com/update_site"; 

    public static void setRepositories() throws InvocationTargetException { 
    try { 
     final MetadataRepositoryElement element = new MetadataRepositoryElement(null, new URI(UPDATE_SITE), true); 
     ElementUtils.updateRepositoryUsingElements(new MetadataRepositoryElement[] {element}, null); 
    } catch (URISyntaxException e) { 
     e.printStackTrace(); 
     throw new InvocationTargetException(e); 
    } 
    } 
}