0

我有 2 个 OSGi 捆绑存储库。如果提供了 2 obr,我想使用 API 检查捆绑包是否有任何依赖问题。我怎样才能调用 api 来做到这一点?看来我可以使用下面的代码和 Felix API 来做到这一点。但是我怎样才能得到 RepositoryAdmin 对象呢?

RepositoryAdmin repoAdmin = ...
repoAdmin.addRepository(new File("/home/chandler/ws/reliability/testParent/test.eba/target/localobr/repository.xml").toURI().toURL());
repoAdmin.addRepository(new File("/home/chandler/geronimo3/var/obr.xml").toURI().toURL());
List<Repository> repos = new ArrayList<Repository>();
for(Repository repo : repoAdmin.listRepositories()) {
repos.add(repo);
}       
repos.add(repoAdmin.getSystemRepository());
repos.add(getLocalRepository(repoAdmin));
Resolver resolver = repoAdmin.resolver(repos.toArray(new Repository[0]));
Resource resources[] = repoAdmin.discoverResources("(&(presentationname=*)(symbolicname=com.chandler.app.osgi.test))");
resolver.add(resources[0]);
boolean resolved = resolver.resolve();
4

1 回答 1

0

org.apache.felix.bundlerepository-xyzjar 应该在您的 OSGi 框架中安装并启动。您可以从 BundleContext 实例获取 RepositoryAdmin 服务。

于 2013-04-02T12:35:54.207 回答