I use a JavaSourceTransformingCompiler to add some source instrumentation of Java files.
When my compiler is active (ie isTransformable() returns true for all potentially transformable files), all files are always instrumented and rebuilt during Make, including the clean ones.
Is there any way to inject ValidityState (dependency) objects to prevent instrumentation and recompilation of files that have not changed?
Or find out whether given file is considered dirty and should be recompiled, so I could return true from isTransformable only in this case? (I don't want to have the uninstrumented file to be compiled behind my back, though)
I tried to use SourceInstrumentingCompiler, but it causes the original files to be changed - is it by design? Should any compiler permanently change the source files?
I also tried a TransformingCompiler registered for JAVA->JAVA transformation that I expected to be injected before the actual Java Compiler, but it just created instrumented files in a folder I chose - they were not compiled afterward.
Next, I tried to wrap JavaCompiler with my own wrapper that would provide my own array of VirtualFiles to the JavaCompiler.compile() method, but it seems to ignore what I provide - as if it internally retrieved the list of files from other source.
Is there anything I could do to have a working Make with source instrumentation? working = rebuilding only the files that have changed.
Is anything going to improve with Idea 8.0?