private void applyServiceContributors() { final Iterable<ServiceContributor> serviceContributors = bootstrapServiceRegistry.getService( ClassLoaderService.class ) .loadJavaServices( ServiceContributor.class ); for ( ServiceContributor serviceContributor : serviceContributors ) { serviceContributor.contribute( this ); } }
/** * In case a custom {@link MetadataBuilderFactory} creates a custom builder, return that one, otherwise the default * builder. */ private MetadataBuilder getCustomBuilderOrDefault(MetadataBuilderImpl defaultBuilder) { final ClassLoaderService cls = serviceRegistry.getService( ClassLoaderService.class ); final java.util.Collection<MetadataBuilderFactory> discoveredBuilderFactories = cls.loadJavaServices( MetadataBuilderFactory.class ); MetadataBuilder builder = null; List<String> activeFactoryNames = null; for ( MetadataBuilderFactory discoveredBuilderFactory : discoveredBuilderFactories ) { final MetadataBuilder returnedBuilder = discoveredBuilderFactory.getMetadataBuilder( this, defaultBuilder ); if ( returnedBuilder != null ) { if ( activeFactoryNames == null ) { activeFactoryNames = new ArrayList<>(); } activeFactoryNames.add( discoveredBuilderFactory.getClass().getName() ); builder = returnedBuilder; } } if ( activeFactoryNames != null && activeFactoryNames.size() > 1 ) { throw new HibernateException( "Multiple active MetadataBuilder definitions were discovered : " + String.join(", ", activeFactoryNames) ); } return builder != null ? builder : defaultBuilder; }
@Override public SessionFactoryBuilder getSessionFactoryBuilder() { final SessionFactoryBuilderImpl defaultBuilder = new SessionFactoryBuilderImpl( this, bootstrapContext ); final ClassLoaderService cls = metadataBuildingOptions.getServiceRegistry().getService( ClassLoaderService.class ); final java.util.Collection<SessionFactoryBuilderFactory> discoveredBuilderFactories = cls.loadJavaServices( SessionFactoryBuilderFactory.class ); SessionFactoryBuilder builder = null; List<String> activeFactoryNames = null; for ( SessionFactoryBuilderFactory discoveredBuilderFactory : discoveredBuilderFactories ) { final SessionFactoryBuilder returnedBuilder = discoveredBuilderFactory.getSessionFactoryBuilder( this, defaultBuilder ); if ( returnedBuilder != null ) { if ( activeFactoryNames == null ) { activeFactoryNames = new ArrayList<>(); } activeFactoryNames.add( discoveredBuilderFactory.getClass().getName() ); builder = returnedBuilder; } } if ( activeFactoryNames != null && activeFactoryNames.size() > 1 ) { throw new HibernateException( "Multiple active SessionFactoryBuilderFactory definitions were discovered : " + String.join(", ", activeFactoryNames) ); } if ( builder != null ) { return builder; } return defaultBuilder; }
@Override public SessionFactoryServiceRegistry buildServiceRegistry( SessionFactoryImplementor sessionFactory, SessionFactoryOptions options) { final ClassLoaderService cls = options.getServiceRegistry().getService( ClassLoaderService.class ); final SessionFactoryServiceRegistryBuilderImpl builder = new SessionFactoryServiceRegistryBuilderImpl( theBasicServiceRegistry ); for ( SessionFactoryServiceContributor contributor : cls.loadJavaServices( SessionFactoryServiceContributor.class ) ) { contributor.contribute( builder ); } return builder.buildSessionFactoryServiceRegistry( sessionFactory, options ); } }
public MetadataBuilderImpl(MetadataSources sources, StandardServiceRegistry serviceRegistry) { this.sources = sources; this.options = new MetadataBuildingOptionsImpl( serviceRegistry ); this.bootstrapContext = new BootstrapContextImpl( serviceRegistry, options ); //this is needed only fro implementig deprecated method options.setBootstrapContext( bootstrapContext ); for ( MetadataSourcesContributor contributor : sources.getServiceRegistry() .getService( ClassLoaderService.class ) .loadJavaServices( MetadataSourcesContributor.class ) ) { contributor.contribute( sources ); } // todo : not so sure this is needed anymore. // these should be set during the StandardServiceRegistryBuilder.configure call applyCfgXmlValues( serviceRegistry.getService( CfgXmlAccessService.class ) ); final ClassLoaderService classLoaderService = serviceRegistry.getService( ClassLoaderService.class ); for ( MetadataBuilderInitializer contributor : classLoaderService.loadJavaServices( MetadataBuilderInitializer.class ) ) { contributor.contribute( this, serviceRegistry ); } }
public IntegratorServiceImpl(LinkedHashSet<Integrator> providedIntegrators, ClassLoaderService classLoaderService) { // register standard integrators. Envers and JPA, for example, need to be handled by discovery because in // separate project/jars. addIntegrator( new BeanValidationIntegrator() ); addIntegrator( new JaccIntegrator() ); addIntegrator( new CollectionCacheInvalidator() ); // register provided integrators for ( Integrator integrator : providedIntegrators ) { addIntegrator( integrator ); } for ( Integrator integrator : classLoaderService.loadJavaServices( Integrator.class ) ) { addIntegrator( integrator ); } }
/** * Builds the selector. * * @param classLoaderService The class loading service used to (attempt to) resolve any un-registered * strategy implementations. * * @return The selector. */ public StrategySelector buildSelector(ClassLoaderService classLoaderService) { final StrategySelectorImpl strategySelector = new StrategySelectorImpl( classLoaderService ); // build the baseline... addDialects( strategySelector ); addJtaPlatforms( strategySelector ); addTransactionCoordinatorBuilders( strategySelector ); addMultiTableBulkIdStrategies( strategySelector ); addImplicitNamingStrategies( strategySelector ); addCacheKeysFactories( strategySelector ); // apply auto-discovered registrations for ( StrategyRegistrationProvider provider : classLoaderService.loadJavaServices( StrategyRegistrationProvider.class ) ) { for ( StrategyRegistration discoveredStrategyRegistration : provider.getStrategyRegistrations() ) { applyFromStrategyRegistration( strategySelector, discoveredStrategyRegistration ); } } // apply customizations for ( StrategyRegistration explicitStrategyRegistration : explicitStrategyRegistrations ) { applyFromStrategyRegistration( strategySelector, explicitStrategyRegistration ); } return strategySelector; }
for ( TypeContributor contributor : classLoaderService.loadJavaServices( TypeContributor.class ) ) { contributor.contribute( typeContributions, options.getServiceRegistry() );
for ( JtaPlatformProvider provider : classLoaderService.loadJavaServices( JtaPlatformProvider.class ) ) { final JtaPlatform providedPlatform = provider.getProvidedJtaPlatform(); log.tracef( "Located JtaPlatformProvider [%s] provided JtaPlaform : %s", provider, providedPlatform );
for ( MetadataContributor contributor : classLoaderService.loadJavaServices( MetadataContributor.class ) ) { log.tracef( "Calling MetadataContributor : %s", contributor ); contributor.contribute( metadataCollector, jandexView ); Iterable<AdditionalJaxbMappingProducer> producers = classLoaderService.loadJavaServices( AdditionalJaxbMappingProducer.class ); if ( producers != null ) { final EntityHierarchyBuilder hierarchyBuilder = new EntityHierarchyBuilder();
@Override public <T> Iterable<T> loadJavaServices(Class<T> serviceContract) { // when it comes to services, we need to search in both services and the de-duplicate // however, we cannot rely on 'equals' for comparison. Instead compare class names Iterable<T> servicesFromORMCLassLoader = hibernateClassLoaderService.loadJavaServices( serviceContract ); Iterable<T> servicesFromLocalClassLoader = internalClassResolver.loadJavaServices( serviceContract ); //LinkedHashMap to maintain order; elements from Hibernate ORM first. Map<String,T> combined = new LinkedHashMap<>(); addAllServices( servicesFromORMCLassLoader, combined ); addAllServices( servicesFromLocalClassLoader, combined ); return combined.values(); }
private void applyServiceContributors() { final Iterable<ServiceContributor> serviceContributors = bootstrapServiceRegistry.getService( ClassLoaderService.class ) .loadJavaServices( ServiceContributor.class ); for ( ServiceContributor serviceContributor : serviceContributors ) { serviceContributor.contribute( this ); } }
@Override public <T> Iterable<T> loadJavaServices(Class<T> serviceContract) { // when it comes to services, we need to search in both services and de-duplicate // however, we cannot rely on 'equals' for comparison. Instead compare class names Iterable<T> servicesFromORMCLassLoader = hibernateClassLoaderService.loadJavaServices( serviceContract ); Iterable<T> servicesFromLocalClassLoader = internalClassLoaderService.loadJavaServices( serviceContract ); //LinkedHashMap to maintain order; elements from Hibernate ORM first. Map<String,T> combined = new LinkedHashMap<String,T>(); addAllServices( servicesFromORMCLassLoader, combined ); addAllServices( servicesFromLocalClassLoader, combined ); return combined.values(); }
/** * In case a custom {@link MetadataBuilderFactory} creates a custom builder, return that one, otherwise the default * builder. */ private MetadataBuilder getCustomBuilderOrDefault(MetadataBuilderImpl defaultBuilder) { final ClassLoaderService cls = serviceRegistry.getService( ClassLoaderService.class ); final java.util.Collection<MetadataBuilderFactory> discoveredBuilderFactories = cls.loadJavaServices( MetadataBuilderFactory.class ); MetadataBuilder builder = null; List<String> activeFactoryNames = null; for ( MetadataBuilderFactory discoveredBuilderFactory : discoveredBuilderFactories ) { final MetadataBuilder returnedBuilder = discoveredBuilderFactory.getMetadataBuilder( this, defaultBuilder ); if ( returnedBuilder != null ) { if ( activeFactoryNames == null ) { activeFactoryNames = new ArrayList<>(); } activeFactoryNames.add( discoveredBuilderFactory.getClass().getName() ); builder = returnedBuilder; } } if ( activeFactoryNames != null && activeFactoryNames.size() > 1 ) { throw new HibernateException( "Multiple active MetadataBuilder definitions were discovered : " + String.join(", ", activeFactoryNames) ); } return builder != null ? builder : defaultBuilder; }
@Override public SessionFactoryBuilder getSessionFactoryBuilder() { final SessionFactoryBuilderImpl defaultBuilder = new SessionFactoryBuilderImpl( this, bootstrapContext ); final ClassLoaderService cls = metadataBuildingOptions.getServiceRegistry().getService( ClassLoaderService.class ); final java.util.Collection<SessionFactoryBuilderFactory> discoveredBuilderFactories = cls.loadJavaServices( SessionFactoryBuilderFactory.class ); SessionFactoryBuilder builder = null; List<String> activeFactoryNames = null; for ( SessionFactoryBuilderFactory discoveredBuilderFactory : discoveredBuilderFactories ) { final SessionFactoryBuilder returnedBuilder = discoveredBuilderFactory.getSessionFactoryBuilder( this, defaultBuilder ); if ( returnedBuilder != null ) { if ( activeFactoryNames == null ) { activeFactoryNames = new ArrayList<>(); } activeFactoryNames.add( discoveredBuilderFactory.getClass().getName() ); builder = returnedBuilder; } } if ( activeFactoryNames != null && activeFactoryNames.size() > 1 ) { throw new HibernateException( "Multiple active SessionFactoryBuilderFactory definitions were discovered : " + String.join( ", ", activeFactoryNames ) ); } if ( builder != null ) { return builder; } return defaultBuilder; }
@Override public SessionFactoryServiceRegistry buildServiceRegistry( SessionFactoryImplementor sessionFactory, BootstrapContext bootstrapContext, SessionFactoryOptions options) { final ClassLoaderService cls = options.getServiceRegistry().getService( ClassLoaderService.class ); final SessionFactoryServiceRegistryBuilderImpl builder = new SessionFactoryServiceRegistryBuilderImpl( theBasicServiceRegistry ); for ( SessionFactoryServiceContributor contributor : cls.loadJavaServices( SessionFactoryServiceContributor.class ) ) { contributor.contribute( builder ); } return builder.buildSessionFactoryServiceRegistry( sessionFactory, bootstrapContext, options ); } }
public MetadataBuilderImpl(MetadataSources sources, StandardServiceRegistry serviceRegistry, ClassmateContext classmateContext) { this.sources = sources; this.options = new MetadataBuildingOptionsImpl( serviceRegistry ); this.bootstrapContext = new BootstrapContextImpl( serviceRegistry, classmateContext, options ); for ( MetadataSourcesContributor contributor : sources.getServiceRegistry() .getService( ClassLoaderService.class ) .loadJavaServices( MetadataSourcesContributor.class ) ) { contributor.contribute( sources ); } // todo : not so sure this is needed anymore. // these should be set during the StandardServiceRegistryBuilder.configure call applyCfgXmlValues( serviceRegistry.getService( CfgXmlAccessService.class ) ); final ClassLoaderService classLoaderService = serviceRegistry.getService( ClassLoaderService.class ); for ( MetadataBuilderInitializer contributor : classLoaderService.loadJavaServices( MetadataBuilderInitializer.class ) ) { contributor.contribute( this, serviceRegistry ); } }
@Override public SessionFactoryServiceRegistry buildServiceRegistry(SessionFactoryImplementor sessionFactory, BootstrapContext bootstrapContext, SessionFactoryOptions options) { final ClassLoaderService cls = options.getServiceRegistry().getService( ClassLoaderService.class ); final SessionFactoryServiceRegistryBuilderImpl builder = new SessionFactoryServiceRegistryBuilderImpl( theBasicServiceRegistry ); // Add the OGM services to the builder for ( SessionFactoryServiceInitiator<?> initiator : OgmSessionFactoryServiceInitiators.LIST ) { builder.addInitiator( initiator ); } for ( SessionFactoryServiceContributor contributor : cls.loadJavaServices( SessionFactoryServiceContributor.class ) ) { contributor.contribute( builder ); } return builder.buildSessionFactoryServiceRegistry( sessionFactory, bootstrapContext, options ); } }
public IntegratorServiceImpl(LinkedHashSet<Integrator> providedIntegrators, ClassLoaderService classLoaderService) { // register standard integrators. Envers and JPA, for example, need to be handled by discovery because in // separate project/jars. addIntegrator( new BeanValidationIntegrator() ); addIntegrator( new JaccIntegrator() ); addIntegrator( new CollectionCacheInvalidator() ); // register provided integrators for ( Integrator integrator : providedIntegrators ) { addIntegrator( integrator ); } for ( Integrator integrator : classLoaderService.loadJavaServices( Integrator.class ) ) { addIntegrator( integrator ); } }
dialect.contributeTypes( typeContributions, options.getServiceRegistry() ); for ( TypeContributor contributor : classLoaderService.loadJavaServices( TypeContributor.class ) ) { contributor.contribute( typeContributions, options.getServiceRegistry() );