blob: f3f048a54b13af3f604b0166604ac908a57df9da [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2016, 2024 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0,
or the Eclipse Distribution License v. 1.0 which is available at
http://www.eclipse.org/org/documents/edl-v10.php.
SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
-->
<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">
<parent>
<groupId>org.eclipse.ee4j</groupId>
<artifactId>project</artifactId>
<version>1.0.9</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.eclipse</groupId>
<artifactId>yasson</artifactId>
<version>3.0.4-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Yasson</name>
<description>Eclipse Yasson. Reference implementation of JSR-367 (JSON-B).</description>
<url>https://projects.eclipse.org/projects/ee4j.yasson</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>11</maven.compiler.release>
<maven.compiler.testRelease>${maven.compiler.release}</maven.compiler.testRelease>
<!--Dependencies-->
<hamcrest.version>2.2</hamcrest.version>
<jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>
<jakarta.el-api.version>6.0.0</jakarta.el-api.version>
<jakarta.enterprise.cdi-api.version>4.1.0</jakarta.enterprise.cdi-api.version>
<jakarta.interceptor-api.version>2.2.0</jakarta.interceptor-api.version>
<jakarta.json.bind.version>3.0.1</jakarta.json.bind.version>
<jakarta.json.version>2.1.3</jakarta.json.version>
<jakarta.parson.version>1.1.7</jakarta.parson.version>
<junit-jupiter.version>5.10.2</junit-jupiter.version>
<weld-se-core.version>6.0.0.Beta1</weld-se-core.version>
<!--Plugins-->
<build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
<buildnumber-maven-plugin.version>3.2.0</buildnumber-maven-plugin.version>
<spotbugs-maven-plugin.version>4.8.5.0</spotbugs-maven-plugin.version>
<glassfish-copyright-maven-plugin.version>2.4</glassfish-copyright-maven-plugin.version>
<maven-bundle-plugin.version>5.1.9</maven-bundle-plugin.version>
<maven-checkstyle-plugin.version>3.3.1</maven-checkstyle-plugin.version>
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
<maven-enforcer-plugin.version>3.4.1</maven-enforcer-plugin.version>
<maven-jar-plugin.version>3.4.1</maven-jar-plugin.version>
<maven-javadoc-plugin.version>3.6.3</maven-javadoc-plugin.version>
<maven-surefire-plugin.version>3.2.5</maven-surefire-plugin.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<version>${jakarta.enterprise.cdi-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
<version>${jakarta.el-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.interceptor</groupId>
<artifactId>jakarta.interceptor-api</artifactId>
<version>${jakarta.interceptor-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>${jakarta.annotation-api.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Compile dependencies -->
<dependency>
<groupId>jakarta.json.bind</groupId>
<artifactId>jakarta.json.bind-api</artifactId>
<version>${jakarta.json.bind.version}</version>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
<version>${jakarta.json.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.parsson</groupId>
<artifactId>parsson</artifactId>
<version>${jakarta.parson.version}</version>
</dependency>
<!-- Test/Provided dependencies -->
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<optional>true</optional>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<version>${weld-se-core.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<organization>
<name>Oracle Corporation</name>
<url>http://www.oracle.com/</url>
</organization>
<issueManagement>
<system>github</system>
<url>https://github.com/eclipse-ee4j/yasson/issues</url>
</issueManagement>
<mailingLists>
<mailingList>
<name>Yasson mailing list</name>
<post>yasson-dev@eclipse.org</post>
<subscribe>https://dev.eclipse.org/mailman/listinfo/yasson-dev</subscribe>
<unsubscribe>https://dev.eclipse.org/mailman/listinfo/yasson-dev</unsubscribe>
<archive>https://dev.eclipse.org/mhonarc/lists/yasson-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Eclipse Public License v. 2.0</name>
<url>http://www.eclipse.org/legal/epl-v20.html</url>
<distribution>repo</distribution>
<comments>Standard Eclipse License</comments>
</license>
<license>
<name>Eclipse Distribution License v. 1.0</name>
<url>http://www.eclipse.org/org/documents/edl-v10.php</url>
<distribution>repo</distribution>
<comments>Standard Eclipse Distribution License</comments>
</license>
</licenses>
<scm>
<connection>scm:git:ssh://git@github.com/eclipse-ee4j/yasson.git</connection>
<developerConnection>scm:git:ssh://git@github.com/eclipse-ee4j/yasson.git</developerConnection>
<url>https://github.com/eclipse-ee4j/yasson.git</url>
<tag>HEAD</tag>
</scm>
<developers>
<developer>
<email>dmitry.kornilov@oracle.com</email>
<id>maiden168</id>
<name>Dmitry Kornilov</name>
<organization>Oracle</organization>
<roles>
<role>JSON Binding 1.0 Spec Lead</role>
</roles>
<timezone>CET</timezone>
</developer>
<developer>
<email>roman.grigoriadi@oracle.com</email>
<id>roman.grigoriadi</id>
<name>Roman Grigoriadi</name>
<organization>Oracle</organization>
<roles>
<role>JSON Binding 1.0 Developer</role>
</roles>
<timezone>CET</timezone>
</developer>
<developer>
<email>david.k.kral@oracle.com</email>
<id>david.kral</id>
<name>David Kral</name>
<organization>Oracle</organization>
<roles>
<role>JSON Binding 1.0 Developer</role>
</roles>
<timezone>CET</timezone>
</developer>
<developer>
<email>andy.guibert@gmail.com</email>
<id>aguibert</id>
<name>Andy Guibert</name>
<organization>IBM</organization>
<roles>
<role>JSON Binding 1.0 Developer</role>
</roles>
<timezone>CST</timezone>
</developer>
</developers>
<profiles>
<profile>
<id>checkstyle</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>run-checkstyle</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>spotbugs</id>
<build>
<plugins>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
<configuration>
<threshold>Low</threshold>
</configuration>
<executions>
<execution>
<id>analyze-compile</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>copyright</id>
<build>
<plugins>
<plugin>
<groupId>org.glassfish.copyright</groupId>
<artifactId>glassfish-copyright-maven-plugin</artifactId>
<configuration>
<!-- Ignore the year to comply with Eclipse Foundation. -->
<ignoreYear>true</ignoreYear>
</configuration>
<executions>
<!--Copyright goal does not fail when copyright is not properly updated,
but prints out which file has incorrect copyright.-->
<execution>
<id>print-copyright</id>
<goals>
<goal>copyright</goal>
</goals>
<phase>validate</phase>
</execution>
<!--Check goal does not print out incorrect copyright files, but fails when there are errors.-->
<execution>
<id>check-copyright</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jdk16</id>
<activation>
<jdk>[16,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<configuration>
<release>16</release>
<testRelease>16</testRelease>
<compileSourceRoots>
<compileSourceRoot>${project.basedir}/src/test/java</compileSourceRoot>
<compileSourceRoot>${project.basedir}/src/test/java16</compileSourceRoot>
</compileSourceRoots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/RecordTest.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<!-- defaults for compile and testCompile -->
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<release>11</release>
<source>11</source>
<target>11</target>
</configuration>
</execution>
<execution>
<id>default-testCompile</id>
<configuration>
<release>11</release>
</configuration>
</execution>
<execution>
<id>multi-release-compile-16</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<release>16</release>
<compileSourceRoots>
<compileSourceRoot>${project.basedir}/src/main/java16</compileSourceRoot>
</compileSourceRoots>
<multiReleaseOutput>true</multiReleaseOutput>
</configuration>
</execution>
</executions>
<configuration>
<compilerArgs>
<arg>-Xlint:all</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
<manifestEntries>
<Multi-Release>true</Multi-Release>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<!-- This plugin generates the buildNumber property used in maven-bundle-plugin -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>${buildnumber-maven-plugin.version}</version>
<configuration>
<format>{0,date,MM/dd/yyyy hh:mm aa}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<bottom><![CDATA[Copyright &#169; 2017, 2024 Oracle Corporation. All rights reserved.<br>]]></bottom>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>${maven-bundle-plugin.version}</version>
<executions>
<execution>
<id>osgi-bundle</id>
<phase>prepare-package</phase>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<niceManifest>true</niceManifest>
<instructions>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>org.eclipse.yasson;version=${project.version}</Export-Package>
<Private-Package>org.eclipse.yasson.*;version=${project.version}</Private-Package>
<Multi-Release>true</Multi-Release>
<Import-Package>
jakarta.enterprise.context.spi;version=!;resolution:="optional",
jakarta.enterprise.inject.spi;version=!;resolution:="optional",
javax.naming;resolution:="optional",
java.beans;resolution:="optional",
*
</Import-Package>
<Require-Capability>osgi.ee;filter:="(&amp;(osgi.ee=JavaSE)(version=11))"</Require-Capability>
</instructions>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<!-- <testFailureIgnore>true</testFailureIgnore>-->
<trimStackTrace>false</trimStackTrace>
<excludes>
<exclude>**/JavaxNamingExcludedTest.java</exclude>
<exclude>**/AnnotationIntrospectorWithoutOptionalModulesTest.java</exclude>
<exclude>**/*Record*</exclude>
</excludes>
<argLine>
<!--Remove when CDI is updated to support modules
(Yasson does read CDI which is on CP, CDI access yasson's classes with reflection)
-->
--add-reads org.eclipse.yasson=ALL-UNNAMED --add-opens org.eclipse.yasson/org.eclipse.yasson.internal.cdi=ALL-UNNAMED
--add-exports org.eclipse.yasson/org.eclipse.yasson.internal.cdi=java.naming
</argLine>
</configuration>
</execution>
<execution>
<id>optional-modules-excluded</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<argLine>
<!--java.management is required by Maven's ForkedBooter-->
--limit-modules java.base,java.logging,java.sql,jakarta.json.bind,jakarta.json,java.management,jdk.localedata,org.eclipse.parsson,org.eclipse.yasson
</argLine>
<includes>
<include>**/JavaxNamingExcludedTest.class</include>
<include>**/AnnotationIntrospectorWithoutOptionalModulesTest.class</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
<configuration>
<rules>
<requireJavaVersion>
<version>[11,)</version>
</requireJavaVersion>
<requireMavenVersion>
<version>[3.6.0,)</version>
</requireMavenVersion>
<DependencyConvergence/>
</rules>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
<executions>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${basedir}</directory>
<targetPath>META-INF</targetPath>
<includes>
<include>LICENSE.md</include>
<include>NOTICE.md</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<configuration>
<configLocation>etc/checkstyle.xml</configLocation>
<suppressionsLocation>etc/checkstyle-suppressions.xml</suppressionsLocation>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
</plugin>
<plugin>
<groupId>org.glassfish.copyright</groupId>
<artifactId>glassfish-copyright-maven-plugin</artifactId>
<version>${glassfish-copyright-maven-plugin.version}</version>
<configuration>
<templateFile>etc/copyright.txt</templateFile>
<excludeFile>etc/copyright-exclude.txt</excludeFile>
<scm>git</scm>
<debug>false</debug>
<scmOnly>true</scmOnly>
<warn>true</warn>
<ignoreYear>false</ignoreYear>
<preserveCopyrights>true</preserveCopyrights>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>