<?xml version="1.0" encoding="UTF-8"?>
<!--
  #%L
  wcm.io
  %%
  Copyright (C) 2018 wcm.io
  %%
  Licensed 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.
  #L%
  -->

<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>io.wcm</groupId>
    <artifactId>io.wcm.testing.aem-mock.parent</artifactId>
    <version>2.7.2</version>
    <relativePath>../parent/pom.xml</relativePath>
  </parent>

  <groupId>io.wcm</groupId>
  <artifactId>io.wcm.testing.aem-mock.core</artifactId>
  <packaging>jar</packaging>

  <name>AEM Mocks Core</name>
  <url>${site.url}/testing/aem-mock/</url>

  <dependencies>

    <!-- Make sure the following dependencies use the version from the imported AEM dependencies -->
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.api</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>jackrabbit-jcr-commons</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.commons.osgi</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.resourceresolver</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.serviceusermapper</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.jcr.api</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.jcr.resource</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.commons.mime</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.commons.json</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.commons.classloader</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.settings</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.i18n</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.models.impl</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>oak-jcr</artifactId>
      <scope>compile</scope>
    </dependency>

    <!-- Has to be put first in dependencies to make sure updates oak/jcr dependencies
         are loaded before AEM API deps -->
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.sling-mock-oak</artifactId>
      <version>${sling-mock.oak.version}</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.apache.sling</groupId>
          <artifactId>org.apache.sling.testing.sling-mock.core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.jcr-mock</artifactId>
      <version>${jcr-mock.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.osgi-mock.core</artifactId>
      <version>${osgi-mock.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.sling-mock.core</artifactId>
      <version>${sling-mock.version}</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>servlet-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.sling</groupId>
          <artifactId>org.apache.sling.api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.sling</groupId>
          <artifactId>org.apache.sling.models.api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.sling</groupId>
          <artifactId>org.apache.sling.jcr.api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.sling</groupId>
          <artifactId>org.apache.sling.jcr.resource</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.sling</groupId>
          <artifactId>org.apache.sling.models.impl</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.sling</groupId>
          <artifactId>org.apache.sling.resourceresolver</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.sling</groupId>
          <artifactId>org.apache.sling.settings</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.resourceresolver-mock</artifactId>
      <version>${resourceresolver-mock.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.servlet-helpers</artifactId>
      <version>${servlet-helpers.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.jackrabbit.vault</groupId>
      <artifactId>org.apache.jackrabbit.vault</artifactId>
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-imaging</artifactId>
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <scope>compile</scope>
    </dependency>

    <!-- Java ImageIO Support for TIFF -->
    <dependency>
      <groupId>com.twelvemonkeys.imageio</groupId>
      <artifactId>imageio-tiff</artifactId>
      <version>3.4.1</version>
      <scope>test</scope>
    </dependency>
    <!-- Java ImageIO Support for SVG -->
    <dependency>
      <groupId>com.twelvemonkeys.imageio</groupId>
      <artifactId>imageio-batik</artifactId>
      <version>3.4.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.xmlgraphics</groupId>
      <artifactId>batik-transcoder</artifactId>
      <version>1.9.1</version>
      <scope>test</scope>
    </dependency>

    <!-- Include AEM and OSGi APIs in 'provided' scope to let the consuming project decide which to use -->
    <dependency>
      <groupId>com.adobe.aem</groupId>
      <artifactId>uber-jar</artifactId>
      <classifier>apis</classifier>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>osgi.core</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>osgi.cmpn</artifactId>
      <scope>provided</scope>
    </dependency>
    
    <!-- Workaround for AEM 6.5: The new uber-jar does no longer contain the package com.day.imageio.plugins -->
    <dependency>
      <groupId>com.day.commons</groupId>
      <artifactId>day-commons-gfx</artifactId>
      <version>2.1.28</version>
      <scope>compile</scope>
    </dependency>

    <!-- JUnit 4 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.wcm</groupId>
      <artifactId>io.wcm.testing.junit-commons</artifactId>
      <version>1.0.4</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.logging-mock</artifactId>
      <version>${logging-mock.version}</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

  <build>

    <plugins>

      <!-- do not generate site for this project -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <inherited>false</inherited>
        <configuration>
          <skipDeploy>true</skipDeploy>
        </configuration>
      </plugin>

      <plugin>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>bnd-maven-plugin</artifactId>
        <configuration>
          <bnd>
            Sling-Nodetypes: \
              SLING-INF/nodetypes/aem-core-replication.cnd,\
              SLING-INF/nodetypes/aem-tagging.cnd,\
              SLING-INF/nodetypes/aem-commons.cnd,\
              SLING-INF/nodetypes/aem-dam.cnd,\
              SLING-INF/nodetypes/aem-dam1.cnd,\
              SLING-INF/nodetypes/vlt.cnd
          </bnd>
        </configuration>
      </plugin>
      <plugin>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>bnd-baseline-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
          </archive>
        </configuration>
        <executions>
          <!-- Publish test artifact -->
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

    </plugins>
    <pluginManagement>
      <plugins>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <!-- Travis build workaround, see https://github.com/travis-ci/travis-ci/issues/3396 -->
            <argLine>-Xmx1024m -XX:MaxPermSize=512M</argLine>
          </configuration>
        </plugin>

        <!-- Skip until https://github.com/checkstyle/checkstyle/issues/3238 / https://github.com/checkstyle/checkstyle/issues/3238 is solved -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <configuration>
            <skip>true</skip>
          </configuration>
        </plugin>
        
      </plugins>
    </pluginManagement>
  </build>

</project>
