<?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>43</version>
        <relativePath />
    </parent>

    <artifactId>org.apache.sling.cms</artifactId>
    <name>Apache Sling - CMS</name>
    <description>An Apache Sling Reference CMS Application</description>
    <version>1.0.5-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>
        <asm-version>9.1</asm-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.12.0</commons-lang3-version>
        <commons-text-version>1.9</commons-text-version>
        <composum-nodes-version>2.6.6</composum-nodes-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.2</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.6</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.6.0</org.apache.felix.webconsole-version>
        <osgi-annotation-version>8.0.0</osgi-annotation-version>
        <guava-version>15.0</guava-version>
        <pdfbox-version>2.0.23</pdfbox-version>
        <servlet-api-version>2.5</servlet-api-version>
        <slf4j-version>1.7.25</slf4j-version>
        <tika-version>1.26</tika-version>
    </properties>

    <modules>
        <module>api</module>
        <module>core</module>
        <module>login</module>
        <module>ui</module>
        <module>reference</module>
        <module>feature</module>
        <module>archetype</module>
        <module>it</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.16</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.jcr.resource</artifactId>
                <version>3.0.22</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.3.0</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.4.2</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>${guava-version}</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.14</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>5.0.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-scratchpad</artifactId>
                <version>5.0.0</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>
                        <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>