odata
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata</artifactId>
<version>2.15.2</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2014-2026 All Rights Reserved by the RWS Group for and on behalf of its affiliates and subsidiaries.
Licensed 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>
<groupId>com.sdl</groupId>
<artifactId>odata</artifactId>
<version>2.15.2</version>
<packaging>pom</packaging>
<name>Tridion OData v4 Framework</name>
<description>Tridion OData v4 Framework</description>
<url>https://www.tridion.com</url>
<inceptionYear>2014</inceptionYear>
<modules>
<module>odata_api</module>
<module>odata_client_api</module>
<module>odata_assembly</module>
<module>odata_checkstyle</module>
<module>odata_client</module>
<module>odata_edm</module>
<module>odata_parser</module>
<module>odata_processor</module>
<module>odata_renderer</module>
<module>odata_service</module>
<module>odata_test</module>
<module>odata_common</module>
<module>odata_controller</module>
<module>odata_webservice</module>
<module>odata_war</module>
</modules>
<organization>
<name>RWS Group for and on behalf of its affiliates and subsidiaries</name>
<url>http://www.tridion.com/</url>
</organization>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>Ben Middleton</name>
<email>bmiddleton@tridion.com</email>
<organization>RWS Group for and on behalf of its affiliates and subsidiaries</organization>
<organizationUrl>http://www.tridion.com</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:git@github.com:sdl/odata.git</connection>
<developerConnection>scm:git:git@github.com:sdl/odata.git</developerConnection>
<url>git@github.com:sdl/odata.git</url>
<tag>release/2.15/2.15.2</tag>
</scm>
<properties>
<snapshot.qualifier.version>0</snapshot.qualifier.version>
<maven.build.timestamp.format>yyyy</maven.build.timestamp.format>
<currentYearDynamic>${maven.build.timestamp}</currentYearDynamic>
<license.header.file>${project.basedir}/src/license/sdl_license/header.txt</license.header.file>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<javadoc.source.dir>${project.basedir}/src/javadoc</javadoc.source.dir>
<java.version>25</java.version>
<!-- Third party dependency versions, sorted alphabetically -->
<guava.version>33.5.0-jre</guava.version>
<httpclient5.version>5.6</httpclient5.version>
<jackson.version>2.17.3</jackson.version>
<jacoco.version>0.8.14</jacoco.version>
<jakarta-annotation-api.version>3.0.0</jakarta-annotation-api.version>
<jakarta.servlet-api.version>6.1.0</jakarta.servlet-api.version>
<junit-jupiter.version>5.9.2</junit-jupiter.version>
<logback.version>1.5.32</logback.version>
<mockito-junit5.version>5.23.0</mockito-junit5.version>
<pekko.version>1.4.0</pekko.version>
<scala-genjavadoc-plugin.version>0.19</scala-genjavadoc-plugin.version>
<scala-parser-combinators.version>2.1.1</scala-parser-combinators.version>
<scala.version>2.12.19</scala.version>
<scalatest.version>3.1.4</scalatest.version>
<slf4j.version>2.0.17</slf4j.version>
<spring-boot.version>3.5.11</spring-boot.version>
<spring.version>6.2.17</spring.version>
<tomcat.version>10.1.52</tomcat.version>
<typesafe-config.version>1.4.3</typesafe-config.version>
<xerces.version>2.12.2</xerces.version>
</properties>
<!-- Dependency management -->
<dependencyManagement>
<dependencies>
<!-- Scala -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.scala-lang.modules</groupId>
<artifactId>scala-parser-combinators_2.12</artifactId>
<version>${scala-parser-combinators.version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<!-- Utility libraries -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>${xerces.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>${httpclient5.version}</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>${jakarta-annotation-api.version}</version>
</dependency>
<!-- Pekko -->
<dependency>
<groupId>org.apache.pekko</groupId>
<artifactId>pekko-actor_2.12</artifactId>
<version>${pekko.version}</version>
</dependency>
<dependency>
<groupId>org.apache.pekko</groupId>
<artifactId>pekko-slf4j_2.12</artifactId>
<version>${pekko.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe</groupId>
<artifactId>config</artifactId>
<version>${typesafe-config.version}</version>
</dependency>
<!-- Servlet API -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>${jakarta.servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<!-- Testing -->
<!-- Bom imports -->
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit-jupiter.version}</version>
<type>pom</type>
<scope>import</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.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${mockito-junit5.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_2.12</artifactId>
<version>${scalatest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.pekko</groupId>
<artifactId>pekko-testkit_2.12</artifactId>
<version>${pekko.version}</version>
<scope>test</scope>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring-boot.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Override Tomcat Version supplied in spring-boot-starter-tomcat -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
<version>${tomcat.version}</version>
</dependency>
<!-- OData dependencies -->
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_client_api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_edm</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_parser</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_processor</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_renderer</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_service</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_controller</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_test</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_webservice</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sdl</groupId>
<artifactId>odata_client</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Project-wide dependencies -->
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>5.0.0</version>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.9.10</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.2.0</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.15</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.6.0</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>10.21.4</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.15.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.10.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.6.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>3.1.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<forced>true</forced>
<manifestEntries>
<OData-build-version>
<!--suppress MavenModelInspection -->
${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${build.version}
</OData-build-version>
<OData-release-version>${project.version}</OData-release-version>
<Implementation-Title>${project.name}</Implementation-Title>
<Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
<Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
<Implementation-Version>${project.version}</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<releaseProfiles>release</releaseProfiles>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>4.0.0-M16</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.5.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.6.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.7.3</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<includes>
<include>com.sdl:*</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
</plugin>
<plugin>
<groupId>org.scalatest</groupId>
<artifactId>scalatest-maven-plugin</artifactId>
<version>2.2.0</version>
<configuration>
<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
<junitxml>.</junitxml>
</configuration>
<executions>
<execution>
<id>test</id>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.10.0</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
<configuration>
<flattenMode>ossrh</flattenMode>
</configuration>
</execution>
<execution>
<id>flatten-clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<executions>
<execution>
<id>scala-compile-first</id>
<phase>generate-sources</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<args>
<arg>-P:genjavadoc:out=${project.build.directory}/genjavadoc</arg>
</args>
<compilerPlugins>
<compilerPlugin>
<groupId>com.typesafe.genjavadoc</groupId>
<artifactId>genjavadoc-plugin_${scala.version}</artifactId>
<version>${scala-genjavadoc-plugin.version}</version>
</compilerPlugin>
</compilerPlugins>
</configuration>
</execution>
<execution>
<id>scala-test-compile</id>
<phase>process-test-resources</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<release>${java.version}</release>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>[${java.version},26]</version>
</requireJavaVersion>
<requireMavenVersion>
<version>3.8.6</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>parse-version</id>
<phase>validate</phase>
<goals>
<goal>parse-version</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<dependencies>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<executions>
<execution>
<id>evaluate-build-version</id>
<phase>initialize</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<exportAntProperties>true</exportAntProperties>
<target>
<taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="maven.plugin.classpath" />
<!--suppress MavenModelInspection -->
<echo>parsedVersion.qualifier = ${parsedVersion.qualifier}</echo>
<if>
<!--suppress MavenModelInspection -->
<equals arg1="${parsedVersion.qualifier}" arg2="SNAPSHOT" />
<then>
<property name="build.version" value="${snapshot.qualifier.version}" />
</then>
<else>
<!--suppress MavenModelInspection -->
<property name="build.version" value="${parsedVersion.qualifier}" />
</else>
</if>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>process-sources</id>
<configuration>
<properties>
<inceptionYear>${project.inceptionYear}</inceptionYear>
<latestYearOfContribution>${currentYearDynamic}</latestYearOfContribution>
</properties>
<licenseSets>
<licenseSet>
<header>${license.header.file}</header>
<excludes>
<exclude>src/license/**</exclude>
</excludes>
<includes>
<include>**/*.java</include>
<include>**/*.scala</include>
<include>**/pom.xml</include>
</includes>
</licenseSet>
</licenseSets>
<mapping>
<java>JAVADOC_STYLE</java>
<scala>JAVADOC_STYLE</scala>
</mapping>
</configuration>
<phase>process-sources</phase>
<goals>
<goal>format</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<!-- Currently disabled due to https://github.com/lightbend/genjavadoc/issues/181 -->
<!--plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<sourcepath>${project.build.directory}/genjavadoc:${project.basedir}/src/main/java</sourcepath>
</configuration>
</execution>
</executions>
</plugin-->
<!-- Generate empty javadoc instead -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>empty-javadoc-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>javadoc</classifier>
<classesDirectory>${javadoc.source.dir</classesDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<!-- Prevent gpg from using pinentry programs -->
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>code-coverage</id>
<dependencies>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<!--suppress MavenModelInspection -->
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>post-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>checkstyle</id>
<activation>
<file>
<missing>src/etc/no-checkstyle-on-compile.txt</missing>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<configLocation>
odata_checkstyle/src/main/resources/sdl_common_checkstyle.xml
</configLocation>
<enableRulesSummary>true</enableRulesSummary>
<failOnViolation>true</failOnViolation>
<failsOnError>true</failsOnError>
<consoleOutput>true</consoleOutput>
<logViolationsToConsole>true</logViolationsToConsole>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<executions>
<execution>
<id>checkstyle-check</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- This profile uses JaCoCo to check Java coverage. The results are shown in target/site/jacoco -->
<id>coverage</id>
<activation>
<file>
<missing>src/etc/no-coverage.txt</missing>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>coverage-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<propertyName>jacoco.agent.arg</propertyName>
</configuration>
</execution>
<execution>
<id>coverage-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>coverage-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>CLASS</element>
<limits>
<limit>
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>0.85</minimum>
</limit>
<limit>
<counter>CLASS</counter>
<value>MISSEDCOUNT</value>
<maximum>0</maximum>
</limit>
<limit>
<counter>CLASS</counter>
<value>COVEREDRATIO</value>
<minimum>0.50</minimum>
</limit>
</limits>
</rule>
</rules>
<!--
We are skipping the entire project for now as it would take a long time
working on such coverage improvement at the moment and hence will be covered
in a different story.
-->
<excludes>
<!--odata_api -->
<exclude>**/com/sdl/odata/api/**/*.class</exclude>
<exclude>**/com/sdl/odata/util/**/*.class</exclude>
<!--odata_edm -->
<exclude>
**/com/sdl/odata/edm/factory/annotations/*.class
</exclude>
<exclude>**/com/sdl/odata/edm/EdmConfiguration.class</exclude>
<exclude>**/com/sdl/odata/edm/model/*.class</exclude>
<exclude>**/com/sdl/odata/edm/registry/ODataEdmRegistryImpl.class</exclude>
<!--odata_parser - skipping the entire package due to lack of coverage overall -->
<exclude>**/com/sdl/odata/parser/*.class</exclude>
<!--odata_renderer -->
<exclude>**/com/sdl/odata/unmarshaller/json/ODataJsonParser.class</exclude>
<exclude>**/com/sdl/odata/unmarshaller/json/JsonUnmarshaller.class</exclude>
<exclude>**/com/sdl/odata/unmarshaller/json/JsonLinkUnmarshaller.class
</exclude>
<exclude>**/com/sdl/odata/unmarshaller/atom/*.class</exclude>
<exclude>
**/com/sdl/odata/unmarshaller/json/core/JsonPropertyExpander.class
</exclude>
<exclude>**/com/sdl/odata/unmarshaller/json/core/JsonParserUtils.class
</exclude>
<exclude>**/com/sdl/odata/ODataRendererUtils.class</exclude>
<exclude>**/com/sdl/odata/renderer/xml/util/XMLWriterUtil.class</exclude>
<exclude>com/sdl/odata/renderer/json/writer/*.class</exclude>
<exclude>com/sdl/odata/renderer/metadata/MetadataDocumentRenderer.class
</exclude>
<exclude>com/sdl/odata/renderer/metadata/ServiceDocumentRenderer.class
</exclude>
<exclude>com/sdl/odata/renderer/metadata/*Writer.class</exclude>
<exclude>com/sdl/odata/renderer/xml/**/*.class</exclude>
<exclude>com/sdl/odata/renderer/primitive/**/*.class</exclude>
<exclude>com/sdl/odata/renderer/batch/**/*.class</exclude>
<exclude>com/sdl/odata/renderer/RendererFactoryImpl.class</exclude>
<exclude>com/sdl/odata/renderer/AbstractRenderer.class</exclude>
<exclude>com/sdl/odata/renderer/AbstractAtomRenderer.class</exclude>
<exclude>com/sdl/odata/renderer/RendererConfiguration.class</exclude>
<exclude>com/sdl/odata/renderer/AbstractJsonRenderer.class</exclude>
<exclude>com/sdl/odata/renderer/atom/AtomRenderer.class</exclude>
<exclude>com/sdl/odata/unmarshaller/*.class</exclude>
<exclude>com/sdl/odata/unmarshaller/batch/*.class</exclude>
<exclude>com/sdl/odata/renderer/atom/writer/*.class</exclude>
<exclude>com/sdl/odata/renderer/json/JsonRenderer.class</exclude>
<exclude>com/sdl/odata/renderer/json/JsonValueRenderer.class</exclude>
<!--odata_processor -->
<exclude>com/sdl/odata/processor/ODataQueryProcessorImpl.class</exclude>
<exclude>com/sdl/odata/processor/QueryModelBuilder*.class</exclude>
<exclude>**/JsonConstants.class</exclude>
<exclude>**/ODataJsonActionParser.class</exclude>
<exclude>**/AtomConstants.class</exclude>
<exclude>**/ErrorRendererConstants.class</exclude>
<exclude>**/MetadataDocumentConstants.class</exclude>
<exclude>com/sdl/odata/processor/ProcessorConfiguration.class</exclude>
<exclude>com/sdl/odata/processor/ODataWriteProcessorImpl.class</exclude>
<exclude>com/sdl/odata/processor/write/**/*.class</exclude>
<exclude>
com/sdl/odata/processor/datasource/factory/DataSourceFactoryImpl.class
</exclude>
<!--odata_client-->
<exclude>com/sdl/odata/client/exception/*.class</exclude>
<exclude>com/sdl/odata/client/*.class</exclude>
<exclude>com/sdl/odata/client/caller/BasicEndpointCaller.class</exclude>
<exclude>com/sdl/odata/client/caller/TracingEndpointCaller.class</exclude>
<exclude>com/sdl/odata/client/marshall/*.class</exclude>
<!--odata_test-->
<exclude>com/sdl/odata/test/util/**/*.class</exclude>
<exclude>com/sdl/odata/test/model/*.class</exclude>
<exclude>com/sdl/odata/test/model/cwd/*.class</exclude>
<!--odata_service-->
<exclude>com/sdl/odata/service/protocol/*.class</exclude>
<exclude>com/sdl/odata/service/actor/*.class</exclude>
<exclude>com/sdl/odata/service/util/*.class</exclude>
<exclude>com/sdl/odata/service/spring/*.class</exclude>
<exclude>com/sdl/odata/service/*.class</exclude>
<!--odata_webservice-->
<exclude>com/sdl/odata/webservice/*.class</exclude>
<exclude>com/sdl/odata/container/*.class</exclude>
<!--odata controller-->
<exclude>**/ODataController.class</exclude>
<exclude>**/ODataControllerConfiguration.class</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!--suppress MavenModelInspection -->
<argLine>${jacoco.agent.arg}</argLine>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>quick</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>