<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.openhab.core.bom</groupId>
    <artifactId>org.openhab.core.reactor.bom</artifactId>
    <version>5.0.0-SNAPSHOT</version>
  </parent>

  <artifactId>org.openhab.core.bom.compile</artifactId>
  <packaging>pom</packaging>

  <name>openHAB Core :: BOM :: Compile</name>
  <description>The dependencies that are used to compile the core bundles</description>

  <properties>
    <californium.version>2.7.4</californium.version>
    <jetty.version>9.4.54.v20240208</jetty.version>
    <pax.web.version>8.0.27</pax.web.version>
    <swagger.version>2.2.15</swagger.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>osgi.core</artifactId>
      <version>8.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.service.cm</artifactId>
      <version>1.6.1</version>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.service.component</artifactId>
      <version>1.5.1</version>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.service.component.annotations</artifactId>
      <version>1.5.1</version>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.service.event</artifactId>
      <version>1.4.1</version>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.service.jaxrs</artifactId>
      <version>1.0.1</version>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>osgi.annotation</artifactId>
      <version>8.1.0</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jdt</groupId>
      <artifactId>org.eclipse.jdt.annotation</artifactId>
      <version>2.2.600</version>
      <!--<scope>compile</scope> -->
    </dependency>

    <!-- Annotation API -->
    <dependency>
      <groupId>javax.annotation</groupId>
      <artifactId>javax.annotation-api</artifactId>
      <version>1.3.2</version>
      <scope>compile</scope>
    </dependency>

    <!-- Apache Commons -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.14.0</version>
      <scope>compile</scope>
    </dependency>

    <!-- Californium -->
    <dependency>
      <groupId>org.eclipse.californium</groupId>
      <artifactId>californium-core</artifactId>
      <version>${californium.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.californium</groupId>
      <artifactId>scandium</artifactId>
      <version>${californium.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.californium</groupId>
      <artifactId>element-connector</artifactId>
      <version>${californium.version}</version>
      <exclusions>
        <exclusion>
          <groupId>net.i2p.crypto</groupId>
          <artifactId>eddsa</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.eclipse.orbit.bundles</groupId>
      <artifactId>net.i2p.crypto.eddsa</artifactId>
      <version>0.3.0.v20220506-1020</version>
    </dependency>

    <!-- Gson -->
    <!-- The Orbit bundle is used because LSP4J imports com.google.gson.internal -->
    <dependency>
      <groupId>org.eclipse.orbit.bundles</groupId>
      <artifactId>com.google.gson</artifactId>
      <version>2.10.1.v20230109-0753</version>
      <scope>compile</scope>
    </dependency>

    <!-- JBBP -->
    <dependency>
      <groupId>com.igormaznitsa</groupId>
      <artifactId>jbbp</artifactId>
      <version>1.4.1</version>
      <scope>compile</scope>
    </dependency>

    <!-- Jetty -->
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-client</artifactId>
      <version>${jetty.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-proxy</artifactId>
      <version>${jetty.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <version>${jetty.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-servlet</artifactId>
      <version>${jetty.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-client</artifactId>
      <version>${jetty.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-servlet</artifactId>
      <version>${jetty.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-server</artifactId>
      <version>${jetty.version}</version>
      <scope>compile</scope>
    </dependency>

    <!-- Jetty HTTP2 -->
    <dependency>
      <groupId>org.eclipse.jetty.http2</groupId>
      <artifactId>http2-client</artifactId>
      <version>${jetty.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.http2</groupId>
      <artifactId>http2-server</artifactId>
      <version>${jetty.version}</version>
      <scope>compile</scope>
    </dependency>

    <!-- JmDNS -->
    <dependency>
      <groupId>org.jmdns</groupId>
      <artifactId>jmdns</artifactId>
      <version>3.5.12</version>
      <scope>compile</scope>
    </dependency>

    <!-- jUPnP -->
    <dependency>
      <groupId>org.jupnp</groupId>
      <artifactId>org.jupnp</artifactId>
      <version>3.0.1</version>
      <scope>compile</scope>
    </dependency>

    <!-- Measurement -->
    <!-- Attention: before upgrading these dependencies check that the dimension X is still not used, otherwise change the
      dimension label for org.openhab.core.library.unit.Units.BIT -->
    <dependency>
      <groupId>javax.measure</groupId>
      <artifactId>unit-api</artifactId>
      <version>2.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>si.uom</groupId>
      <artifactId>si-units</artifactId>
      <version>2.1</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>tech.units</groupId>
      <artifactId>indriya</artifactId>
      <version>2.2</version>
      <scope>compile</scope>
    </dependency>

    <!-- HiveMQ MQTT Client -->
    <dependency>
      <groupId>com.hivemq</groupId>
      <artifactId>hivemq-mqtt-client</artifactId>
      <version>1.3.3</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>org.jetbrains</groupId>
          <artifactId>annotations</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- Pax Web -->
    <dependency>
      <groupId>org.ops4j.pax.web</groupId>
      <artifactId>pax-web-api</artifactId>
      <version>${pax.web.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.web</groupId>
      <artifactId>pax-web-extender-whiteboard</artifactId>
      <version>${pax.web.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.web</groupId>
      <artifactId>pax-web-jetty</artifactId>
      <version>${pax.web.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.web</groupId>
      <artifactId>pax-web-jsp</artifactId>
      <version>${pax.web.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.web</groupId>
      <artifactId>pax-web-runtime</artifactId>
      <version>${pax.web.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.web</groupId>
      <artifactId>pax-web-spi</artifactId>
      <version>${pax.web.version}</version>
      <scope>compile</scope>
    </dependency>

    <!-- Serial Communication -->
    <dependency>
      <groupId>org.vesalainen.comm</groupId>
      <artifactId>javaxcomm</artifactId>
      <version>1.0.1</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>commons-net</groupId>
          <artifactId>commons-net</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.neuronrobotics</groupId>
      <artifactId>nrjavaserial</artifactId>
      <version>3.14.0</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>commons-net</groupId>
          <artifactId>commons-net</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- Servlet and JAX-RS API -->
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.http.servlet-api</artifactId>
      <version>1.1.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.aries.spec</groupId>
      <artifactId>org.apache.aries.javax.jax.rs-api</artifactId>
      <version>1.0.0</version>
      <scope>compile</scope>
    </dependency>

    <!-- Swagger -->
    <dependency>
      <groupId>io.swagger.core.v3</groupId>
      <artifactId>swagger-annotations</artifactId>
      <version>${swagger.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>io.swagger.core.v3</groupId>
      <artifactId>swagger-core</artifactId>
      <version>${swagger.version}</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>javax.xml.bind</groupId>
          <artifactId>jaxb-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.swagger.core.v3</groupId>
      <artifactId>swagger-jaxrs2</artifactId>
      <version>${swagger.version}</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>jakarta.activation</groupId>
          <artifactId>jakarta.activation-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- XStream -->
    <dependency>
      <groupId>com.thoughtworks.xstream</groupId>
      <artifactId>xstream</artifactId>
      <version>1.4.21</version>
      <scope>compile</scope>
    </dependency>

    <!-- jollyday -->
    <dependency>
      <groupId>de.focus-shift</groupId>
      <artifactId>jollyday-jackson</artifactId>
      <version>0.35.1</version>
      <scope>compile</scope>
    </dependency>

    <!-- JAXB -->
    <dependency>
      <groupId>jakarta.xml.bind</groupId>
      <artifactId>jakarta.xml.bind-api</artifactId>
      <version>2.3.3</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>jakarta.activation</groupId>
          <artifactId>jakarta.activation-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- JAX-WS -->
    <dependency>
      <groupId>org.apache.servicemix.specs</groupId>
      <artifactId>org.apache.servicemix.specs.saaj-api-1.4</artifactId>
      <version>1.4_2</version>
      <exclusions>
        <exclusion>
          <groupId>javax.xml.stream</groupId>
          <artifactId>stax-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.jvnet.staxex</groupId>
          <artifactId>stax-ex</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- jose4j -->
    <dependency>
      <groupId>org.bitbucket.b_c</groupId>
      <artifactId>jose4j</artifactId>
      <version>0.9.5</version>
      <scope>compile</scope>
    </dependency>

    <!-- dirwatcher -->
    <dependency>
      <groupId>org.openhab.osgiify</groupId>
      <artifactId>io.methvin.directory-watcher</artifactId>
      <version>0.18.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>net.java.dev.jna</groupId>
      <artifactId>jna</artifactId>
      <version>5.14.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>net.java.dev.jna</groupId>
      <artifactId>jna-platform</artifactId>
      <version>5.14.0</version>
      <scope>compile</scope>
    </dependency>

    <!-- Provides the Java 11 LinkedTransferQueue used in workarounds for JDK-8301341 -->
    <dependency>
      <groupId>org.openhab</groupId>
      <artifactId>base-fixes</artifactId>
      <version>1.0.0</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

</project>
