Analyse & Monitor Java Source Code & Bytecode.

What is it?

REFLECTK is a collection of software development tools that inspect and check your
application's source code, bytecode and classpath. It is flexible, powerful and completely written in Java. It can be used to search for
Java language elements that fulfill a specified condition, e.g. list all classes that implement a certain interface or list all methods that have
references to a certain class.

Because of it's flexible design it is suitable for different usages. Used as a framework inside an application it can provide
additional code reflection capabilities, e.g. for plugin mechanisms. Used as development tool it can be used to enforce architectural rules
for your application code. To fit into nearly all Java-based development processes it is perfectly integrated into Eclipse,
Netbeans and Ant. But it can also be used as stand-alone development tool.

REFLECTK provides a highly configurable and fast search engine, a feature-rich
and expandable set of filters and a powerful but intuitive query language (Code Query Language, CQL). To specify all kind of search
criteria, concepts similar to propositional logic and first-order logic can be used.

Usage examples:

Consistency check your application's classpath even if source code of some third-party library is missing

Support a developer when refactoring a project or migrating to another JDK version

Improve code quality and discover potential programming errors

Key Features:

Bytecode and source code parsing

Simple API that allows extensions of third-party developers

Small footprint (core package ~155 kB)

No need to learn another tool, simply phrase your thoughts as
CQL statements

Differences to other Static Code Analysis Tools

Each query is live that means it's directly evaluating against the actual source- and/or bytecode

It comes with client (Eclipse-Plugins, CQLConsole,...) and server parts (AntTask)

It has no setting-up-time (just specify the classpath), therefore it can be used as a firefighter to solve express production problems (no stockpiling for maybe queries)

Because it has a high learning curve nearly everybody that is involved in the development process can/should use it. Developers use it to do their daily work. Architects express and enforce architecture rules and project conventions. Quality managers use it to monitor and track code quality.

REFLECTK spots on code queries the actual code base regardless of if you want to search for errors or other code characteristics while other static code analysis tools focus on errors only

Using context switches you are able to investigate a class considering it's package or even attributes of it's superclass fields!

System Requirements

Since REFLECTK is completely written in Java (and without any native components) it will run on every plattform with an installation of JRE1.5+.

When using the CQL AntTask there also has to be Apache Ant 1.6+ available.