This is an automated email from the ASF dual-hosted git repository. slachiewicz pushed a commit to branch MNG-6558 in repository https://gitbox.apache.org/repos/asf/maven.git
commit cebeef122fd628ac6a6b3317bb7a9cba2db45935 Author: Guy Brand <[email protected]> AuthorDate: Fri Jan 11 09:08:42 2019 +0100 [MNG-6558] - ToolchainsBuildingResult event is not sent on EventSpy Fixes #231 --- .../main/java/org/apache/maven/cli/MavenCli.java | 6 ++-- .../java/org/apache/maven/cli/MavenCliTest.java | 38 ++++++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java index f7ceda2..b99783d 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java @@ -596,7 +596,7 @@ public class MavenCli populateProperties( cliRequest.commandLine, cliRequest.systemProperties, cliRequest.userProperties ); } - private PlexusContainer container( CliRequest cliRequest ) + PlexusContainer container( CliRequest cliRequest ) throws Exception { if ( cliRequest.classWorld == null ) @@ -1201,7 +1201,7 @@ public class MavenCli } } - private void toolchains( CliRequest cliRequest ) + void toolchains( CliRequest cliRequest ) throws Exception { File userToolchainsFile; @@ -1265,7 +1265,7 @@ public class MavenCli ToolchainsBuildingResult toolchainsResult = toolchainsBuilder.build( toolchainsRequest ); - eventSpyDispatcher.onEvent( toolchainsRequest ); + eventSpyDispatcher.onEvent( toolchainsResult ); executionRequestPopulator.populateFromToolchains( cliRequest.request, toolchainsResult.getEffectiveToolchains() ); diff --git a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java index 433c949..5f4c5b6 100644 --- a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java +++ b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java @@ -24,14 +24,24 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.junit.Assume.assumeTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.inOrder; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; import java.io.File; import org.apache.commons.cli.ParseException; +import org.apache.maven.Maven; +import org.apache.maven.eventspy.internal.EventSpyDispatcher; import org.apache.maven.shared.utils.logging.MessageUtils; +import org.apache.maven.toolchain.building.ToolchainsBuildingRequest; +import org.apache.maven.toolchain.building.ToolchainsBuildingResult; +import org.codehaus.plexus.PlexusContainer; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.mockito.InOrder; public class MavenCliTest { @@ -293,4 +303,32 @@ public class MavenCliTest // noop } } + + /** + * Verifies MNG-6558 + */ + @Test + public void testToolchainsBuildingEvents() throws Exception { + final EventSpyDispatcher eventSpyDispatcherMock = mock(EventSpyDispatcher.class); + MavenCli customizedMavenCli = new MavenCli() { + @Override + protected void customizeContainer(PlexusContainer container) { + super.customizeContainer(container); + container.addComponent(eventSpyDispatcherMock, "org.apache.maven.eventspy.internal.EventSpyDispatcher"); + container.addComponent(mock(Maven.class), "org.apache.maven.Maven"); + } + }; + + CliRequest cliRequest = new CliRequest(new String[]{}, null); + + customizedMavenCli.cli(cliRequest); + customizedMavenCli.logging(cliRequest); + customizedMavenCli.container(cliRequest); + customizedMavenCli.toolchains(cliRequest); + + InOrder orderdEventSpyDispatcherMock = inOrder(eventSpyDispatcherMock); + orderdEventSpyDispatcherMock.verify(eventSpyDispatcherMock, times(1)).onEvent(any(ToolchainsBuildingRequest.class)); + orderdEventSpyDispatcherMock.verify(eventSpyDispatcherMock, times(1)).onEvent(any(ToolchainsBuildingResult.class)); + } + }
