Eclipse P2:验证存储库位置

时间:2013-04-04 09:52:27

标签: eclipse-rcp p2

我正在开发RCP应用程序并为用户提供更新功能。

我正在将String urls转换为java.net.URI并使用以下代码验证它们:

  1. 将字符串网址转换为URI
  2. 验证URI
  3. 加载存储库以确保存在有效的artifacts.xml或artifacts.jar,并且可以使用存储库进行更新。

    private String [] repositories = {“http://myrepo.com/TEST_REPO/”,         “http://myrepo.com/TEST_REPO1/”};

    @覆盖 public Object execute(ExecutionEvent event)抛出ExecutionException {     列表uris = new ArrayList();     URI uri = null;     for(String str:this.repositories){         尝试{             uri = new URI(str);     if(uri!= null){         uris.add(URI);     }         } catch(URISyntaxException e){     e.printStackTrace();     } }

    最终ProvisioningUI ui = ProvUIActivator.getDefault()         .getProvisioningUI(); for(URI u:uris){     IStatus status = ui.getRepositoryTracker()         .validateRepositoryLocation(ui.getSession(),uri,true,                 空);

    if (!status.isOK()) {
    MessageDialog.open(MessageDialog.ERROR, Display.getDefault()
            .getActiveShell(), "P2 Repo Status", status
            .getMessage(), 0);
    }
    

    }

    for(URI repo:uris){     尝试{     IArtifactRepository存储库= ProvUI             .getArtifactRepositoryManager(ui.getSession())             .loadRepository(repo,null);

    if (repository != null) {
            System.out.println(repository.getName());
    }
    } catch (ProvisionException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    

    } catch(Exception ex){     ex.printStackTrace(); } }     return null; }

  4. 这里第3点,加载存储库,有没有更好的方法来验证存储库是否有效并可用于更新。当前方法的问题是,如果存储库无效,则需要花费大量时间来确定。应用程序卡住了。请指导我。

0 个答案:

没有答案