[Checkers] Eclipse Plugin (sorry)
akiezun at csail.mit.edu
Mon Jun 23 11:36:14 EDT 2008
> ::Technical Eclipse issues::
> - The plug-in was importing the checkers.jar and had references to it in
> Run*CheckerActions. This required checkers.jar to be Java 5 compatible.
> After looking at the code, I realized that only the name was necessary;
> once I made that change, I was able to remove that dependancy, and have the
> plug-in work in my eclipse.
This is fine but makes for brittle code because you need to hard wire
the class name.
> - the plug-in is shipped with javac.jar and checkers.jar and need to be
> updated every time we made a release. A user needs to update the plug-in
> along with the jars every-time. I prefer using a global variable to find
> javac.jar and checkers.jar (or have a dialog somewhere to set them).
I think global variables are not great. They are opaque and make
things not self-contained.
> ::Experience with working with the plug-in::
> 1. The plug-in tries to find checkers.jar through the classpath of the
> project. I found that to be a bit annoying.
> - When a project imports checkers.jar, it needs to import javac.jar too;
> because of checkers.jar dependancy on javac.jar. I don't particularly like
> that. The proper solution for this one is to distribute a jar with the
> qualifiers only to be used by eclipse projects.
> - Also, when using eclipse, I prefer using the commented out annotations
> (e.g. /*@Interned*/) and using jsr308_imports flag. checkers.jar doesn't
> need to be in the path in that case.
I think there was some problem with not having checkers.jar on the classpath.
> 2. The markers contain all lines instead of the first line. The formating
> is disturbed, and I was getting messages like:
>> dereference of possibly-null reference m m.toString(); ^ 1 error
> to the side.
> It might be OK to ignore the last two lines for each message and the last
> three lines for the last message (they simply print the tree with a pointer
> ^ to the error). If they aren't properly printed, there is no point in
> having them.
Eventually, those lines should be properly printed. I have not managed
to do that yet.
Thanks for your comments.
More information about the checkers