| io.earcam.instrumental.reflect |  
     Gentle reflection of types, names and resources |  
     β |  
    
 
     
     | io.earcam.instrumental.compile |  
     Compile from memory/filesystem to memory/filesystem, easily |  
     β |  
    
 
     
     | io.earcam.instrumental.compile.glue |  
     Glues instrumental.compile to instrumental.archive, compile to JAR entirely in-memory |  
     β |  
    
 
     
     | io.earcam.instrumental.lade |  
     Not just the usual fudge of ClassLoader.defineClass() - loads in-memory JARs returning valid resource URLs |  
     β |  
    
 
     
     | io.earcam.instrumental.lade.jpms |  
     Create and run dynamic JPMS module layers from an in-memory classloader |  
     β |  
    
 
     
     | io.earcam.instrumental.fluent |  
     Annotation to demarcate fluent API methods |  
     β |  
    
 
     
     | io.earcam.instrumental.fluency |  
     Annotation processor of fluently annotated methods, generating APIs with fluency |  
     β |  
    
 
     
     | io.earcam.instrumental.module.manifest |  
     Abstraction of java.util.jar.Manifest, extended variously |  
     β |  
    
 
     
     | io.earcam.instrumental.module.auto |  
     Bytecode parsing sufficient to enable auto-importing for programmatic modules |  
     β |  
    
 
     
     | io.earcam.instrumental.module.jpms |  
     JPMS module tooling; read/write bytecode/sourcecode |  
     β |  
    
 
     
     | io.earcam.instrumental.module.osgi |  
     OSGi module tooling; read/write bundle manifests |  
     β |  
    
 
     
     | io.earcam.instrumental.archive |  
     Create/read archives in-memory/on-disk, supports Multi-Release JARs |  
     β |  
    
 
     
     | io.earcam.instrumental.archive.jpms |  
     Archive extension for JPMS modules |  
     β |  
    
 
     
     | io.earcam.instrumental.archive.osgi |  
     Archive extension for OSGi bundles |  
     β |  
    
 
     
     | io.earcam.instrumental.archive.sign |  
     Archive extension for digital signing |  
     β |  
    
 
     
     | io.earcam.instrumental.archive.glue |  
     Glues instrumental.archive to to instrumental.compile, enabling in-memory archives as dependencies |  
     β |  
    
 
     
     | io.earcam.instrumental.archive.maven |  
     Install/Resolve archives to/from Maven repositories |  
     β |  
    
 
     
     | io.earcam.instrumental.proxy |  
     Smoother API than java.lang.reflect and various InvocationHandlers |  
     β |  
    
 
     
     | io.earcam.instrumental.proxy.concrete |  
     Proxy classes using standard java.lang.reflect.InvocationHandler |  
     β |  
    
 
     
     | io.earcam.instrumental.agent |  
     Dynamically load a Java Agent or acquire java.lang.instrument.Instrumentation via SPI |  
     β |  
    
 
     
     | io.earcam.instrumental.agent.junit |  
     Use Java Agents in JUnit tests (4.12 and 5.3.0-M1) without any external configuration |  
     β |  
    
 
     
     | io.earcam.instrumental.agent.defy |  
     Java Agent to remove final modifiers from classes, methods and fields |  
     β |