# Valid for Karaf 4.2.9. If updating Karaf version in ONOS, make sure to
# copy-paste here the content of apache-karaf-*/etc/startup.properties in, and
# update the Kafka and log4j2 additions at the end if needed

# Standard startup.properties file
# Bundles to be started on startup, with startlevel
mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.2.9 = 1
mvn\:org.ops4j.pax.url/pax-url-aether/2.6.2 = 5
mvn\:org.apache.karaf.services/org.apache.karaf.services.eventadmin/4.2.9 = 5
mvn\:org.apache.felix/org.apache.felix.metatype/1.2.2 = 5
mvn\:org.ops4j.pax.logging/pax-logging-api/1.11.6 = 8
mvn\:org.ops4j.pax.logging/pax-logging-log4j2/1.11.6 = 8
mvn\:org.fusesource.jansi/jansi/1.18 = 8
mvn\:org.apache.felix/org.apache.felix.coordinator/1.0.2 = 9
mvn\:org.apache.felix/org.apache.felix.configadmin/1.9.16 = 10
mvn\:org.apache.felix/org.apache.felix.fileinstall/3.6.6 = 11
mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.2.9 = 15


# Added part to enable Kafka log4j2 appender
# N.B.: kafka-clients should have startlevel lower than onos-tools-package-log4j2-extra
mvn\:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/1.1.1_1 = 6
# N.B.: onos-tools-package-log4j2-extra should have lower startlevel than pax-logging-*
mvn\:org.onosproject/onos-log4j2-extra/$ONOS_VERSION = 7
