ok, let's share what I know from embedded ITs (sorry, long email, but IMHO useful to share some details):
- by default, Verifier forks for every IT and launches Maven with the shell script through ForkedLauncher [1] - in embedded mode, there is no fork but use of MavenCli.doMain(String[] args, workingDir, stdin, stdout) by Embedded3xLauncher [2], which will recreate a Classworlds classloader context in the current JVM: AFAIK, this makes the embedded situation really the same as forked one from a classloader point of view, with CLI args passed, working dir, stdin and stdout - a few ITs require shell script and don't have any meaning without it: in this case, even if the build is in embedded mode, the IT forces the Verifier to used forked execution, for example in mng5889 [3] - every IT that we want absolutely not to be embedded has to do this "verifier.setForkJvm( true );" call, or the IT won't be in expected situation: as you point out, mng4625 currently does not do this call, then may not be really effective with the embedded profile. This can be considered as a bug and explains why currently this IT fails in my "embedded-ITs" branch => I'll improve now the IT to support the embedded profile by forcing forked execution :) Now that I wrote this, summarizing what I knew and what was already reported as issues, it looks to me that embedded mode may trigger a few failures that can and should be fixed by forcing forked execution (which won't change the overall effect: most ITs will run embedded then execution time will be a lot lower than full forked execution) the only risk is that some ITs don't fail when run in embedded mode but in fact don't really test what they are supposed to test This seems a reasonable risk to take here, given the benefit: we'll improve ITs if necessary. If nobody objects, I'll do the merge to master in a few days Regards, Hervé [1] http://maven.apache.org/shared/maven-verifier/xref/org/apache/maven/it/ ForkedLauncher.html#L60 [2] http://maven.apache.org/ref/3.5.0-beta-1/maven-embedder/xref/org/apache/ maven/cli/MavenCli.html#L262 [3] https://github.com/apache/maven-integration-testing/blob/master/core-it-suite/src/test/java/org/apache/maven/it/ MavenITmng5889CoreExtensionsTest.java#L57 Le vendredi 24 mars 2017, 21:29:38 CET Olivier Lamy a écrit : > sure tempting :-) > But is is the same classloader mechanism as a "normal" Maven run? (should > be really close but not sure exactly so maybe we can miss some cases) > > On Fri, 24 Mar 2017 at 6:47 pm, Stephen Connolly < > > stephen.alan.conno...@gmail.com> wrote: > > Have we some of the tests running in both modes? > > > > Specifically at least 4625 as it caught some interesting CLI parsing > > issues, but there may be a couple more > > > > On Fri 24 Mar 2017 at 07:15, Hervé Boutemy <hbout...@apache.org> wrote: > > > as you can see, in embedded mode, core ITs can run in 17 minutes, when > > > in > > > classic mode they run in 1h30 > > > > > > any objection to merge this embedded mode into master? > > > > > > Regards, > > > > > > Hervé > > > > > > Le vendredi 24 mars 2017 04:17:49 CET, vous avez écrit : > > > > See > > > > > > https://builds.apache.org/job/maven-3.x-jenkinsfile/job/embedded-ITs/3/ > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > > > For additional commands, e-mail: dev-h...@maven.apache.org > > > > > > -- > > > > Sent from my phone --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org