You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Tamás Cservenák (Jira)" <ji...@apache.org> on 2022/07/03 18:38:00 UTC
[jira] [Closed] (MINSTALL-115) Setting installAtEnd causes no installs to occur when a multimodule project has multiple class realms
[ https://issues.apache.org/jira/browse/MINSTALL-115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tamás Cservenák closed MINSTALL-115.
------------------------------------
> Setting installAtEnd causes no installs to occur when a multimodule project has multiple class realms
> -----------------------------------------------------------------------------------------------------
>
> Key: MINSTALL-115
> URL: https://issues.apache.org/jira/browse/MINSTALL-115
> Project: Maven Install Plugin
> Issue Type: Bug
> Components: install:install
> Affects Versions: 2.5.2
> Reporter: Philip Pearson
> Assignee: Tamás Cservenák
> Priority: Major
> Fix For: 3.0.0
>
> Attachments: InstallConfiguration.java, mojo.patch, oginsta-10-14-0.apk
>
>
> When the {{installAtEnd}} configuration parameter is set to {{true}} on a multimodule project with multiple class realms then because a different class loaders creates instances of the {{InstallMojo}} class there will be muliple instances of {{readyProjectsCounter}} and {{installRequests}}.
> However, because the end is determined by {{projectsReady = readyProjectsCounter.incrementAndGet() == reactorProjects.size()}} it will never complete as {{readyProjectsCounter}} will never equal the size {{reactorProjects}} if even one project is executed in another class realm.
> {{maven-deploy-plugin}} partially solved this in MDEPLOY-193 by using {{project.equals(reactorProjects.get(reactorProjects.size() - 1))}} instead. However, the installation is a little more complex than the deploy as we need to read the used the {{createChecksum}} and {{updateReleaseInfo}} configuration parameters from each installed project - we can't store them ahead of time because of the issue with the class realms, so we need to read the plugin configurations before we can call {{installProject(instalRequest)}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)