<?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</groupId>
    <artifactId>apache</artifactId>
    <version>21</version>
  </parent>

  <groupId>org.apache.johnzon</groupId>
  <artifactId>johnzon</artifactId>
  <packaging>pom</packaging>
  <version>1.2.15</version>
  <name>Apache Johnzon</name>
  <description>Apache Johnzon is an implementation of JSR-353 (JavaTM API for JSON Processing).</description>
  <inceptionYear>2014</inceptionYear>
  <url>http://johnzon.apache.org</url>

  <properties>
    <geronimo-jsonp.version>1.3</geronimo-jsonp.version>
    <geronimo-jsonb.version>1.2</geronimo-jsonb.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <johnzon.site.url>https://svn.apache.org/repos/asf/johnzon/site/publish/</johnzon.site.url>
    <pubsub.url>scm:svn:${johnzon.site.url}</pubsub.url>
    <staging.directory>${project.build.directory}/site</staging.directory>
    <felix.plugin.version>4.0.0</felix.plugin.version>
    <bnd.version.policy>[$(version;==;$(@)),$(version;+;$(@)))</bnd.version.policy>
    <java-compile.version>1.8</java-compile.version>
    <cxf.version>3.4.1</cxf.version>
    <checkstyle.version>2.15</checkstyle.version> <!-- checkstyle > 2.15 version do not support java 6 -->
    <!-- JVM values for surefire plugin -->
    <surefire.jvm.params>-Xms1024m -Xmx2048m -Dfile.encoding=UTF-8</surefire.jvm.params>
    <owb.version>2.0.23</owb.version>
  </properties>

  <modules>
    <module>johnzon-core</module>
    <module>johnzon-mapper</module>
    <module>johnzon-jaxrs</module>
    <module>johnzon-distribution</module>
    <module>johnzon-maven-plugin</module>
    <module>johnzon-websocket</module>
    <module>johnzon-jsonb</module>
    <module>johnzon-json-extras</module>
    <module>johnzon-jsonschema</module>
    <module>johnzon-osgi</module>
    <module>johnzon-jsonlogic</module>
    <module>johnzon-jsonp-strict</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jsonb_1.0_spec</artifactId>
        <version>${geronimo-jsonb.version}</version>
        <scope>provided</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-json_1.1_spec</artifactId>
      <version>${geronimo-jsonp.version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.2.2</version>
          <executions>
            <execution>
              <id>jakarta</id>
              <phase>package</phase>
              <goals>
                <goal>shade</goal>
              </goals>
              <configuration>
                <minimizeJar>false</minimizeJar>
                <shadedArtifactAttached>true</shadedArtifactAttached>
                <shadedClassifierName>jakarta</shadedClassifierName>
                <createDependencyReducedPom>false</createDependencyReducedPom>
                <transformers>
                  <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                </transformers>
                <artifactSet>
                  <includes>
                    <include>${project.groupId}:${project.artifactId}</include>
                  </includes>
                </artifactSet>
                <relocations>
                  <relocation>
                    <pattern>javax.json</pattern>
                    <shadedPattern>jakarta.json</shadedPattern>
                  </relocation>
                  <relocation>
                    <pattern>javax.annotation</pattern>
                    <shadedPattern>jakarta.annotation</shadedPattern>
                  </relocation>
                  <relocation>
                    <pattern>javax.inject</pattern>
                    <shadedPattern>jakarta.inject</shadedPattern>
                  </relocation>
                  <relocation>
                    <pattern>javax.enterprise</pattern>
                    <shadedPattern>jakarta.enterprise</shadedPattern>
                  </relocation>
                  <relocation>
                    <pattern>javax.servlet</pattern>
                    <shadedPattern>jakarta.servlet</shadedPattern>
                  </relocation>
                  <relocation>
                    <pattern>javax.websocket</pattern>
                    <shadedPattern>jakarta.websocket</shadedPattern>
                  </relocation>
                </relocations>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>${java-compile.version}</source>
          <target>${java-compile.version}</target>
          <encoding>UTF-8</encoding>
          <showDeprecation>true</showDeprecation>
          <showWarnings>true</showWarnings>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <consoleOutput>true</consoleOutput>
          <includes>
            <include>src/**/*</include>
            <include>pom.xml</include>
          </includes>
          <excludes>
            <exclude>**/*/MANIFEST.MF</exclude>
            <exclude>.git</exclude>
            <exclude>.gitignore</exclude>
            <exclude>.idea</exclude>
            <exclude>*.iws</exclude>
            <exclude>*.iml</exclude>
            <exclude>*.ipr</exclude>
            <exclude>**/META-INF/services/*</exclude>
            <exclude>**/*.json</exclude>
            <exclude>**/*.yml</exclude>
            <exclude>**/bench/*.txt</exclude>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <configuration>
          <automaticRemotePathCreation>true</automaticRemotePathCreation>
          <content>${project.reporting.outputDirectory}</content>
          <pubScmUrl>${pubsub.url}</pubScmUrl>
          <tryUpdate>true</tryUpdate>
          <checkoutDirectory>${project.basedir}/.site-content</checkoutDirectory>
          <ignorePathsToDelete>
            <ignorePathToDelete>archives**</ignorePathToDelete>
          </ignorePathsToDelete>
        </configuration>
        <executions>
          <execution>
            <id>scm-publish</id>
            <phase>site-deploy</phase>
            <!-- deploy site with maven-scm-publish-plugin -->
            <goals>
              <goal>publish-scm</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <stagingDirectory>${staging.directory}</stagingDirectory>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-core</artifactId>
            <version>1.7</version>
          </dependency>
          <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-markdown</artifactId>
            <version>1.7</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${checkstyle.version}</version>
        <executions>
          <execution>
            <id>verify-style</id>
            <phase>process-classes</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <encoding>UTF-8</encoding>
          <consoleOutput>true</consoleOutput>
          <failOnViolation>true</failOnViolation>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
          <failsOnError>true</failsOnError>
          <linkXRef>true</linkXRef>
          <logViolationsToConsole>true</logViolationsToConsole>
          <checkstyleRules>
            <module name="Checker">
              <module name="SuppressionCommentFilter" />
              <module name="FileLength">
                <property name="max" value="3500" />
                <property name="fileExtensions" value="java" />
              </module>
              <module name="FileTabCharacter" />
              <module name="TreeWalker">
                <module name="FileContentsHolder" />
                <module name="ConstantName">
                  <property name="format" value="^(([A-Z][A-Z0-9]*(_[A-Z0-9]+)*))$" />
                </module>
                <module name="LocalVariableName" />
                <module name="MethodName">
                  <property name="format" value="^_?[a-z][a-zA-Z0-9]*$" />
                </module>
                <module name="PackageName" />
                <module name="LocalFinalVariableName" />
                <module name="ParameterName" />
                <module name="StaticVariableName" />
                <module name="TypeName">
                  <property name="format" value="^_?[A-Z][a-zA-Z0-9]*$" />
                </module>
                <module name="AvoidStarImport">
                  <property name="excludes" value="java.io,java.net,java.util,javax.enterprise.inject.spi,javax.enterprise.context" />
                </module>
                <module name="IllegalImport" />
                <module name="RedundantImport" />
                <module name="UnusedImports" />
                <module name="LineLength">
                  <property name="max" value="180" />
                  <property name="ignorePattern" value="@version|@see" />
                </module>
                <module name="MethodLength">
                  <property name="max" value="250" />
                </module>
                <module name="ParameterNumber">
                  <property name="max" value="11" />
                </module>
                <module name="EmptyBlock">
                  <property name="option" value="text" />
                </module>
                <module name="NeedBraces" />
                <module name="LeftCurly">
                  <property name="option" value="EOL" />
                </module>
                <module name="RightCurly">
                  <property name="option" value="SAME" />
                </module>
                <module name="EmptyStatement" />
                <module name="EqualsHashCode" />
                <module name="DefaultComesLast" />
                <module name="MissingSwitchDefault" />
                <module name="FallThrough" />
                <module name="MultipleVariableDeclarations" />
                <module name="com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck">
                  <property name="severity" value="ignore" />
                </module>
                <module name="HideUtilityClassConstructor" />
                <module name="com.puppycrawl.tools.checkstyle.checks.design.VisibilityModifierCheck">
                  <property name="packageAllowed" value="false" />
                  <property name="protectedAllowed" value="true" />
                  <property name="publicMemberPattern" value="^serialVersionUID" />
                  <property name="severity" value="warning" />
                </module>
                <module name="UpperEll" />
              </module>
            </module>
          </checkstyleRules>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.3</version>
        <executions>
          <execution>
            <id>generate-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <skipIfEmpty>true</skipIfEmpty>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <show>private</show>
              <detectJavaApiLink>false</detectJavaApiLink>
              <detectLinks>false</detectLinks>
              <detectOfflineLinks>false</detectOfflineLinks>
              <doclint>none</doclint>
              <source>8</source>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M3</version>
        <configuration>
          <argLine>${surefire.jvm.params}</argLine>
          <trimStackTrace>false</trimStackTrace>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <tagNameFormat>v@{project.version}</tagNameFormat>
          <pushChanges>false</pushChanges>
          <localCheckout>true</localCheckout>
          <autoVersionSubmodules>true</autoVersionSubmodules>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <instrumentation>
            <ignores>
              <ignore>org.apache.johnzon.maven.*</ignore>
            </ignores>
            <excludes>
              <exclude>org/apache/johnzon/**/*Mojo*.class</exclude>
              <exclude>org/apache/johnzon/**/*Test.class</exclude>
            </excludes>
          </instrumentation>
          <formats>
            <format>xml</format>
          </formats>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.eluder.coveralls</groupId>
        <artifactId>coveralls-maven-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>${felix.plugin.version}</version>
        <inherited>true</inherited>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <_contract>*</_contract>
            <_removeheaders>Private-Package,Include-Resource,Embed-Dependency,Created-By,Bnd-LastModified,Built-By,Tool</_removeheaders>
            <_versionpolicy>${bnd.version.policy}</_versionpolicy>
            <Bundle-DocURL>http://johnzon.apache.org/</Bundle-DocURL>
          </instructions>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0-M2</version>
        <executions>
          <execution>
            <id>enforce-versions</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>[3.3,)</version>
                </requireMavenVersion>
                <requireJavaVersion>
                  <version>[${java-compile.version},)</version>
                </requireJavaVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/JOHNZON</url>
  </issueManagement>

  <distributionManagement>
    <site>
      <id>apache.website</id>
      <url>${pubsub.url}</url>
    </site>
  </distributionManagement>

  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=johnzon.git</url>
    <tag>v1.2.15</tag>
  </scm>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.5.1</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>3.0.4</version>
        <configuration>
          <xmlOutput>true</xmlOutput>
          <!-- Optional directory to put findbugs xdoc xml report -->
          <xmlOutputDirectory>target/site</xmlOutputDirectory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>3.6</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.9</version>
        <configuration>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.10.3</version>
        <configuration>
          <notimestamp>true</notimestamp>
          <show>private</show>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>javadoc</report>
            </reports>
          </reportSet>
          <reportSet>
            <inherited>false</inherited>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
          <argLine>${surefire.jvm.params}</argLine>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <instrumentation>
            <ignores>
              <ignore>org.apache.johnzon.maven.*</ignore>
            </ignores>
            <excludes>
              <exclude>org/apache/johnzon/**/*Mojo*.class</exclude>
              <exclude>org/apache/johnzon/**/*Test.class</exclude>
            </excludes>
          </instrumentation>
          <formats>
            <format>html</format>
          </formats>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${checkstyle.version}</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>checkstyle</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>2.1</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>dependency-updates-report</report>
              <report>plugin-updates-report</report>
              <report>property-updates-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <tags>
            <tag>TODO</tag>
            <tag>FIXME</tag>
            <tag>NOPMD</tag>
            <tag>NOTE</tag>
          </tags>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changelog-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <type>range</type>
          <range>30</range>
          <headingDateFormat>dd MMM, yyyy</headingDateFormat>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <version>2.11</version>
        <configuration>
          <useJql>true</useJql>
          <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Created</columnNames>
          <maxEntries>200</maxEntries>
          <onlyCurrentVersion>true</onlyCurrentVersion>
          <resolutionIds>Fixed</resolutionIds>
          <sortColumnNames>Type,Key</sortColumnNames>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>changes-report</report>
              <report>jira-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

  <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>
  </licenses>

  <mailingLists>
    <mailingList>
      <name>Johnzon Commits List</name>
      <subscribe>commits-subscribe@johnzon.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@johnzon.apache.org</unsubscribe>
      <post>commits@johnzon.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/johnzon-commits/</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-johnzon-commits/</otherArchive>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-fleece-commits/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Johnzon Developer List</name>
      <subscribe>dev-subscribe@johnzon.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@johnzon.apache.org</unsubscribe>
      <post>dev@johnzon.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/johnzon-dev/</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-johnzon-dev/</otherArchive>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-fleece-dev/</otherArchive>
      </otherArchives>
    </mailingList>
  </mailingLists>

  <ciManagement>
    <system>jenkins</system>
    <url>https://builds.apache.org/job/johnzon/</url>
  </ciManagement>

  <developers>
    <developer>
      <id>jmclean</id>
      <name>Justin Mclean</name>
      <email>jmclean AT apache.org</email>
      <roles>
        <role>Mentor</role>
      </roles>
    </developer>

    <developer>
      <id>grobmeier</id>
      <name>Christian Grobmeier</name>
      <email>grobmeier AT apache.org</email>
    </developer>

    <developer>
      <id>dkulp</id>
      <name>Daniel Kulp</name>
      <email>dkulp AT apache.org</email>
      <roles>
        <role>Mentor</role>
      </roles>
    </developer>

    <developer>
      <id>rmannibucau</id>
      <name>Romain Manni-Bucau</name>
      <email>rmannibucau AT apache.org</email>
      <roles><role>PMC</role></roles>
    </developer>

    <developer>
      <id>jlmonteiro</id>
      <name>Jean-Louis Monteiro</name>
      <email>jlmonteiro AT apache.org</email>
      <roles><role>PMC</role></roles>
    </developer>

    <developer>
      <id>struberg</id>
      <name>Mark Struberg</name>
      <email>struberg AT apache.org</email>
      <roles>
        <role>PMC</role>
      </roles>
    </developer>

    <developer>
      <id>rsandtner</id>
      <name>Reinhard Sandtner</name>
      <email>rsandtner AT apache.org</email>
      <roles><role>PMC</role></roles>
    </developer>

    <developer>
      <id>dblevins</id>
      <name>David Blevins</name>
      <email>dblevins AT apache.org</email>
      <roles><role>PMC</role></roles>
    </developer>

    <developer>
      <id>sagara</id>
      <name>Sagara Gunathunga</name>
      <email>sagara AT apache.org</email>
    </developer>

    <developer>
      <id>salyh</id>
      <name>Hendrik Saly</name>
      <email>salyh AT apache.org</email>
      <properties>
        <picUrl>http://www.gravatar.com/avatar/af23e69dbed585db0ce6445d0adb4985.png</picUrl>
      </properties>
      <roles><role>PMC</role></roles>
    </developer>
  </developers>

  <contributors>
    <contributor>
      <name>Thiago Veronezi</name>
    </contributor>
    <contributor>
      <name>Karl Grosse</name>
    </contributor>

  </contributors>

  <profiles>
    <profile>
      <id>doclint-java8-disable</id>
      <activation>
        <jdk>[1.8,)</jdk>
      </activation>
      <properties>
        <checkstyle.version>2.17</checkstyle.version>
      </properties>
    </profile>
  </profiles>
</project>
