Inspect4J

Inspect4J is a (free of charge) Java library thought to be used in your Java application. It solves a standard problem that probably is known by any Java programmer: Search a classpath (jars and/or directories) for classes implementing a given interface or extending a given class. There are various scenarios where it's reasonable to use dynamic class search inside your application:

  • Search for all Data Transfer Objects (DTOs) inside your application's startup code and register them at hibernate manager
  • Dynamically load all classes that are implementing your plugin interface
  • Load classes that extend your abstract class for data export (HTML, TXT, XML, ...) and build a context menu offering their functionality
  • Simplify developing of java based code generators which like to produce code for all implementors of a given interface or extending a given class
It's no more required to keep account of your plugin classes or add classnames of newly developed classes to a XML file: Just search these classes dynamically inside your application!

You can hardly improve your unit tests by using Inspect4J:
  • Search all your TableModels and run tests on them like check if getColumnClass returns the right Class for each column
  • Search all serializable classes and serialize them to ensure all their fields are serializable
  • Consider you have a bunch of BusinessObjects (BOs) and a factory that returns an Swing-based editor for each BO. Use Inspect4J to test if you have really an editor for each BO in your productive code.

Inspect4J is a cutout of the REFLECTK framework missing the following REFLECTK's features:

  • Absolutely no CQL (dynamic query language) support
  • No sourcecode reading support (only classes, see next issue)
  • Classes are inspected via reflection instead of reading the classes' bytecode (which has many advantages)
  • Can search only classes (REFLECTK can search packages, classes, constructors, methods, fields, annotations, instructions and resources)
  • Can only filter for inheritance. REFLECTK comes with more than 30 filters like PackageFilter, ModifierFilter, SignatureFilter, TypeFilter, ReturntypeFilter, ...
  • Hard wired ExceptionHandler that prints Exceptions that will occur during search to STDERR
  • ...and many, many more
Nevertheless Inspect4J exactly solves the problem mentioned above it's not even 60 KB in size!

Usage is more than simple:

Download Inspect4J now. Inspect4J may be used in non-commercial as well as in commercial applications.