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