/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.karaf.web; import java.io.File; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.apache.karaf.main.Main; public class WebAppListener implements ServletContextListener { private Main main; public void contextInitialized(ServletContextEvent sce) { try { System.err.println("contextInitialized"); String root = new File(sce.getServletContext().getRealPath("/") + "/WEB-INF/karaf").getAbsolutePath(); System.err.println("Root: " + root); System.setProperty("karaf.home", root); System.setProperty("karaf.base", root); System.setProperty("karaf.data", root + "/data"); System.setProperty("karaf.etc", root + "/etc"); System.setProperty("karaf.history", root + "/data/history.txt"); System.setProperty("karaf.instances", root + "/instances"); System.setProperty("karaf.startLocalConsole", "false"); System.setProperty("karaf.startRemoteShell", "true"); System.setProperty("karaf.lock", "false"); main = new Main(new String[0]); main.launch(); } catch (Exception e) { main = null; e.printStackTrace(); } } public void contextDestroyed(ServletContextEvent sce) { try { System.err.println("contextDestroyed"); if (main != null) { main.destroy(); } } catch (Exception e) { e.printStackTrace(); } } }