<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/maven-v4_0_0.xsd">
<!-- the version of maven's project object model -->
  <modelVersion>4.0.0</modelVersion>
<!-- Parent POM -->
  <parent>
    <groupId>org.sonatype.nexus</groupId>
    <artifactId>nexus</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>
  <!-- a unique name for this project -->
  <artifactId>nexus-webapp</artifactId>
  <!--we don't need this to be a jar except that the app assembler crashes if it's not-->
  <packaging>jar</packaging>
  <!-- a short but descriptive name for the project -->
  <name>Nexus (Web Application frontend)</name>
  <properties>
    <!-- NOTE: MNG-3355 will fix this so we can use ${project.build.directory} instead of the hard-coded target directory. -->
    <jsw-input>target/jsw-template</jsw-input>
    <jsw-output>jsw-filtered</jsw-output>
    <nexus-tools-input>target/nexus-tools</nexus-tools-input>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.sonatype.appbooter.plexus-platforms</groupId>
      <artifactId>plexus-platform-jsw</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.sonatype.plexus</groupId>
      <artifactId>plexus-jsecurity</artifactId>
    </dependency>
    <dependency>
      <groupId>org.sonatype.nexus</groupId>
      <artifactId>nexus-rest-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.sonatype.nexus.tools</groupId>
      <artifactId>nexus-migration-app</artifactId>
      <version>${project.version}</version>
      <classifier>cli</classifier>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.sonatype.jsw-binaries</groupId>
      <artifactId>jsw-binaries</artifactId>
      <type>zip</type>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  <build>
    <filters>
      <filter>src/main/filters/assemble.properties</filter>
    </filters>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
      </resource>
      <resource>
        <directory>src/main/filtered-resources</directory>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>src/main/bundle</directory>
        <filtering>false</filtering>
        <targetPath>../plexus-home</targetPath>
      </resource>
      <resource>
        <directory>${jsw-input}</directory>
        <filtering>true</filtering>
        <excludes>
          <exclude>**/*.so</exclude>
          <exclude>**/*.dll</exclude>
          <exclude>**/*.jnilib</exclude>
          <exclude>**/*.exe</exclude>
          <exclude>**/*.a</exclude>
          <exclude>**/*.sl</exclude>
          <exclude>**/wrapper</exclude>
        </excludes>
        <targetPath>../${jsw-output}</targetPath>
      </resource>
      <resource>
        <directory>${jsw-input}</directory>
        <filtering>false</filtering>
        <includes>
          <include>**/*.so</include>
          <include>**/*.dll</include>
          <include>**/*.jnilib</include>
          <include>**/*.exe</include>
          <include>**/*.a</include>
          <include>**/*.sl</include>
          <include>**/wrapper</include>
        </includes>
        <targetPath>../${jsw-output}</targetPath>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.0</version>
        <executions>
          <execution>
            <id>unpack-jsw</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>unpack-dependencies</goal>
            </goals>
            <configuration>
              <includeArtifactIds>jsw-binaries</includeArtifactIds>
              <outputDirectory>${jsw-input}</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>unpack-nexus-tools</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <includeArtifactIds>nexus-migration-app</includeArtifactIds>
              <outputDirectory>${nexus-tools-input}</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-sources</phase>
            <configuration>
              <tasks>
                <property name="targetRoot" value="${basedir}/target/gzip-web-content"/>
                <property name="sourceRoot" value="${basedir}/src/main/webapp"/>
                <mkdir dir="${targetRoot}/ext-2.0.2/resources/css"/>
                <mkdir dir="${targetRoot}/style"/>
                <mkdir dir="${targetRoot}/ext-2.0.2/adapter/ext"/>
                <mkdir dir="${targetRoot}/js/filetree/js"/>
                <mkdir dir="${targetRoot}/js/extensions"/>
                <mkdir dir="${targetRoot}/js/repoServer"/>
                <gzip src="${sourceRoot}/ext-2.0.2/resources/css/ext-all.css" destfile="${targetRoot}/ext-2.0.2/resources/css/ext-all.css.gz"/>
                <gzip src="${sourceRoot}/ext-2.0.2/resources/css/xtheme-gray.css" destfile="${targetRoot}/ext-2.0.2/resources/css/xtheme-gray.css.gz"/>
                <gzip src="${sourceRoot}/style/Sonatype.css" destfile="${targetRoot}/style/Sonatype.css.gz"/>
                <gzip src="${sourceRoot}/ext-2.0.2/adapter/ext/ext-base-debug-sonatype.js" destfile="${targetRoot}/ext-2.0.2/adapter/ext/ext-base-debug-sonatype.js.gz"/>
                <gzip src="${sourceRoot}/ext-2.0.2/ext-all-debug-sonatype.js" destfile="${targetRoot}/ext-2.0.2/ext-all-debug-sonatype.js.gz"/>
                <gzip src="${sourceRoot}/js/filetree/js/Ext.ux.form.BrowseButton.js" destfile="${targetRoot}/js/filetree/js/Ext.ux.form.BrowseButton.js.gz"/>
                <gzip src="${sourceRoot}/js/Sonatype.js" destfile="${targetRoot}/js/Sonatype.js.gz"/>
                <gzip src="${sourceRoot}/js/extensions/Ext.messagebox.js" destfile="${targetRoot}/js/extensions/Ext.messagebox.js.gz"/>
                <gzip src="${sourceRoot}/js/extensions/Ext.form.js" destfile="${targetRoot}/js/extensions/Ext.form.js.gz"/>
                <gzip src="${sourceRoot}/js/extensions/SearchField.js" destfile="${targetRoot}/js/extensions/SearchField.js.gz"/>
                <gzip src="${sourceRoot}/js/extensions/Sonatype.ext.FeedGrid.js" destfile="${targetRoot}/js/extensions/Sonatype.ext.FeedGrid.js.gz"/>
                <gzip src="${sourceRoot}/js/extensions/Ext.tree.js" destfile="${targetRoot}/js/extensions/Ext.tree.js.gz"/>
                <gzip src="${sourceRoot}/js/extensions/TwinPanelController.js" destfile="${targetRoot}/js/extensions/TwinPanelController.js.gz"/>                
                <gzip src="${sourceRoot}/js/Sonatype.utils.js" destfile="${targetRoot}/js/Sonatype.utils.js.gz"/>
                <gzip src="${sourceRoot}/js/Sonatype.config.js" destfile="${targetRoot}/js/Sonatype.config.js.gz"/>
                <gzip src="${sourceRoot}/js/Sonatype.lib.js" destfile="${targetRoot}/js/Sonatype.lib.js.gz"/>
                <gzip src="${sourceRoot}/js/Sonatype.resources.js" destfile="${targetRoot}/js/Sonatype.resources.js.gz"/>
                <gzip src="${sourceRoot}/js/Sonatype.view.js" destfile="${targetRoot}/js/Sonatype.view.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.referenceData.js" destfile="${targetRoot}/js/repoServer/repoServer.referenceData.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.resources.js" destfile="${targetRoot}/js/repoServer/repoServer.resources.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.FeedViewPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.FeedViewPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.SearchResultGrid.js" destfile="${targetRoot}/js/repoServer/repoServer.SearchResultGrid.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.SearchPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.SearchPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.LogsViewPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.LogsViewPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.ServerEditPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.ServerEditPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.GroupsEditPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.GroupsEditPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.RoutesEditPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.RoutesEditPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.SchedulesEditPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.SchedulesEditPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.UserEditPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.UserEditPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.RoleEditPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.RoleEditPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.PrivilegeEditPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.PrivilegeEditPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.AbstractRepoPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.AbstractRepoPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.RepoEditPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.RepoEditPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.FileUploadPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.FileUploadPanel.js.gz"/>  
                <gzip src="${sourceRoot}/js/repoServer/repoServer.RepoMaintPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.RepoMaintPanel.js.gz"/>
                <gzip src="${sourceRoot}/js/repoServer/repoServer.RepoServer.js" destfile="${targetRoot}/js/repoServer/repoServer.RepoServer.js.gz"/>  
                <gzip src="${sourceRoot}/js/repoServer/repoServer.RepoTargetEditPanel.js" destfile="${targetRoot}/js/repoServer/repoServer.RepoTargetEditPanel.js.gz"/>
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      
      
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/bundle.xml</descriptor>
            <!--base changed...no updates for this version-->
            <!--<descriptor>src/main/assembly/base.xml</descriptor>
                               <descriptor>src/main/assembly/app.xml</descriptor>-->
          </descriptors>
          <tarLongFileMode>gnu</tarLongFileMode>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.sonatype.plugins</groupId>
        <artifactId>plx-maven-plugin</artifactId>
        <configuration>
          <includeTestClasspath>true</includeTestClasspath>
          <!-- prependClasspaths>
            <prependClasspath>${project.build.directory}/plexus-home/conf</prependClasspath>
          </prependClasspaths-->
          <systemProperties>
            <plexus.host.control.socket.enabled>true</plexus.host.control.socket.enabled>
          </systemProperties>
          <platformArtifact>
            <groupId>org.sonatype.appbooter.plexus-platforms</groupId>
            <artifactId>plexus-platform-base</artifactId>
            <version>${plexus.appbooter.version}</version>
          </platformArtifact>
          <debugOutput>true</debugOutput>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>