212046b47761ed8eebbaffd341d14fee26f7ef86
[dlux.git] / loader / impl / src / main / java / org / opendaylight / dlux / loader / implementation / DluxLoader.java
1 package org.opendaylight.dlux.loader.implementation;
2 /**
3 * Copyright (c) 2014 Inocybe Technologies, and others. All rights reserved.
4 *
5 * This program and the accompanying materials are made available under the
6 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 */
9
10 import javax.servlet.ServletException;
11
12 import org.osgi.service.http.HttpService;
13 import org.osgi.service.http.NamespaceException;
14 import org.opendaylight.dlux.loader.IDluxLoaderRegistration;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
17
18 public class DluxLoader implements IDluxLoaderRegistration {
19
20     private DluxLoaderServlet modules;
21     private DluxLoaderIndexServlet index;
22     private static Logger logger = LoggerFactory.getLogger(DluxLoader.class);
23
24     @Override
25     public void addModule(String bundleName, String url, String requiredJs, String angularJs){
26         modules.addModule(bundleName, url, requiredJs, angularJs);
27     }
28     public void onUnbindService(HttpService srv) {
29         modules = null;
30         index = null;
31     }
32
33     public void onBindService(HttpService srv) throws ServletException, NamespaceException {
34         if (srv == null) {
35             logger.error("Unable to inject HttpService into DluxBootstrapper.");
36         } else {
37             modules = new DluxLoaderServlet();
38             index = new DluxLoaderIndexServlet();
39             srv.registerServlet("/src/app/modules.js", modules, null, null);
40             srv.registerServlet("/index.html", index, null, null);
41             srv.registerResources("/", "/dlux", null);
42         }
43     }
44 }