0

RCP アプリケーションを開発し、p2 更新機能を提供しています。

私の p2.inf では、更新サイトの URL を提供しています。ユーザーにサイトを追加してほしくないので、サイトを追加するオプションを無効にしました。私の p2.inf は次のようになります。

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

ユーザーの場所がバンガロールの場合、RCP アプリケーションは brlupdates.com に移動する必要があります。ユーザーの場所がチェンナイの場合、RCP アプリケーションは chnupdates.com で更新を探す必要があります。

p2.infに別のリポジトリの場所を追加する方法は?

-プリヤンク

4

1 に答える 1

2

プログラムでリポジトリを追加する必要があります。次の解決策はhereから取得されます。うまくいくかどうかわからない別の解決策は、リダイレクトを使用することです。1 つの 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);
    }
  }
}
于 2013-03-25T13:43:08.503 に答える