eo-runtime
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.eolang</groupId>
<artifactId>eo-runtime</artifactId>
<version>0.59.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
* SPDX-FileCopyrightText: Copyright (c) 2016-2025 Objectionary.com
* 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>org.eolang</groupId>
<artifactId>eo-parent</artifactId>
<version>0.59.0</version>
</parent>
<artifactId>eo-runtime</artifactId>
<packaging>jar</packaging>
<name>eo-runtime</name>
<description>EO runtime library</description>
<properties>
<!-- This is required for later correct replacement of argline -->
<argLine/>
</properties>
<dependencies>
<dependency>
<!--
This dependency is required by the javadoc plugin. In the eo-runtime,
we use classes from this JAR, but can't have it as a normal dependency.
That's why the scope is "provided" here: it won't become a transitive
one, but at the same time will satisfy javadoc plugin.
-->
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.18.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>2.0.17</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.17</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.5.19</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eolang</groupId>
<artifactId>xax</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>jaxec</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>jhome</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-log</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-xml</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-manifests</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.cactoos</groupId>
<artifactId>cactoos</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.llorllale</groupId>
<artifactId>cactoos-matchers</artifactId>
<version>0.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>jping</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>farea</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>mktmp</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>together</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.yegor256</groupId>
<artifactId>maybeslow</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eolang</groupId>
<artifactId>jucs</artifactId>
<!-- version from parent POM -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.artsok</groupId>
<artifactId>rerunner-jupiter</artifactId>
<version>2.1.6</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>${skipUTs}</skipTests>
<runOrder>random</runOrder>
<argLine>
@{argLine} -Xmx${heap-size} -Xss${stack-size} -Duser.language=ru -Duser.region=RU
</argLine>
<systemPropertyVariables>
<eo.version>${project.version}</eo.version>
<java.util.logging.config.file>
${project.basedir}/src/test/resources/jul.properties
</java.util.logging.config.file>
</systemPropertyVariables>
<!-- Default surefire plugin corrupts native stdout. It means the text that was
printed in native method will not be printed in 'mvn clean install'. This configuration
switches surefire communication channel from default to TCP/IP and solves the bug.
More detailed: https://stackoverflow.com/questions/55272870/surefire-maven-plugin-corrupted-stdout-by-directly-writing-to-native-stream-in
and https://maven.apache.org/surefire/maven-surefire-plugin/examples/process-communication.html-->
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
<properties>
<configurationParameters>
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.mode.classes.default = concurrent
</configurationParameters>
</properties>
</configuration>
</plugin>
<plugin>
<groupId>org.eolang</groupId>
<artifactId>eo-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<foreign>${project.build.directory}/eo-foreign.csv</foreign>
<foreignFormat>csv</foreignFormat>
<failOnWarning>true</failOnWarning>
<offline>true</offline>
<skipLinting>true</skipLinting>
</configuration>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>register</goal>
<goal>compile</goal>
<goal>transpile</goal>
<goal>unplace</goal>
<goal>unspile</goal>
</goals>
<configuration>
<!--
@todo #4394:35min Lints after fixing Phi dependent lints.
For now, `unit-test-without-phi`, `redundant-object check` for `@` attribute in
the tests, which represents Phi. However, we changed the notation in the XMIR,
and now the same Phi represented as 'φ'. Don't forget to enable these lints, after
new version of lints with the fix will be available. The lint
`unlint-non-existing-defect` should be also enabled, but now disabled due to
massive local unlints of `redundant-object` lint, which is currently disabled.
We decided to skip linting entirely, not just skipping individual lints, because
of this issue: https://github.com/objectionary/lints/issues/699.
-->
<skipLinting>true</skipLinting>
<failOnWarning>true</failOnWarning>
<ignoreRuntime>true</ignoreRuntime>
<!--
@todo #4148:35min Enable `lintAsPackage` below and fix
all warnings that will be reported (there will be many of them),
so that we can enable it in the `test-compile` execution as well:
-->
<lintAsPackage>false</lintAsPackage>
<skipSourceLints>
<!-- Required to be skipped, since we in runtime origin library. -->
<lint>prohibited-package</lint>
<!--
@todo #4148:35min Enable `unused-void-attr` lint.
We should enable this lint after the following issue with magic
voids will be resolved: https://github.com/objectionary/lints/issues/574.
Don't forget to enable `unused-void-attr` in the `test–compile` execution as well.
-->
<lint>unused-void-attr</lint>
<!--
@todo #4148:35min Enable `duplicate-names-in-diff-context` lint.
For now its too pedantic. See this: https://github.com/objectionary/lints/issues/578.
Also, we should fix the bug with false positives with lambda object names in the atoms,
in order to enable this lint.
-->
<lint>duplicate-names-in-diff-context</lint>
<!--
@todo #4096:35min Enable `sparse-decoration` lint.
After we merged EO tests together with their source objects, and removed
`+tests` meta, we have complains about sparse-decoration. Let's adjust and
enable it.
-->
<lint>sparse-decoration</lint>
</skipSourceLints>
<keepBinaries>
<glob>EOorg/package-info.class</glob>
<glob>EOorg/EOeolang/package-info.class</glob>
<glob>EOorg/EOeolang/EOfs/package-info.class</glob>
<glob>EOorg/EOeolang/EOms/package-info.class</glob>
<glob>EOorg/EOeolang/EOsm/package-info.class</glob>
<glob>EOorg/EOeolang/EOtt/package-info.class</glob>
</keepBinaries>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>snippet-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<argLine>
@{argLine} -Xmx${heap-size} -Xss${stack-size} -Duser.language=ru -Duser.region=RU
</argLine>
<systemPropertyVariables combine.children="append">
<java.class.path>${project.build.outputDirectory}</java.class.path>
<xmir.xsd>${project.basedir}/../eo-parser/src/main/resources/XMIR.xsd</xmir.xsd>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>jacoco</id>
<build>
<plugins>
<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.14</minimum>
</limit>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.13</minimum>
</limit>
<limit>
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>0.03</minimum>
</limit>
<limit>
<counter>COMPLEXITY</counter>
<value>COVEREDRATIO</value>
<minimum>0.08</minimum>
</limit>
<limit>
<counter>METHOD</counter>
<value>COVEREDRATIO</value>
<minimum>0.12</minimum>
</limit>
<limit>
<counter>CLASS</counter>
<value>MISSEDCOUNT</value>
<maximum>1514</maximum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>qulice</id>
<build>
<plugins>
<plugin>
<groupId>org.eolang</groupId>
<artifactId>eo-maven-plugin</artifactId>
<configuration>
<skipLinting>false</skipLinting>
</configuration>
</plugin>
<plugin>
<groupId>com.qulice</groupId>
<artifactId>qulice-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>dependencies:org.eolang:eo-maven-plugin</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<executions>
<execution>
<id>project-validate</id>
<phase>verify</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>${project.basedir}/src/test/groovy/verify.groovy</source>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-xml</artifactId>
<version>3.0.25</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>hone</id>
<build>
<plugins>
<plugin>
<groupId>org.eolang</groupId>
<artifactId>hone-maven-plugin</artifactId>
<version>0.20.3</version>
<executions>
<execution>
<goals>
<goal>pull</goal>
<goal>optimize</goal>
<goal>rmi</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>