<?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-desktop</artifactId>
        <version>7.0.0-SNAPSHOT</version>
    </parent>

    <artifactId>snap-rcp</artifactId>
    <packaging>nbm</packaging>

    <name>SNAP Desktop Rich Client Platform</name>
    <description>Modules providing API and GUI components for SNAP Desktop</description>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>nbm-maven-plugin</artifactId>
                <configuration>
                    <moduleDependencies>
                        <!--
                            Following "impl" dependency is required by class org.esa.snap.rcp.util.ContextGlobalExtenderImpl
                            which uses non-API class org.netbeans.modules.openide.windows.GlobalActionContextImpl
                        -->
                        <dependency>
                            <id>org.netbeans.api:org-openide-windows</id>
                            <type>impl</type>
                        </dependency>
                    </moduleDependencies>
                    <publicPackages>
                        <publicPackage>org.esa.snap.rcp.*</publicPackage>
                        <publicPackage>org.esa.snap.rcp.scripting</publicPackage>
                        <publicPackage>org.esa.snap.rcp.about</publicPackage>
                        <publicPackage>org.esa.snap.rcp.actions.*</publicPackage>
                        <publicPackage>org.esa.snap.rcp.util.*</publicPackage>
                    </publicPackages>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <!-- to have the jar plugin pickup the nbm generated manifest -->
                    <useDefaultManifestFile>true</useDefaultManifestFile>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>

        <!-- NetBeans Platform -->

        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-api-annotations-common</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-autoupdate-services</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-autoupdate-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-windows</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-modules</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-util</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-dialogs</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-loaders</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-util-lookup</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-explorer</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-settings</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-options-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-javahelp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-nodes</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-actions</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-awt</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-filesystems</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-io</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-swing-tabcontrol</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-swing-outline</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-api-progress</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-sendopts</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.external</groupId>
            <artifactId>beansbinding-1.2.1</artifactId>
        </dependency>

        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-api-progress-nb</artifactId>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-util-ui</artifactId>
        </dependency>

        <!-- SNAP NetBeans Goodies -->

        <dependency>
            <groupId>org.esa.snap.netbeans</groupId>
            <artifactId>tiled-editors</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.esa.snap.netbeans</groupId>
            <artifactId>doc-windows</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>snap-tango</artifactId>
        </dependency>
        <!--
             The following will end up in snap/modules/ext/org.esa.snap.snap-rcp/org.esa.snap/snap-main.jar
             where it can be used to launch and debug SNAP in IDEs other than NetBeans, e.g. IDEA or Eclipse
         -->
        <dependency>
            <groupId>org.esa.snap</groupId>
            <artifactId>snap-main</artifactId>
            <version>${snap.version}</version>
            <exclusions>
                <!--
                     We exclude nbexec here, because it is already expanded into snap-main.jar
                 -->
                <exclusion>
                    <groupId>org.esa.snap</groupId>
                    <artifactId>nbexec</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- SNAP Engine -->

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>ceres-core</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>ceres-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>ceres-jai</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>ceres-binding</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>ceres-glayer</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>snap-runtime</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>snap-core</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>snap-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>snap-gpf</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>snap-python</artifactId>
            <version>${snap.version}</version>
        </dependency>

        <!-- TODO: remove this dependency as soon as snap-statistics-op has been moved to snap-core
          (prerequisite: snap-gpf needs to be moved to snap-core before) -->
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>snap-statistics</artifactId>
        </dependency>

        <!-- Testing-->

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
        </dependency>

    </dependencies>

</project>