| SearchIntegrator no longer exists in Search 6. Closing as out of date. To get information about a particular mapping, backend or index manager at runtime, there is a SearchIntegration contract. But this contract is mostly aimed at integrators (Infinispan integration, ORM integration). For other information, we try to pass the information to SPIs when they are built, rather than offering access to a central object at runtime that exposes multiple getters. See org.hibernate.search.engine.mapper.mapping.building.spi.MappingInitiator#configure where we pass a org.hibernate.search.engine.mapper.mapping.spi.MappingBuildContext, or org.hibernate.search.engine.mapper.mapping.building.spi.Mapper#addIndexed where we pass a org.hibernate.search.engine.mapper.mapping.building.spi.IndexManagerBuildingState that will ultimately allow to retrieve a org.hibernate.search.engine.mapper.mapping.spi.MappedIndexManager. The idea is to make the flow of information part of the design of the bootstrapping process; that helps to keep the different "parts" of Hibernate Search more or less decoupled. I'm not entirely sure we'll be able to do it this way forever, especially once we cannot break APIs anymore. But the fact that a lot of the code is either SPI or implementation, not API, might help. |