cactoos
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.cactoos</groupId>
<artifactId>cactoos</artifactId>
<version>0.61.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
* SPDX-FileCopyrightText: Copyright (c) 2017-2026 Yegor Bugayenko
* SPDX-License-Identifier: MIT
-->
<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>com.jcabi</groupId>
<artifactId>parent</artifactId>
<version>0.73.1</version>
</parent>
<groupId>org.cactoos</groupId>
<artifactId>cactoos</artifactId>
<version>0.61.0</version>
<packaging>jar</packaging>
<name>cactoos</name>
<description>Object-Oriented Java Primitives</description>
<url>https://github.com/yegor256/cactoos</url>
<inceptionYear>2017</inceptionYear>
<organization>
<name>Cactoos</name>
<url>https://github.com/yegor256/cactoos</url>
</organization>
<licenses>
<license>
<name>MIT</name>
<url>https://raw.githubusercontent.com/yegor256/cactoos/master/LICENSE.txt</url>
<distribution>site</distribution>
</license>
</licenses>
<developers>
<developer>
<id>1</id>
<name>Yegor Bugayenko</name>
<email>yegor256@gmail.com</email>
<organization>yegor256.com</organization>
<organizationUrl>https://www.yegor256.com</organizationUrl>
<roles>
<role>Architect</role>
<role>Developer</role>
</roles>
<timezone>+3</timezone>
</developer>
</developers>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/yegor256/cactoos/issues</url>
</issueManagement>
<scm>
<connection>scm:git:git@github.com:yegor256/cactoos.git</connection>
<developerConnection>scm:git:git@github.com:yegor256/cactoos.git</developerConnection>
<url>https://github.com/yegor256/cactoos</url>
</scm>
<ciManagement>
<system>rultor</system>
<url>https://www.rultor.com/s/cactoos</url>
</ciManagement>
<distributionManagement>
<site>
<id>github-pages</id>
<url>https://github.com/yegor256/cactoos</url>
</site>
</distributionManagement>
<dependencies>
<dependency>
<groupId>org.takes</groupId>
<artifactId>takes</artifactId>
<version>1.25.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.cactoos</groupId>
<artifactId>cactoos</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.llorllale</groupId>
<artifactId>cactoos-matchers</artifactId>
<version>0.25</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.cactoos</groupId>
<artifactId>cactoos</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>annotations</artifactId>
<version>3.0.1u2</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>net.jcip</groupId>
<artifactId>jcip-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>6.0.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.revapi</groupId>
<artifactId>revapi-maven-plugin</artifactId>
<version>0.15.1</version>
<dependencies>
<dependency>
<groupId>org.revapi</groupId>
<artifactId>revapi-java</artifactId>
<version>0.28.4</version>
</dependency>
</dependencies>
<configuration>
<analysisConfiguration>
<revapi.differences id="intentional-api-changes">
<ignore>true</ignore>
<differences>
<item>
<code>java.method.varargOverloadsOnlyDifferInVarargParameter</code>
<justification>Vararg overloads are intentional for API convenience</justification>
</item>
<item>
<code>java.class.removed</code>
<old>class org.cactoos.text.Abbreviated</old>
<justification>Class removed as part of 1.0 release cleanup</justification>
</item>
<item>
<code>java.method.parameterTypeChanged</code>
<old>parameter void org.cactoos.set.Diff<T>::<init>(===org.cactoos.set.SetOf<T>===, org.cactoos.set.SetOf<T>)</old>
<new>parameter void org.cactoos.set.Diff<T>::<init>(===java.util.Set<T>===, java.util.Set<T>)</new>
<justification>Using Set interface instead of SetOf implementation for better API design</justification>
</item>
<item>
<code>java.method.parameterTypeChanged</code>
<old>parameter void org.cactoos.set.Diff<T>::<init>(org.cactoos.set.SetOf<T>, ===org.cactoos.set.SetOf<T>===)</old>
<new>parameter void org.cactoos.set.Diff<T>::<init>(java.util.Set<T>, ===java.util.Set<T>===)</new>
<justification>Using Set interface instead of SetOf implementation for better API design</justification>
</item>
<item>
<code>java.method.parameterTypeChanged</code>
<old>parameter void org.cactoos.set.Intersection<T>::<init>(===org.cactoos.set.SetOf<T>===, org.cactoos.set.SetOf<T>)</old>
<new>parameter void org.cactoos.set.Intersection<T>::<init>(===java.util.Set<T>===, java.util.Set<T>)</new>
<justification>Using Set interface instead of SetOf implementation for better API design</justification>
</item>
<item>
<code>java.method.parameterTypeChanged</code>
<old>parameter void org.cactoos.set.Intersection<T>::<init>(org.cactoos.set.SetOf<T>, ===org.cactoos.set.SetOf<T>===)</old>
<new>parameter void org.cactoos.set.Intersection<T>::<init>(java.util.Set<T>, ===java.util.Set<T>===)</new>
<justification>Using Set interface instead of SetOf implementation for better API design</justification>
</item>
<item>
<code>java.method.parameterTypeChanged</code>
<old>parameter void org.cactoos.set.Union<T>::<init>(===org.cactoos.set.SetOf<T>===, org.cactoos.set.SetOf<T>)</old>
<new>parameter void org.cactoos.set.Union<T>::<init>(===java.util.Set<T>===, java.util.Set<T>)</new>
<justification>Using Set interface instead of SetOf implementation for better API design</justification>
</item>
<item>
<code>java.method.parameterTypeChanged</code>
<old>parameter void org.cactoos.set.Union<T>::<init>(org.cactoos.set.SetOf<T>, ===org.cactoos.set.SetOf<T>===)</old>
<new>parameter void org.cactoos.set.Union<T>::<init>(java.util.Set<T>, ===java.util.Set<T>===)</new>
<justification>Using Set interface instead of SetOf implementation for better API design</justification>
</item>
<item>
<code>java.method.parameterTypeChanged</code>
<old>parameter int org.cactoos.number.ComparableNumber::compareTo(===java.lang.Number===)</old>
<new>parameter int org.cactoos.number.ComparableNumber::compareTo(===org.cactoos.number.ComparableNumber===)</new>
<justification>Self-typed Comparable parameter follows Comparable contract recommendations</justification>
</item>
<item>
<code>java.class.noLongerImplementsInterface</code>
<old>class org.cactoos.number.ComparableNumber</old>
<new>class org.cactoos.number.ComparableNumber</new>
<justification>Self-typed Comparable parameter follows Comparable contract recommendations</justification>
</item>
<item>
<code>java.class.superTypeTypeParametersChanged</code>
<old>class org.cactoos.number.ComparableNumber</old>
<new>class org.cactoos.number.ComparableNumber</new>
<justification>Self-typed Comparable parameter follows Comparable contract recommendations</justification>
</item>
<item>
<code>java.method.parameterTypeChanged</code>
<old>parameter int org.cactoos.text.ComparableText::compareTo(===org.cactoos.Text===)</old>
<new>parameter int org.cactoos.text.ComparableText::compareTo(===org.cactoos.text.ComparableText===)</new>
<justification>Self-typed Comparable parameter follows Comparable contract recommendations</justification>
</item>
<item>
<code>java.class.noLongerImplementsInterface</code>
<old>class org.cactoos.text.ComparableText</old>
<new>class org.cactoos.text.ComparableText</new>
<justification>Self-typed Comparable parameter follows Comparable contract recommendations</justification>
</item>
<item>
<code>java.class.superTypeTypeParametersChanged</code>
<old>class org.cactoos.text.ComparableText</old>
<new>class org.cactoos.text.ComparableText</new>
<justification>Self-typed Comparable parameter follows Comparable contract recommendations</justification>
</item>
<item>
<code>java.class.noLongerInheritsFromClass</code>
<old>class org.cactoos.number.ComparableNumber</old>
<new>class org.cactoos.number.ComparableNumber</new>
<justification>Switched to composition to satisfy linter rules and keep equals/hashCode local to the Comparable</justification>
</item>
<item>
<code>java.class.noLongerInheritsFromClass</code>
<old>class org.cactoos.text.ComparableText</old>
<new>class org.cactoos.text.ComparableText</new>
<justification>Switched to composition to satisfy linter rules and keep equals/hashCode local to the Comparable</justification>
</item>
</differences>
</revapi.differences>
</analysisConfiguration>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.15.0</version>
<configuration>
<release>17</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<source>17</source>
</configuration>
</plugin>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.23.1</version>
<executions>
<execution>
<goals>
<goal>mutationCoverage</goal>
</goals>
<configuration>
<threads>8</threads>
<mutationThreshold>75</mutationThreshold>
<timeoutConstant>500</timeoutConstant>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-junit5-plugin</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-verifier-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>main</id>
<phase>package</phase>
<goals>
<goal>verify</goal>
</goals>
<configuration>
<verificationFile>src/verifier/verifications.xml</verificationFile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-check</id>
<phase>test</phase>
<goals>
<goal>check</goal>
<goal>report</goal>
</goals>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>INSTRUCTION</counter>
<value>COVEREDRATIO</value>
<minimum>0.61</minimum>
</limit>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.65</minimum>
</limit>
<limit>
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>0.65</minimum>
</limit>
<limit>
<counter>COMPLEXITY</counter>
<value>COVEREDRATIO</value>
<minimum>0.57</minimum>
</limit>
<limit>
<counter>METHOD</counter>
<value>COVEREDRATIO</value>
<minimum>0.57</minimum>
</limit>
<limit>
<counter>CLASS</counter>
<value>MISSEDCOUNT</value>
<maximum>15</maximum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>qulice</id>
<build>
<plugins>
<plugin>
<groupId>com.qulice</groupId>
<artifactId>qulice-maven-plugin</artifactId>
<version>0.27.1</version>
<configuration>
<excludes combine.children="append">
<exclude>checkstyle:/src/site/resources/.*</exclude>
<exclude>pmd:.*/src/test/java/org/cactoos/experimental/ThreadsTest\.java</exclude>
<exclude>pmd:.*/src/test/java/org/cactoos/func/AsyncTest\.java</exclude>
<exclude>pmd:.*/src/test/java/org/cactoos/scalar/AndInThreadsTest\.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>de.thetaphi</groupId>
<artifactId>forbiddenapis</artifactId>
<version>3.10</version>
<configuration>
<signaturesFiles>
<signaturesFile>./src/test/resources/forbidden-apis.txt</signaturesFile>
</signaturesFiles>
<!--
@todo #1434:30min In the continuation of #588, all the calls
to Matchers should be replaced with their OO counterparts.
This todo should be updated with a new one until everything is
done. The newly covered classes should be added to the include
configuration property below. At the end, the configuration
property below should be completely removed so that calls
to forbidden APIs always fail the build for every classes.
-->
<includes>
<include>org/cactoos/bytes/*.class</include>
<include>org/cactoos/collection/*.class</include>
<include>org/cactoos/experimental/*.class</include>
<include>org/cactoos/func/*.class</include>
<include>org/cactoos/io/*.class</include>
<include>org/cactoos/proc/*.class</include>
<include>org/cactoos/set/*.class</include>
<include>org/cactoos/test/*.class</include>
<include>org/cactoos/time/*.class</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>testCheck</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sonar</id>
<properties>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<sonar.organization>yegor256-github</sonar.organization>
<sonar.projectKey>org.cactoos:cactoos</sonar.projectKey>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>5.6.0.6792</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>sonar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>