<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
 * Copyright (c) Codice Foundation
 *
 * This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either
 * version 3 of the License, or any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public License is distributed along with this program and can be found at
 * <http://www.gnu.org/licenses/lgpl.html>.
 *
 **/
-->
<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.codice.ddf</groupId>
        <artifactId>ui-admin</artifactId>
        <version>2.25.0</version>
    </parent>
    <artifactId>ui</artifactId>
    <groupId>org.codice.ddf</groupId>
    <name>DDF :: UI :: Admin</name>
    <packaging>bundle</packaging>
    <properties>
        <buildEnv>production</buildEnv>
        <!-- frontend properties -->
        <buildEnv>production</buildEnv>
        <backbone.modelbinder.version>1.1.0</backbone.modelbinder.version>
        <components-font-awesome.version>4.7.0</components-font-awesome.version>
        <dom4j.bundle.version>1.6.1_5</dom4j.bundle.version>
        <html5shiv.version>3.7.2</html5shiv.version>
        <iframe-resizer.version>2.6.2</iframe-resizer.version>
        <jknack.handlebars.version>2.0.0</jknack.handlebars.version>
        <marionette.version>2.4.5</marionette.version>
        <moment.version>2.20.1</moment.version>
        <node.version>v10.16.1</node.version>
        <picocontainer.version>1.3_1</picocontainer.version>
        <require-css.version>0.1.10</require-css.version>
        <underscore.version>1.8.3</underscore.version>
        <yarn.version>v1.17.3</yarn.version>

        <!-- maven plugin versions -->
        <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
        <!-- Must MANUALLY update this if the codice-maven project's version changes -->
        <codice-maven.version>0.3</codice-maven.version>
        <!-- Must MANUALLY update this if the ddf/support project's version changes -->
        <ddf.support.version>2.3.16</ddf.support.version>
        <frontend-maven-plugin.version>1.6.CODICE</frontend-maven-plugin.version>
        <maven-bundle-plugin.version>4.2.1</maven-bundle-plugin.version>
        <maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
        <maven-enforcer-plugin.version>1.4.1</maven-enforcer-plugin.version>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${maven-dependency-plugin.version}</version>
                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <artifactItems>
                        <artifactItem>
                            <groupId>org.codice.webjars</groupId>
                            <artifactId>backbone-poller</artifactId>
                            <version>1.1.3</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.codice.webjars</groupId>
                            <artifactId>backbone.modelbinder</artifactId>
                            <version>${backbone.modelbinder.version}</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.codice.webjars</groupId>
                            <artifactId>jquery-ui-multiselect-widget</artifactId>
                            <version>1.14</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.codice.webjars</groupId>
                            <artifactId>jqueryui-timepicker-addon</artifactId>
                            <version>1.4.5</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.codice.webjars</groupId>
                            <artifactId>marionette</artifactId>
                            <version>1.8.8</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.codice.webjars</groupId>
                            <artifactId>marionette</artifactId>
                            <version>2.4.1</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.codice.webjars</groupId>
                            <artifactId>openlayers3</artifactId>
                            <version>3.16.0</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.codice.webjars</groupId>
                            <artifactId>pnotify</artifactId>
                            <version>1.3.1</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.codice.webjars</groupId>
                            <artifactId>wellknown</artifactId>
                            <version>0.4.0</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>Backbone.Undo</artifactId>
                            <version>0.2.5</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>backbone-associations</artifactId>
                            <version>0.6.2</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>backbone-relational</artifactId>
                            <version>0.8.8</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>backbone</artifactId>
                            <version>1.1.2</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>bootstrap-multiselect</artifactId>
                            <version>0.9.3</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>bootstrap-select</artifactId>
                            <version>1.6.4</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>bootstrap</artifactId>
                            <version>3.3.7</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>cesiumjs</artifactId>
                            <version>1.22.0</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>components-font-awesome</artifactId>
                            <version>${components-font-awesome.version}</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>font-awesome</artifactId>
                            <version>4.6.3</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>font-awesome</artifactId>
                            <version>4.7.0</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>handlebars</artifactId>
                            <version>2.0.0</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>handlebars</artifactId>
                            <version>4.0.10</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>html5shiv</artifactId>
                            <version>${html5shiv.version}</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>iframe-resizer</artifactId>
                            <version>${iframe-resizer.version}</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>blueimp-file-upload</artifactId>
                            <version>9.28.0</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>jquery-ui</artifactId>
                            <version>1.12.1</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>jquery</artifactId>
                            <version>2.2.4</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>jquery</artifactId>
                            <version>3.2.1</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>js-cookie</artifactId>
                            <version>2.1.4</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.npm</groupId>
                            <artifactId>lodash</artifactId>
                            <version>4.17.15</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>marionette</artifactId>
                            <version>${marionette.version}</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>moment</artifactId>
                            <version>${moment.version}</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>perfect-scrollbar</artifactId>
                            <version>0.7.0</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>purl</artifactId>
                            <version>2.3.1</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>require-css</artifactId>
                            <version>${require-css.version}</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>requirejs-plugins</artifactId>
                            <version>1.0.3</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>requirejs</artifactId>
                            <version>2.1.15</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>requirejs</artifactId>
                            <version>2.3.3</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>spectrum</artifactId>
                            <version>1.8.0</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>spin.js</artifactId>
                            <version>1.3.3</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>spin.js</artifactId>
                            <version>2.3.2</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>underscore</artifactId>
                            <version>${underscore.version}</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.bower</groupId>
                            <artifactId>usng.js</artifactId>
                            <version>0.2.2</version>
                        </artifactItem>
                        <artifactItem>
                            <groupId>org.webjars.npm</groupId>
                            <artifactId>q</artifactId>
                            <version>1.4.1</version>
                        </artifactItem>
                    </artifactItems>
                    <outputDirectory>${project.build.directory}</outputDirectory>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.eirslett</groupId>
                <artifactId>frontend-maven-plugin</artifactId>
                <version>${frontend-maven-plugin.version}</version>
                <executions>
                    <execution>
                        <id>install node and yarn</id>
                        <goals>
                            <goal>install-node-and-yarn</goal>
                        </goals>
                        <configuration>
                            <nodeVersion>${node.version}</nodeVersion>
                            <yarnVersion>${yarn.version}</yarnVersion>
                            <nodeDownloadRoot>${node.download.root}</nodeDownloadRoot>
                            <yarnDownloadRoot>${yarn.download.root}</yarnDownloadRoot>
                        </configuration>
                    </execution>
                    <execution>
                        <id>yarn install</id>
                        <goals>
                            <goal>yarn</goal>
                        </goals>
                        <configuration>
                            <arguments>install --mutex network</arguments>
                        </configuration>
                    </execution>
                    <execution>
                        <id>build</id>
                        <goals>
                            <goal>yarn</goal>
                        </goals>
                        <configuration>
                            <arguments>run build</arguments>
                            <environmentVariables>
                                <NODE_ENV>${buildEnv}</NODE_ENV>
                            </environmentVariables>
                        </configuration>
                    </execution>
                    <execution>
                        <id>test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>yarn</goal>
                        </goals>
                        <configuration>
                            <arguments>run test</arguments>
                        </configuration>
                    </execution>
                    <execution>
                        <id>grunt build</id>
                        <goals>
                            <goal>grunt</goal>
                        </goals>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>${maven-bundle-plugin.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Web-ContextPath>/webjars</Web-ContextPath>
                        <_wab>${project.build.directory}/META-INF/resources/webjars,${project.build.directory}/classes/webapp</_wab>
                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                        <Import-Package>
                            org.eclipse.jetty.servlets;version="[9.2.19, 9.2.19]"
                        </Import-Package>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>${build-helper-maven-plugin.version}</version>
                <executions>
                    <execution>
                        <id>attach-artifacts</id>
                        <phase>package</phase>
                        <inherited>false</inherited>
                        <goals>
                            <goal>attach-artifact</goal>
                        </goals>
                        <configuration>
                            <artifacts>
                                <!-- NOTE: please don't edit these artifacts manually. -->
                                <![CDATA[ They were calculated by running "ace pom --fix". ]]>
                                <!-- Please re-run the command if the artifacts need to be updated. -->
                                <artifact>
                                    <file>target/features.xml</file>
                                    <type>xml</type>
                                    <classifier>features</classifier>
                                </artifact>
                                <artifact>
                                    <file>packages/admin-federation-ui/target/federation-admin-module.jar</file>
                                    <type>jar</type>
                                    <classifier>federation-admin-module</classifier>
                                </artifact>
                                <artifact>
                                    <file>packages/admin-metrics-ui/target/metrics-module.jar</file>
                                    <type>jar</type>
                                    <classifier>metrics-module</classifier>
                                </artifact>
                                <artifact>
                                    <file>packages/admin-security-certificate-ui/target/security-certificate-adminmodule.jar</file>
                                    <type>jar</type>
                                    <classifier>security-certificate-adminmodule</classifier>
                                </artifact>
                                <artifact>
                                    <file>packages/beta-admin-ui/target/beta-admin-ui.jar</file>
                                    <type>jar</type>
                                    <classifier>beta-admin-ui</classifier>
                                </artifact>
                                <artifact>
                                    <file>packages/catalog-admin-module-layout/target/default-layout.jar</file>
                                    <type>jar</type>
                                    <classifier>default-layout</classifier>
                                </artifact>
                                <artifact>
                                    <file>packages/catalog-admin-module-maplayers/target/map-layers.jar</file>
                                    <type>jar</type>
                                    <classifier>map-layers</classifier>
                                </artifact>
                                <artifact>
                                    <file>packages/catalog-admin-module-sources/target/sources-module.jar</file>
                                    <type>jar</type>
                                    <classifier>sources-module</classifier>
                                </artifact>
                                <artifact>
                                    <file>packages/security-logout/target/security-logout.jar</file>
                                    <type>jar</type>
                                    <classifier>security-logout</classifier>
                                </artifact>
                                <artifact>
                                    <file>packages/ui/target/admin-ui.jar</file>
                                    <type>jar</type>
                                    <classifier>admin-ui</classifier>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>${maven-enforcer-plugin.version}</version>
                <dependencies>
                    <dependency>
                        <groupId>ddf.support</groupId>
                        <artifactId>artifact-size-enforcer</artifactId>
                        <version>${ddf.support.version}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>check-artifact-size</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <ArtifactSizeEnforcerRule implementation="org.codice.maven.artifactsize.ArtifactSizeEnforcerRule">
                                    <maxArtifactSize>48.4_MB</maxArtifactSize>
                                </ArtifactSizeEnforcerRule>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <property>
                    <name>webBuildEnv</name>
                    <value>dev</value>
                </property>
            </activation>
            <properties>
                <buildEnv>development</buildEnv>
            </properties>
        </profile>
    </profiles>
</project>

