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