swung-weave
A simple project that processes bytecode transforming methods annotated with the
annotation @RunInEDT and @RunOutsideEDT
A method annotated with @RunInEDT may be transformed into something like
void method() {
if (!SwingUtilities.isEventDispatchThread()) {
SwingUtilities.invokeAndWait(new Runnable() { public void run() { method(); } );
return;
}
// do method code here, guaranteed to be in EDT
}
Installing the IDEA plugin
The plugin is available in JetBrains repos. To install, simply go to
"File > Settings > Plugins > Available" and select the SwungWeave plugin from the list
of available plugins and install it.
How it works
For each module of the project with the SwungWeave facet, the plugin looks for a class named
org.realityforge.swung_weave.tool.Main in its classpath. If found, it scans all the classes of the
module in its main and test output directories and enhances the annotated methods using it.