<?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 https://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>5.2.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>

    <!-- 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>
    </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>
        <!-- exclude to control dependency ordering ist it includes embedded Batik files -->
        <exclusion>
          <groupId>org.apache.sling</groupId>
          <artifactId>org.apache.sling.xss</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.7.0</version>
      <scope>test</scope>
    </dependency>
    <!-- Java ImageIO Support for SVG -->
    <dependency>
      <groupId>com.twelvemonkeys.imageio</groupId>
      <artifactId>imageio-batik</artifactId>
      <version>3.7.0</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 APIs in 'provided' scope to let the consuming project decide which to use -->
    <dependency>
      <groupId>com.adobe.aem</groupId>
      <artifactId>uber-jar</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>

    <!-- Sling Hamcrest - include as compile dependency for convenience -->
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.hamcrest</artifactId>
      <scope>compile</scope>
    </dependency>
    
    <!-- Put Sling XSS dependency last as it includes embedded Batik files -->
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.xss</artifactId>
      <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>io.wcm</groupId>
      <artifactId>io.wcm.testing.logging.logback</artifactId>
      <version>${logging-logback.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>
          <skip>true</skip>
          <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>
  </build>

</project>
