On Thu, Sep 30, 2010 at 2:46 AM, sebb <seb...@gmail.com> wrote: > Just wondering if the Tailer API could be simplified by performing the > thread start within the class? > Is it ever going to be useful to have direct access to tailer thread? > I suspect not, as the Listener should provide sufficient access. > > It's not safe to start a thread in the constructor (unless the ctor is > final), but one could use static factory methods instead. > > So instead of: > > TailerListener listener = ... > Tailer tailer = new Tailer(file, listener, delay); > Thread thread = new Thread(tailer); > thread.start(); > ... > tailer.stop() > > one would do something like: > > TailerListener listener = ... > Tailer tailer = Tailer.createTailer(file, listener, delay); > ... > tailer.stop() > > This simplifies the API, and allows the class to force the thread to > be a daemon thread. It also stops the caller from messing with the > thread. > > WDYT?
There are five different Thread constructors that take a Runnable and a bunch of other methods that someone might want to use. I don't have a problem providing a convenience static method - but it only saves two lines of code - as long as they can construct one manually with or without a Thread if they want to. Niall --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org