<?xml version="1.0"?>
<!--
/*********************************************************************
* Copyright (c) 2024 Contributors to the Eclipse Foundation.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
-->
<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>
  <groupId>org.eclipse.daanse</groupId>
  <artifactId>org.eclipse.daanse.pom.parent</artifactId>
  <version>0.0.7</version>
  <packaging>pom</packaging>

  <name>Eclipse Daanse Parent POM</name>
  <description>Central parent POM configuration for the Eclipse Daanse business
    intelligence platform providing standardized build configurations,
    dependency management, OSGi integration, and development tooling for all
    Daanse modules and components.</description>

  <properties>

    <project.build.outputTimestamp>1980-02-01T00:00:00Z</project.build.outputTimestamp>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <java.version>25</java.version>
    <java.release>25</java.release>

    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>

    <sonar.organization>eclipse-daanse</sonar.organization>
    <sonar.host.url>https://sonarcloud.io</sonar.host.url>

    <!-- each project cateches its data from aggregator, but we have no
    absolut path in mvn-->
    <sonar.coverage.jacoco.xmlReportPaths>
      ${maven.multiModuleProjectDirectory}/aggregate-report-jacoco/target/site/jacoco-aggregate/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>

    <sonar.junit.reportPaths>
      ${project.basedir}/target/test-reports/test/</sonar.junit.reportPaths>

    <!-- dash-->
    <dash.projectId>technology.daanse</dash.projectId>
    <dash.repo>https://github.com/${repo.part}/</dash.repo>

    <!-- dependencies -->
    <bnd.version>7.2.0</bnd.version>
    <junit-jupiter.version>5.12.2</junit-jupiter.version>
    <junit-platform.version>1.12.2</junit-platform.version>
    <mockito.version>4.9.0</mockito.version>
    <bytebuddy.version>1.17.5</bytebuddy.version>
    <aries.spifly.version>1.3.7</aries.spifly.version>
    <assertj.version>3.24.2</assertj.version>

    <emf.ecore.version>2.41.0</emf.ecore.version>
    <emf.common.version>2.44.0</emf.common.version>
    <emf.xmi.version>2.39.0</emf.xmi.version>
    <emf.codegen.version>2.27.0</emf.codegen.version>
    <emf.codegen.ecore.version>2.44.0</emf.codegen.ecore.version>

    <org.osgi.test.version>1.3.0</org.osgi.test.version>
  </properties>

  <url>https://www.daanse.org</url>
  <organization>
    <name>Eclipse Foundation - Project daanse</name>
    <url>https://www.daanse.org</url>
  </organization>
  <licenses>
    <license>
      <name>EPL-2.0</name>
      <comments>Eclipse Public License, Version 2.0</comments>
      <url>https://opensource.org/licenses/EPL-2.0</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <scm>
    <url>https://github.com/eclipse-daanse</url>
    <connection>scm:git:https://github.com/eclipse-daanse</connection>
    <developerConnection>scm:git:git@github.com:eclipse-daanse</developerConnection>
  </scm>

  <developers>
    <developer>
      <id>stbischof</id>
      <name>Stefan Bischof</name>
      <email>stbischof@bipolis.org</email>
      <url>https://www.bipolis.org</url>
      <organization>bipolis</organization>
      <organizationUrl>https://www.bipolis.org</organizationUrl>
      <roles>
        <role>project-lead</role>
        <role>developer</role>
      </roles>
      <timezone>Europe/Berlin</timezone>
    </developer>
  </developers>

  <issueManagement>
    <system>GitHub Issues</system>
    <url>https://github.com/${repo.part}/issues</url>
  </issueManagement>

  <distributionManagement>
    <snapshotRepository>
      <id>central</id>
      <url>https://central.sonatype.com/repository/maven-snapshots</url>
    </snapshotRepository>
  </distributionManagement>

  <repositories>
    <repository>
      <id>ossrh</id>
      <name>Sonatype Nexus Snapshots</name>
      <url>https://central.sonatype.com/repository/maven-snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>apache-snapshots</id>
      <name>Apache Snapshots</name>
      <url>https://repository.apache.org/snapshots/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>ossrhp</id>
      <name>Sonatype Nexus Snapshots Plugin</name>
      <url>https://central.sonatype.com/repository/maven-snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>

  <build>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>biz.aQute.bnd</groupId>
          <artifactId>bnd-maven-plugin</artifactId>
          <version>${bnd.version}</version>
          <extensions>true</extensions>
          <executions>
            <execution>
              <id>jar</id>
              <goals>
                <goal>jar</goal>
              </goals>
              <configuration>
                <bnd>
                  <![CDATA[
                Bundle-Copyright: Copyright (c) Contributors to the Eclipse Foundation.
                Git-Descriptor: ${system-allow-fail;git describe --dirty --always --abbrev=9}
                Git-SHA: ${system-allow-fail;git rev-list -1 --no-abbrev-commit HEAD}
                SPDX-License-Identifier: ${project.licenses[0].name}
                -noextraheaders: true
                -reproducible: true
                ]]>
                </bnd>
              </configuration>
            </execution>
            <execution>
              <id>test-jar</id>
              <goals>
                <goal>test-jar</goal>
              </goals>
              <configuration>
                <bndfile>tests.bnd</bndfile>
                <bnd>
                  <![CDATA[
              Test-Cases: ${classes;HIERARCHY_INDIRECTLY_ANNOTATED;org.junit.platform.commons.annotation.Testable;CONCRETE;NAMED;*.integration.*}
              -fixupmessages: *for this fragment/require bundle cannot be found on the classpath
              -noextraheaders: true
              -noimportjava: true
              ]]>
                </bnd>
                <artifactFragment>true</artifactFragment>
                <testCases>useTestCasesHeader</testCases>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>biz.aQute.bnd</groupId>
          <artifactId>bnd-resolver-maven-plugin</artifactId>
          <version>${bnd.version}</version>
          <executions>
            <!-- Integration Test Configuration -->
            <execution>
              <id>resolve-test</id>
              <phase>pre-integration-test</phase>
              <goals>
                <goal>resolve</goal>
              </goals>
              <configuration>
                <bndruns>
                  <include>*.bndrun</include>
                </bndruns>
                <bundles>
                  <bundle>
                    ${project.build.directory}/${project.build.finalName}-tests.jar</bundle>
                </bundles>
                <failOnChanges>false</failOnChanges>
                <includeDependencyManagement>true</includeDependencyManagement>
                <reportOptional>false</reportOptional>
                <scopes>
                  <scope>compile</scope>
                  <scope>runtime</scope>
                  <scope>test</scope>
                </scopes>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>biz.aQute.bnd</groupId>
          <artifactId>bnd-testing-maven-plugin</artifactId>
          <version>${bnd.version}</version>
          <executions>
            <!-- OSGi integration tests execution -->
            <execution>
              <id>testing</id>
              <goals>
                <goal>testing</goal>
              </goals>
              <configuration>
                <bndruns>
                  <include>test.bndrun</include>
                </bndruns>
                <failOnChanges>false</failOnChanges>
                <includeDependencyManagement>true</includeDependencyManagement>
                <resolve>false</resolve>
                <scopes>
                  <scope>compile</scope>
                  <scope>runtime</scope>
                  <scope>test</scope>
                </scopes>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>biz.aQute.bnd</groupId>
          <artifactId>bnd-baseline-maven-plugin</artifactId>
          <version>${bnd.version}</version>
          <executions>
            <execution>
              <id>baseline</id>
              <goals>
                <goal>baseline</goal>
              </goals>
              <configuration>
                <failOnMissing>false</failOnMissing>
                <fullReport>true</fullReport>
                <includeDistributionManagement>false</includeDistributionManagement>
                <diffignores>
                  <diffignore>Bundle-Version</diffignore>
                </diffignores>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>4.0.0.4121</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.3.0</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.7.0</version>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>3.2.4</version>
          <executions>
            <execution>
              <id>sign-artifacts</id>
              <phase>verify</phase>
              <goals>
                <goal>sign</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <!-- Prevent gpg from using pinentry programs -->
            <gpgArguments>
              <arg>--pinentry-mode</arg>
              <arg>loopback</arg>
            </gpgArguments>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.ec4j.maven</groupId>
          <artifactId>editorconfig-maven-plugin</artifactId>
          <version>0.1.3</version>
          <executions>
            <execution>
              <id>check</id>
              <phase>verify</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <!-- See
            http://ec4j.github.io/editorconfig-maven-plugin/ for
            full configuration reference -->
            <excludes>
              <exclude>**/*.svg</exclude>
              <exclude>src/gen/**/*</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-plugin</artifactId>
          <version>2.1.0</version>
          <configuration>
            <skip>true</skip>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.sonatype.central</groupId>
          <artifactId>central-publishing-maven-plugin</artifactId>
          <version>0.8.0</version>
          <extensions>true</extensions>
          <configuration>
            <publishingServerId>central</publishingServerId>
            <autoPublish>true</autoPublish>
            <waitUntil>published</waitUntil>
            <centralSnapshotsUrl>
              https://central.sonatype.com/repository/maven-snapshots/</centralSnapshotsUrl>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>bnd-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>bnd-resolver-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>resolve-test</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>resolve</goal>
            </goals>
            <inherited>false</inherited>
            <configuration>
              <skip>true</skip>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>bnd-testing-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>testing</id>
            <goals>
              <goal>testing</goal>
            </goals>
            <inherited>false</inherited>
            <configuration>
              <skip>true</skip>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>bnd-baseline-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>baseline</id>
            <goals>
              <goal>baseline</goal>
            </goals>
            <inherited>false</inherited>
            <configuration>
              <skip>true</skip>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.2.5</version>
        <configuration>
          <excludes>
            <exclude>**/integration/**</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>flatten-maven-plugin</artifactId>
        <version>1.6.0</version>
        <configuration>
          <flattenMode>oss</flattenMode>
        </configuration>
        <executions>
          <execution>
            <id>flatten</id>
            <phase>process-resources</phase>
            <goals>
              <goal>flatten</goal>
            </goals>
          </execution>
          <execution>
            <id>flatten-clean</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.ec4j.maven</groupId>
        <artifactId>editorconfig-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>2.0.12</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.service.component</artifactId>
        <version>1.5.1</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.service.metatype.annotations</artifactId>
        <version>1.4.1</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.service.cm</artifactId>
        <version>1.6.1</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.namespace.unresolvable</artifactId>
        <version>1.0.0</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.annotation.bundle</artifactId>
        <version>2.0.0</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.service.component.annotations</artifactId>
        <version>1.5.1</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.service.jdbc</artifactId>
        <version>1.1.0</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.framework</artifactId>
        <version>1.10.0</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.resource</artifactId>
        <version>1.0.1</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.util.converter</artifactId>
        <version>1.0.9</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.scr</artifactId>
        <version>2.2.10</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.gogo.shell</artifactId>
        <version>1.1.4</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>biz.aQute</groupId>
        <artifactId>biz.aQute.gogo.commands.provider</artifactId>
        <version>1.10.0</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.gogo.command</artifactId>
        <version>1.1.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.gogo.runtime</artifactId>
        <version>1.1.6</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>biz.aQute.bndlib</artifactId>
        <version>${bnd.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.framework</artifactId>
        <version>7.0.5</version>
        <scope>runtime</scope>
      </dependency>
      <!-- run -->
      <!-- test -->
      <dependency>
        <groupId>org.awaitility</groupId>
        <artifactId>awaitility</artifactId>
        <version>4.2.1</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>3.26.0</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.test.common</artifactId>
        <version>${org.osgi.test.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.test.assertj.framework</artifactId>
        <version>${org.osgi.test.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.test.assertj.log</artifactId>
        <version>${org.osgi.test.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.test.assertj.promise</artifactId>
        <version>${org.osgi.test.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.test.junit5</artifactId>
        <version>${org.osgi.test.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.test.junit5.cm</artifactId>
        <version>${org.osgi.test.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.test.junit5.listeners.log.osgi</artifactId>
        <version>${org.osgi.test.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-commons</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-engine</artifactId>
        <version>${junit-platform.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-junit-jupiter</artifactId>
        <version>${mockito.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy-agent</artifactId>
        <version>${bytebuddy.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>${bytebuddy.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.aries.spifly</groupId>
        <artifactId>org.apache.aries.spifly.dynamic.bundle</artifactId>
        <version>${aries.spifly.version}</version>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>9.9</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm-commons</artifactId>
        <version>9.9</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm-util</artifactId>
        <version>9.9</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.junit</artifactId>
        <version>4.13.2_1</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.jacoco</groupId>
        <artifactId>org.jacoco.agent</artifactId>
        <version>0.8.14</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jacoco</groupId>
        <artifactId>org.jacoco.agent</artifactId>
        <version>0.8.14</version>
        <classifier>runtime</classifier>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.util.pushstream</artifactId>
        <version>1.1.0</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.util.function</artifactId>
        <version>1.2.0</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.util.promise</artifactId>
        <version>1.3.0</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.configadmin</artifactId>
        <version>1.9.26</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.metatype</artifactId>
        <version>1.2.4</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.5.6</version>
        <scope>runtime</scope>
      </dependency>
<!--      <dependency>-->
<!--        <groupId>org.apache.aries.spifly</groupId>-->
<!--        <artifactId>org.apache.aries.spifly.dynamic.framework.extension</artifactId>-->
<!--        <version>1.3.7</version>-->
<!--        <scope>runtime</scope>-->
<!--      </dependency>-->
      <!-- EMF Dependencies -->
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.common</artifactId>
        <version>${emf.common.version}</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.ecore</artifactId>
        <version>${emf.ecore.version}</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
        <version>${emf.xmi.version}</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.codegen</artifactId>
        <version>${emf.codegen.version}</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.codegen.ecore</artifactId>
        <version>${emf.codegen.ecore.version}</version>
        <scope>compile</scope>
      </dependency>
    </dependencies>

  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.annotation.bundle</artifactId>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.framework</artifactId>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.service.component.annotations</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.osgi</groupId>
          <artifactId>org.osgi.util.function</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-params</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-junit-jupiter</artifactId>
    </dependency>
    <dependency>
      <groupId>org.awaitility</groupId>
      <artifactId>awaitility</artifactId>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.test.common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.test.assertj.framework</artifactId>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.test.assertj.log</artifactId>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.test.assertj.promise</artifactId>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.test.junit5</artifactId>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.test.junit5.cm</artifactId>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jacoco</groupId>
      <artifactId>org.jacoco.agent</artifactId>
      <classifier>runtime</classifier>
      <scope>test</scope>
    </dependency>
    <!-- @ServiceProvider for test-jar:
        better `-resolve.effective: active`-->
    <dependency>
      <groupId>biz.aQute.bnd</groupId>
      <artifactId>biz.aQute.bndlib</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>tck-bundle</id>
      <activation>
        <property>
          <name>daanse.maven.build.type</name>
          <value>tck-bundle</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.junit.jupiter</groupId>
          <artifactId>junit-jupiter-api</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.junit.jupiter</groupId>
          <artifactId>junit-jupiter-engine</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.junit.jupiter</groupId>
          <artifactId>junit-jupiter-params</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.mockito</groupId>
          <artifactId>mockito-core</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.mockito</groupId>
          <artifactId>mockito-junit-jupiter</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.awaitility</groupId>
          <artifactId>awaitility</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.osgi</groupId>
          <artifactId>org.osgi.test.common</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.osgi</groupId>
          <artifactId>org.osgi.test.assertj.framework</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.osgi</groupId>
          <artifactId>org.osgi.test.assertj.log</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.osgi</groupId>
          <artifactId>org.osgi.test.assertj.promise</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.osgi</groupId>
          <artifactId>org.osgi.test.junit5</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.osgi</groupId>
          <artifactId>org.osgi.test.junit5.cm</artifactId>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.assertj</groupId>
          <artifactId>assertj-core</artifactId>
          <scope>compile</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>biz.aQute.bnd</groupId>
            <artifactId>bnd-maven-plugin</artifactId>
            <version>${bnd.version}</version>
            <extensions>true</extensions>
            <executions>
              <execution>
                <id>jar</id>
                <goals>
                  <goal>jar</goal>
                </goals>
                <configuration>
                  <bnd>
                            <![CDATA[
                          Bundle-Copyright: Copyright (c) Contributors to the Eclipse Foundation.
                          Git-Descriptor: ${system-allow-fail;git describe --dirty --always --abbrev=9}
                          Git-SHA: ${system-allow-fail;git rev-list -1 --no-abbrev-commit HEAD}
                          SPDX-License-Identifier: ${project.licenses[0].name}
                          -noextraheaders: true
                          -reproducible: true
                          Test-Cases: ${classes;HIERARCHY_INDIRECTLY_ANNOTATED;org.junit.platform.commons.annotation.Testable;CONCRETE}
                          ]]>
                  </bnd>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>eclipse-licenses-check</id>
      <pluginRepositories>
        <pluginRepository>
          <id>dash-licenses-snapshots</id>
          <url>
            https://repo.eclipse.org/content/repositories/dash-licenses-releases/</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
      <build>
        <plugins>
          <!--
          https://github.com/eclipse/dash-licenses/blob/master/README.md#maven-plugin-options -->
          <plugin>
            <groupId>org.eclipse.dash</groupId>
            <artifactId>license-tool-plugin</artifactId>
            <version>1.1.0</version>
            <executions>
              <execution>
                <id>license-check</id>
                <goals>
                  <goal>license-check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>javadoc-check</id>
      <properties>
        <javadoc.failed.on.error>true</javadoc.failed.on.error>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>deploy</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.sonatype.central</groupId>
            <artifactId>central-publishing-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
