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

net.grinder.console.distribution.WireFileDistribution Maven / Gradle / Ivy

The newest version!
package net.grinder.console.distribution;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Timer;
import java.util.TimerTask;
import java.util.regex.Pattern;

import net.grinder.console.model.ConsoleProperties;
import net.grinder.util.Directory;


/**
 * Factory that wires up the FileDistribution. As far as I can see, Pico
 * forces us to use a constructor. Would be nicer if we could say
 * 
 *    container.call(MyFactory.class, "myMethod");
 * 
* *

Must be public for PicoContainer.

* * @author Philip Aston */ public class WireFileDistribution { /** * Constructor for WireFileDistribution. * * @param fileDistribution A file distribution. * @param properties The console properties. * @param timer A timer. */ public WireFileDistribution(final FileDistribution fileDistribution, ConsoleProperties properties, Timer timer) { timer.schedule(new TimerTask() { public void run() { fileDistribution.scanDistributionFiles(); } }, properties.getScanDistributionFilesPeriod(), properties.getScanDistributionFilesPeriod()); properties.addPropertyChangeListener( new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { final String propertyName = e.getPropertyName(); if (propertyName.equals( ConsoleProperties.DISTRIBUTION_DIRECTORY_PROPERTY)) { fileDistribution.setDirectory((Directory)e.getNewValue()); } else if (propertyName.equals( ConsoleProperties.DISTRIBUTION_FILE_FILTER_EXPRESSION_PROPERTY)) { fileDistribution.setFileFilterPattern((Pattern) e.getNewValue()); } } }); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy