<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.yamcs</groupId>
    <artifactId>yamcs</artifactId>
    <version>3.2.2</version>
    <relativePath>..</relativePath>
  </parent>

  <artifactId>yamcs-api</artifactId>
  <packaging>jar</packaging>
  <name>Yamcs API</name>
  <description>Used by external clients to communicate with Yamcs</description>

  <properties>
    <protostuffVersion>1.5.3</protostuffVersion>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <plugins>
      <plugin>  <!-- Protostuff can be compiled from command line with mvn protostuff:compile -->
        <groupId>io.protostuff</groupId>
        <artifactId>protostuff-maven-plugin</artifactId>
        <version>${protostuffVersion}</version>
        <configuration>
          <protoModules>
            <protoModule>
              <source>src/main/yamcs.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/archive.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/mdb.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/pvalue.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/rest.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/alarms.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/commanding.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/web.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/comp.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/yamcsManagement.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
            <protoModule>
              <source>src/main/table.proto</source>
              <outputDir>src/main/java</outputDir>
              <output>java_v2protoc_schema</output>
              <encoding>UTF-8</encoding>
              <options>
                <property>
                  <name>generate_field_map</name>
                </property>
                <property>
                  <name>enums_by_name</name>
                </property>
              </options>
            </protoModule>
          </protoModules>
        </configuration>
        <executions>
          <execution>
            <id>compile-protostuff</id>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>2.5.0</version>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-all</artifactId>
      <version>4.1.9.Final</version>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>artemis-core-client</artifactId>
      <version>${artemisVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.yaml</groupId>
      <artifactId>snakeyaml</artifactId>
      <version>1.9</version>
    </dependency>
    <dependency>
      <groupId>net.sourceforge.javacsv</groupId>
      <artifactId>javacsv</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>io.protostuff</groupId>
      <artifactId>protostuff-api</artifactId>
      <version>${protostuffVersion}</version>
    </dependency>

    <dependency>
      <groupId>io.protostuff</groupId>
      <artifactId>protostuff-json</artifactId>
      <version>${protostuffVersion}</version>
    </dependency>

    <!-- TEST DEPENDENCIES -->

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-jdk14</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
