1 /*******************************************************************************
2 * Copyright (c) 2011 Michael Mimo Moratti.
3 *
4 * Michael Mimo Moratti licenses this file to you under the Apache License, version 2.0
5 * (the "License"); you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
7 * http://www.apache.org/licenses/LICENSE-2.0
8 * Unless required by applicable law or agreed to in writing, software
9 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11 * License for the specific language governing permissions and limitations
12 * under the License.
13 *******************************************************************************/
14 package ch.mimo.netty.icap.container.osgi;
15
16 import org.jboss.netty.logging.InternalLoggerFactory;
17 import org.jboss.netty.logging.OsgiLoggerFactory;
18 import org.osgi.framework.BundleActivator;
19 import org.osgi.framework.BundleContext;
20
21 /**
22 * OSGI bundle activator. It will set the osgi logging factory.
23 *
24 * @author Michael Mimo Moratti (mimo@mimo.ch)
25 *
26 */
27 public class NettyIcapBundleActivator implements BundleActivator {
28
29 private OsgiLoggerFactory loggerFactory;
30
31 @Override
32 public void start(BundleContext ctx) throws Exception {
33 // Switch the internal logger to the OSGi LogService.
34 loggerFactory = new OsgiLoggerFactory(ctx);
35 InternalLoggerFactory.setDefaultFactory(loggerFactory);
36 }
37
38 @Override
39 public void stop(BundleContext ctx) throws Exception {
40 if (loggerFactory != null) {
41 InternalLoggerFactory.setDefaultFactory(loggerFactory.getFallback());
42 loggerFactory.destroy();
43 loggerFactory = null;
44 }
45 }
46 }