1 package org.apache.maven.plugin.internal;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.concurrent.atomic.AtomicReference;
23 import org.apache.maven.execution.MavenSession;
24 import org.apache.maven.plugin.LegacySupport;
25 import org.codehaus.plexus.component.annotations.Component;
26 import org.eclipse.aether.RepositorySystemSession;
27
28
29
30
31
32
33
34
35
36 @Component( role = LegacySupport.class )
37 public class DefaultLegacySupport
38 implements LegacySupport
39 {
40
41 private static final ThreadLocal<AtomicReference<MavenSession>> SESSION =
42 new InheritableThreadLocal<>();
43
44 public void setSession( MavenSession session )
45 {
46 AtomicReference<MavenSession> reference = DefaultLegacySupport.SESSION.get();
47 if ( reference != null )
48 {
49 reference.set( null );
50 }
51
52 if ( session == null && reference != null )
53 {
54 DefaultLegacySupport.SESSION.remove();
55 }
56 else
57 {
58 DefaultLegacySupport.SESSION.set( new AtomicReference<>( session ) );
59 }
60 }
61
62 public MavenSession getSession()
63 {
64 AtomicReference<MavenSession> currentSession = DefaultLegacySupport.SESSION.get();
65 return currentSession != null ? currentSession.get() : null;
66 }
67
68 public RepositorySystemSession getRepositorySession()
69 {
70 MavenSession session = getSession();
71 return ( session != null ) ? session.getRepositorySession() : null;
72 }
73
74 }