<?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.esa.snap</groupId>
        <artifactId>snap-engine</artifactId>
        <version>5.0.4</version>
    </parent>

    <artifactId>snap-desktop</artifactId>
    <packaging>pom</packaging>

    <name>SNAP Desktop Project</name>
    <description>Desktop GUI for SNAP based on NetBeans Platform</description>

    <properties>
        <netbeans.version>RELEASE82</netbeans.version>
        <doc-windows.version>1.0</doc-windows.version>
        <user.language>en</user.language>
    </properties>

    <modules>
        <module>snap-application</module>
        <module>snap-branding</module>
        <module>snap-rcp</module>
        <module>snap-tango</module>
        <module>snap-main</module>
        <module>nbexec</module>
        <module>tiled-editors</module>
        <module>doc-windows</module>

        <module>snap-binning-ui</module>
        <module>snap-classification-ui</module>
        <module>snap-collocation-ui</module>
        <module>snap-dem-ui</module>
        <module>snap-gpf-ui</module>
        <module>snap-graph-builder</module>
        <module>snap-help</module>
        <module>snap-land-cover-ui</module>
        <module>snap-pixel-extraction-ui</module>
        <module>snap-product-library</module>
        <module>snap-raster-ui</module>
        <module>snap-ui</module>
        <module>snap-unmix-ui</module>
        <module>snap-watermask-ui</module>
        <module>snap-worldwind</module>
        <module>snap-sta-ui</module>
        <module>snap-smart-configurator-ui</module>

        <!-- disabled: these modules don't have the required maturity right now. -->
        <!--<module>snap-opendap-ui</module>-->
        <!--<module>snap-scripting</module>-->
        <!--<module>snap-timeseries-ui</module>-->
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-api-annotations-common</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-api-progress</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-modules-autoupdate-services</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-modules-autoupdate-ui</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-modules-javahelp</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-modules-options-api</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-modules-settings</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-swing-tabcontrol</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-modules-sendopts</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-swing-outline</artifactId>
                <version>${netbeans.version}</version>
            </dependency>


            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-actions</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-awt</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-dialogs</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-loaders</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-explorer</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-filesystems</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-io</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-modules</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-nodes</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-util</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-util-lookup</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-windows</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.external</groupId>
                <artifactId>beansbinding-1.2.1</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-netbeans-api-progress-nb</artifactId>
                <version>${netbeans.version}</version>
            </dependency>
            <dependency>
                <groupId>org.netbeans.api</groupId>
                <artifactId>org-openide-util-ui</artifactId>
                <version>${netbeans.version}</version>
            </dependency>

            <dependency>
                <groupId>org.esa.snap.netbeans</groupId>
                <artifactId>doc-windows</artifactId>
                <version>${doc-windows.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>snap-rcp</artifactId>
                <version>${snap.version}</version>
            </dependency>

            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>snap-ui</artifactId>
                <version>${snap.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>snap-tango</artifactId>
                <version>${snap.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>snap-gpf-ui</artifactId>
                <version>${snap.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>snap-graph-builder</artifactId>
                <version>${snap.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>snap-statistics</artifactId>
                <version>${snap.version}</version>
            </dependency>
            <dependency>
                <groupId>org.esa.snap</groupId>
                <artifactId>snap-sta-ui</artifactId>
                <version>${snap.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <repositories>
        <repository>
            <id>snap-repo-public</id>
            <name>Public Maven Repository for SNAP</name>
            <url>http://nexus.senbox.net/nexus/content/repositories/public/</url>
            <releases>
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.3</version>
                <configuration>
                    <aggregate>true</aggregate>
                    <subpackages>
                        org.esa.snap.rcp:org.esa.snap.ui:
                    </subpackages>
                    <!-- Not possible to exclude packages; it is not considered by the plugin -->
                    <!--<excludePackageNames>*.internal:*.impl:com.bc.*</excludePackageNames>-->
                    <maxmemory>512M</maxmemory>
                    <doctitle>SNAP Desktop API</doctitle>
                    <windowtitle>SNAP Desktop API</windowtitle>
                    <quiet>true</quiet><!-- show only warnings and errors -->
                    <failOnError>false</failOnError> <!-- Actually we should fix the errors -->
                    <author>false</author>
                    <detectJavaApiLink>true</detectJavaApiLink>
                    <detectLinks>true</detectLinks>
                    <links>
                        <link>http://step.esa.int/docs/v5.0/apidoc/engine/</link>
                    </links>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
                <executions>
                    <execution>
                        <id>file-manifest</id>
                        <phase>process-sources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/nbm</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/nbm</directory>
                                    <filtering>true</filtering>
                                    <includes>
                                        <include>manifest.mf</include>
                                    </includes>
                                </resource>
                            </resources>

                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>
</project>
