You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maxim Muzafarov (Jira)" <ji...@apache.org> on 2022/04/14 19:48:00 UTC

[jira] [Commented] (IGNITE-16852) Ignite compatibility framework can exclude unnecessary jars from test java process classpath

    [ https://issues.apache.org/jira/browse/IGNITE-16852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17522514#comment-17522514 ] 

Maxim Muzafarov commented on IGNITE-16852:
------------------------------------------

Suggeted solution is working:
https://ci.ignite.apache.org/viewLog.html?buildId=6526064&buildTypeId=IgniteTests24Java8_PdsCompatibility

The Spring Transactions suite uses the ignite-spring-data-commons as a test dependency which is missed from classpath if the release version is used (1.1.0). Afther the fix was applied in the dedicated branch and Iginte was built for running the Extensions suite all tests are passing.

Check the following executions:
https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteExtensions_Tests_SpringTransactions&branch_IgniteExtensions_Tests=pull%2F110%2F&tab=buildTypeStatusDiv


> Ignite compatibility framework can exclude unnecessary jars from test java process classpath
> --------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-16852
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16852
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Mikhail Petrov
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Ignite compatibility framework can exclude unnecessary jars from test java process classpath. 
> Compatibility framework excludes from calsspath classes which versions were explicitly specified. See IgniteCompatibilityAbstractTest#getProcessProxyJvmArgs.
> The exclusion mechanism is based on the specified dependency names
> See IgniteCompatibilityAbstractTest#getExcluded
> Dependency#sourcePathTemplate
> Dependency#artifactPathTemplate
> Since we use the following condition to filter dependency from classpath
> {code:java}
>   if (excluded.stream().noneMatch(path::contains))
> {code}
> The following situation can occur:
> Assume that we have two dependencies with names 
> `spring` and `spring-data-commons`. `spring` dependency version is specified explicitly and must be excluded. But since we check, if dependency jar path CONTAINS Dependency#artifactPathTemplate result both `spring` and `spring-data-commons` jars is excluded from the classpath.
> It can be fixed by attaching '/' to Dependency#artifactPathTemplate result. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)