<?xml version="1.0"?>
<!--
  ~ Copyright (c) 2011-2019 Contributors to the Eclipse Foundation
  ~
  ~ This program and the accompanying materials are made available under the
  ~ terms of the Eclipse Public License 2.0 which is available at
  ~
  ~ http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
  ~ which is available at https://www.apache.org/licenses/LICENSE-2.0.
  ~
  ~ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
  ~
  --><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.vertx</groupId>
            
        <artifactId>vertx-parent</artifactId>
            
        <version>19</version>
          
    </parent>
      
    <artifactId>vertx-core</artifactId>
      
    <version>4.5.10</version>
      
    <name>Vert.x Core</name>
      
    <licenses>
            
        <license>
                  
            <name>The Apache Software License, Version 2.0</name>
                  
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
                  
            <distribution>repo</distribution>
                
        </license>
            
        <license>
                  
            <name>Eclipse Public License - v 2.0</name>
                  
            <url>http://www.eclipse.org/legal/epl-v20.html</url>
                  
            <distribution>repo</distribution>
                
        </license>
          
    </licenses>
      
    <scm>
            
        <connection>scm:git:git@github.com:eclipse/vert.x.git</connection>
            
        <developerConnection>scm:git:git@github.com:eclipse/vert.x.git</developerConnection>
            
        <url>git@github.com:eclipse/vert.x.git</url>
          
    </scm>
      
    <properties>
            
        <junit.version>4.13.1</junit.version>
            
        <assertj.version>3.4.1</assertj.version>
            
        <apacheds-protocol-dns.version>1.5.7</apacheds-protocol-dns.version>
            
        <generated.dir>${project.basedir}/src/main/generated</generated.dir>
            
        <stack.version>4.5.10</stack.version>
            
        <jmh.version>1.36</jmh.version>
            
        <vertx.testNativeTransport>false</vertx.testNativeTransport>
            
        <vertx.testDomainSockets>false</vertx.testDomainSockets>
            
        <jar.manifest>${project.basedir}/src/main/resources/META-INF/MANIFEST.MF</jar.manifest>
          
    </properties>
      
    <dependencyManagement>
            
        <dependencies>
                  
            <dependency>
                        
                <groupId>io.vertx</groupId>
                        
                <artifactId>vertx-dependencies</artifactId>
                        
                <version>${stack.version}</version>
                        
                <type>pom</type>
                        
                <scope>import</scope>
                      
            </dependency>
                
        </dependencies>
          
    </dependencyManagement>
      
    <dependencies>
            
        <!-- We depend on the specific Netty dependencies not netty-all to reduce the size of fatjars -->
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-common</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-handler</artifactId>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-handler-proxy</artifactId>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-codec-http</artifactId>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-codec-http2</artifactId>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-resolver</artifactId>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-resolver-dns</artifactId>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-codec-haproxy</artifactId>
                  
            <optional>true</optional>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-transport-native-epoll</artifactId>
                  
            <optional>true</optional>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-transport-native-kqueue</artifactId>
                  
            <optional>true</optional>
                
        </dependency>
            
        <!-- Jackson -->
            
        <dependency>
                  
            <groupId>com.fasterxml.jackson.core</groupId>
                  
            <artifactId>jackson-core</artifactId>
                
        </dependency>
            
        <dependency>
                  
            <groupId>com.fasterxml.jackson.core</groupId>
                  
            <artifactId>jackson-databind</artifactId>
                  
            <optional>true</optional>
                
        </dependency>
            
        <!-- Loggers -->
            
        <dependency>
                  
            <groupId>org.apache.logging.log4j</groupId>
                  
            <artifactId>log4j-api</artifactId>
                  
            <optional>true</optional>
                
        </dependency>
            
        <dependency>
                  
            <groupId>org.slf4j</groupId>
                  
            <artifactId>slf4j-api</artifactId>
                  
            <optional>true</optional>
                
        </dependency>
            
        <!-- Generators -->
            
        <dependency>
                  
            <groupId>io.vertx</groupId>
                  
            <artifactId>vertx-codegen</artifactId>
                  
            <optional>true</optional>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.vertx</groupId>
                  
            <artifactId>vertx-docgen</artifactId>
                  
            <optional>true</optional>
                
        </dependency>
            
        <!-- Testing -->
            
        <dependency>
                  
            <groupId>junit</groupId>
                  
            <artifactId>junit</artifactId>
                  
            <version>${junit.version}</version>
                  
            <scope>test</scope>
                
        </dependency>
            
        <dependency>
                  
            <groupId>org.apache.directory.server</groupId>
                  
            <artifactId>apacheds-protocol-dns</artifactId>
                  
            <version>${apacheds-protocol-dns.version}</version>
                  
            <scope>test</scope>
                
        </dependency>
            
        <dependency>
                  
            <groupId>org.assertj</groupId>
                  
            <artifactId>assertj-core</artifactId>
                  
            <version>${assertj.version}</version>
                  
            <scope>test</scope>
                
        </dependency>
            
        <dependency>
                  
            <groupId>org.slf4j</groupId>
                  
            <artifactId>slf4j-simple</artifactId>
                  
            <scope>test</scope>
                
        </dependency>
            
        <dependency>
                  
            <groupId>org.apache.logging.log4j</groupId>
                  
            <artifactId>log4j-core</artifactId>
                  
            <scope>test</scope>
                
        </dependency>
            
        <dependency>
                  
            <groupId>io.netty</groupId>
                  
            <artifactId>netty-tcnative-boringssl-static</artifactId>
                  
            <scope>test</scope>
                
        </dependency>
            
        <dependency>
                  
            <groupId>com.aayushatharva.brotli4j</groupId>
                  
            <artifactId>brotli4j</artifactId>
                  
            <version>1.16.0</version>
                  
            <scope>test</scope>
                
        </dependency>
            
        <!-- JMH -->
            
        <dependency>
                  
            <groupId>org.openjdk.jmh</groupId>
                  
            <artifactId>jmh-core</artifactId>
                  
            <version>${jmh.version}</version>
                  
            <scope>test</scope>
                
        </dependency>
          
    </dependencies>
      
    <build>
            
        <pluginManagement>
                  
            <plugins>
                        
                <plugin>
                              
                    <groupId>org.apache.maven.plugins</groupId>
                              
                    <artifactId>maven-surefire-plugin</artifactId>
                              
                    <version>${maven.surefire.plugin.version}</version>
                              
                    <configuration>
                                    
                        <failIfNoSpecifiedTests>false</failIfNoSpecifiedTests>
                                    
                        <additionalClasspathElements>
                                          
                            <additionalClasspathElement>${project.build.testSourceDirectory}</additionalClasspathElement>
                                          
                            <additionalClasspathElement>${project.basedir}/src/test/classpath/jul</additionalClasspathElement>
                                        
                        </additionalClasspathElements>
                                    
                        <systemPropertyVariables>
                                          
                            <!-- Uncomment to debug SSL -->
                                          
                            <!--
              <javax.net.debug>ssl</javax.net.debug>
              -->
                                          
                            <!-- Uncomment to run with leak detection -->
                                          
                            <!--
              <io.netty.leakDetection.level>PARANOID</io.netty.leakDetection.level>
              -->
                                          
                            <buildDirectory>${project.build.directory}</buildDirectory>
                                          
                            <vertx.version>${project.version}</vertx.version>
                                          
                            <vertx.handle100Continue>true</vertx.handle100Continue>
                                          
                            <vertx.useNativeTransport>${vertx.testNativeTransport}</vertx.useNativeTransport>
                                          
                            <vertx.useDomainSockets>${vertx.testDomainSockets}</vertx.useDomainSockets>
                                          
                            <vertx.threadChecks>true</vertx.threadChecks>
                                        
                        </systemPropertyVariables>
                                    
                        <!-- Needs to be small enough to run in a EC2 1.7GB small instance -->
                                    
                        <!-- IMPORTANT: when modifying this line, don't forge to modify the same line in the`coverage` profile -->
                                    
                        <argLine>-Xmx1200M</argLine>
                                    
                        <forkCount>1</forkCount>
                                    
                        <reuseForks>true</reuseForks>
                                    
                        <excludes>
                                          
                            <exclude>io/vertx/it/**</exclude>
                                        
                        </excludes>
                                  
                    </configuration>
                            
                </plugin>
                        
                <plugin>
                              
                    <artifactId>maven-javadoc-plugin</artifactId>
                              
                    <configuration>
                                    
                        <reportOutputDirectory>${project.build.directory}/docs</reportOutputDirectory>
                                  
                    </configuration>
                            
                </plugin>
                        
                <plugin>
                              
                    <artifactId>maven-clean-plugin</artifactId>
                              
                    <executions>
                                    
                        <execution>
                                          
                            <id>default-clean</id>
                                          
                            <configuration>
                                                
                                <filesets>
                                                      
                                    <fileset>
                                                            
                                        <directory>${generated.dir}</directory>
                                                          
                                    </fileset>
                                                    
                                </filesets>
                                              
                            </configuration>
                                        
                        </execution>
                                  
                    </executions>
                            
                </plugin>
                        
                <plugin>
                              
                    <groupId>org.apache.maven.plugins</groupId>
                              
                    <artifactId>maven-source-plugin</artifactId>
                              
                    <configuration>
                                    
                        <excludes>
                                          
                            <exclude>docoverride/**</exclude>
                                        
                        </excludes>
                                  
                    </configuration>
                            
                </plugin>
                        
                <plugin>
                              
                    <groupId>org.apache.maven.plugins</groupId>
                              
                    <artifactId>maven-jar-plugin</artifactId>
                              
                    <executions>
                                    
                        <execution>
                                          
                            <id>default-jar</id>
                                          
                            <configuration>
                                                
                                <excludes>
                                                      
                                    <exclude>/docoverride/**</exclude>
                                                      
                                    <exclude>/examples/**</exclude>
                                                      
                                    <exclude>META-INF/native-image/**</exclude>
                                                    
                                </excludes>
                                                
                                <archive>
                                                      
                                    <manifestEntries>
                                                            
                                        <Multi-Release>true</Multi-Release>
                                                          
                                    </manifestEntries>
                                                    
                                </archive>
                                              
                            </configuration>
                                        
                        </execution>
                                    
                        <execution>
                                          
                            <id>native-image-jar</id>
                                          
                            <configuration>
                                                
                                <excludes>
                                                      
                                    <exclude>/docoverride/**</exclude>
                                                      
                                    <exclude>/examples/**</exclude>
                                                    
                                </excludes>
                                                
                                <classifier>native-image</classifier>
                                                
                                <archive>
                                                      
                                    <manifestEntries>
                                                            
                                        <Multi-Release>true</Multi-Release>
                                                          
                                    </manifestEntries>
                                                    
                                </archive>
                                              
                            </configuration>
                                        
                        </execution>
                                  
                    </executions>
                            
                </plugin>
                      
            </plugins>
                
        </pluginManagement>
            
        <plugins>
                  
            <plugin>
                        
                <artifactId>maven-compiler-plugin</artifactId>
                        
                <executions>
                              
                    <execution>
                                    
                        <id>jdk11</id>
                                    
                        <phase>compile</phase>
                                    
                        <goals>
                                          
                            <goal>compile</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <compileSourceRoots>
                                                
                                <compileSourceRoot>${project.basedir}/src/main/java11</compileSourceRoot>
                                              
                            </compileSourceRoots>
                                          
                            <outputDirectory>${project.build.outputDirectory}/META-INF/versions/11/</outputDirectory>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>test-service-helper</id>
                                    
                        <phase>test-compile</phase>
                                    
                        <goals>
                                          
                            <goal>testCompile</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <compileSourceRoots>
                                                
                                <compileSourceRoot>${project.basedir}/src/test/classpath/servicehelper</compileSourceRoot>
                                              
                            </compileSourceRoots>
                                          
                            <outputDirectory>${project.build.directory}/classpath/servicehelper</outputDirectory>
                                        
                        </configuration>
                                  
                    </execution>
                            
                </executions>
                      
            </plugin>
                  
            <plugin>
                        
                <artifactId>maven-resources-plugin</artifactId>
                        
                <executions>
                              
                    <execution>
                                    
                        <id>copy-service-helper</id>
                                    
                        <phase>generate-test-resources</phase>
                                    
                        <goals>
                                          
                            <goal>copy-resources</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <outputDirectory>${project.build.directory}/classpath</outputDirectory>
                                          
                            <resources>
                                                
                                <resource>
                                                      
                                    <directory>src/test/classpath</directory>
                                                    
                                </resource>
                                              
                            </resources>
                                        
                        </configuration>
                                  
                    </execution>
                            
                </executions>
                      
            </plugin>
                  
            <plugin>
                        
                <groupId>org.bsc.maven</groupId>
                        
                <artifactId>maven-processor-plugin</artifactId>
                        
                <version>3.1.0</version>
                        
                <configuration>
                              
                    <systemProperties>
                                    
                        <java.util.logging.SimpleFormatter.format>%4$s: %3$s - %5$s %6$s%n</java.util.logging.SimpleFormatter.format>
                                  
                    </systemProperties>
                            
                </configuration>
                        
                <executions>
                              
                    <execution>
                                    
                        <id>generate-sources</id>
                                    
                        <goals>
                                          
                            <goal>process</goal>
                                        
                        </goals>
                                    
                        <phase>generate-sources</phase>
                                    
                        <configuration>
                                          
                            <processors>
                                                
                                <processor>io.vertx.codegen.CodeGenProcessor</processor>
                                                
                                <processor>io.vertx.docgen.JavaDocGenProcessor</processor>
                                              
                            </processors>
                                          
                            <optionMap>
                                                
                                <codegen.output>${project.basedir}/src/main</codegen.output>
                                                
                                <codegen.output.data_object_converters>generated</codegen.output.data_object_converters>
                                                
                                <docgen.source>${asciidoc.dir}</docgen.source>
                                                
                                <docgen.output>${project.build.directory}/asciidoc/java</docgen.output>
                                                
                                <maven.groupId>${project.groupId}</maven.groupId>
                                                
                                <maven.artifactId>${project.artifactId}</maven.artifactId>
                                                
                                <maven.version>${project.version}</maven.version>
                                              
                            </optionMap>
                                        
                        </configuration>
                                  
                    </execution>
                            
                </executions>
                      
            </plugin>
                  
            <plugin>
                        
                <groupId>org.codehaus.mojo</groupId>
                        
                <artifactId>build-helper-maven-plugin</artifactId>
                        
                <version>3.0.0</version>
                        
                <executions>
                              
                    <execution>
                                    
                        <id>add-source</id>
                                    
                        <phase>generate-sources</phase>
                                    
                        <goals>
                                          
                            <goal>add-source</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <sources>
                                                
                                <source>${generated.dir}</source>
                                                
                                <source>${asciidoc.dir}</source>
                                              
                            </sources>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>add-test-source</id>
                                    
                        <phase>generate-test-sources</phase>
                                    
                        <goals>
                                          
                            <goal>add-test-source</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <sources>
                                                
                                <source>${project.basedir}/src/test/benchmarks</source>
                                              
                            </sources>
                                        
                        </configuration>
                                  
                    </execution>
                            
                </executions>
                      
            </plugin>
                  
            <!-- Tests that require to run with different JVM settings -->
                  
            <plugin>
                        
                <groupId>org.apache.maven.plugins</groupId>
                        
                <artifactId>maven-failsafe-plugin</artifactId>
                        
                <version>3.2.5</version>
                        
                <executions>
                              
                    <execution>
                                    
                        <id>ssl-engine:default</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/SSLEngineTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <vertx-test-alpn-openssl>false</vertx-test-alpn-openssl>
                                              
                            </systemProperties>
                                          
                            <classpathDependencyExcludes>
                                                
                                <classpathDependencyExclude>io.netty:netty-tcnative-boringssl-static</classpathDependencyExclude>
                                              
                            </classpathDependencyExcludes>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>ssl-engine:openssl</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/SSLEngineTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <vertx-test-alpn-openssl>true</vertx-test-alpn-openssl>
                                              
                            </systemProperties>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>no-native</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/TransportTest.java</include>
                                              
                            </includes>
                                          
                            <classpathDependencyExcludes>
                                                
                                <classpathDependencyExclude>io.netty:netty-transport-native-epoll</classpathDependencyExclude>
                                                
                                <classpathDependencyExclude>io.netty:netty-transport-classes-epoll</classpathDependencyExclude>
                                                
                                <classpathDependencyExclude>io.netty:netty-transport-native-kqueue</classpathDependencyExclude>
                                                
                                <classpathDependencyExclude>io.netty:netty-transport-classes-kqueue</classpathDependencyExclude>
                                              
                            </classpathDependencyExcludes>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>slf4j</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/SLF4JLogDelegateTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <org.slf4j.simpleLogger.logFile>System.out</org.slf4j.simpleLogger.logFile>
                                                
                                <org.slf4j.simpleLogger.cacheOutputStream>false</org.slf4j.simpleLogger.cacheOutputStream>
                                              
                            </systemProperties>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>slf4j-no-impl</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/SLF4JNoImplTest.java</include>
                                              
                            </includes>
                                          
                            <classpathDependencyExcludes>
                                                
                                <classpathDependencyExclude>org.slf4j:slf4j-simple</classpathDependencyExclude>
                                                
                                <classpathDependencyExclude>org.apache.logging.log4j:log4j-api</classpathDependencyExclude>
                                                
                                <classpathDependencyExclude>org.apache.logging.log4j:log4j-core</classpathDependencyExclude>
                                              
                            </classpathDependencyExcludes>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>jul</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/JULLogDelegateTest.java</include>
                                              
                            </includes>
                                          
                            <additionalClasspathElements>
                                                
                                <additionalClasspathElement>${project.basedir}/src/test/classpath/jul</additionalClasspathElement>
                                              
                            </additionalClasspathElements>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>log4j2</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/Log4J2LogDelegateTest.java</include>
                                              
                            </includes>
                                          
                            <classpathDependencyExcludes>
                                                
                                <classpathDependencyExclude>org.slf4j:slf4j-simple</classpathDependencyExclude>
                                              
                            </classpathDependencyExcludes>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>no-jackson</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/JsonTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <vertx-test-alpn-jdk>false</vertx-test-alpn-jdk>
                                                
                                <vertx-test-alpn-openssl>false</vertx-test-alpn-openssl>
                                              
                            </systemProperties>
                                          
                            <classpathDependencyExcludes>
                                                
                                <classpathDependencyExclude>com.fasterxml.jackson.core:jackson-core</classpathDependencyExclude>
                                                
                                <classpathDependencyExclude>com.fasterxml.jackson.core:jackson-databind</classpathDependencyExclude>
                                              
                            </classpathDependencyExcludes>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>no-haproxy-codec</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/HAProxyTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <vertx-test-alpn-jdk>false</vertx-test-alpn-jdk>
                                                
                                <vertx-test-alpn-openssl>false</vertx-test-alpn-openssl>
                                              
                            </systemProperties>
                                          
                            <classpathDependencyExcludes>
                                                
                                <classpathDependencyExclude>io.netty:netty-codec-haproxy</classpathDependencyExclude>
                                              
                            </classpathDependencyExcludes>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>no-recycler-pool-jackson</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/NoRecyclerPoolJacksonTest.java</include>
                                              
                            </includes>
                                          
                            <additionalClasspathDependencies>
                                                
                                <additionalClasspathDependency>
                                                      
                                    <groupId>com.fasterxml.jackson.core</groupId>
                                                      
                                    <artifactId>jackson-core</artifactId>
                                                      
                                    <version>2.15.1</version>
                                                    
                                </additionalClasspathDependency>
                                              
                            </additionalClasspathDependencies>
                                          
                            <classpathDependencyExcludes>
                                                
                                <classpathDependencyExclude>com.fasterxml.jackson.core:jackson-core</classpathDependencyExclude>
                                                
                                <classpathDependencyExclude>com.fasterxml.jackson.core:jackson-databind</classpathDependencyExclude>
                                              
                            </classpathDependencyExcludes>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>no-jackson-databind</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/JsonCodecTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <vertx-test-alpn-jdk>false</vertx-test-alpn-jdk>
                                                
                                <vertx-test-alpn-openssl>false</vertx-test-alpn-openssl>
                                              
                            </systemProperties>
                                          
                            <classpathDependencyExcludes>
                                                
                                <classpathDependencyExclude>com.fasterxml.jackson.core:jackson-databind</classpathDependencyExclude>
                                              
                            </classpathDependencyExcludes>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>custom-json-codec</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/CustomJsonCodecTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <vertx-test-alpn-jdk>false</vertx-test-alpn-jdk>
                                                
                                <vertx-test-alpn-openssl>false</vertx-test-alpn-openssl>
                                              
                            </systemProperties>
                                          
                            <additionalClasspathElements>
                                                
                                <additionalClasspathElement>${project.basedir}/src/test/classpath/customjsoncodec</additionalClasspathElement>
                                              
                            </additionalClasspathElements>
                                          
                            <classpathDependencyExcludes>
                                                
                                <classpathDependencyExclude>com.fasterxml.jackson.core:jackson-core</classpathDependencyExclude>
                                                
                                <classpathDependencyExclude>com.fasterxml.jackson.core:jackson-databind</classpathDependencyExclude>
                                              
                            </classpathDependencyExcludes>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>custom-vertx-thread-factory</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/VertxThreadFactoryTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <vertx-test-alpn-jdk>false</vertx-test-alpn-jdk>
                                                
                                <vertx-test-alpn-openssl>false</vertx-test-alpn-openssl>
                                              
                            </systemProperties>
                                          
                            <additionalClasspathElements>
                                                
                                <additionalClasspathElement>${project.basedir}/src/test/classpath/customthreadfactory</additionalClasspathElement>
                                              
                            </additionalClasspathElements>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>custom-executor-service-factory</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/ExecutorServiceFactoryTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <vertx-test-alpn-jdk>false</vertx-test-alpn-jdk>
                                                
                                <vertx-test-alpn-openssl>false</vertx-test-alpn-openssl>
                                              
                            </systemProperties>
                                          
                            <additionalClasspathElements>
                                                
                                <additionalClasspathElement>${project.basedir}/src/test/classpath/customexecutorservicefactory</additionalClasspathElement>
                                              
                            </additionalClasspathElements>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>custom-vertx-tracer-factory</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/VertxTracerFactoryTest.java</include>
                                              
                            </includes>
                                          
                            <systemProperties>
                                                
                                <vertx-test-alpn-jdk>false</vertx-test-alpn-jdk>
                                                
                                <vertx-test-alpn-openssl>false</vertx-test-alpn-openssl>
                                              
                            </systemProperties>
                                          
                            <additionalClasspathElements>
                                                
                                <additionalClasspathElement>${project.basedir}/src/test/classpath/tracerfactory</additionalClasspathElement>
                                              
                            </additionalClasspathElements>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>custom-file-resolver-factory</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/FileResolverFactoryTest.java</include>
                                              
                            </includes>
                                          
                            <additionalClasspathElements>
                                                
                                <additionalClasspathElement>${project.basedir}/src/test/classpath/customfileresolver</additionalClasspathElement>
                                              
                            </additionalClasspathElements>
                                        
                        </configuration>
                                  
                    </execution>
                              
                    <execution>
                                    
                        <id>custom-context-local</id>
                                    
                        <goals>
                                          
                            <goal>integration-test</goal>
                                          
                            <goal>verify</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <includes>
                                                
                                <include>io/vertx/it/CustomContextLocalTest.java</include>
                                              
                            </includes>
                                          
                            <additionalClasspathElements>
                                                
                                <additionalClasspathElement>${project.basedir}/src/test/classpath/customcontextlocal</additionalClasspathElement>
                                              
                            </additionalClasspathElements>
                                        
                        </configuration>
                                  
                    </execution>
                            
                </executions>
                      
            </plugin>
                  
            <plugin>
                        
                <groupId>org.apache.maven.plugins</groupId>
                        
                <artifactId>maven-jar-plugin</artifactId>
                        
                <executions>
                              
                    <execution>
                                    
                        <id>native-image-jar</id>
                                    
                        <goals>
                                          
                            <goal>jar</goal>
                                        
                        </goals>
                                  
                    </execution>
                            
                </executions>
                      
            </plugin>
                  
            <plugin>
                        
                <artifactId>maven-assembly-plugin</artifactId>
                        
                <executions>
                              
                    <execution>
                                    
                        <id>assemble-docs</id>
                                    
                        <phase>package</phase>
                                    
                        <goals>
                                          
                            <goal>single</goal>
                                        
                        </goals>
                                    
                        <configuration>
                                          
                            <attach>true</attach>
                                          
                            <descriptors>
                                                
                                <descriptor>src/main/assembly/docs.xml</descriptor>
                                              
                            </descriptors>
                                        
                        </configuration>
                                  
                    </execution>
                            
                </executions>
                      
            </plugin>
                
        </plugins>
            
        <resources>
                  
            <resource>
                        
                <directory>src/main/resources</directory>
                        
                <filtering>true</filtering>
                        
                <includes>
                              
                    <include>**/vertx-version.txt</include>
                            
                </includes>
                      
            </resource>
                  
            <resource>
                        
                <directory>src/main/resources</directory>
                        
                <filtering>false</filtering>
                        
                <excludes>
                              
                    <exclude>**/vertx-version.txt</exclude>
                            
                </excludes>
                      
            </resource>
                
        </resources>
          
    </build>
      
    <profiles>
            
        <profile>
                  
            <id>coverage</id>
                  
            <build>
                        
                <pluginManagement>
                              
                    <plugins>
                                    
                        <plugin>
                                          
                            <groupId>org.apache.maven.plugins</groupId>
                                          
                            <artifactId>maven-surefire-plugin</artifactId>
                                          
                            <configuration>
                                                
                                <argLine>-Xmx1200M</argLine>
                                              
                            </configuration>
                                        
                        </plugin>
                                  
                    </plugins>
                            
                </pluginManagement>
                      
            </build>
                
        </profile>
            
        <!-- Run tests with native transport -->
            
        <profile>
                  
            <id>testNativeTransport</id>
                  
            <properties>
                        
                <vertx.testNativeTransport>true</vertx.testNativeTransport>
                        
                <vertx.testDomainSockets>false</vertx.testDomainSockets>
                      
            </properties>
                
        </profile>
            
        <!-- Run tests with native transport and domain sockets -->
            
        <profile>
                  
            <id>testDomainSockets</id>
                  
            <properties>
                        
                <vertx.testNativeTransport>true</vertx.testNativeTransport>
                        
                <vertx.testDomainSockets>true</vertx.testDomainSockets>
                      
            </properties>
                
        </profile>
            
        <!-- Documentation generation : activate with -Pdocs -->
            
        <profile>
                  
            <id>docs</id>
                  
            <build>
                        
                <plugins>
                              
                    <!-- Transform the Asciidoctor to html -->
                              
                    <plugin>
                                    
                        <groupId>org.asciidoctor</groupId>
                                    
                        <artifactId>asciidoctor-maven-plugin</artifactId>
                                    
                        <executions>
                                          
                            <execution>
                                                
                                <goals>
                                                      
                                    <goal>process-asciidoc</goal>
                                                    
                                </goals>
                                                
                                <configuration>
                                                      
                                    <sourceDirectory>${project.build.directory}/asciidoc</sourceDirectory>
                                                    
                                </configuration>
                                                
                                <phase>package</phase>
                                              
                            </execution>
                                        
                        </executions>
                                  
                    </plugin>
                              
                    <plugin>
                                    
                        <artifactId>maven-javadoc-plugin</artifactId>
                                    
                        <executions>
                                          
                            <execution>
                                                
                                <phase>package</phase>
                                                
                                <goals>
                                                      
                                    <goal>javadoc</goal>
                                                    
                                </goals>
                                              
                            </execution>
                                        
                        </executions>
                                  
                    </plugin>
                            
                </plugins>
                      
            </build>
                
        </profile>
            
        <profile>
                  
            <id>benchmarks</id>
                  
            <build>
                        
                <plugins>
                              
                    <plugin>
                                    
                        <artifactId>maven-assembly-plugin</artifactId>
                                    
                        <executions>
                                          
                            <execution>
                                                
                                <id>assemble-benchmarks</id>
                                                
                                <phase>package</phase>
                                                
                                <goals>
                                                      
                                    <goal>single</goal>
                                                    
                                </goals>
                                                
                                <configuration>
                                                      
                                    <archive>
                                                            
                                        <manifest>
                                                                  
                                            <mainClass>org.openjdk.jmh.Main</mainClass>
                                                                
                                        </manifest>
                                                          
                                    </archive>
                                                      
                                    <descriptors>
                                                            
                                        <descriptor>src/test/assembly/benchmarks.xml</descriptor>
                                                          
                                    </descriptors>
                                                    
                                </configuration>
                                              
                            </execution>
                                        
                        </executions>
                                  
                    </plugin>
                            
                </plugins>
                      
            </build>
                  
            <dependencies>
                        
                <dependency>
                              
                    <groupId>org.openjdk.jmh</groupId>
                              
                    <artifactId>jmh-generator-annprocess</artifactId>
                              
                    <version>${jmh.version}</version>
                              
                    <scope>test</scope>
                            
                </dependency>
                      
            </dependencies>
                
        </profile>
            
        <profile>
                  
            <id>linux</id>
                  
            <activation>
                        
                <os>
                              
                    <family>linux</family>
                            
                </os>
                      
            </activation>
                  
            <dependencies>
                        
                <dependency>
                              
                    <groupId>io.netty</groupId>
                              
                    <artifactId>netty-transport-native-epoll</artifactId>
                              
                    <classifier>linux-x86_64</classifier>
                              
                    <scope>test</scope>
                            
                </dependency>
                      
            </dependencies>
                
        </profile>
            
        <profile>
                  
            <id>osx-x86_64</id>
                  
            <activation>
                        
                <os>
                              
                    <family>mac</family>
                              
                    <arch>x86_64</arch>
                            
                </os>
                      
            </activation>
                  
            <dependencies>
                        
                <dependency>
                              
                    <groupId>io.netty</groupId>
                              
                    <artifactId>netty-resolver-dns-native-macos</artifactId>
                              
                    <classifier>osx-x86_64</classifier>
                              
                    <scope>test</scope>
                            
                </dependency>
                        
                <dependency>
                              
                    <groupId>io.netty</groupId>
                              
                    <artifactId>netty-transport-native-kqueue</artifactId>
                              
                    <classifier>osx-x86_64</classifier>
                              
                    <scope>test</scope>
                            
                </dependency>
                      
            </dependencies>
                
        </profile>
            
        <profile>
                  
            <id>osx-aarch64</id>
                  
            <activation>
                        
                <os>
                              
                    <family>mac</family>
                              
                    <arch>aarch64</arch>
                            
                </os>
                      
            </activation>
                  
            <dependencies>
                        
                <dependency>
                              
                    <groupId>io.netty</groupId>
                              
                    <artifactId>netty-resolver-dns-native-macos</artifactId>
                              
                    <classifier>osx-aarch_64</classifier>
                              
                    <scope>test</scope>
                            
                </dependency>
                        
                <dependency>
                              
                    <groupId>io.netty</groupId>
                              
                    <artifactId>netty-transport-native-kqueue</artifactId>
                              
                    <classifier>osx-aarch_64</classifier>
                              
                    <scope>test</scope>
                            
                </dependency>
                      
            </dependencies>
                
        </profile>
          
    </profiles>
    
</project>
