1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.cdi.servlet;
20
21 import javax.naming.NamingException;
22 import javax.naming.Reference;
23
24 import org.eclipse.jetty.plus.jndi.Resource;
25 import org.eclipse.jetty.server.handler.ContextHandler;
26 import org.eclipse.jetty.webapp.WebAppContext;
27
28
29
30
31 public class JettyWeldInitializer
32 {
33
34
35
36
37
38
39
40
41
42
43 public static void initWebApp(WebAppContext webapp) throws NamingException
44 {
45 initContext(webapp);
46
47
48 webapp.addSystemClass("org.jboss.weld.");
49 webapp.addSystemClass("org.jboss.classfilewriter.");
50 webapp.addSystemClass("org.jboss.logging.");
51 webapp.addSystemClass("com.google.common.");
52 webapp.addSystemClass("org.eclipse.jetty.cdi.websocket.annotation.");
53
54
55
56 webapp.prependServerClass("-org.eclipse.jetty.cdi.websocket.annotation.");
57 webapp.prependServerClass("-org.eclipse.jetty.cdi.core.");
58 webapp.prependServerClass("-org.eclipse.jetty.cdi.servlet.");
59 webapp.addServerClass("-org.jboss.weld.");
60 webapp.addServerClass("-org.jboss.classfilewriter.");
61 webapp.addServerClass("-org.jboss.logging.");
62 webapp.addServerClass("-com.google.common.");
63
64 }
65
66 public static void initContext(ContextHandler handler) throws NamingException
67 {
68
69
70
71 handler.setInitParameter("org.jboss.weld.environment.container.class","org.jboss.weld.environment.jetty.JettyContainer");
72
73
74 Reference ref = new Reference("javax.enterprise.inject.spi.BeanManager","org.jboss.weld.resources.ManagerObjectFactory",null);
75 new Resource(handler,"BeanManager",ref);
76 }
77 }