1 //
2 // ========================================================================
3 // Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
4 // ------------------------------------------------------------------------
5 // All rights reserved. This program and the accompanying materials
6 // are made available under the terms of the Eclipse Public License v1.0
7 // and Apache License v2.0 which accompanies this distribution.
8 //
9 // The Eclipse Public License is available at
10 // http://www.eclipse.org/legal/epl-v10.html
11 //
12 // The Apache License v2.0 is available at
13 // http://www.opensource.org/licenses/apache2.0.php
14 //
15 // You may elect to redistribute this code under either of these licenses.
16 // ========================================================================
17 //
18
19 package org.eclipse.jetty.cdi.servlet;
20
21 import org.eclipse.jetty.deploy.App;
22 import org.eclipse.jetty.deploy.AppLifeCycle;
23 import org.eclipse.jetty.deploy.graph.Node;
24 import org.eclipse.jetty.server.handler.ContextHandler;
25 import org.eclipse.jetty.webapp.WebAppContext;
26
27 /**
28 * Perform some basic weld configuration of WebAppContext
29 */
30 public class WeldDeploymentBinding implements AppLifeCycle.Binding
31 {
32 public String[] getBindingTargets()
33 {
34 return new String[] { "deploying" };
35 }
36
37 public void processBinding(Node node, App app) throws Exception
38 {
39 ContextHandler handler = app.getContextHandler();
40 if (handler == null)
41 {
42 throw new NullPointerException("No Handler created for App: " + app);
43 }
44
45 if (handler instanceof WebAppContext)
46 {
47 // Do webapp specific init
48 WebAppContext webapp = (WebAppContext)handler;
49 JettyWeldInitializer.initWebApp(webapp);
50 }
51 else
52 {
53 // Do general init
54 JettyWeldInitializer.initContext(handler);
55 }
56 }
57 }