0
У меня есть 2 хранилища хранилища OSGi. Я хочу использовать API для проверки наличия проблем в связке при наличии 2 obr. Как я могу вызвать api для этого? Кажется, я могу использовать следующий код с Felix API для этого. Но как я могу получить объект RepositoryAdmin?Как найти зависимость пакета от пакета OSGi
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();
Да, он установлен в Eclipse. Я могу получить RepositoryAdmin со следующим кодом ServiceTracker m_tracker = new ServiceTracker (ctx, \t \t \t \t RepositoryAdmin.class.getName(), null); \t \t m_tracker.open(); // \t \t для. (Bundle B: ctx.getBundles()) {// \t \t \t, если (b.getSymbolicName() содержит ( // \t \t \t \t \t "org.apache.felix.bundlerepository")) { // \t \t \t \t b.start(); // \t \t \t} // \t \t} \t \t RepositoryAdmin repoAdmin = (RepositoryAdmin) m_tracker.getService(); –
Да, он установлен в Eclipse. Я могу получить RepositoryAdmin. Но когда я пытаюсь разрешить пакет, возвращаемое значение ложно. И во время решения первое неудовлетворенное требование - «bundle: (& (symbolicname = system.bundle))». Как мне настроить system.bundle? –