<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>info.kfgodel</groupId>
    <artifactId>java-pom</artifactId>
    <version>0.1.7</version>
  </parent>

  <groupId>info.kfgodel</groupId>
  <artifactId>nary</artifactId>
  <version>3.0.0</version>

  <name>Nary</name>
  <description>Small project that captures the concept of N-Ary an element that can reference 0, 1 or N elements  </description>
  <url>https://github.com/kfgodel/nary</url>

  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <developers>
    <developer>
      <id>dlgarcia</id>
      <name>Dario L Garcia</name>
      <email>dario.garcia@10pines.com</email>
      <organization>10Pines SRL</organization>
      <organizationUrl>https://www.10pines.com/</organizationUrl>
      <roles>
        <role>architect</role>
        <role>developer</role>
      </roles>
    </developer>
  </developers>

  <scm>
    <developerConnection>scm:git:ssh://github.com/kfgodel/nary.git</developerConnection>
    <connection>${project.scm.developerConnection}</connection>
    <url>${project.url}</url>
  </scm>

  <properties>
    <!-- Sonar properties to prevent unintentional id changes (Reference: https://docs.sonarqube.org/latest/analysis/analysis-parameters/) -->
    <sonar.projectKey>ar.com.kfgodel:nary</sonar.projectKey>

    <!-- Disable rules per files -->
    <sonar.issue.ignore.multicriteria>j1,j2</sonar.issue.ignore.multicriteria>

    <!-- Classes should not be coupled to too many other classes -->
    <!-- All Nary types need to depend on many classes due to its rich interface  -->
    <sonar.issue.ignore.multicriteria.j1.ruleKey>squid:S1200</sonar.issue.ignore.multicriteria.j1.ruleKey>
    <sonar.issue.ignore.multicriteria.j1.resourceKey>**/*Nary*.java</sonar.issue.ignore.multicriteria.j1.resourceKey>

    <!-- Classes should not have too many methods -->
    <!-- Nary API has many methods on purpose to facilitate its usage on different context  -->
    <sonar.issue.ignore.multicriteria.j2.ruleKey>squid:S1448</sonar.issue.ignore.multicriteria.j2.ruleKey>
    <sonar.issue.ignore.multicriteria.j2.resourceKey>**/*Nary*.java</sonar.issue.ignore.multicriteria.j2.resourceKey>

  </properties>

  <dependencies>

    <!-- Rspec like testing -->
    <dependency>
      <groupId>info.kfgodel</groupId>
      <artifactId>jspek</artifactId>
    </dependency>

  </dependencies>

</project>
