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 = new InheritableThreadLocal<AtomicReference<MavenSession>>();
42
43 public void setSession( MavenSession session )
44 {
45 AtomicReference<MavenSession> reference = DefaultLegacySupport.SESSION.get();
46 if ( reference != null )
47 {
48 reference.set( null );
49 }
50
51 if ( session == null && reference != null )
52 {
53 DefaultLegacySupport.SESSION.remove();
54 }
55 else
56 {
57 DefaultLegacySupport.SESSION.set( new AtomicReference<MavenSession>( session ) );
58 }
59 }
60
61 public MavenSession getSession()
62 {
63 AtomicReference<MavenSession> currentSession = DefaultLegacySupport.SESSION.get();
64 return currentSession != null ? currentSession.get() : null;
65 }
66
67 public RepositorySystemSession getRepositorySession()
68 {
69 MavenSession session = getSession();
70 return ( session != null ) ? session.getRepositorySession() : null;
71 }
72
73 }