trino-spi
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.trino</groupId>
<artifactId>trino-spi</artifactId>
<version>478</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<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.trino</groupId>
<artifactId>trino-root</artifactId>
<version>478</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>trino-spi</artifactId>
<name>${project.artifactId}</name>
<description>Trino - Service Provider Interface (SPI)</description>
<properties>
<released-artifacts.dir>${project.build.directory}/released-artifacts</released-artifacts.dir>
<trino.check.skip-revapi>${air.check.skip-basic}</trino.check.skip-revapi>
</properties>
<!-- the SPI should have only minimal dependencies -->
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.airlift</groupId>
<artifactId>slice</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api-incubator</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-common</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-context</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jol</groupId>
<artifactId>jol-core</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<classifier>classes</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.airlift</groupId>
<artifactId>json</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.airlift</groupId>
<artifactId>junit-extensions</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.airlift</groupId>
<artifactId>testing</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.trino</groupId>
<artifactId>trino-testing-services</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>it.unimi.dsi</groupId>
<artifactId>fastutil</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<includes>
<include>io/trino/spi/trino-spi-version.txt</include>
</includes>
</resource>
<resource>
<filtering>false</filtering>
<directory>src/main/resources</directory>
<excludes>
<exclude>io/trino/spi/trino-spi-version.txt</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.revapi</groupId>
<artifactId>revapi-maven-plugin</artifactId>
<version>0.15.1</version>
<configuration>
<skip>${trino.check.skip-revapi}</skip>
<ignoreSuggestionsFormat>xml</ignoreSuggestionsFormat>
<analysisConfiguration>
<revapi.differences>
<ignore>true</ignore>
<differences>
<!-- Allow adding new annotations (such as @Nullable) -->
<item>
<code>java.annotation.added</code>
</item>
<!-- Allow changing enum constant order (e.g., StandardErrorCode) -->
<item>
<code>java.field.enumConstantOrderChanged</code>
</item>
<!-- Allow arbitrary changes to unstable APIs -->
<item>
<regex>true</regex>
<code>java.method.numberOfParametersChanged</code>
<old>
<matcher>java</matcher>
<match>@io.trino.spi.Unstable *;</match>
</old>
</item>
<!-- Allow removing things that were previously deprecated -->
<item>
<regex>true</regex>
<code>java\.(class|method|field)\.removed</code>
<old>
<matcher>java</matcher>
<match>@java.lang.Deprecated(*) ^*;</match>
</old>
</item>
<!-- Backwards incompatible changes since the previous release -->
<!-- Any exclusions below can be deleted after each release -->
<item>
<ignore>true</ignore>
<code>java.method.noLongerDefault</code>
<old>method void io.trino.spi.connector.Connector::shutdown()</old>
<new>method void io.trino.spi.connector.Connector::shutdown()</new>
<justification>Require connector to implement shutdown to prevent leaks</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.method.nowAbstract</code>
<old>method void io.trino.spi.connector.Connector::shutdown()</old>
<new>method void io.trino.spi.connector.Connector::shutdown()</new>
<justification>Require connector to implement shutdown to prevent leaks</justification>
</item>
<item>
<code>java.annotation.removed</code>
<old>method java.lang.String io.trino.spi.QueryId::toString()</old>
<new>method java.lang.String io.trino.spi.QueryId::toString()</new>
<annotation>@com.fasterxml.jackson.annotation.JsonValue</annotation>
<justification>QueryId converted to a record</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.class.kindChanged</code>
<old>class io.trino.spi.QueryId</old>
<new>class io.trino.spi.QueryId</new>
<justification>QueryId converted to a record</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.method.removed</code>
<old>method void io.trino.spi.resourcegroups.SelectionCriteria::<init>(boolean, java.lang.String, java.util.Set<java.lang.String>, java.util.Optional<java.lang.String>, java.util.Set<java.lang.String>, io.trino.spi.session.ResourceEstimates, java.util.Optional<java.lang.String>)</old>
<justification>Remove a deprecated constructor</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.method.varargOverloadsOnlyDifferInVarargParameter</code>
<old>method io.opentelemetry.api.common.AttributesBuilder io.opentelemetry.api.common.AttributesBuilder::put(java.lang.String, boolean[])</old>
<new>method io.opentelemetry.api.common.AttributesBuilder io.opentelemetry.api.common.AttributesBuilder::put(java.lang.String, boolean[])</new>
<justification>Revapi now detects new API changes to vararg args</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.method.varargOverloadsOnlyDifferInVarargParameter</code>
<old>method io.opentelemetry.api.common.AttributesBuilder io.opentelemetry.api.common.AttributesBuilder::put(java.lang.String, double[])</old>
<new>method io.opentelemetry.api.common.AttributesBuilder io.opentelemetry.api.common.AttributesBuilder::put(java.lang.String, double[])</new>
<justification>Revapi now detects new API changes to vararg args</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.method.varargOverloadsOnlyDifferInVarargParameter</code>
<old>method io.opentelemetry.api.common.AttributesBuilder io.opentelemetry.api.common.AttributesBuilder::put(java.lang.String, java.lang.String[])</old>
<new>method io.opentelemetry.api.common.AttributesBuilder io.opentelemetry.api.common.AttributesBuilder::put(java.lang.String, java.lang.String[])</new>
<justification>Revapi now detects new API changes to vararg args</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.method.varargOverloadsOnlyDifferInVarargParameter</code>
<old>method io.opentelemetry.api.common.AttributesBuilder io.opentelemetry.api.common.AttributesBuilder::put(java.lang.String, long[])</old>
<new>method io.opentelemetry.api.common.AttributesBuilder io.opentelemetry.api.common.AttributesBuilder::put(java.lang.String, long[])</new>
<justification>Revapi now detects new API changes to vararg args</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.method.varargOverloadsOnlyDifferInVarargParameter</code>
<old>method io.opentelemetry.api.common.Value<java.util.List<io.opentelemetry.api.common.KeyValue>> io.opentelemetry.api.common.Value<T>::of(io.opentelemetry.api.common.KeyValue[])</old>
<new>method io.opentelemetry.api.common.Value<java.util.List<io.opentelemetry.api.common.KeyValue>> io.opentelemetry.api.common.Value<T>::of(io.opentelemetry.api.common.KeyValue[])</new>
<justification>Revapi now detects new API changes to vararg args</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.method.varargOverloadsOnlyDifferInVarargParameter</code>
<old>method io.opentelemetry.api.common.Value<java.util.List<io.opentelemetry.api.common.Value<?>>> io.opentelemetry.api.common.Value<T>::of(io.opentelemetry.api.common.Value<?>[])</old>
<new>method io.opentelemetry.api.common.Value<java.util.List<io.opentelemetry.api.common.Value<?>>> io.opentelemetry.api.common.Value<T>::of(io.opentelemetry.api.common.Value<?>[])</new>
<justification>Revapi now detects new API changes to vararg args</justification>
</item>
<item>
<ignore>true</ignore>
<code>java.method.visibilityIncreased</code>
<old>method boolean[] io.trino.spi.block.RowBlock::getRawRowIsNull()</old>
<new>method boolean[] io.trino.spi.block.RowBlock::getRawRowIsNull()</new>
<oldVisibility>package</oldVisibility>
<newVisibility>public</newVisibility>
<justification>Allow direct access to isNull mask on RowBlock for performance critical sections</justification>
</item>
<item>
<code>java.method.returnTypeChanged</code>
<old>method void io.trino.spi.connector.ConnectorMetadata::executeTableExecute(io.trino.spi.connector.ConnectorSession, io.trino.spi.connector.ConnectorTableExecuteHandle)</old>
<new>method java.util.Map<java.lang.String, java.lang.Long> io.trino.spi.connector.ConnectorMetadata::executeTableExecute(io.trino.spi.connector.ConnectorSession, io.trino.spi.connector.ConnectorTableExecuteHandle)</new>
</item>
<item>
<code>java.method.removed</code>
<old>method int io.trino.spi.PageSorter::decodePageIndex(long)</old>
</item>
<item>
<code>java.method.removed</code>
<old>method int io.trino.spi.PageSorter::decodePositionIndex(long)</old>
</item>
<item>
<code>java.method.returnTypeChanged</code>
<old>method long[] io.trino.spi.PageSorter::sort(java.util.List<io.trino.spi.type.Type>, java.util.List<io.trino.spi.Page>, java.util.List<java.lang.Integer>, java.util.List<io.trino.spi.connector.SortOrder>, int)</old>
<new>method java.util.Iterator<io.trino.spi.Page> io.trino.spi.PageSorter::sort(java.util.List<io.trino.spi.type.Type>, java.util.List<io.trino.spi.Page>, java.util.List<java.lang.Integer>, java.util.List<io.trino.spi.connector.SortOrder>, int)</new>
</item>
<item>
<code>java.method.removed</code>
<old>method double io.trino.spi.metrics.Distribution<T>::getPercentile(double)</old>
</item>
<item>
<code>java.method.addedToInterface</code>
<new>method double[] io.trino.spi.metrics.Distribution<T>::getPercentiles(double[])</new>
</item>
<item>
<code>java.method.numberOfParametersChanged</code>
<old>method void io.trino.spi.eventlistener.QueryStatistics::<init>(java.time.Duration, java.time.Duration, java.time.Duration, java.time.Duration, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, long, long, long, long, long, long, long, long, long, long, long, long, long, long, double, double, java.util.List<io.trino.spi.eventlistener.StageGcStatistics>, int, boolean, java.util.List<io.trino.spi.eventlistener.StageCpuDistribution>, java.util.List<io.trino.spi.eventlistener.StageOutputBufferUtilization>, java.util.List<io.trino.spi.eventlistener.StageOutputBufferMetrics>, java.util.List<io.trino.spi.eventlistener.StageTaskStatistics>, java.util.List<io.trino.spi.eventlistener.DynamicFilterDomainStatistics>, java.util.function.Supplier<java.util.List<java.lang.String>>, java.util.List<io.trino.spi.eventlistener.QueryPlanOptimizerStatistics>, java.util.Optional<java.lang.String>)</old>
<new>method void io.trino.spi.eventlistener.QueryStatistics::<init>(java.time.Duration, java.time.Duration, java.time.Duration, java.time.Duration, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, long, long, long, long, long, long, long, long, long, long, long, long, long, long, double, double, java.util.List<io.trino.spi.eventlistener.StageGcStatistics>, int, boolean, java.util.List<io.trino.spi.eventlistener.StageCpuDistribution>, java.util.List<io.trino.spi.eventlistener.StageOutputBufferUtilization>, java.util.List<io.trino.spi.eventlistener.StageOutputBufferMetrics>, java.util.List<io.trino.spi.eventlistener.StageTaskStatistics>, java.util.List<io.trino.spi.eventlistener.DynamicFilterDomainStatistics>, java.util.function.Supplier<java.util.List<java.lang.String>>, java.util.List<io.trino.spi.eventlistener.QueryPlanOptimizerStatistics>, java.util.Map<java.lang.String, io.trino.spi.metrics.Metrics>, java.util.Optional<java.lang.String>)</new>
</item>
</differences>
</revapi.differences>
</analysisConfiguration>
</configuration>
<dependencies>
<dependency>
<groupId>org.revapi</groupId>
<artifactId>revapi-java</artifactId>
<version>0.28.4</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>