featuresBoot не работает в Fuse 7 (Karaf 4.2)

Я переношу наш код с Fuse 6 на Fuse 7 (версии для разработчиков).

Мы запускаем много экземпляров, поэтому мне нужно автоматизировать загрузку функций, как в Fuse 6, и это не работает.

Я добавляю следующее в /etc/org.apache.karaf.features.cfg

featuresBoot = \
    ...
    transaction-manager-narayana/5.7.2.Final, \ 
    camel-hl7/2.21.0.fuse-000077-redhat-1,\
    camel-mina2/2.21.0.fuse-000077-redhat-1,\
    camel-beanio/2.21.0.fuse-000077-redhat-1

и ожидал, что он установит camel-hl7, camel-mina2 и camel-beanio. Но когда я проверяю клиент, он показывает «Не установлен».

Они устанавливаются, если я делаю это вручную с помощью feature:install

Что мне еще нужно делать? Помоги мне, Оби-Ван.


person djb    schedule 13.08.2018    source источник
comment
У меня сейчас проблема с предохранителем 6.3, и мне бы очень хотелось узнать, как вы ее решили ...   -  person Hans.Loven.work    schedule 18.07.2019
comment
Привет, Ганс! В итоге я запустил bash-скрипт, чтобы проверить связь с Fuse, пока он не заработал, а затем вызвать клиента с помощью команд «features: install». Если в понедельник тебе все еще не повезло, я могу опубликовать сценарий.   -  person djb    schedule 19.07.2019
comment
Ага. Спасибо за ваш ответ. Я разделяю те же чувства, что и ваши ниже, то есть, что я, возможно, совершил какую-то странную / глупую ошибку в этой новой установке. Тем не менее, мне повезло - у меня есть локальная среда, в которой я с тех пор подтвердил, что моя старая книга с возможностью использования fuse-6.3 создает рабочий * fuse-6.3. Я нахожусь в процессе удаления дельт между двумя плейбуками и надеюсь свести это к единственной ошибке где-нибудь в моем новом плейбуке. Когда я это сделаю, я опубликую то, что найду, в качестве ответа на этот вопрос.   -  person Hans.Loven.work    schedule 19.07.2019


Ответы (2)


Тайна раскрыта. Ох, это действительно глупо - хотя, я бы сказал, не с нашей стороны.

Ошибка - это конечный пробел, следующий за обратной косой чертой продолжения строки в строке над той, где находятся ваши «отсутствующие» функции. Я нашел это в моем org.apache.karaf.features.cfg и проверил его как виновника. Я также вижу это в том, что предположительно является копипастом вашего фрагмента.

    transaction-manager-narayana/5.7.2.Final, \ 
                                               ^
                                               |
                                               here

Я чувствую, что это серьезная недоработка в кодексе Карафа. Предположительно, у службы config-admin есть некоторые правила форматирования - так что, вероятно, это место, куда можно обратиться. Если бы он хотя бы зарегистрировал ошибку, это было бы хорошо.

person Hans.Loven.work    schedule 19.07.2019
comment
Молодец :) Неприятно. В следующий раз, когда я исправлю свой код, я переделаю этот бит. - person djb; 24.07.2019

Свойство featuresBoot Red Hat Fuse 7 (и Karaf 4 и даже ранее) используется только один раз - при первом запуске сервиса функций Karaf. Когда etc/org.apache.karaf.features.cfg файл читается и обрабатывается, сервис объектов устанавливает свой флаг bootDone на true.

Если вы хотите, чтобы функция обрабатывалась после запуска Fuse / Karaf и добавляла новые функции позже, вам необходимо удалить каталог data/cache.

Однако обычно это не так. Если вы запустите Fuse / Karaf, вы можете просто установить дополнительные функции, которые захотите, без добавления в etc/org.apache.karaf.features.cfg. Просто позвоните feature:install.

Если вам нужен специальный дистрибутив Karaf с необходимыми функциями, ознакомьтесь с разделом руководства Karaf о custom дистрибутивы.

Для Red Hat Fuse 7 есть специальное руководство, в котором показано, как это сделать - проверьте FUSE_HOME/quickstarts/custom.

person Grzegorz Grzybek    schedule 13.08.2018
comment
Спасибо, моя проблема в том, что мои дополнения к featuresBoot не устанавливаются. Я добавляю с функцией feature: install в настоящее время, чтобы двигаться дальше, но мне нужно, чтобы в конечном итоге featuresBoot заработали, так как у нас есть 12 предохранителей, поэтому мне нужно автоматизировать его. Кастомный Караф пригодится, спасибо, прочитаю. Но в идеале featuresBoot должны работать так, как рекламируется. etc / org.apache.karaf.features.cfg имеет camel-hl7, но camel-hl7 вообще не отображается в журналах и удаляется при загрузке клиента. Наверное, что-то очевидное, но пока не могу разобраться. - person djb; 15.08.2018
comment
Если бы вы могли предоставить некоторые шаги для воспроизведения (например, версию / архив, который вы начинаете с + команды, которые вы вызываете / файлы, которые вы редактируете), я мог бы помочь. - person Grzegorz Grzybek; 16.08.2018
comment
Спасибо за предложение. Вот упрощенный пример: Загрузите Fuse 7.0.0 (установщик Karaf, 175 МБ). Отредактируйте файл etc / org.apache.karaf.features.cfg. Добавьте camel-hl7 / 2.21.0.fuse-000077-redhat-1 в конец списка featuresBoot после transaction-manager-narayana. Сохранить файл. Запустите fuse.bat ... попробуйте 'list' или 'features: list' или проверьте журналы. Нет "hl7", camel-hl7 все еще не установлен. - person djb; 16.08.2018
comment
Любая идея? featuresBoot не работает в Linux или Windows для меня. - person djb; 27.08.2018
comment
работает для меня ... etc/org.apache.karaf.features.cfg тот, который вы показывали раньше? - person Grzegorz Grzybek; 28.08.2018
comment
Ага. Довольно странно. Я буквально просто DL с веб-сайта, изменяю этот файл, сохраняю и запускаю fuse, а функция не устанавливается. - person djb; 29.08.2018
comment
Я снова проверил ваши шаги - я загрузил дистрибутив с developers.redhat.com/products/fuse / download, разархивирован, еще не запускался bin/fuse, добавил 3 записи в etc/org.apache.karaf.features.cfg, начал использовать bin/fuse, и я увидел как установленные пакеты, так и функции ... - person Grzegorz Grzybek; 03.09.2018
comment
Хорошо, спасибо за попытку. Начну снова с нуля. Может я сделал что-то глупое. - person djb; 03.09.2018