FindBugs is a defect detection tool for Java that uses static analysis to look for more than 200 bug patterns, such as null pointer dereferences, infinite recursive loops, bad uses of the Java libraries and deadlocks. FindBugs can identify hundreds of serious defects in large applications (typically
... [More] about 1 defect per 1000-2000 lines of non-commenting source statements). FindBugs is open source, and has been downloaded more than 230,000 times, and is used by many major companies and financial institutions.
Findbugs can be used from the command line or within ant, eclipse, maven, netbeans and emacs. [Less]
ASM is a Java bytecode manipulation framework. It can be used to dynamically generate stub classes or other proxy classes, directly in binary form, or to dynamically modify classes at load time, i.e., just before they are loaded into the Java Virtual Machine.
ASM offers similar functionalities as
... [More] BCEL or SERP, but is much smaller (33KB instead of 350KB for BCEL and 150KB for SERP) and faster than these tools (the overhead of a load time class transformation is of the order of 60% with ASM, 700% or more with BCEL, and 1100% or more with SERP). Indeed ASM was designed to be used in a dynamic way* and was therefore designed and implemented to be as small and as fast as possible. [Less]
AnyEdit Tools plugin for Eclipse adds several new tools to the context menu of text- based Eclipse editors, to output consoles, to Eclipse main menu and editor toolbar. AnyEdit contributes also Import/Export working sets wizards.
AnyEdit Tools adds new actions to "Compare With" and "Replace
... [More] With" menus in both editors and files.
AnyEdit Tools contributes new "Convert" menu in both editors and files, including such actions like "To / From Unicode/Base64/Html entities/Camel case".
AnyEdit Tools plugin can (automatically) perform tabs spaces on active aditor, multiple files or entire directories and supports also file exclusion filter for tabs to spaces action.
AnyEdit adds "Open File", "Open Type" and "Save to file..." actions to all consoles and editors. [Less]
FileSync plugin for Eclipse is a file synchronisation tool.
The main goal is to keep files outside of Eclipse projects in-sync with Eclipse project files. The plugin works as builder in Eclipse and will synchronize all changes on Eclipse project files to mapped external folders. E.g. if a file
... [More] is created, changed or deleted in Eclipse, then the mapped (external) file will be created, changed or deleted too. Please note, that synchronization works is only in one direction - from Eclipse to the rest of the world. [Less]
Extended VS Presentation plugin for Eclipse contributes powerful editing sessions management and highly customisable and very useful Eclipse skin ("look and feel").
"Editing sessions" management allows you remember opened editors set (session) and reload it any time later. This is useful if you
... [More] often switch from one to another context (see also bug 105896). If you ever used Opera browser, you know the trick ;-)
The skin does not only have all "default" Eclipse presentation features but adds much more useful things like fully customizable opened/closed editor lists, really useful tab area with predictable tab ordering policy, clear and space - saving look, much more customization options like the tab size / padding / border / color / fonts, "on-the-fly" themes switch. [Less]
JDepend4Eclipse plugin for Eclipse is a wrapper for running JDepend from within Eclipse.
- What is JDepend? (from www.clarkware.com):
JDepend traverses Java class file directories and generates design quality metrics for each Java package. JDepend allows you to automatically measure the
... [More] quality of a design in terms of its extensibility, reusability, and maintainability to manage package dependencies effectively.
Advanced JDepend documantation are available as online help in Eclipse (press F1 key) or on the JDepend creator's site (please do not ask me what JDepend metrics are - ask Mike:) [Less]
The question I very often have is: which objects (recursively) are loaded in memory if a particular object is created?
If you know Call Hierarchy plugin, you will find the Data Hierarchy very similar. It searches selected Java classes for declared fields, and starting with the found "Data" it
... [More] recursively looks for fields which are declared on found classes ("Hierarchy").
At the end you can see kind of "Data Hierarchy" tree.
The plugin can not detect reflection based data, data inside non-generic collections, data which is stored as "Object" etc.
This is of course a very rough estimation of the real data hierarchy, but works perfectly for a quick walk over data structures/dependencies during code reviews.
Additionally plugin can restrict the search to static fields only. [Less]