1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.internal;
20
21 import java.util.concurrent.CountDownLatch;
22
23 import org.apache.maven.execution.DefaultMavenExecutionRequest;
24 import org.apache.maven.execution.MavenExecutionRequest;
25 import org.apache.maven.execution.MavenSession;
26 import org.junit.jupiter.api.Test;
27
28 import static org.junit.jupiter.api.Assertions.assertNull;
29
30
31
32
33 class DefaultLegacySupportTest {
34 final CountDownLatch latch = new CountDownLatch(1);
35 final DefaultLegacySupport defaultLegacySupport = new DefaultLegacySupport();
36
37 @Test
38 void testSetSession() throws Exception {
39
40 MavenExecutionRequest mavenExecutionRequest = new DefaultMavenExecutionRequest();
41 MavenSession m1 = new MavenSession(null, null, mavenExecutionRequest, null);
42 defaultLegacySupport.setSession(m1);
43
44 MyRunnable myRunnable = new MyRunnable();
45 Thread thread = new Thread(myRunnable);
46 thread.start();
47
48 MavenSession m2 = new MavenSession(null, null, mavenExecutionRequest, null);
49 defaultLegacySupport.setSession(m2);
50 latch.countDown();
51 thread.join();
52 assertNull(myRunnable.getSession());
53 }
54
55 class MyRunnable implements Runnable {
56
57 private volatile MavenSession session;
58
59 public void run() {
60 try {
61 latch.await();
62 } catch (InterruptedException ignore) {
63
64 }
65 session = defaultLegacySupport.getSession();
66 }
67
68 public MavenSession getSession() {
69 return session;
70 }
71 }
72 }