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

net.anotheria.extensions.php.config.MoskitoPHPConfig Maven / Gradle / Ivy

The newest version!
package net.anotheria.extensions.php.config;

import org.apache.commons.lang3.ArrayUtils;
import org.configureme.annotations.AfterReConfiguration;
import org.configureme.annotations.ConfigureMe;
import org.configureme.annotations.DontConfigure;

/**
 * Config for Moskito PHP plugin.
 *
 * Defines sets of mappers and connectors that be used by plugin
 */
@ConfigureMe(allfields = true)
public class MoskitoPHPConfig {

    @DontConfigure
    private ConfigChangedNotifier configChangedNotifier;

    private MapperConfig[] mappers = new MapperConfig[0];
    private ConnectorConfig[] connectors = new ConnectorConfig[0];

    public MapperConfig[] getMappers() {
        return (MapperConfig[]) ArrayUtils.addAll(getDefault(), mappers);
    }

    public void setMappers(MapperConfig[] mappers) {
        this.mappers = mappers;
    }

    public ConnectorConfig[] getConnectors() {
        return connectors;
    }

    public void setConnectors(ConnectorConfig[] connectors) {
        this.connectors = connectors;
    }

    /**
     * Defines builtin default mappers that required for agent proper work
     * @return array of builtin mappers configurations
     */
    public MapperConfig[] getDefault() {

        MapperConfig executionStatsMapper = new MapperConfig();
        executionStatsMapper.setMapperClass("net.anotheria.extensions.php.mappers.impl.ExecutionStatsMapper");
        executionStatsMapper.setMapperId("ExecutionStatsMapper");

        MapperConfig serviceStatsMapper = new MapperConfig();
        serviceStatsMapper.setMapperClass("net.anotheria.extensions.php.mappers.impl.ServiceStatsMapper");
        serviceStatsMapper.setMapperId("ServiceStatsMapper");

        MapperConfig counterStatsMapper = new MapperConfig();
        counterStatsMapper.setMapperClass("net.anotheria.extensions.php.mappers.impl.CounterStatsMapper");
        counterStatsMapper.setMapperId("CounterStatsMapper");

        return new MapperConfig[]{
                executionStatsMapper, serviceStatsMapper, counterStatsMapper
        };

    }

    @AfterReConfiguration
    public void afterReconfiguration() {

        if(this.configChangedNotifier != null)
            this.configChangedNotifier.notifyConfigChanged();

    }

    public void setConfigChangedNotifier(ConfigChangedNotifier configChangedNotifier) {
        this.configChangedNotifier = configChangedNotifier;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy