All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.moskito.control.plugins.logfile.StatusLogFilePlugin Maven / Gradle / Ivy

The newest version!
package org.moskito.control.plugins.logfile;

import org.configureme.ConfigurationManager;
import org.moskito.control.core.Repository;
import org.moskito.control.plugins.AbstractMoskitoControlPlugin;

/**
 * Main class of status change log file plugin.
 * Registers notifier, that writes status change messages into files
 * specified in plugin configuration.
 */
public class StatusLogFilePlugin extends AbstractMoskitoControlPlugin{

    /**
     * Path to configuration of status log file plugin
     */
    private String configurationName;

    /**
     * Status change listener for status change log plugin
     * Initialize on initialize() method call.
     * Link needs to be stored here for detaching it in deInitialize() method
     */
    private StatusChangeLogFileNotifier notifier;

    @Override
    public void setConfigurationName(String configurationName) {
        this.configurationName = configurationName;
    }

    @Override
    public void initialize() {

        StatusChangeLogFilePluginConfig config = new StatusChangeLogFilePluginConfig();
        ConfigurationManager.INSTANCE.configureAs(config, configurationName);

        notifier = new StatusChangeLogFileNotifier(config);

        // Attaching listener to event dispatcher
        Repository.getInstance()
                .getEventsDispatcher().addStatusChangeListener(notifier);

    }

    @Override
    public void deInitialize() {
        // Removing listener, logs will not been written from now
        Repository.getInstance()
                .getEventsDispatcher().removeStatusChangeListener(notifier);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy