1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.cdi;
20
21 import javax.naming.Reference;
22
23 import org.eclipse.jetty.deploy.App;
24 import org.eclipse.jetty.deploy.AppLifeCycle;
25 import org.eclipse.jetty.deploy.graph.Node;
26 import org.eclipse.jetty.plus.jndi.Resource;
27 import org.eclipse.jetty.server.handler.ContextHandler;
28 import org.eclipse.jetty.webapp.WebAppContext;
29
30
31
32
33 public class WeldDeploymentBinding implements AppLifeCycle.Binding
34 {
35 public String[] getBindingTargets()
36 {
37 return new String[]
38 { "deploying" };
39 }
40
41 public void processBinding(Node node, App app) throws Exception
42 {
43 ContextHandler handler = app.getContextHandler();
44 if (handler == null)
45 {
46 throw new NullPointerException("No Handler created for App: " + app);
47 }
48
49 if (handler instanceof WebAppContext)
50 {
51 WebAppContext webapp = (WebAppContext)handler;
52
53
54
55
56 webapp.setInitParameter("org.jboss.weld.environment.container.class",
57 "org.jboss.weld.environment.jetty.JettyContainer");
58
59
60 Reference ref = new Reference("javax.enterprise.inject.spi.BeanManager",
61 "org.jboss.weld.resources.ManagerObjectFactory", null);
62 new Resource(webapp,"BeanManager",ref);
63
64
65 webapp.addSystemClass("org.jboss.weld.");
66 webapp.addSystemClass("org.jboss.classfilewriter.");
67 webapp.addSystemClass("org.jboss.logging.");
68 webapp.addSystemClass("com.google.common.");
69
70
71 webapp.addServerClass("-org.jboss.weld.");
72 webapp.addServerClass("-org.jboss.classfilewriter.");
73 webapp.addServerClass("-org.jboss.logging.");
74 webapp.addServerClass("-com.google.common.");
75 }
76 }
77 }