1 package org.apache.maven.session.scope.internal;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import javax.inject.Inject;
23 import javax.inject.Named;
24
25 import org.apache.maven.SessionScoped;
26 import org.apache.maven.execution.MavenSession;
27 import org.codehaus.plexus.PlexusContainer;
28 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
29
30 import com.google.inject.AbstractModule;
31
32 @Named
33 public class SessionScopeModule
34 extends AbstractModule
35 {
36 private final SessionScope scope;
37
38 @Inject
39 public SessionScopeModule()
40 {
41 this( new SessionScope() );
42 }
43
44 public SessionScopeModule( PlexusContainer container )
45 throws ComponentLookupException
46 {
47 this( container.lookup( SessionScope.class ) );
48 }
49
50 private SessionScopeModule( SessionScope scope )
51 {
52 this.scope = scope;
53 }
54
55 @Override
56 protected void configure()
57 {
58 bindScope( SessionScoped.class, scope );
59 bind( SessionScope.class ).toInstance( scope );
60
61 bind( MavenSession.class ).toProvider( SessionScope.<MavenSession>seededKeyProvider() ).in( scope );
62 }
63 }