Refine search
public DisabledCaching(SessionFactoryImplementor sessionFactory) { this.sessionFactory = sessionFactory; this.regionFactory = sessionFactory.getServiceRegistry().getService( RegionFactory.class ); }
@Override public void sessionFactoryClosed(SessionFactory sessionFactory) { SessionFactoryImplementor sfi = ( (SessionFactoryImplementor) sessionFactory ); sfi.getServiceRegistry().destroy(); ServiceRegistry basicRegistry = sfi.getServiceRegistry().getParentServiceRegistry(); ( (ServiceRegistryImplementor) basicRegistry ).destroy(); } }
public static Object getConstantValue(String name, SessionFactoryImplementor factory) { boolean conventionalJavaConstants = factory.getSessionFactoryOptions().isConventionalJavaConstants(); Class clazz; try { if ( conventionalJavaConstants && !JAVA_CONSTANT_PATTERN.matcher( name ).find() ) { return null; } ClassLoaderService classLoaderService = factory.getServiceRegistry().getService( ClassLoaderService.class ); clazz = classLoaderService.classForName( StringHelper.qualifier( name ) ); } catch ( Throwable t ) { return null; } try { return clazz.getField( StringHelper.unqualify( name ) ).get( null ); } catch ( Throwable t ) { return null; } }
@Override public void injectServices(ServiceRegistryImplementor serviceRegistry) { this.strategySelector = serviceRegistry.getService( StrategySelector.class ); this.dialectResolver = serviceRegistry.getService( DialectResolver.class ); }
@Override public Clob mergeClob(Clob original, Clob target, SharedSessionContractImplementor session) { if ( original == null && target == null ) { return null; } try { final LobCreator lobCreator = session.getFactory().getServiceRegistry().getService( JdbcServices.class ).getLobCreator( session ); return original == null ? lobCreator.createClob( "" ) : lobCreator.createClob( original.getCharacterStream(), original.length() ); } catch (SQLException e) { throw session.getFactory().getSQLExceptionHelper().convert( e, "unable to merge CLOB data" ); } }
/** * Used by TypeFactory scoping. * * @param factory The SessionFactory that the TypeFactory is being bound to */ void setSessionFactory(SessionFactoryImplementor factory) { if ( this.sessionFactory != null ) { log.scopingTypesToSessionFactoryAfterAlreadyScoped( this.sessionFactory, factory ); } else { this.sessionFactoryUuid = factory.getUuid(); String sfName = factory.getSessionFactoryOptions().getSessionFactoryName(); if ( sfName == null ) { final CfgXmlAccessService cfgXmlAccessService = factory.getServiceRegistry() .getService( CfgXmlAccessService.class ); if ( cfgXmlAccessService.getAggregatedConfig() != null ) { sfName = cfgXmlAccessService.getAggregatedConfig().getSessionFactoryName(); } } this.sessionFactoryName = sfName; } this.sessionFactory = factory; }
@SuppressWarnings("unchecked") public static <T, S extends T> ManagedTypeDescriptor<S> resolveSubType( ManagedTypeDescriptor<T> baseType, String subTypeName, SessionFactoryImplementor sessionFactory) { final MetamodelImplementor metamodel = sessionFactory.getMetamodel(); if ( baseType instanceof EmbeddedTypeDescriptor<?> ) { // todo : at least validate the string is a valid sub-type of the embeddable class? return (ManagedTypeDescriptor) baseType; } final String importedClassName = metamodel.getImportedClassName( subTypeName ); if ( importedClassName != null ) { // first, try to find it by name directly.. ManagedTypeDescriptor<S> subManagedType = metamodel.entity( importedClassName ); if ( subManagedType != null ) { return subManagedType; } // it could still be a mapped-superclass try { final Class<S> subTypeClass = sessionFactory.getServiceRegistry() .getService( ClassLoaderService.class ) .classForName( importedClassName ); return metamodel.managedType( subTypeClass ); } catch (Exception ignore) { } } throw new IllegalArgumentException( "Unknown sub-type name (" + baseType.getName() + ") : " + subTypeName ); }
@Test public void testExtensionPoints() throws Exception { final ServiceReference sr = bundleContext.getServiceReference( SessionFactory.class.getName() ); final SessionFactoryImplementor sfi = (SessionFactoryImplementor) bundleContext.getService( sr ); assertTrue( TestIntegrator.passed() ); Class impl = sfi.getServiceRegistry().getService( StrategySelector.class ).selectStrategyImplementor( Calendar.class, TestStrategyRegistrationProvider.GREGORIAN ); assertNotNull( impl ); BasicType basicType = sfi.getTypeResolver().basic( TestTypeContributor.NAME ); assertNotNull( basicType ); }
protected void init(boolean audited, String auditStrategy) throws IOException { this.audited = audited; Properties configurationProperties = new Properties(); configurationProperties.putAll( Environment.getProperties() ); if ( !audited ) { configurationProperties.setProperty( EnversIntegrator.AUTO_REGISTER, "false" ); } if ( createSchema() ) { configurationProperties.setProperty( Environment.HBM2DDL_AUTO, "create-drop" ); configurationProperties.setProperty( Environment.USE_NEW_ID_GENERATOR_MAPPINGS, "true" ); configurationProperties.setProperty( EnversSettings.USE_REVISION_ENTITY_WITH_NATIVE_ID, "false" ); } if ( auditStrategy != null && !"".equals( auditStrategy ) ) { configurationProperties.setProperty( "org.hibernate.envers.audit_strategy", auditStrategy ); } addConfigurationProperties( configurationProperties ); configurationProperties.put( AvailableSettings.LOADED_CLASSES, Arrays.asList( getAnnotatedClasses() ) ); entityManagerFactoryBuilder = (EntityManagerFactoryBuilderImpl) Bootstrap.getEntityManagerFactoryBuilder( new PersistenceUnitDescriptorAdapter(), configurationProperties ); emf = entityManagerFactoryBuilder.build().unwrap( HibernateEntityManagerFactory.class ); serviceRegistry = (StandardServiceRegistryImpl) emf.getSessionFactory() .getServiceRegistry() .getParentServiceRegistry(); newEntityManager(); }
session = sessionFactory.openSession(); session.getTransaction().begin(); sessionFactory.close(); serviceRegistry.destroy();
@Override default void close() { destroy(); }
if ( serviceBinding == null && checkParent && parent != null ) { serviceBinding = parent.locateServiceBinding( serviceRole );
@Before public void init() { sessionFactoryImplementorMock = Mockito.mock(SessionFactoryImplementor.class); sessionFactoryOptionsMock = Mockito.mock(SessionFactoryOptions.class); when(sessionFactoryImplementorMock.getSessionFactoryOptions()).thenReturn( sessionFactoryOptionsMock ); serviceRegistryMock = Mockito.mock(ServiceRegistryImplementor.class); when( sessionFactoryImplementorMock.getServiceRegistry() ).thenReturn( serviceRegistryMock ); classLoaderServiceMock = Mockito.mock(ClassLoaderService.class); when( serviceRegistryMock.getService( eq( ClassLoaderService.class ) ) ).thenReturn( classLoaderServiceMock ); }
@Override public void injectServices(ServiceRegistryImplementor serviceRegistry) { this.classLoaderService = serviceRegistry.getService( ClassLoaderService.class ); }
@Override public Blob mergeBlob(Blob original, Blob target, SharedSessionContractImplementor session) { if ( original == null && target == null ) { return null; } try { final LobCreator lobCreator = session.getFactory().getServiceRegistry().getService( JdbcServices.class ).getLobCreator( session ); return original == null ? lobCreator.createBlob( ArrayHelper.EMPTY_BYTE_ARRAY ) : lobCreator.createBlob( original.getBinaryStream(), original.length() ); } catch (SQLException e) { throw session.getFactory().getSQLExceptionHelper().convert( e, "unable to merge BLOB data" ); } }
private void assertEnumProperty(Class<?> entityClass, Class<?> typeClass, String propertyName, EnumType expectedType) { doInJPA( this::entityManagerFactory, entityManager -> { final SessionFactoryImplementor sessionFactory = entityManager.unwrap( SessionImplementor.class ).getSessionFactory(); final EntityPersister entityPersister = sessionFactory.getMetamodel().entityPersister( entityClass ); final EnversService enversService = sessionFactory.getServiceRegistry().getService( EnversService.class ); final String entityName = entityPersister.getEntityName(); final String auditEntityName = enversService.getAuditEntitiesConfiguration().getAuditEntityName( entityName ); final EntityPersister auditedEntityPersister = sessionFactory.getMetamodel().entityPersister( auditEntityName ); final org.hibernate.type.Type propertyType = auditedEntityPersister.getPropertyType( propertyName ); assertTyping( CustomType.class, propertyType ); final UserType userType = ( (CustomType) propertyType ).getUserType(); assertTyping( typeClass, userType ); assertTyping( org.hibernate.type.EnumType.class, userType ); switch ( expectedType ) { case STRING: assertTrue( !( (org.hibernate.type.EnumType) userType ).isOrdinal() ); break; default: assertTrue( ( (org.hibernate.type.EnumType) userType ).isOrdinal() ); break; } } ); } }
@BeforeClassOnce @SuppressWarnings({"UnusedDeclaration"}) public void buildEntityManagerFactory() throws Exception { log.trace( "Building EntityManagerFactory" ); entityManagerFactoryBuilder = (EntityManagerFactoryBuilderImpl) Bootstrap.getEntityManagerFactoryBuilder( buildPersistenceUnitDescriptor(), buildSettings() ); entityManagerFactory = entityManagerFactoryBuilder.build().unwrap( SessionFactoryImplementor.class ); serviceRegistry = (StandardServiceRegistryImpl) entityManagerFactory.getServiceRegistry() .getParentServiceRegistry(); afterEntityManagerFactoryBuilt(); }
session = sessionFactory.openSession(); session.getTransaction().begin(); sessionFactory.close(); serviceRegistry.destroy();
@Override public synchronized void destroy() { if ( !active ) { return; } active = false; destroy( classLoaderServiceBinding ); destroy( strategySelectorBinding ); destroy( integratorServiceBinding ); if ( childRegistries != null ) { for(ServiceRegistry serviceRegistry : childRegistries) { if(serviceRegistry instanceof ServiceRegistryImplementor) { ServiceRegistryImplementor serviceRegistryImplementor = (ServiceRegistryImplementor) serviceRegistry; serviceRegistryImplementor.destroy(); } } } }