/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package de.cismet.cids.navigatorstartuphooks; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.log4j.Logger; import org.openide.util.lookup.ServiceProvider; import java.io.IOException; import de.cismet.cids.client.tools.RemoteLog4JConfig; import de.cismet.cids.servermessage.CidsServerMessageNotifier; import de.cismet.cids.servermessage.CidsServerMessageNotifierListener; import de.cismet.cids.servermessage.CidsServerMessageNotifierListenerEvent; import de.cismet.tools.configuration.StartupHook; import de.cismet.tools.gui.log4jquickconfig.Log4JQuickConfig; /** * DOCUMENT ME! * * @author daniel * @version $Revision$, $Date$ */ @ServiceProvider(service = StartupHook.class) public class CidsServerMessageStartUpHook implements StartupHook { //~ Static fields/initializers --------------------------------------------- private static final Logger LOG = Logger.getLogger(CidsServerMessageStartUpHook.class); //~ Methods ---------------------------------------------------------------- @Override public void applicationStarted() { // logger initLogAllMessages(); initRemoteLog4JConfigChanger(); startNotifier(); } /** * DOCUMENT ME! */ private void initLogAllMessages() { CidsServerMessageNotifier.getInstance().subscribe(new CidsServerMessageNotifierListener() { @Override public void messageRetrieved(final CidsServerMessageNotifierListenerEvent event) { if ((event != null) && (event.getMessage() != null)) { if (LOG.isDebugEnabled()) { LOG.debug( event.getMessage().getId() + " (" + event.getMessage().getCategory() + "): " + event.getMessage().getContent()); } } } }, null); } /** * DOCUMENT ME! */ private void initRemoteLog4JConfigChanger() { CidsServerMessageNotifier.getInstance() .subscribe(new CidsServerMessageNotifierListener() { @Override public void messageRetrieved(final CidsServerMessageNotifierListenerEvent event) { try { final RemoteLog4JConfig remoteConfig = new ObjectMapper().readValue( (String)event.getMessage().getContent(), RemoteLog4JConfig.class); Log4JQuickConfig.configure4LumbermillOn( remoteConfig.getRemoteHost(), remoteConfig.getRemotePort(), remoteConfig.getLogLevel()); } catch (final IOException ex) { LOG.warn(ex, ex); } } }, "log4j_remote_config"); } /** * DOCUMENT ME! */ private void startNotifier() { CidsServerMessageNotifier.getInstance().start(); } }