Как исключить пакет из Карафа - PullRequest
0 голосов
/ 02 декабря 2018

В моем проекте есть функция Караф, XML-файл содержит все пакеты OSGi.Теперь это используется как зависимость в файле pom.xml другого проекта maven.

<dependency>
  <groupId>a.b.c</groupId>
  <artifactId>dummyfeature</artifactId>
  <type>xml</type>
  <classifier>features</classifier>
  <version>1.0.0</version>
</dependency>

Теперь для установки вышеуказанной функции используется следующий код.

KarafDistributionOption.features(
                 maven()
                .groupId("a.b.c")
                .artifactId("dummyfeature")
                .version("1.0.0")
                .type("xml")
                .classifier("features"), "dummyfeature")

Можно ли программным способом исключить конкретный пакет OSGi сверху?

1 Ответ

0 голосов
/ 03 декабря 2018

https://issues.apache.org/jira/browse/KARAF-5376 предоставляет способ изменить функции, прочитанные из файла XML.Вы можете:

  • занести в черный список некоторые комплекты
  • занести в черный список некоторые функции
  • переопределить некоторые комплекты (например, изменить версию или даже идентификаторы группы / артефакта)
  • переопределить все функции

См. этот комментарий для обзора механизма.Фрагмента документации пока нет (у меня не было времени это сделать).Но для вашего конкретного случая вы должны добавить etc/org.apache.karaf.features.xml файл с таким содержанием:

<?xml version="1.0" encoding="UTF-8"?>
<!--
    Configuration generated by Karaf Assembly Builder
-->
<featuresProcessing xmlns="http://karaf.apache.org/xmlns/features-processing/v1.0.0">
    <blacklistedBundles>
        <!-- there are several patterns you can use here -->
        <bundle>mvn:groupId/artifactId</bundle>
        <bundle>mvn:groupId/artifactId/1.0</bundle>
        <bundle>mvn:groupId/artifactId/[1,2)</bundle>
    </blacklistedBundles>
</featuresProcessing>
...