Skip to content

Commit 598857d

Browse files
authored
Mimir Cache-Purge w Pre-seed (#11315)
For this to work in Windows, we need latest 0.10.4 and also some changes/fixes in ITs. Changes: * update to Mimir 0.10.4 + enable cache purge * dropped ctor `Verifier(String basedir, boolean debug)` as `debug` was unused, instead introduced `Verifier(String basedir, boolean createDotMvn)` that auto-creates `.mvn` folder in basedir for each ITs. If IT does not want this, it must use alt method and have a Javadoc telling why. * detached `its` parent POM from Maven parent POM, as it interferes with IT support built plugins (we have ITs that uses plugin built in core-it-support but in POM adds an IT specific dependency that in turn pulls in stub plexus-utils dependency; by having depMgt in plugin POM, due Maven 4 transitive dep mgmt, the 4th level p-u was NOT used, but a managed one was used instead) * disabled RRF in ITs due apache/maven-resolver#1641 and parallel running of IT just exacerbates this issue Note: due cache rename this commit when merged is at the mercy of Central (HTTP 500 and so on), so will probably need several runs to stabilize (populate caches).
1 parent 9a5fb67 commit 598857d

30 files changed

+202
-85
lines changed

.github/ci-mimir-daemon.properties

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,5 @@
1919

2020
# Pre-seed itself
2121
mimir.daemon.preSeedItself=true
22-
# OFF for now; Windows issues
23-
# mimir.file.exclusiveAccess=true
24-
# mimir.file.cachePurge=ON_BEGIN
22+
mimir.file.exclusiveAccess=true
23+
mimir.file.cachePurge=ON_BEGIN

.github/workflows/maven.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ concurrency:
3232
permissions: {}
3333

3434
env:
35-
MIMIR_VERSION: 0.10.3
35+
MIMIR_VERSION: 0.10.4
3636
MIMIR_BASEDIR: ~/.mimir
3737
MIMIR_LOCAL: ~/.mimir/local
3838
MAVEN_OPTS: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./target/java_heapdump.hprof
@@ -65,7 +65,7 @@ jobs:
6565
id: restore-cache
6666
with:
6767
path: ${{ env.MIMIR_LOCAL }}
68-
key: mvn-${{ runner.os }}-initial
68+
key: master-${{ runner.os }}-initial
6969

7070
- name: Set up Maven
7171
shell: bash
@@ -156,10 +156,10 @@ jobs:
156156
id: restore-cache
157157
with:
158158
path: ${{ env.MIMIR_LOCAL }}
159-
key: mvn-full-${{ matrix.os }}-${{ matrix.java }}
159+
key: master-full-${{ matrix.os }}-${{ matrix.java }}
160160
restore-keys: |
161-
mvn-full-${{ matrix.os }}-
162-
mvn-full-
161+
master-full-${{ matrix.os }}-
162+
master-full-
163163
164164
- name: Download Maven distribution
165165
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v4
@@ -246,10 +246,10 @@ jobs:
246246
id: restore-cache
247247
with:
248248
path: ${{ env.MIMIR_LOCAL }}
249-
key: mvn-its-${{ matrix.os }}-${{ matrix.java }}
249+
key: master-its-${{ matrix.os }}-${{ matrix.java }}
250250
restore-keys: |
251-
mvn-its-${{ matrix.os }}-
252-
mvn-its-
251+
master-its-${{ matrix.os }}-
252+
master-its-
253253
254254
- name: Download Maven distribution
255255
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v4

impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -323,13 +323,6 @@ protected final void createTerminal(C context) {
323323
context.terminal = MessageUtils.getTerminal();
324324
context.closeables.add(MessageUtils::systemUninstall);
325325
MessageUtils.registerShutdownHook(); // safety belt
326-
327-
// when we use embedded executor AND --raw-streams, we must ENSURE streams are properly set up
328-
if (context.invokerRequest.embedded()
329-
&& context.options().rawStreams().orElse(false)) {
330-
// to trigger FastTerminal; with raw-streams we must do this ASAP (to have system in/out/err set up)
331-
context.terminal.getName();
332-
}
333326
} else {
334327
doConfigureWithTerminal(context, context.terminal);
335328
}
@@ -381,7 +374,15 @@ protected final void doConfigureWithTerminal(C context, Terminal terminal) {
381374
/**
382375
* Override this method to add some special handling for "raw streams" <em>enabled</em> option.
383376
*/
384-
protected void doConfigureWithTerminalWithRawStreamsEnabled(C context) {}
377+
protected void doConfigureWithTerminalWithRawStreamsEnabled(C context) {
378+
context.invokerRequest.stdIn().ifPresent(System::setIn);
379+
context.invokerRequest
380+
.stdOut()
381+
.ifPresent(out -> System.setOut(out instanceof PrintStream pw ? pw : new PrintStream(out, true)));
382+
context.invokerRequest
383+
.stdErr()
384+
.ifPresent(err -> System.setErr(err instanceof PrintStream pw ? pw : new PrintStream(err, true)));
385+
}
385386

386387
/**
387388
* Override this method to add some special handling for "raw streams" <em>disabled</em> option.

its/core-it-suite/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ under the License.
106106
<dependency>
107107
<groupId>org.codehaus.plexus</groupId>
108108
<artifactId>plexus-utils</artifactId>
109+
<version>${plexusUtilsVersion}</version>
109110
<!-- NOTE: Use compile scope for transitivity. -->
110111
</dependency>
111112

@@ -409,6 +410,12 @@ under the License.
409410
<localRepositoryPath>${preparedUserHome}/.m2/repository</localRepositoryPath>
410411
<extraArtifacts>
411412
<extraArtifact>eu.maveniverse.maven.plugins:toolbox:${toolboxVersion}:maven-plugin</extraArtifact>
413+
<!--
414+
Required by:
415+
MavenITmng0449PluginVersionResolutionTest
416+
MavenITmng0479OverrideCentralRepoTest
417+
-->
418+
<extraArtifact>org.apache.maven:maven-plugin-api:3.8.6</extraArtifact>
412419
</extraArtifacts>
413420
</configuration>
414421
<executions>

its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5230MakeReactorWithExcludesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ private void clean(Verifier verifier) throws Exception {
4545
public void testitMakeWithExclude() throws Exception {
4646
File testDir = extractResources("/mng-5230-make-reactor-with-excludes");
4747

48-
Verifier verifier = newVerifier(testDir.getAbsolutePath(), true);
48+
Verifier verifier = newVerifier(testDir.getAbsolutePath());
4949
verifier.addCliArgument("-X");
5050
verifier.setAutoclean(false);
5151
clean(verifier);

its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5669ReadPomsOnce.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public class MavenITmng5669ReadPomsOnce extends AbstractMavenIntegrationTestCase
4343
public void testWithoutBuildConsumer() throws Exception {
4444
// prepare JavaAgent
4545
File testDir = extractResources("/mng-5669-read-poms-once");
46-
Verifier verifier = newVerifier(testDir.getAbsolutePath(), false);
46+
Verifier verifier = newVerifier(testDir.getAbsolutePath());
4747
Map<String, String> filterProperties = Collections.singletonMap(
4848
"${javaAgentJar}",
4949
verifier.getArtifactPath("org.apache.maven.its", "core-it-javaagent", "2.1-SNAPSHOT", "jar"));
@@ -78,7 +78,7 @@ public void testWithoutBuildConsumer() throws Exception {
7878
public void testWithBuildConsumer() throws Exception {
7979
// prepare JavaAgent
8080
File testDir = extractResources("/mng-5669-read-poms-once");
81-
Verifier verifier = newVerifier(testDir.getAbsolutePath(), false);
81+
Verifier verifier = newVerifier(testDir.getAbsolutePath());
8282
Map<String, String> filterProperties = Collections.singletonMap(
8383
"${javaAgentJar}",
8484
verifier.getArtifactPath("org.apache.maven.its", "core-it-javaagent", "2.1-SNAPSHOT", "jar"));

its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5895CIFriendlyUsageWithPropertyTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public MavenITmng5895CIFriendlyUsageWithPropertyTest() {
5050
public void testitShouldResolveTheDependenciesWithoutBuildConsumer() throws Exception {
5151
File testDir = extractResources("/mng-5895-ci-friendly-usage-with-property");
5252

53-
Verifier verifier = newVerifier(testDir.getAbsolutePath(), false);
53+
Verifier verifier = newVerifier(testDir.getAbsolutePath());
5454
verifier.setAutoclean(false);
5555

5656
// verifier.setLogFileName( "log-only.txt" );
@@ -67,7 +67,7 @@ public void testitShouldResolveTheDependenciesWithoutBuildConsumer() throws Exce
6767
public void testitShouldResolveTheDependenciesWithBuildConsumer() throws Exception {
6868
File testDir = extractResources("/mng-5895-ci-friendly-usage-with-property");
6969

70-
Verifier verifier = newVerifier(testDir.getAbsolutePath(), false);
70+
Verifier verifier = newVerifier(testDir.getAbsolutePath());
7171
verifier.setAutoclean(false);
7272

7373
verifier.setLogFileName("log-bc.txt");

its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5965ParallelBuildMultipliesWorkTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class MavenITmng5965ParallelBuildMultipliesWorkTest extends AbstractMaven
3737
public void testItShouldOnlyRunEachTaskOnce() throws Exception {
3838
File testDir = extractResources("/mng-5965-parallel-build-multiplies-work");
3939

40-
Verifier verifier = newVerifier(testDir.getAbsolutePath(), false);
40+
Verifier verifier = newVerifier(testDir.getAbsolutePath());
4141
verifier.setAutoclean(false);
4242

4343
verifier.setLogFileName("log-only.txt");

its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6057CheckReactorOrderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public MavenITmng6057CheckReactorOrderTest() {
5151
public void testitReactorShouldResultInExpectedOrder() throws Exception {
5252
File testDir = extractResources("/mng-6057-check-reactor-order");
5353

54-
Verifier verifier = newVerifier(testDir.getAbsolutePath(), false);
54+
Verifier verifier = newVerifier(testDir.getAbsolutePath());
5555
verifier.setAutoclean(false);
5656

5757
verifier.setLogFileName("log-only.txt");

its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6065FailOnSeverityTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class MavenITmng6065FailOnSeverityTest extends AbstractMavenIntegrationTe
3737
public void testItShouldFailOnWarnLogMessages() throws Exception {
3838
File testDir = extractResources("/mng-6065-fail-on-severity");
3939

40-
Verifier verifier = newVerifier(testDir.getAbsolutePath(), false);
40+
Verifier verifier = newVerifier(testDir.getAbsolutePath());
4141
verifier.setLogFileName("warn.log");
4242
verifier.addCliArgument("--fail-on-severity");
4343
verifier.addCliArgument("WARN");
@@ -60,7 +60,7 @@ public void testItShouldFailOnWarnLogMessages() throws Exception {
6060
public void testItShouldSucceedOnWarnLogMessagesWhenFailLevelIsError() throws Exception {
6161
File testDir = extractResources("/mng-6065-fail-on-severity");
6262

63-
Verifier verifier = newVerifier(testDir.getAbsolutePath(), false);
63+
Verifier verifier = newVerifier(testDir.getAbsolutePath());
6464
verifier.setLogFileName("error.log");
6565
verifier.addCliArgument("--fail-on-severity");
6666
verifier.addCliArgument("ERROR");

0 commit comments

Comments
 (0)