有在Eclipse维基文章如何通过添加一个静态的conf文件到您的产品配置RCP应用程序的用户的P2默认库:配置在P2更新存储库编程
Equinox/p2/Adding Self-Update to an RCP Application - Configuring the user's default repositories
我想当用户更改一些配置细节时,在Java类中以编程方式执行相同的操作。我无法找到适当的p2 API文档。
有在Eclipse维基文章如何通过添加一个静态的conf文件到您的产品配置RCP应用程序的用户的P2默认库:配置在P2更新存储库编程
Equinox/p2/Adding Self-Update to an RCP Application - Configuring the user's default repositories
我想当用户更改一些配置细节时,在Java类中以编程方式执行相同的操作。我无法找到适当的p2 API文档。
我找到了解决方案。这很容易 - 遗憾的是没有文档...
// from bundle org.eclipse.equinox.p2.console
import org.eclipse.equinox.internal.p2.console.ProvisioningHelper;
URI repoUri = new URI(UPDATE_SITE_URL);
try {
ProvisioningHelper.addMetadataRepository(repoUri);
} catch(Exception e) {
LOG.warn("Can not add update repository: " + repoUri);
}
try {
ProvisioningHelper.addArtifactRepository(repoUri);
} catch(Exception e) {
LOG.warn("Can not add update repository: " + repoUri);
}
方法是内部的。不方便:( – 2013-04-04 11:31:08
使用该解决方案适用于Eclipse 3.7基础的应用程序:
final ProvisioningUI ui = ProvUIActivator.getDefault().getProvisioningUI();
IArtifactRepositoryManager artifactManager = ProvUI.getArtifactRepositoryManager(ui.getSession());
artifactManager.addRepository(new URI(UPDATE_SITE_URL);
IMetadataRepositoryManager metadataManager = ProvUI.getMetadataRepositoryManager(ui.getSession());
metadataManager.addRepository(new URI(UPDATE_SITE_URL);
对于ProvUI和ProvisioningUI你必须输入束组织。 eclipse.equinox.p2.ui和org.eclipse.equinox.p2.operations(等等)。
Thnaks,这是非常有帮助的。 – 2012-02-14 14:23:40
这是高在谷歌查询此问题,而且还是不要做的好方式,它出版:
如果任何人发现通过谷歌这个网页像我一样,我已经解决了这个问题。您可以使用org.eclipse.equinox.internal.p2.ui.model.ElementUtils.updateRepositoryUsingElements以编程方式设置存储库。可以找到完整的代码here.
此外,您可以使用ElementUtils添加多个存储库,还可以对它们进行排序。
MetadataRepositoryElement[] element = new MetadataRepositoryElement[links.length];
for (int i = 0; i < links.length; i++) {
element[i] = new MetadataRepositoryElement(null, new URI(links[i]), true);
element[i].setNickname("Link-"+i);
}
ElementUtils.updateRepositoryUsingElements(element, null);
这些链接将按字母顺序排列。
您是否检查过最新的P2 API演示文稿? (不知道它是否有助于您的情况):http://www.slideshare.net/PascalRapicault/discovering-the-p2-api – VonC 2010-07-15 10:34:53
本演示文稿中有3行代码 - 没有更多的API文档。 ProvisioningHelper类的 – 2010-07-15 10:50:21