[hibernate-dev] Jandex, scanning and discovery
steve at hibernate.org
Fri Apr 25 12:57:48 EDT 2014
So here is what I propose more concretely...
As a refresher, there are a few main characters:
* Scanner - coordinates the scanning effort
* PersistenceUnitDescriptor - provides access to needed PU information
* ScanOptions - a few booleans to control processing within Scanner
* ArchiveDescriptorFactory - essentially acts as a "URL interpreter" (this
is one of the main customization points in the new scanning code)
* ArchiveDescriptor / ArchiveEntry - describe the parts of the archive we
want to look at
* ArchiveEntryHandler - the main visitation contract for inspecting
ArchiveEntryHandler is the place where the collection happens. There are
ArchiveEntryHandler specializations for each type of archive entry: class
file, package-info file, etc. The ArchiveEntryHandler for class files is
really the only place that needs a change (to add to a supplied Jandex
Indexer). However, I think some other changes are worthwhile. First,
relying on PersistenceUnitDescriptor ties this to building of an EMF. With
a simple tweak, we could make this usable in "native SF" building also.
And given the above stated importance on Jandex, I think this is
I wanted to go over the specifics because this is an SPI, and because I
know at least one customization of this SPI for integration : WildFly,
which hooks in mainly to deal with its VFS URL handling. I think WildFly
usage should be safe from these changes.
On Thu, Apr 24, 2014 at 4:34 PM, Hardy Ferentschik <hardy at hibernate.org>wrote:
> On 24 Jan 2014, at 23:25, Steve Ebersole <steve at hibernate.org> wrote:
> > I'd like to suggest one change in scanning to support this as well.
> Currently when the Scanner finds a Class, or package-info, etc it
> immediately checks the "options" to see if this entry can be accepted
> (essentially according to the PU). I'd rather change this up so that the
> collector is notified as soon as we find an entry. This would allow the
> collector to index the entry in Jandex no matter what and to decide what
> else to do with it (add it list of managed classes, etc).
> +1, as you say, I think we get more benefit out of the Jandex index if we
> index all entries/classes.
More information about the hibernate-dev