<?xml version="1.0" encoding="UTF-8"?>
<features 
  name="minion-24.0.0-SNAPSHOT"
  xmlns="http://karaf.apache.org/xmlns/features/v1.4.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.4.0 http://karaf.apache.org/xmlns/features/v1.4.0"
>
    <!-- OpenNMS Features -->
    <repository>mvn:org.opennms.karaf/opennms/24.0.0-SNAPSHOT/xml/features</repository>

    <feature name="minion-core-api" description="OpenNMS :: Distributed :: Core :: API" version="24.0.0-SNAPSHOT">
      <feature>opennms-distributed-core-api</feature>
    </feature>

    <feature name="opennms-dao-minion" description="OpenNMS :: DAO :: Minion" version="24.0.0-SNAPSHOT">
      <feature>minion-core-api</feature>
      <feature>opennms-dao-api</feature>
      <bundle>mvn:org.opennms.features.distributed/org.opennms.features.distributed.dao-distributed/24.0.0-SNAPSHOT</bundle>
    </feature>

    <feature name="opennms-trapd-listener" description="OpenNMS :: Trapd :: Listener" version="24.0.0-SNAPSHOT">
      <feature>minion-core-api</feature>
      <feature>opennms-dao-minion</feature>
      <feature>opennms-trapd</feature>
      <feature>opennms-core-ipc-sink-api</feature>
    </feature>

    <feature name="minion-heartbeat-producer" description="OpenNMS :: Minion :: Heartbeat Producer" version="24.0.0-SNAPSHOT">
      <feature version="18.0">guava</feature>
      <feature>minion-core-api</feature>
      <feature>opennms-core</feature>
      <feature>opennms-core-ipc-sink-api</feature>
      <bundle>mvn:org.opennms.features.minion.heartbeat/org.opennms.features.minion.heartbeat.common/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.minion.heartbeat/org.opennms.features.minion.heartbeat.producer/24.0.0-SNAPSHOT</bundle>
    </feature>

    <feature name="minion-snmp-proxy" description="OpenNMS :: Minion :: SNMP Proxy" version="24.0.0-SNAPSHOT">
      <feature>opennms-core-ipc-rpc-api</feature>
      <feature>opennms-config-api</feature>
      <feature>opennms-model</feature>
      <bundle>mvn:org.opennms.core.snmp/org.opennms.core.snmp.api/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.core.snmp/org.opennms.core.snmp.proxy.rpc-impl/24.0.0-SNAPSHOT</bundle>
    </feature>

    <feature name="minion-icmp-proxy" description="OpenNMS :: Minion :: ICMP Proxy" version="24.0.0-SNAPSHOT">
        <feature>opennms-core-ipc-rpc-api</feature>
        <feature>opennms-model</feature>

        <bundle>mvn:org.opennms/opennms-icmp-api/24.0.0-SNAPSHOT</bundle>
        <bundle>mvn:org.opennms/org.opennms.icmp.proxy.rpc-impl/24.0.0-SNAPSHOT</bundle>
    </feature>

    <feature name="minion-provisiond-detectors" description="Minion :: Provisond :: Detectors" version="24.0.0-SNAPSHOT">
      <feature>opennms-config</feature>
      <feature>opennms-dao-api</feature>
      <feature>opennms-icmp-best</feature>
      <feature>opennms-provisioning-detectors</feature>
      <feature>opennms-core-ipc-rpc-api</feature>
      <bundle>mvn:org.opennms/opennms-detector-registry/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms/opennms-detectorclient-rpc/24.0.0-SNAPSHOT</bundle>
    </feature>

    <feature name="minion-provisiond-requisitions" description="Minion :: Provisond :: Requisitions" version="24.0.0-SNAPSHOT">
      <feature>opennms-core-web</feature>
      <feature>opennms-dao-api</feature>
      <feature>opennms-provisioning</feature>
      <feature>opennms-core-ipc-rpc-api</feature>
      <bundle>mvn:org.opennms/opennms-requisition-service/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms/opennms-requisition-dns/24.0.0-SNAPSHOT</bundle>
    </feature>

    <feature name="minion-shell" description="Minion :: Shell" version="24.0.0-SNAPSHOT">
      <feature>minion-shell-provision</feature>
      <feature>minion-shell-poller</feature>
      <feature>minion-shell-collection</feature>
    </feature>

    <feature name="minion-shell-provision" description="Minion :: Shell :: Provision" version="24.0.0-SNAPSHOT">
      <feature>commons-lang</feature>
      <feature>opennms-core</feature>
      <feature>opennms-model</feature>
      <feature>opennms-provisioning-api</feature>
      <bundle>mvn:org.opennms/opennms-detector-registry/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.minion.shell/org.opennms.features.minion.shell.provision/24.0.0-SNAPSHOT</bundle>
    </feature>
    
    <feature name="minion-shell-poller" description="Minion :: Shell :: Poller" version="24.0.0-SNAPSHOT">
      <feature>minion-poller</feature>
      <bundle>mvn:org.opennms.features.minion.shell/org.opennms.features.minion.shell.poller/24.0.0-SNAPSHOT</bundle>
    </feature>

    <feature name="minion-poller" description="Minion :: Poller" version="24.0.0-SNAPSHOT">
      <feature>opennms-core-ipc-rpc-api</feature>
      <feature>opennms-config-jaxb</feature>
      <bundle>mvn:org.opennms.features.poller/org.opennms.features.poller.api/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.core.snmp/org.opennms.core.snmp.api/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.core.ipc.rpc/org.opennms.core.ipc.rpc.utils/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.poller/org.opennms.features.poller.client-rpc/24.0.0-SNAPSHOT</bundle>
      <feature>opennms-poller-monitors-core</feature>
    </feature>
    
    <feature name="minion-collection" description="Minion :: Collection" version="24.0.0-SNAPSHOT">
      <feature>commons-cli</feature>

      <feature>opennms-config</feature>
      <feature>opennms-config-jaxb</feature>
      <feature>opennms-core-web</feature>
      <!-- System classpath dependency of opennms-vmware -->
      <feature>opennms-provisioning</feature>
      <feature>opennms-vmware</feature>
      <feature>opennms-xml-collector</feature>
      <feature>wmi-integration</feature>
      <feature>wsman-integration</feature>

      <feature>opennms-core-ipc-rpc-api</feature>

      <bundle>mvn:org.opennms.core.jmx/org.opennms.core.jmx.api/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.core.jmx/org.opennms.core.jmx.impl/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.core.ipc.rpc/org.opennms.core.ipc.rpc.utils/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.collection/org.opennms.features.collection.api/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.collection/org.opennms.features.collection.client-rpc/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.collection/org.opennms.features.collection.collectors/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features/org.opennms.features.jdbc-collector/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.protocols/org.opennms.protocols.nsclient/24.0.0-SNAPSHOT</bundle>
    </feature>

    <feature name="minion-shell-collection" description="Minion :: Shell :: Collection" version="24.0.0-SNAPSHOT">
      <feature>minion-collection</feature>
      <bundle>mvn:org.opennms.features.minion.shell/org.opennms.features.minion.shell.collection/24.0.0-SNAPSHOT</bundle>
    </feature>

    <feature name="minion-telemetryd-receivers" description="Minion :: Telemetry :: Receivers" version="24.0.0-SNAPSHOT">
      <!-- Not fully needed, but a convenient way to install netty4 -->
      <feature>camel-netty4</feature>
      <bundle>mvn:com.google.protobuf/protobuf-java/2.6.1</bundle>
      <bundle>mvn:org.mongodb/bson/3.5.0</bundle>
      <bundle>mvn:org.apache.commons/commons-csv/1.5</bundle>
      <bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.api/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry.config/org.opennms.features.telemetry.config.api/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry.config/org.opennms.features.telemetry.config.jaxb/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.common/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.registry/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.listeners/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.common/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry.protocols.netflow/org.opennms.features.telemetry.protocols.netflow.parser/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry.protocols.sflow/org.opennms.features.telemetry.protocols.sflow.parser/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry.distributed/org.opennms.features.telemetry.distributed.common/24.0.0-SNAPSHOT</bundle>
      <bundle>mvn:org.opennms.features.telemetry.distributed/org.opennms.features.telemetry.distributed.minion/24.0.0-SNAPSHOT</bundle>
    </feature>

</features>
