<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.sling</groupId>
        <artifactId>sling-bundle-parent</artifactId>
        <version>38</version>
        <relativePath />
    </parent>

    <artifactId>org.apache.sling.cms</artifactId>
    <name>Apache Sling - CMS</name>
    <description>An Apache Sling Reference CMS Application</description>
    <version>0.16.3-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <sling.protocol>http</sling.protocol>
        <sling.host>localhost</sling.host>
        <sling.port>8080</sling.port>
        <sling.username>admin</sling.username>
        <sling.password>admin</sling.password>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <sling.cms.java.version>8</sling.cms.java.version>
        <maven.compiler.source>1.${sling.cms.java.version}</maven.compiler.source>
        <maven.compiler.target>${maven.compiler.source}</maven.compiler.target>

        <!-- Common Versions -->
        <cms-version>${project.parent.version}</cms-version>
        <cocoon-serializers-charsets-version>1.0.2</cocoon-serializers-charsets-version>
        <commons-io-version>2.8.0</commons-io-version>
        <commons-lang3-version>3.11</commons-lang3-version>
        <commons-text-version>1.9</commons-text-version>
        <composum-version>1.12.4</composum-version>
        <geronimo-atinject_1-0_spec-version>1.2</geronimo-atinject_1-0_spec-version>
        <groovy-version>3.0.7</groovy-version>
        <httpclient-version>4.5.13</httpclient-version>
        <jackrabbit-version>2.20.2</jackrabbit-version>
        <jackson-version>2.12.0</jackson-version>
        <javax-annotation-api-version>1.3.2</javax-annotation-api-version>
        <jsoup-version>1.13.1</jsoup-version>
        <jsp-api-version>2.0</jsp-api-version>
        <jstl-version>1.2_1</jstl-version>
        <mockito-core-version>3.6.28</mockito-core-version>
        <oak-version>1.36</oak-version>
        <org-apache-sling-api-version>2.23.0</org-apache-sling-api-version>
        <org-apache-sling-caconfig-api-version>1.2.0</org-apache-sling-caconfig-api-version>
        <org-apache-sling-commons-johnzon-version>1.2.6</org-apache-sling-commons-johnzon-version>
        <org-apache-sling-engine-version>2.7.2</org-apache-sling-engine-version>
        <org-apache-sling-fileoptim-version>0.9.4</org-apache-sling-fileoptim-version>
        <org-apache-sling-models-api-version>1.3.8</org-apache-sling-models-api-version>
        <org-apache-sling-scripting-api-version>2.2.0</org-apache-sling-scripting-api-version>
        <org-apache-sling-scripting-jsp-taglib-version>2.4.0</org-apache-sling-scripting-jsp-taglib-version>
        <org-apache-sling-testing-sling-mock-junit4-version>2.6.2</org-apache-sling-testing-sling-mock-junit4-version>
        <org.apache.felix.webconsole-version>4.5.4</org.apache.felix.webconsole-version>
        <osgi-annotation-version>6.0.1</osgi-annotation-version>
        <pdfbox-version>2.0.21</pdfbox-version>
        <servlet-api-version>2.5</servlet-api-version>
        <slf4j-version>1.7.25</slf4j-version>
        <tika-version>1.25</tika-version>
    </properties>

    <modules>
        <module>api</module>
        <module>core</module>
        <module>transformer</module>
        <module>login</module>
        <module>ui</module>
        <module>reference</module>
        <module>feature</module>
        <module>archetype</module>
    </modules>

    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git</developerConnection>
        <url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-app-cms.git</url>
        <tag>HEAD</tag>
    </scm>

    <dependencyManagement>
        <dependencies>

            <!-- Other Apache Dependencies -->
            <dependency>
                <groupId>org.apache.cocoon</groupId>
                <artifactId>cocoon-serializers-charsets</artifactId>
                <version>${cocoon-serializers-charsets-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.webconsole</artifactId>
                <version>${org.apache.felix.webconsole-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.bundles</groupId>
                <artifactId>jstl</artifactId>
                <version>${jstl-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-atinject_1.0_spec</artifactId>
                <version>${geronimo-atinject_1-0_spec-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.jackrabbit</groupId>
                <artifactId>oak-jackrabbit-api</artifactId>
                <version>${oak-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.jackrabbit</groupId>
                <artifactId>jackrabbit-jcr-commons</artifactId>
                <version>${jackrabbit-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.jackrabbit</groupId>
                <artifactId>oak-core</artifactId>
                <version>${oak-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.jackrabbit</groupId>
                <artifactId>oak-jcr</artifactId>
                <version>${oak-version}</version>
                <scope>provided</scope>
            </dependency>

            <!-- Sling Dependencies -->
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.api</artifactId>
                <version>${org-apache-sling-api-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.caconfig.api</artifactId>
                <version>${org-apache-sling-caconfig-api-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.commons.classloader</artifactId>
                <version>1.4.4</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.commons.messaging</artifactId>
                <version>1.0.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.commons.messaging.mail</artifactId>
                <version>1.0.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.commons.johnzon</artifactId>
                <version>${org-apache-sling-commons-johnzon-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <artifactId>org.apache.sling.discovery.api</artifactId>
                <groupId>org.apache.sling</groupId>
                <version>1.0.4</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.distribution.api</artifactId>
                <version>0.4.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.engine</artifactId>
                <version>${org-apache-sling-engine-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.event.api</artifactId>
                <version>1.0.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.fileoptim</artifactId>
                <version>${org-apache-sling-fileoptim-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.i18n</artifactId>
                <version>2.5.14</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.jcr.resource</artifactId>
                <version>3.0.18</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.models.api</artifactId>
                <version>${org-apache-sling-models-api-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.rewriter</artifactId>
                <version>1.2.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.scripting.api</artifactId>
                <version>${org-apache-sling-scripting-api-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.scripting.jsp.taglib</artifactId>
                <version>${org-apache-sling-scripting-jsp-taglib-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.servlets.post</artifactId>
                <version>2.3.30</version>
                <scope>provided</scope>
            </dependency>

            <!-- Utilities / Misc -->
            <dependency>
                <groupId>com.github.jknack</groupId>
                <artifactId>handlebars</artifactId>
                <version>4.2.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>15.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.sun.mail</groupId>
                <artifactId>javax.mail</artifactId>
                <version>1.6.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>${javax-annotation-api-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jsp-api</artifactId>
                <version>${jsp-api-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>${servlet-api-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang3-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-math</artifactId>
                <version>2.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>${commons-text-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jetbrains</groupId>
                <artifactId>annotations</artifactId>
                <version>20.1.0</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>osgi.annotation</artifactId>
                <version>${osgi-annotation-version}</version>
                <scope>provided</scope>
            </dependency>

            <!-- Document Processing Dependencies -->
            <dependency>
                <artifactId>jsoup</artifactId>
                <groupId>org.jsoup</groupId>
                <version>${jsoup-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>net.coobird</groupId>
                <artifactId>thumbnailator</artifactId>
                <version>0.4.13</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>pdfbox</artifactId>
                <version>${pdfbox-version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>4.0.1</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-scratchpad</artifactId>
                <version>4.0.1</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.tika</groupId>
                <artifactId>tika-core</artifactId>
                <version>${tika-version}</version>
                <scope>provided</scope>
            </dependency>

            <!-- Testing Dependencies -->
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.testing.sling-mock.junit4</artifactId>
                <version>${org-apache-sling-testing-sling-mock-junit4-version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito-core-version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.testing.sling-mock-oak</artifactId>
                <version>2.1.10-1.16.0</version>
                <scope>test</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <configuration>
                    <excludes>
                        <!-- Used by maven-remote-resources-plugin -->
                        <exclude>src/main/appended-resources/META-INF/*</exclude>
                        <!-- Generated by maven-remote-resources-plugin -->
                        <exclude>velocity.log</exclude>
                        <!-- don't check anything in target -->
                        <exclude>target/*</exclude>
                        <!-- Fixing issues with deleted modules -->
                        <exclude>**/target/*</exclude>
                        <exclude>**/target/**/*</exclude>
                        <exclude>vagrant/**/*</exclude>
                        <exclude>node/**/*</exclude>
                        <exclude>node_modules/**/*</exclude>
                    </excludes>
                </configuration>
                <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>


        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>animal-sniffer-maven-plugin</artifactId>
                    <configuration>
                        <signature>
                            <groupId>org.codehaus.mojo.signature</groupId>
                            <artifactId>java1${sling.cms.java.version}</artifactId>
                            <version>1.0</version>
                        </signature>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

</project>