2013-04-02 5 views
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(); 

ответ

0

org.apache.felix.bundlerepository-x.y.z.jar должен быть установлен и запущен в ваших рамках OSGi. Вы можете получить услугу RepositoryAdmin из экземпляра BundleContext.

+0

Да, он установлен в 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(); –

+0

Да, он установлен в Eclipse. Я могу получить RepositoryAdmin. Но когда я пытаюсь разрешить пакет, возвращаемое значение ложно. И во время решения первое неудовлетворенное требование - «bundle: (& (symbolicname = system.bundle))». Как мне настроить system.bundle? –

 Смежные вопросы

  • Нет связанных вопросов^_^