Scannit

An extensible Java Metadata/annotation scanner

License

License

GroupId

GroupId

nl.javadude.t2bus
ArtifactId

ArtifactId

t2-bus
Last Version

Last Version

1.2.1
Release Date

Release Date

Type

Type

jar
Description

Description

Scannit
An extensible Java Metadata/annotation scanner
Project URL

Project URL

https://github.com/hierynomus/scannit
Source Code Management

Source Code Management

https://github.com/hierynomus/scannit/

Download t2-bus

How to add to project

<!-- https://jarcasting.com/artifacts/nl.javadude.t2bus/t2-bus/ -->
<dependency>
    <groupId>nl.javadude.t2bus</groupId>
    <artifactId>t2-bus</artifactId>
    <version>1.2.1</version>
</dependency>
// https://jarcasting.com/artifacts/nl.javadude.t2bus/t2-bus/
implementation 'nl.javadude.t2bus:t2-bus:1.2.1'
// https://jarcasting.com/artifacts/nl.javadude.t2bus/t2-bus/
implementation ("nl.javadude.t2bus:t2-bus:1.2.1")
'nl.javadude.t2bus:t2-bus:jar:1.2.1'
<dependency org="nl.javadude.t2bus" name="t2-bus" rev="1.2.1">
  <artifact name="t2-bus" type="jar" />
</dependency>
@Grapes(
@Grab(group='nl.javadude.t2bus', module='t2-bus', version='1.2.1')
)
libraryDependencies += "nl.javadude.t2bus" % "t2-bus" % "1.2.1"
[nl.javadude.t2bus/t2-bus "1.2.1"]

Dependencies

compile (2)

Group / Artifact Type Version
com.google.guava : guava jar 13.0
org.slf4j : slf4j-api jar 1.6.3

test (4)

Group / Artifact Type Version
ch.qos.logback : logback-classic jar 0.9.30
org.hamcrest : hamcrest-library jar 1.2.1
junit : junit-dep jar 4.10
org.hamcrest : hamcrest-core jar 1.2.1

Project Modules

There are no modules declared in this project.

Scannit: An (extensible) Java metadata scanner

Scannit is an extensible Java metadata scanner inspired upon scannotation and reflections. It currently contains scanners which scan the classpath for:

  • Class level annotations
  • Field level annotations
  • Method level annotations
  • Sub/Supertype hierarchy

Technology

Scannit relies on some libraries to provide services, these are:

  • Javassist: For the bytecode reading of classfiles
  • Truezip: For the scanning of the classpath and traversing through jars as though they're a filesystem
  • Guava: For the collections API

Usage

Configuration config = Configuration.config()
    .with(new SubTypeScanner(), new TypeAnnotationScanner())
    .scan("foo.bar");
Scannit scannit = new Scannit(config);
Set<Class<?>> clazzes = scannit.getTypesAnnotatedWith(MyAnnotation.class);
Set<Class<?>> subClazzes = scannit.getSubTypesOf(ParentClass.class);

Extension

Extending Scannit is pretty easy, you can write a new Scanner by extending nl.javadude.scannit.scanner.AbstractScanner and implementing void doScan(ClassFile file, Registry registry).

Versions

Version
1.2.1
1.2.0
1.1.2
1.1.1
1.1.0
1.0.0