<?xml version="1.0" encoding="UTF-8"?>
<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>

  <parent>
    <groupId>org.opendaylight.controller</groupId>
    <artifactId>commons.opendaylight</artifactId>
    <version>1.5.0-Lithium</version>
    <relativePath>../../../controller/opendaylight/commons/opendaylight</relativePath>
  </parent>

  <artifactId>sal-parent</artifactId>
  <version>1.2.0-Lithium</version>
  <packaging>pom</packaging>

  <modules>
    <module>mdsal-artifacts</module>

    <!-- Common APIs & Implementation -->
    <module>sal-common</module>
    <module>sal-common-api</module>
    <module>sal-common-impl</module>
    <module>sal-common-util</module>

    <!-- Binding Independent -->
    <module>sal-dom-api</module>
    <module>sal-dom-broker</module>
    <module>sal-dom-spi</module>

    <!-- Binding Aware -->
    <module>sal-binding-api</module>
    <module>sal-binding-config</module>
    <module>sal-binding-broker</module>

    <module>sal-binding-util</module>

    <!-- Configuration File -->
    <module>md-sal-config</module>

    <!-- Samples -->
    <module>samples</module>

    <!-- Base Models -->
    <module>model</module>
    <module>sal-remote</module>
    <module>sal-restconf-broker</module>

    <!-- Connectors -->
    <module>sal-connector-api</module>
    <module>sal-rest-connector</module>
    <module>sal-rest-connector-config</module>
    <module>sal-netconf-connector</module>

    <!-- Documentation -->
    <module>sal-rest-docgen</module>
    <module>sal-rest-docgen-maven</module>

    <module>sal-akka-raft</module>
    <module>sal-akka-raft-example</module>

    <!--InMemory DOM DataStore-->
    <module>sal-inmemory-datastore</module>

    <!--sal-protocolbuffer-encoding is now part of sal-clutering-commons-->
    <module>sal-clustering-commons</module>

    <!-- sal clustering configuration -->
    <module>sal-clustering-config</module>

    <!-- sal-distributed-datastore -->
    <module>sal-distributed-datastore</module>
    <module>sal-dummy-distributed-datastore</module>

    <!-- XSQL -->
    <module>sal-dom-xsql</module>
    <module>sal-karaf-xsql</module>
    <module>sal-dom-xsql-config</module>

    <!-- Yang Test Models for MD-SAL -->
    <module>sal-test-model</module>

    <!-- Clustering -->
    <module>sal-remoterpc-connector</module>

    <!-- Message Bus -->
    <module>messagebus-api</module>
    <module>messagebus-spi</module>
    <module>messagebus-impl</module>
    <module>messagebus-config</module>
  </modules>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>${bundle.plugin.version}</version>
          <extensions>true</extensions>
          <!--executions> <execution> <id>bundle-manifest</id>
                        <phase>process-classes</phase> <goals> <goal>manifest</goal> </goals> </execution>
                        </executions -->
          <configuration>
            <instructions>
              <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
            </instructions>
            <manifestLocation>${project.basedir}/META-INF</manifestLocation>
          </configuration>
        </plugin>
        <!--This plugin's configuration is used to store Eclipse
                    m2e settings only. It has no influence on the Maven build itself. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>${lifecycle.mapping.version}</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <versionRange>[0,)</versionRange>
                    <goals>
                      <goal>compile</goal>
                      <goal>testCompile</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <versionRange>[0,)</versionRange>
                    <goals>
                      <goal>prepare-agent</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.opendaylight.yangtools</groupId>
                    <artifactId>yang-maven-plugin</artifactId>
                    <versionRange>[0.5,)</versionRange>
                    <goals>
                      <goal>generate-sources</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute/>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco.version}</version>
        </plugin>
      </plugins>

    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.opendaylight.yangtools</groupId>
        <artifactId>yang-maven-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>org.opendaylight.controller</groupId>
            <artifactId>yang-jmx-generator-plugin</artifactId>
            <version>${config.version}</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>${findbugs.maven.plugin.version}</version>
        <configuration>
          <effort>Max</effort>
          <threshold>Low</threshold>
          <goal>site</goal>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jdepend-maven-plugin</artifactId>
        <version>${jdepend.maven.plugin.version}</version>
      </plugin>
    </plugins>
  </reporting>
  <scm>
    <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
    <tag>HEAD</tag>
    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
  </scm>

  <profiles>
    <profile>
      <id>integrationtests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <modules>
        <module>sal-binding-it</module>
        <module>sal-binding-dom-it</module>
      </modules>
    </profile>
    <profile>
      <id>benchmarks</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <modules>
        <module>benchmark-data-store</module>
      </modules>
    </profile>
  </profiles>
</project>
