Как изменить область команд по умолчанию в OSGi с помощью GoGo Shell и применить настраиваемые области для пользовательских команд? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть среда OSGi, которая работает в день равноденствия.Для выполнения пользовательских команд я использую оболочку gogo (org.apache.felix.gogo.command, org.apache.felix.gogo.shell).

По умолчанию для области команд установлено равноденствие, поэтому команда help ничего не печатает.Если я использую felix:help, он печатает все доступные команды.

Как переключить область команд по умолчанию на felix?Есть ли способ дать системе сценарий запуска, который устанавливает это?

Кроме того, как я могу заставить пользователя использовать область, которую я ввел в свойстве компонента, как показано здесь:

property = {
        "osgi.command.scope=myScope",
        "osgi.command.function=myFunc"
    }

=> Я хочу, чтобы пользователь записал myScope:myFunc в оболочку.Это возможно в любом случае?

Спасибо за вашу помощь: -)

1 Ответ

0 голосов
/ 04 марта 2019

Вы можете создавать свои собственные команды, поскольку Gogo имеет замыкания .

Welcome to Apache Felix Gogo

g! 
g! h = { felix:help }
felix:help
g! h
felix:bundlelevel
felix:cd
felix:frameworklevel 
...

g! $h
felix:help

Вы можете поместить скрипт запуска в ./etc/gosh_profile, где . - текущий рабочий каталог.

Переменная SCOPE устанавливает разделенный двоеточиями путь для поиска в областях.

g! SCOPE='felix:*'

Гого гораздо сильнее, чем думает почти каждый, кого я знаю.Gogo может в принципе вызывать любую функцию Java с синтаксисом типа shell.Вы можете увидеть некоторые примеры здесь: https://v2archive.enroute.osgi.org/appnotes/gogo.html

...