Hey guys,
Today, I've pushed a change of the FindBugsPlugin, where the findbugs
task is executed in a separated worker process. These changes are
related to GRADLE-2167 (command line length limitations on windows).
As a orientation for this, I've used the compilerdaemon stuff. At the
moment, I haven't touched anything at the compilerdaemon related code.
I'll take a look on how we might abstract some of the FindBugs-daemon
and the Compiler-daemon stuff to a higher level as soon as I am happy
with the findbugs stuff. But before getting happy with this, I have some
questions:
1. Is there any support for handling System - IN / OUT / ERR in the
worker process? ATM, I've redirected them manually just before executing
findbugs and then setting them back. The reason for that is, that I
would like to add a listener on the find bugs output to handle logging
properly.
2. I tend to use the workerprocess for executing findbugs as a default.
What do you think? Would it make sense for you to differ here on OS,
commandline length etc? The find bugs anttask we used before was
starting a forking a process anyway. If we don't differ here and use the
workerprocess always, we can get rid of the ant task in the findbugs
configuration.
3. The lifecycle of the findbugs daemon. From my point of view I see
two reasonable options here:
a) once the findbugs worker process is started, we stop this
daemon at the build and reuse this process for other findbugs tasks (as
implemented in the compiler daemon)
b) stop the worker process after the task has finished.
If you have a small build, you might have only one findbugs task, so the
process, that is kept open is just needless for the rest of the build.
For multi project builds, you normally would have multiple findbugs
tasks. As long as those tasks use the same findbugs version (I would
expect, that this is the case in 99% ), the daemon can be reused and the
overhead for forking/restarting findbugs can be reduced. While writing
this, another option comes in my mind:
b2) We can check, if the DAG has more findbugs tasks to execute, so we
can stop the findbugs process after the last findbugs task in the DAG is
executed.
As always, any pointers, ideas and suggestions are very much appreciated.
regards,
René
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email