1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.cdi.websocket;
20
21 import javax.enterprise.inject.Produces;
22 import javax.enterprise.inject.spi.InjectionPoint;
23 import javax.websocket.Session;
24
25 import org.eclipse.jetty.util.log.Log;
26 import org.eclipse.jetty.util.log.Logger;
27
28
29
30
31 public class JavaWebSocketSessionProducer
32 {
33 private static final Logger LOG = Log.getLogger(JavaWebSocketSessionProducer.class);
34
35 @Produces
36 public Session getSession(InjectionPoint injectionPoint)
37 {
38 if (LOG.isDebugEnabled())
39 {
40 LOG.debug("getSession({})",injectionPoint);
41 }
42 org.eclipse.jetty.websocket.api.Session sess = WebSocketScopeContext.current().getSession();
43 if (sess == null)
44 {
45 throw new IllegalStateException("No Session Available");
46 }
47
48 if (sess instanceof javax.websocket.Session)
49 {
50 return (Session)sess;
51 }
52
53 throw new IllegalStateException("Incompatible Session, expected <" + javax.websocket.Session.class.getName() + ">, but got <"
54 + sess.getClass().getName() + "> instead");
55 }
56 }