<!--
===============================LICENSE_START============================
Copyright (c) 2019 AT&T Intellectual Property.
Copyright (c) 2018-2019 Nokia.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

This source code is part of the near-RT RIC (RAN Intelligent Controller)
platform project (RICP).
===============================LICENSE_END============================== -->

<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   http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.o-ran-sc.ric-plt.ricsdl</groupId>
  <artifactId>ricsdl</artifactId>
  <version>0</version>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <sonar.sources>.</sonar.sources>
    <sonar.junit.reportsPath>xunit-results.xml</sonar.junit.reportsPath>
    <sonar.python.coverage.reportPaths>coverage.xml</sonar.python.coverage.reportPaths>
    <sonar.python.xunit.reportPath>xunit-results.xml</sonar.python.xunit.reportPath>
    <sonar.language>py</sonar.language>
    <sonar.pluginname>python</sonar.pluginname>
    <sonar.inclusions>ricsdl/*.py,ricsdl/backend/*.py</sonar.inclusions>
    <sonar.exclusions>tests/*,setup.py</sonar.exclusions>
  </properties>
</project>
