<?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>

  <groupId>trick-java</groupId>
  <artifactId>trick-java</artifactId>
  <version>19.8.0-beta</version>

  <name>trick-java</name>

  <url>https://github.com/nasa/trick</url>

  <profiles>
    <profile>
      <id>cmake</id>
      <build>
        <directory>${buildDirectory}</directory>
      </build>
      <activation>
        <property>
          <name>cmake</name>
          <value>true</value>
        </property>
      </activation>
    </profile>
    <profile>
      <id>makefile</id>
      <activation>
        <property>
          <name>cmake</name>
          <value>false</value>
        </property>
      </activation>
    </profile>
  </profiles>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <trick_version>dev</trick_version>
  </properties>

  <repositories>
    <repository>
      <id>third-party</id>
      <url>file://${basedir}/src/lib/</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-swing-junit</artifactId>
      <version>3.9.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>third-party</groupId>
      <artifactId>bsaf</artifactId>
      <version>1.9.2</version>
    </dependency>
    <dependency>
      <groupId>org.jfree</groupId>
      <artifactId>jfreechart</artifactId>
      <version>1.0.19</version>
    </dependency>
    <dependency>
      <groupId>org.jfree</groupId>
      <artifactId>jfreesvg</artifactId>
      <version>2.1</version>
    </dependency>
    <dependency>
      <groupId>net.sf.jopt-simple</groupId>
      <artifactId>jopt-simple</artifactId>
      <version>4.8</version>
    </dependency>
    <dependency>
      <groupId>org.swinglabs</groupId>
      <artifactId>swingx</artifactId>
      <version>1.6.1</version>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-core</artifactId>
      <version>1.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.pdfbox</groupId>
      <artifactId>pdfbox</artifactId>
      <version>2.0.24</version>
    </dependency>
    <dependency>
      <groupId>org.glassfish.jaxb</groupId>
      <artifactId>jaxb-jxc</artifactId>
      <version>2.4.0-b180830.0438</version>
    </dependency>
    <dependency>
      <groupId>org.glassfish.jaxb</groupId>
      <artifactId>jaxb-core</artifactId>
      <version>2.3.0.1</version>
    </dependency>
  </dependencies>
  <build>

    <directory>../../libexec/trick/java/build</directory>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.1.1</version>
        <configuration>
          <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
          <destDir>../../share/doc/trick/java</destDir>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.1</version>
        <executions>

          <execution>
            <id>tv</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.tv.TVApplication</mainClass>
                </transformer>
              </transformers>
              <finalName>TrickView</finalName>
            </configuration>
          </execution>

          <execution>
            <id>simcontrol</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.simcontrol.SimControlApplication</mainClass>
                </transformer>
              </transformers>
              <finalName>SimControl</finalName>
            </configuration>
            </execution>
            
            <execution>
            <id>sniffer</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.sniffer.SimSnifferApplication</mainClass>
                </transformer>
              </transformers>
              <finalName>SimSniffer</finalName>
            </configuration>
          </execution>

          <execution>
            <id>mtv</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.mtv.MtvApp</mainClass>
                </transformer>
              </transformers>
              <finalName>MTV</finalName>
            </configuration>
          </execution>

          <execution>
            <id>trickqp</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.dataproducts.trickqp.TrickQPApplication</mainClass>
                </transformer>
              </transformers>
              <finalName>QP</finalName>
            </configuration>
          </execution>

          <execution>
            <id>trickdp</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.dataproducts.trickdp.TrickDPApplication</mainClass>
                </transformer>
              </transformers>
              <finalName>DP</finalName>
            </configuration>
          </execution>

          <execution>
            <id>dre</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.dre.DreApplication</mainClass>
                </transformer>
              </transformers>
              <finalName>Dre</finalName>
            </configuration>
          </execution>

          <execution>
            <id>Sie</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.sie.SieApplication</mainClass>
                </transformer>
              </transformers>
              <finalName>Sie</finalName>
            </configuration>
          </execution>

          <execution>
            <id>plot</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.dataproducts.plot.JXPlotApplication</mainClass>
                </transformer>
              </transformers>
              <finalName>JXPlot</finalName>
            </configuration>
          </execution>

          <execution>
            <id>montemonitor</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>trick.montemonitor.MonteMonitorApplication</mainClass>
                </transformer>
              </transformers>
              <finalName>MM</finalName>
            </configuration>
          </execution>

        </executions>
      </plugin> 
    </plugins>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
   

        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
          <configuration>
            <compilerArgs>
              <arg>-g</arg>
              <arg>-Xlint:unchecked</arg>
              <arg>-Xlint:deprecation</arg>
            </compilerArgs>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
          <configuration>
            <printSummary>true</printSummary>
			<excludes>
			  <exclude> **/TrickDPApplicationTest.java 		</exclude>
			  <exclude> **/TrickQPApplicationTest.java 		</exclude>
			  <exclude> **/DreApplicationTest.java 			</exclude>
			  <exclude> **/MonteMonitorApplicationTest.java </exclude>
			  <exclude> **/MtvApplicationTest.java 			</exclude>
			  <exclude> **/SieApplicationTest.java 			</exclude>
			  <exclude> **/SnifferApplicationTest.java 		</exclude>
			  <exclude> **/TVApplicationTest.java 			</exclude>
			</excludes>
          </configuration>
        </plugin>

        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
