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.api.Session;
27 import org.apache.maven.execution.MavenSession;
28 import org.apache.maven.internal.impl.DefaultSession;
29 import org.codehaus.plexus.PlexusContainer;
30 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
31
32 import com.google.inject.AbstractModule;
33
34
35
36
37 @Named
38 public class SessionScopeModule
39 extends AbstractModule
40 {
41 private final SessionScope scope;
42
43 @Inject
44 public SessionScopeModule()
45 {
46 this( new SessionScope() );
47 }
48
49 public SessionScopeModule( PlexusContainer container )
50 throws ComponentLookupException
51 {
52 this( container.lookup( SessionScope.class ) );
53 }
54
55 private SessionScopeModule( SessionScope scope )
56 {
57 this.scope = scope;
58 }
59
60 @Override
61 protected void configure()
62 {
63 bindScope( SessionScoped.class, scope );
64 bind( SessionScope.class ).toInstance( scope );
65
66 bind( MavenSession.class ).toProvider( SessionScope.seededKeyProvider() ).in( scope );
67 bind( Session.class ).toProvider( SessionScope.seededKeyProvider() ).in( scope );
68 bind( DefaultSession.class ).toProvider( SessionScope.seededKeyProvider() ).in( scope );
69 }
70 }