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
33
34
35 @Named
36 public class SessionScopeModule
37 extends AbstractModule
38 {
39 private final SessionScope scope;
40
41 @Inject
42 public SessionScopeModule()
43 {
44 this( new SessionScope() );
45 }
46
47 public SessionScopeModule( PlexusContainer container )
48 throws ComponentLookupException
49 {
50 this( container.lookup( SessionScope.class ) );
51 }
52
53 private SessionScopeModule( SessionScope scope )
54 {
55 this.scope = scope;
56 }
57
58 @Override
59 protected void configure()
60 {
61 bindScope( SessionScoped.class, scope );
62 bind( SessionScope.class ).toInstance( scope );
63
64 bind( MavenSession.class ).toProvider( SessionScope.<MavenSession>seededKeyProvider() ).in( scope );
65 }
66 }