<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<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">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.activemq</groupId>
    <artifactId>artemis-hawtio-pom</artifactId>
    <version>2.14.0-SNAPSHOT</version>
  </parent>

  <artifactId>artemis-console</artifactId>
  <name>ActiveMQ Artemis Console</name>

  <!-- hawtio plugins are almost always war files -->
  <packaging>war</packaging>

  <properties>
    <activemq.basedir>${project.basedir}/../..</activemq.basedir>
  </properties>
  
  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>${servlet-api-version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>io.hawt</groupId>
      <artifactId>hawtio-web</artifactId>
      <version>${hawtio.version}</version>
      <!--
        NOTE this WAR dependency type which enables this WAR to
        inherit all the plugins and content from the core hawtio-base WAR
      -->
      <type>war</type>
    </dependency>

    <!-- lets mark dependencies from the WAR as provided to avoid jetty:run adding duplicates -->
    <dependency>
      <groupId>io.hawt</groupId>
      <artifactId>hawtio-core</artifactId>
      <version>${hawtio.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>io.hawt</groupId>
      <artifactId>hawtio-git</artifactId>
      <version>${hawtio.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>${guava.version}</version>
      <!-- License: Apache 2.0 -->
      <!-- see https://github.com/google/guava/issues/3006: checker-compat-qual could be excluded -->
      <exclusions>
        <exclusion>
          <groupId>org.checkerframework</groupId>
          <artifactId>checker-compat-qual</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>${war-plugin-version}</version>
        <configuration>
          <useCache>true</useCache>
          <packagingExcludes>**/lib/slf4j*.jar</packagingExcludes>
          <failOnMissingWebXml>false</failOnMissingWebXml>
          <webResources>
            <resource>
              <filtering>true</filtering>
              <directory>src/main/webapp</directory>
              <includes>
                <include>**/*.md</include>
                <!-- include any other file types you want to filter -->
              </includes>
            </resource>
          </webResources>
          <overlays>
            <overlay>
              <groupId>io.hawt</groupId>
              <artifactId>hawtio-web</artifactId>
              <excludes>
                <exclude>bower_components/bootstrap/docs/build/**/*</exclude>
                <exclude>bower_components/bootstrap/docs/examples/**/*</exclude>
                <exclude>bower_components/bootstrap/docs/templates/**/*</exclude>
                <exclude>bower_components/bootstrap/docs/assets/img/examples/**/*</exclude>
                <exclude>bower_components/bootstrap/docs/assets/img/example-sites/**/*</exclude>
                <exclude>bower_components/bootstrap/js/tests/**/*</exclude>
                <exclude>bower_components/bootstrap/docs/**/*.html</exclude>
                <exclude>bower_components/Font-Awesome/src/**/*</exclude>
                <exclude>bower_components/d3/src/**/*</exclude>
                <exclude>bower_components/d3/test/**/*</exclude>
                <exclude>bower_components/elastic.js/src/**/*</exclude>
                <exclude>bower_components/elastic.js/tests/**/*</exclude>
                <exclude>bower_components/elastic.js/examples/**/*</exclude>
                <exclude>bower_components/jquery/src/**/*</exclude>
                <exclude>bower_components/jquery/test/**/*</exclude>
                <exclude>bower_components/js-logger/src/**/*</exclude>
                <excluse>WEB-INF/lib/guava*.jar</excluse>
                <excluse>WEB-INF/lib/slf4j-api*.jar</excluse>
                <excluse>lib/camelModel.js</excluse>
                <exclude>app/activemq/**/*</exclude>
                <exclude>app/api/**/*</exclude>
                <exclude>app/apm/**/*</exclude>
                <exclude>app/camel/**/*</exclude>
                <exclude>app/camin/**/*</exclude>
                <exclude>app/datatable/**/*</exclude>
                <exclude>app/dozer/**/*</exclude>
                <exclude>app/elasticsearch/**/*</exclude>
                <exclude>app/fabric/**/*</exclude>
                <exclude>app/fabric-deploy/**/*</exclude>
                <exclude>app/fabric-requirements/**/*</exclude>
                <exclude>app/forcegraph/**/*</exclude>
                <exclude>app/git/**/*</exclude>
                <exclude>app/health/**/*</exclude>
                <exclude>app/ide/**/*</exclude>
                <exclude>app/infinispan/**/*</exclude>
                <exclude>app/jboss/**/*</exclude>
                <exclude>app/jclouds/**/*</exclude>
                <exclude>app/junit/**/*</exclude>
                <exclude>app/maven/**/*</exclude>
                <exclude>app/openejb/**/*</exclude>
                <exclude>app/quartz/**/*</exclude>
                <exclude>app/site/**/*</exclude>
                <exclude>app/springbatch/**/*</exclude>
                <exclude>app/springBoot/**/*</exclude>
                <exclude>app/tomcat/**/*</exclude>
                <exclude>app/wiki-drop/**/*</exclude>
              </excludes>
            </overlay>
          </overlays>
        </configuration>
        <executions>
          <execution>
            <id>prepare-war</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>exploded</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.google.code.maven-replacer-plugin</groupId>
        <artifactId>replacer</artifactId>
        <version>1.5.3</version>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>replace</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <file>${project.build.directory}/${project.build.finalName}/index.html</file>
          <replacements>
            <replacement>
              <token>&lt;title&gt;.*&lt;/title&gt;</token>
              <value>&lt;title&gt;${project.name}&lt;/title&gt;</value>
            </replacement>
          </replacements>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <filesets>
            <fileset>
              <directory>${basedir}/overlays</directory>
              <includes>
                <include>**/*.*</include>
              </includes>
              <followSymlinks>false</followSymlinks>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
