Как мне реализовать консоль OSGi в Bundle? - PullRequest
2 голосов
/ 22 февраля 2012

Я новичок в OSGi и пытаюсь внедрить консоль osgi в пакет.

Мне нужно управлять другими пакетами / сервисами из моего пакета.Поэтому мне нужно иметь возможность использовать команды «ss», «install» и «unistall», по крайней мере, для других уже установленных служб или нет.Все эти команды должны управляться без участия человека, поэтому я должен внедрить это в свое приложение.Эта программа будет установлена ​​на uPC без постоянного мониторинга.

Я нашел способ реализовать консоль OSGi в комплекте, но не нашел ничего подходящего.

Я используюOSGi 3.7.1 и пытается использовать Equinox.

Ответы [ 4 ]

1 голос
/ 25 февраля 2012

вы можете проверить класс org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider и класс org.eclipse.core.runtime.internal.adaptor.EclipseCommandProvider, вы увидите реализацию команды.и каждая команда может получить доступ к службам с помощью фильтра "(classobject = org.eclipse.osgi.framework.console.CommandProvider)".

1 голос
/ 22 февраля 2012

В дополнение к тому, что сказал Том, эта ссылка может пригодиться: http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.equinox/framework/bundles/org.eclipse.osgi/console/src/org/eclipse/osgi/framework/internal/core/FrameworkCommandProvider.java?view=markup&root=RT_Project.

Я помню, что мне потребовалось много времени, чтобы найти этот класс в прошлый раз, когда мне нужно было его изучить. Это может быть не самая новая версия (я не проверял это), но этого должно быть достаточно, чтобы дать вам возможность начать. Кстати, путь к хранилищу CVS: "/ cvsroot / rt" на "dev.eclipse.org", модуль "org.eclipse.equinox / framework / bundles / org.eclipse.osgi".

Извините, что не добавил это в качестве комментария к ответу Томса, но у меня нет прав для этого, кажется.

1 голос
/ 22 февраля 2012

Взгляните на класс org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider в комплекте org.eclipse.osgi, чтобы увидеть, как реализованы команды

0 голосов
/ 23 февраля 2012

Используйте OSGi Framework API из пакета org.osgi.framework. Это API, который сама консоль вызывает для реализации этих команд.

...