<!--
  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-pom</artifactId>
      <version>2.39.0-SNAPSHOT</version>
      <relativePath>../artemis-pom/pom.xml</relativePath>
   </parent>

   <artifactId>artemis-server</artifactId>
   <packaging>jar</packaging>
   <name>ActiveMQ Artemis Server</name>

   <dependencies>
      <!-- logging -->
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-log-annotation-processor</artifactId>
         <version>${project.version}</version>
         <scope>provided</scope>
         <!-- Superfluous, except for osgi manifest handling -->
         <optional>true</optional>
      </dependency>
      <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-slf4j2-impl</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>com.github.ben-manes.caffeine</groupId>
         <artifactId>caffeine</artifactId>
         <exclusions>
            <exclusion>
               <groupId>org.checkerframework</groupId>
               <artifactId>checker-qual</artifactId>
            </exclusion>
            <exclusion>
               <groupId>com.google.errorprone</groupId>
               <artifactId>error_prone_annotations</artifactId>
            </exclusion>
         </exclusions>
      </dependency>
      <dependency>
         <groupId>com.google.code.findbugs</groupId>
         <artifactId>jsr305</artifactId>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-commons</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-selector</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-journal</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-jdbc-store</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-core-client</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-lockmanager-api</artifactId>
      </dependency>
      <dependency>
         <groupId>org.jctools</groupId>
         <artifactId>jctools-core</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-buffer</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-codec-http</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-common</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-handler</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport-native-epoll</artifactId>
         <classifier>${netty-transport-native-epoll-classifier}</classifier>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport-classes-epoll</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport-native-kqueue</artifactId>
         <classifier>${netty-transport-native-kqueue-classifier}</classifier>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport-classes-kqueue</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-codec</artifactId>
      </dependency>
      <dependency>
         <groupId>commons-beanutils</groupId>
         <artifactId>commons-beanutils</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-lang3</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-configuration2</artifactId>
      </dependency>
      <dependency>
         <groupId>commons-collections</groupId>
         <artifactId>commons-collections</artifactId>
      </dependency>
      <dependency>
         <groupId>io.micrometer</groupId>
         <artifactId>micrometer-core</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>activemq-artemis-native</artifactId>
         <version>${activemq-artemis-native-version}</version>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.junit.jupiter</groupId>
         <artifactId>junit-jupiter-api</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.junit.jupiter</groupId>
         <artifactId>junit-jupiter-engine</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.junit.vintage</groupId>
         <artifactId>junit-vintage-engine</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-unit-test-support</artifactId>
         <version>${project.version}</version>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.apache.directory.server</groupId>
         <artifactId>apacheds-protocol-ldap</artifactId>
         <version>${directory-version}</version>
         <scope>test</scope>
         <exclusions>
            <!-- exclude bcprov-jdk15on to avoid conflicts with bcprov-jdk18on -->
            <exclusion>
               <groupId>org.bouncycastle</groupId>
               <artifactId>bcprov-jdk15on</artifactId>
            </exclusion>
         </exclusions>
      </dependency>
      <dependency>
         <groupId>org.apache.directory.server</groupId>
         <artifactId>apacheds-test-framework</artifactId>
         <version>${directory-version}</version>
         <scope>test</scope>
         <exclusions>
            <exclusion>
               <groupId>xml-apis</groupId>
               <artifactId>xml-apis</artifactId>
            </exclusion>
         </exclusions>
      </dependency>
      <dependency>
         <groupId>org.apache.directory.server</groupId>
         <artifactId>apacheds-server-annotations</artifactId>
         <version>${directory-version}</version>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.apache.directory.server</groupId>
         <artifactId>apacheds-core-annotations</artifactId>
         <version>${directory-version}</version>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.apache.directory.jdbm</groupId>
         <artifactId>apacheds-jdbm2</artifactId>
         <version>${directory-jdbm2-version}</version>
         <scope>test</scope>
      </dependency>
      <!-- db test -->
      <dependency>
         <groupId>org.apache.derby</groupId>
         <artifactId>derby</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.apache.derby</groupId>
         <artifactId>derbytools</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-junit-jupiter</artifactId>
         <scope>test</scope>
      </dependency>

      <!-- The johnzon-core and json-api contents are repackaged in -commons,
           However maven can still need them during tests, which run against
           the original -commons classes when built+run in the same reactor,
           and not the jar containing the shaded bits. -->
      <dependency>
         <groupId>org.apache.johnzon</groupId>
         <artifactId>johnzon-core</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>jakarta.json</groupId>
         <artifactId>jakarta.json-api</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.mock-server</groupId>
         <artifactId>mockserver-netty</artifactId>
         <version>${mockserver.version}</version>
         <scope>test</scope>
         <exclusions>
            <exclusion>
               <groupId>net.minidev</groupId>
               <artifactId>json-smart</artifactId>
            </exclusion>
         </exclusions>
      </dependency>
      <dependency>
         <groupId>org.mock-server</groupId>
         <artifactId>mockserver-core</artifactId>
         <version>${mockserver.version}</version>
         <scope>test</scope>
         <exclusions>
            <exclusion>
               <groupId>net.minidev</groupId>
               <artifactId>json-smart</artifactId>
            </exclusion>
            <exclusion>
               <groupId>javax.servlet</groupId>
               <artifactId>javax.servlet-api</artifactId>
            </exclusion>
         </exclusions>
      </dependency>
      <dependency>
         <groupId>org.mock-server</groupId>
         <artifactId>mockserver-client-java</artifactId>
         <version>${mockserver.version}</version>
         <scope>test</scope>
      </dependency>
   </dependencies>

   <profiles>
      <profile>
         <id>release</id>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-javadoc-plugin</artifactId>
                  <configuration>
                     <useStandardDocletOptions>true</useStandardDocletOptions>
                     <minmemory>128m</minmemory>
                     <maxmemory>512m</maxmemory>
                     <noindex>true</noindex>
                     <sourceFileIncludes>
                        <sourceFileInclude>**/org/apache/activemq/artemis/spi/**/*.java</sourceFileInclude>
                        <sourceFileInclude>**/org/apache/activemq/artemis/core/config/**/*.java</sourceFileInclude>
                        <sourceFileInclude>**/org/apache/activemq/artemis/core/server/plugin/**/*.java</sourceFileInclude>
                     </sourceFileIncludes>
                     <sourceFileExcludes>
                        <sourceFileExclude>**/impl/**/*.java</sourceFileExclude>
                        <sourceFileExclude>**/*Impl.java</sourceFileExclude>
                     </sourceFileExcludes>
                  </configuration>
                  <executions>
                     <execution>
                        <id>javadocs</id>
                        <goals>
                           <goal>jar</goal>
                        </goals>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>
</project>