<?xml version="1.0" encoding="UTF-8"?>
<!--

	Copyright (c) 2010-2024 Contributors to the openHAB project

	See the NOTICE file(s) distributed with this work for additional
	information.

	This program and the accompanying materials are made available under the
	terms of the Eclipse Public License 2.0 which is available at
	http://www.eclipse.org/legal/epl-2.0

	SPDX-License-Identifier: EPL-2.0

-->
<features name="${project.artifactId}-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">

	<feature name="openhab.tp-base" description="openHAB Core Target Platform Base" version="${project.version}">
		<capability>openhab.tp;feature=base;version=1.0.0</capability>

		<feature>scr</feature>
		<feature>eventadmin</feature>
		<feature>log</feature>
		<feature>pax-web-jetty-extras</feature>
		<!-- Apache Commons -->
		<bundle dependency="true">mvn:org.apache.commons/commons-lang3/3.14.0</bundle>
		<!-- Measurement -->
		<bundle dependency="true">mvn:jakarta.annotation/jakarta.annotation-api/2.0.0</bundle>
		<bundle dependency="true">mvn:jakarta.inject/jakarta.inject-api/1.0.5</bundle>
		<bundle dependency="true">mvn:javax.measure/unit-api/2.2</bundle>
		<!-- The si.uom:si-units manifest has no Export-Package entry. As workaround this OSGi-ify bundle is used. -->
		<bundle dependency="true">mvn:org.openhab.osgiify/si.uom.si-units/2.1</bundle>
		<bundle dependency="true">mvn:si.uom/si-quantity/2.1</bundle>
		<bundle dependency="true">mvn:tech.units/indriya/2.2</bundle>
		<bundle dependency="true">mvn:tech.uom.lib/uom-lib-common/2.2</bundle>
		<bundle dependency="true">mvn:org.apiguardian/apiguardian-api/1.1.2</bundle>
		<bundle dependency="true">mvn:org.osgi/org.osgi.service.component.annotations/1.5.1</bundle>

		<!-- TODO: Unbundled libraries -->
		<bundle dependency="true">mvn:com.thoughtworks.xstream/xstream/1.4.21</bundle>
	</feature>

	<feature name="openhab.tp-coap" description="Californium CoAP library" version="${project.version}">
		<capability>openhab.tp;feature=coap;version=2.7.4</capability>
		<bundle>mvn:org.eclipse.californium/californium-osgi/2.7.4</bundle>
		<bundle>mvn:org.eclipse.californium/californium-core/2.7.4</bundle>
		<bundle>mvn:org.eclipse.californium/element-connector/2.7.4</bundle>
		<bundle>mvn:org.eclipse.californium/scandium/2.7.4</bundle>
		<bundle>mvn:org.eclipse.orbit.bundles/net.i2p.crypto.eddsa/0.3.0.v20220506-1020</bundle>
	</feature>

	<feature name="openhab.tp-commons-net" description="The Apache Commons Net library" version="${project.version}">
		<capability>openhab.tp;feature=commons-net;version=3.9.0</capability>
		<bundle dependency="true">mvn:commons-net/commons-net/3.9.0</bundle>
	</feature>

	<feature name="openhab.tp-gson" description="Gson" version="${project.version}">
		<capability>openhab.tp;feature=gson;version=2.10.1</capability>
		<bundle>mvn:org.eclipse.orbit.bundles/com.google.gson/2.10.1.v20230109-0753</bundle>
	</feature>

	<feature name="openhab.tp-hivemqclient" description="MQTT Client" version="${project.version}">
		<capability>openhab.tp;feature=hivemqclient;version=1.3.3</capability>
		<feature dependency="true">openhab.tp-netty</feature>
		<bundle dependency="true">mvn:org.jctools/jctools-core/2.1.2</bundle>
		<bundle dependency="true">mvn:io.reactivex.rxjava2/rxjava/2.2.21</bundle>
		<bundle dependency="true">mvn:org.reactivestreams/reactive-streams/1.0.4</bundle>
		<bundle dependency="true">mvn:org.openhab.osgiify/com.google.dagger/2.27</bundle>
		<bundle dependency="true">mvn:jakarta.inject/jakarta.inject-api/1.0.5</bundle>
		<bundle>mvn:com.hivemq/hivemq-mqtt-client/1.3.3</bundle>
	</feature>

	<feature name="openhab.tp-httpclient" version="${project.version}">
		<capability>openhab.tp;feature=httpclient;version=${jetty.version}</capability>
		<feature dependency="true">pax-web-jetty-extras</feature>
		<feature dependency="true">pax-web-jetty-http2</feature>
		<feature dependency="true">pax-web-jetty-http2-extras</feature>
		<feature dependency="true">pax-web-jetty-http2-jdk9</feature>
		<feature dependency="true">pax-web-jetty-websockets</feature>
	</feature>

	<feature name="openhab.tp-jackson" description="FasterXML Jackson bundles" version="${project.version}">
		<capability>openhab.tp;feature=jackson;version=2.17.1</capability>
		<bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/2.17.1</bundle>
		<bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/2.17.1</bundle>
		<bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/2.17.1</bundle>
		<bundle dependency="true">mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/2.17.1</bundle>
		<bundle dependency="true">mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-xml/2.17.1</bundle>
		<bundle dependency="true">mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.17.1</bundle>
		<bundle dependency="true">mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.17.1</bundle>
		<bundle dependency="true">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/2.17.1</bundle>
		<bundle dependency="true">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/2.17.1</bundle>
		<bundle dependency="true">mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.17.1</bundle>
		<bundle dependency="true">mvn:org.codehaus.woodstox/stax2-api/4.2.2</bundle>
		<bundle dependency="true">mvn:org.yaml/snakeyaml/2.2</bundle>
	</feature>

	<feature name="openhab.tp-jax-rs-whiteboard" description="Aries JAX-RS Whiteboard" version="${project.version}">
		<capability>openhab.tp;feature=jax-rs-whiteboard;version=2.0.2</capability>
		<feature dependency="true">spifly</feature>
		<feature dependency="true">http-whiteboard</feature>
		<feature dependency="true">openhab.tp-cxf</feature>
		<feature dependency="true">openhab.tp-jaxb</feature>
		<bundle dependency="true">mvn:org.osgi/org.osgi.util.function/1.2.0</bundle>
		<bundle dependency="true">mvn:org.osgi/org.osgi.util.promise/1.3.0</bundle>
		<bundle dependency="true">mvn:org.osgi/org.osgi.service.jaxrs/1.0.1</bundle>
		<bundle>mvn:org.apache.aries.component-dsl/org.apache.aries.component-dsl.component-dsl/1.2.2</bundle>
		<bundle>mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.whiteboard/2.0.2</bundle>
	</feature>

	<feature name="openhab.tp-jna" description="Java Native Access (JNA)" version="${project.version}">
		<capability>openhab.tp;feature=jna;version=${jna.version}</capability>
		<bundle dependency="true">mvn:net.java.dev.jna/jna/${jna.version}</bundle>
		<bundle dependency="true">mvn:net.java.dev.jna/jna-platform/${jna.version}</bundle>
	</feature>

	<feature name="openhab.tp-cxf" description="Apache CXF" version="${project.version}">
		<capability>openhab.tp;feature=cxf;version=3.6.2</capability>
		<feature dependency="true">openhab.tp-jaxws</feature>
		<bundle dependency="true">mvn:com.fasterxml.woodstox/woodstox-core/6.5.1</bundle>
		<bundle dependency="true">mvn:jakarta.jws/jakarta.jws-api/2.1.0</bundle>
		<bundle dependency="true">mvn:jakarta.xml.ws/jakarta.xml.ws-api/2.3.3</bundle>
		<bundle dependency="true">mvn:javax.servlet/javax.servlet-api/3.1.0</bundle>
		<bundle dependency="true">mvn:org.apache.aries.spec/org.apache.aries.javax.jax.rs-api/1.0.4</bundle>
		<bundle dependency="true">mvn:org.apache.ws.xmlschema/xmlschema-core/2.3.1</bundle>
		<bundle dependency="true">mvn:org.codehaus.woodstox/stax2-api/4.2.2</bundle>
		<bundle>mvn:org.apache.cxf/cxf-core/3.6.2</bundle>
		<bundle>mvn:org.apache.cxf/cxf-rt-frontend-jaxrs/3.6.2</bundle>
		<bundle>mvn:org.apache.cxf/cxf-rt-rs-client/3.6.2</bundle>
		<bundle>mvn:org.apache.cxf/cxf-rt-rs-sse/3.6.2</bundle>
		<bundle>mvn:org.apache.cxf/cxf-rt-security/3.6.2</bundle>
		<bundle>mvn:org.apache.cxf/cxf-rt-transports-http/3.6.2</bundle>
	</feature>

	<feature name="openhab.tp-jbbp" description="Java Binary Block Parser library" version="${project.version}">
		<capability>openhab.tp;feature=jbbp;version=1.4.1</capability>
		<bundle dependency="true">mvn:org.openhab.osgiify/com.igormaznitsa.jbbp/1.4.1</bundle>
	</feature>

	<feature name="openhab.tp-netty" description="Netty bundles" version="${project.version}">
		<capability>openhab.tp;feature=netty;version=4.1.104.Final</capability>
		<bundle dependency="true">mvn:io.netty/netty-buffer/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-common/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-codec/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-codec-http/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-codec-http2/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-codec-mqtt/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-codec-socks/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-handler/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-handler-proxy/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-resolver/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-transport/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-transport-native-epoll/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-transport-native-kqueue/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-transport-native-unix-common/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-transport-classes-epoll/4.1.104.Final</bundle>
		<bundle dependency="true">mvn:io.netty/netty-tcnative-classes/2.0.62.Final</bundle>
	</feature>

	<feature name="openhab.tp-jaxb" description="JAXB bundles" version="${project.version}">
		<capability>openhab.tp;feature=jaxb;version=2.3.8</capability>
		<bundle start-level="10">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.2.1/1.2.1_3</bundle>
		<bundle start-level="10">mvn:jakarta.xml.bind/jakarta.xml.bind-api/2.3.3</bundle>
		<bundle start-level="20">mvn:com.sun.xml.bind/jaxb-osgi/2.3.8</bundle>
		<bundle start-level="20">mvn:org.glassfish.hk2/osgi-resource-locator/1.0.3</bundle>
	</feature>

	<feature name="openhab.tp-jaxws" description="JAX-WS (SOAP) bundles" version="${project.version}">
		<capability>openhab.tp;feature=jax-ws;version=1.4.0</capability>
		<bundle start-level="10">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.2.1/1.2.1_3</bundle>
		<bundle start-level="10">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.4/1.4_2</bundle>
		<bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saaj-impl/1.4.0_2</bundle>
		<bundle start-level="20">mvn:org.jvnet.staxex/stax-ex/1.7.4</bundle>
	</feature>

	<feature name="openhab.tp-jollyday" description="Jollyday library" version="${project.version}">
		<capability>openhab.tp;feature=jollyday;version=0.35.1</capability>
		<feature dependency="true">openhab.tp-jackson</feature>
		<feature dependency="true">spifly</feature>
		<bundle>mvn:org.threeten/threeten-extra/1.8.0</bundle>
		<bundle>mvn:de.focus-shift/jollyday-core/0.35.1</bundle>
		<bundle>mvn:de.focus-shift/jollyday-jackson/0.35.1</bundle>
	</feature>

	<feature name="openhab.tp-jmdns" description="An implementation of multi-cast DNS in Java." version="${project.version}">
		<capability>openhab.tp;feature=jmdns;version=3.5.12</capability>
		<bundle>mvn:org.jmdns/jmdns/3.5.12</bundle>
	</feature>

	<feature name="openhab.tp-jose4j" description="jose4j JWT library" version="${project.version}">
		<capability>openhab.tp;feature=jose4j;version=0.9.5</capability>
		<bundle start-level="10">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.2.1/1.2.1_3</bundle>
		<bundle>mvn:org.bitbucket.b_c/jose4j/0.9.5</bundle>
	</feature>

	<feature name="openhab.tp-jupnp" description="UPnP/DLNA library for Java" version="${project.version}">
		<capability>openhab.tp;feature=jupnp;version=3.0.1</capability>
		<feature dependency="true">http</feature>
		<feature dependency="true">scr</feature>
		<feature dependency="true">openhab.tp-httpclient</feature>
		<!-- Use the Java 11 LinkedTransferQueue as workaround for JDK-8301341 -->
		<bundle>mvn:org.openhab/base-fixes/1.0.0</bundle>
		<bundle>mvn:org.openhab.core.bundles/org.openhab.core.config.jupnp/${project.version}</bundle>
		<bundle>mvn:org.jupnp/org.jupnp/3.0.1</bundle>
	</feature>

	<feature name="openhab.tp-lsp4j" description="Eclipse LSP4J" version="${project.version}">
		<capability>openhab.tp;feature=lsp4j;version=0.23.1</capability>
		<bundle>mvn:org.eclipse.lsp4j/org.eclipse.lsp4j/0.23.1</bundle>
		<bundle>mvn:org.eclipse.lsp4j/org.eclipse.lsp4j.jsonrpc/0.23.1</bundle>

		<feature dependency="true">openhab.tp-gson</feature>
		<feature dependency="true">openhab.tp-xtext</feature>
	</feature>

	<feature name="openhab.tp-serial-javacomm" version="${project.version}">
		<capability>openhab.tp;feature=serial;impl=javacomm</capability>
		<bundle>mvn:org.eclipse.kura/org.eclipse.soda.dk.comm/1.2.201</bundle>
		<bundle>mvn:org.eclipse.kura/org.eclipse.soda.dk.comm.armv6hf/1.2.201</bundle>
		<bundle>mvn:org.eclipse.kura/org.eclipse.soda.dk.comm.aarch64/1.2.201</bundle>
		<bundle>mvn:org.eclipse.kura/org.eclipse.soda.dk.comm.x86_64/1.2.201</bundle>
	</feature>

	<feature name="openhab.tp-serial-rxtx" version="${project.version}">
		<capability>openhab.tp;feature=serial;impl=rxtx</capability>
		<bundle>mvn:com.neuronrobotics/nrjavaserial/5.2.1.OH1</bundle>
	</feature>

	<feature name="openhab.tp-xtext" description="Xtext - Language Engineering Made Easy" version="${project.version}">
		<capability>openhab.tp;feature=xtext;version=${xtext.version}</capability>

		<bundle>mvn:org.eclipse.xtext/org.eclipse.xtext/${xtext.version}</bundle>

		<bundle dependency="true">mvn:org.eclipse.emf/org.eclipse.emf.common/2.24.0</bundle>
		<bundle dependency="true">mvn:org.eclipse.emf/org.eclipse.emf.ecore/2.26.0</bundle>
		<bundle dependency="true">mvn:org.eclipse.emf/org.eclipse.emf.ecore.change/2.14.0</bundle>
		<bundle dependency="true">mvn:org.eclipse.emf/org.eclipse.emf.ecore.xmi/2.16.0</bundle>
		<bundle dependency="true">mvn:org.eclipse.xtext/org.eclipse.xtext.common.types/${xtext.version}</bundle>

		<bundle dependency="true">mvn:javax.annotation/javax.annotation-api/1.3.2</bundle>

		<bundle dependency="true">mvn:org.eclipse.xtext/org.eclipse.xtext.xbase/${xtext.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.xtext/org.eclipse.xtext.xbase.lib/${xtext.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.xtext/org.eclipse.xtext.smap/${xtext.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.xtext/org.eclipse.xtext.util/${xtext.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.xtend/org.eclipse.xtend.lib/${xtext.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.xtend/org.eclipse.xtend.lib.macro/${xtext.version}</bundle>

		<bundle dependency="true">mvn:com.google.guava/failureaccess/1.0.2</bundle>
		<bundle dependency="true">mvn:com.google.guava/guava/33.3.0-jre</bundle>
		<bundle dependency="true">mvn:com.google.inject/guice/7.0.0</bundle>
		<bundle dependency="true">mvn:jakarta.inject/jakarta.inject-api/2.0.1</bundle>

		<bundle dependency="true">mvn:org.eclipse.orbit.bundles/org.aopalliance/1.0.0.v201105210816</bundle>
		<bundle dependency="true">mvn:io.github.classgraph/classgraph/4.8.174</bundle>
		<bundle dependency="true">mvn:org.eclipse.orbit.bundles/org.antlr.runtime/3.2.0.v201101311130</bundle>

		<bundle dependency="true">mvn:org.eclipse.platform/org.eclipse.equinox.common/3.18.0</bundle>
		<bundle dependency="true">mvn:org.eclipse.platform/org.eclipse.equinox.registry/3.9.0</bundle>
		<bundle dependency="true">mvn:org.eclipse.platform/org.eclipse.equinox.supplement/1.9.0</bundle>

		<!-- Used for feature verification only because this is already provided by Karaf -->
		<bundle dependency="true" start="false">mvn:org.eclipse.platform/org.eclipse.osgi/3.18.0</bundle>
	</feature>

	<feature name="openhab.tp-xtext-ide" description="Xtext - IDE Support" version="${project.version}">
		<capability>openhab.tp;feature=xtext-ide;version=${xtext.version}</capability>
		<feature dependency="true">openhab.tp-xtext</feature>

		<!-- Support for the Language Server Protocol -->
		<bundle dependency="true">mvn:org.eclipse.xtext/org.eclipse.xtext.ide/${xtext.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.xtext/org.eclipse.xtext.xbase.ide/${xtext.version}</bundle>
	</feature>

	<feature name="openhab.tp-swagger-jaxrs" description="JAX-RS Whiteboard Swagger Support" version="${project.version}">
		<capability>openhab.tp;feature=swagger-jaxrs;version=2.2.15</capability>
		<feature dependency="true">openhab.tp-jax-rs-whiteboard</feature>
		<feature dependency="true">openhab.tp-jackson</feature>
		<bundle dependency="true">mvn:io.swagger.core.v3/swagger-annotations/2.2.15</bundle>
		<bundle dependency="true">mvn:io.swagger.core.v3/swagger-core/2.2.15</bundle>
		<bundle dependency="true">mvn:io.swagger.core.v3/swagger-integration/2.2.15</bundle>
		<bundle dependency="true">mvn:io.swagger.core.v3/swagger-jaxrs2/2.2.15</bundle>
		<bundle dependency="true">mvn:io.swagger.core.v3/swagger-models/2.2.15</bundle>
		<bundle dependency="true">mvn:jakarta.validation/jakarta.validation-api/2.0.2</bundle>
		<bundle dependency="true">mvn:org.javassist/javassist/3.29.2-GA</bundle>
	</feature>

</features>
