X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fadsal%2Flogging%2Fbridge%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Flogging%2Fbridge%2Finternal%2FActivator.java;fp=opendaylight%2Fadsal%2Flogging%2Fbridge%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Flogging%2Fbridge%2Finternal%2FActivator.java;h=0000000000000000000000000000000000000000;hb=50f88249a65c52ba56a48852b71ce432fed2bbeb;hp=fcd27d9a0a45ed0e068289aa1177870acdbd8929;hpb=abfa9a03550cbe9fccc4420684dced175dd6d119;p=controller.git diff --git a/opendaylight/adsal/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/Activator.java b/opendaylight/adsal/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/Activator.java deleted file mode 100644 index fcd27d9a0a..0000000000 --- a/opendaylight/adsal/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/Activator.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.controller.logging.bridge.internal; - -import org.osgi.service.log.LogEntry; - -import java.lang.Thread.UncaughtExceptionHandler; -import java.util.Enumeration; - -import org.osgi.framework.BundleContext; -import org.osgi.framework.BundleException; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.ServiceReference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.ILoggerFactory; -import org.osgi.service.log.LogReaderService; - -public class Activator implements BundleActivator { - private static final String UNCAUGHT_EXCEPTION_POLICY_PROP = "controller.uncaughtExceptionPolicy"; - private static final UncaughtExceptionPolicy DEFAULT_UNCAUGHT_EXCEPTION_POLICY = UncaughtExceptionPolicy.IGNORE; - - private LogListenerImpl listener = null; - private ShutdownHandler shutdownHandler = null; - private Logger log = null; - - @Override - public void start(BundleContext context) { - // Lets trigger the resolution of the slf4j logger factory - ILoggerFactory f = LoggerFactory.getILoggerFactory(); - - // Now retrieve a logger for the bridge - log = f - .getLogger("org.opendaylight.controller.logging.bridge.OSGI2SLF4J"); - - if (this.log != null) { - this.listener = new LogListenerImpl(log); - - ServiceReference service = null; - service = context.getServiceReference(LogReaderService.class - .getName()); - if (service != null) { - LogReaderService reader = (LogReaderService) context - .getService(service); - if (reader == null) { - this.log.error("Cannot register the LogListener because " - + "cannot retrieve LogReaderService"); - } else { - reader.addLogListener(this.listener); - // Now lets walk all the exiting messages - Enumeration entries = reader.getLog(); - if (entries != null) { - while (entries.hasMoreElements()) { - LogEntry entry = entries.nextElement(); - this.listener.logged(entry); - } - } - } - - /* - * Install the default exception handler so that the uncaught - * exceptions are handled by our customized handler. This new - * handler will display the exceptions to OSGI console as well - * as log to file. - */ - UncaughtExceptionHandler handler = DEFAULT_UNCAUGHT_EXCEPTION_POLICY; - final String policy = context.getProperty(UNCAUGHT_EXCEPTION_POLICY_PROP); - if (policy != null) { - try { - handler = UncaughtExceptionPolicy.valueOf(policy.toUpperCase()); - } catch (IllegalArgumentException ex) { - log.warn("Invalid policy name \"{}\", defaulting to {}", policy, handler); - } - } - log.trace("Setting uncaught exception policy to {}", handler); - Thread.setDefaultUncaughtExceptionHandler(handler); - - /* - * Install the Shutdown handler. This will intercept SIGTERM signal and - * close the system bundle. This allows for a graceful closing of OSGI - * framework. - */ - shutdownHandler = new ShutdownHandler(context); - Runtime.getRuntime().addShutdownHook(shutdownHandler); - } else { - this.log.error("Cannot register the LogListener because " - + "cannot retrieve LogReaderService"); - } - } else { - System.err - .println("Could not initialize the logging bridge subsytem"); - } - } - - @Override - public void stop(BundleContext context) { - ServiceReference serviceRef = context.getServiceReference( - LogReaderService.class.getName()); - if (serviceRef != null) { - LogReaderService reader = (LogReaderService) context.getService(serviceRef); - reader.removeLogListener(this.listener); - } - if (this.shutdownHandler != null) { - Runtime.getRuntime().removeShutdownHook(this.shutdownHandler); - } - this.listener = null; - this.log = null; - this.shutdownHandler = null; - } - - private class ShutdownHandler extends Thread { - BundleContext bundlecontext; - public ShutdownHandler(BundleContext ctxt) { - this.bundlecontext = ctxt; - } - - @Override - public void run () { - try { - this.bundlecontext.getBundle(0).stop(); - log.debug("shutdown handler thread called"); - } catch (BundleException e) { - log.debug("Bundle couldn't be stopped"); - } catch (Exception e) { - log.debug("Unhandled exception"); - } - } - } - -}