Search in sources :

Example 6 with ServiceRegistryImplementor

use of org.hibernate.service.spi.ServiceRegistryImplementor in project hibernate-orm by hibernate.

the class NegativeValueSequenceTest method testPositiveTwoAllocationSizeNoopOptimizer.

@Test
@TestForIssue(jiraKey = "HHH-11709")
public void testPositiveTwoAllocationSizeNoopOptimizer() {
    ServiceRegistryImplementor serviceRegistry = null;
    SessionFactoryImplementor sessionFactory = null;
    Session session = null;
    try {
        serviceRegistry = (ServiceRegistryImplementor) new StandardServiceRegistryBuilder().applySetting(AvailableSettings.PREFERRED_POOLED_OPTIMIZER, "none").applySetting(AvailableSettings.HBM2DDL_AUTO, "create-drop").build();
        Triggerable triggerable = logInspection.watchForLogMessages("HHH000116");
        Metadata metadata = new MetadataSources(serviceRegistry).addAnnotatedClass(PositiveTwoIncrementSize.class).buildMetadata();
        // NoopOptimizer is preferred (due to setting AvailableSettings.PREFERRED_POOLED_OPTIMIZER to "false")
        // PositiveTwoIncrementSize ID has allocationSize == 2, so warning should be triggered.
        assertEquals(true, triggerable.wasTriggered());
        sessionFactory = (SessionFactoryImplementor) metadata.buildSessionFactory();
        assertOptimizer(sessionFactory, PositiveTwoIncrementSize.class, NoopOptimizer.class);
        session = sessionFactory.openSession();
        session.getTransaction().begin();
        // (since NoopOptimizer positive default allocationSize is 1)
        for (Integer i = -5; i <= 5; i++) {
            PositiveTwoIncrementSize theEntity = new PositiveTwoIncrementSize();
            session.persist(theEntity);
            assertEquals(i, theEntity.id);
        }
    } finally {
        if (session != null) {
            session.getTransaction().rollback();
            session.close();
        }
        if (sessionFactory != null) {
            sessionFactory.close();
        }
        if (serviceRegistry != null) {
            serviceRegistry.destroy();
        }
    }
}
Also used : StandardServiceRegistryBuilder(org.hibernate.boot.registry.StandardServiceRegistryBuilder) SessionFactoryImplementor(org.hibernate.engine.spi.SessionFactoryImplementor) Metadata(org.hibernate.boot.Metadata) MetadataSources(org.hibernate.boot.MetadataSources) ServiceRegistryImplementor(org.hibernate.service.spi.ServiceRegistryImplementor) Triggerable(org.hibernate.testing.logger.Triggerable) Session(org.hibernate.Session) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Example 7 with ServiceRegistryImplementor

use of org.hibernate.service.spi.ServiceRegistryImplementor in project hibernate-orm by hibernate.

the class NegativeValueSequenceTest method testPositiveTwoAllocationSizePooledOptimizer.

@Test
@TestForIssue(jiraKey = "HHH-11709")
public void testPositiveTwoAllocationSizePooledOptimizer() {
    ServiceRegistryImplementor serviceRegistry = null;
    SessionFactoryImplementor sessionFactory = null;
    Session session = null;
    try {
        serviceRegistry = (ServiceRegistryImplementor) new StandardServiceRegistryBuilder().applySetting(AvailableSettings.HBM2DDL_AUTO, "create-drop").build();
        Triggerable triggerable = logInspection.watchForLogMessages("HHH000116");
        Metadata metadata = new MetadataSources(serviceRegistry).addAnnotatedClass(PositiveTwoIncrementSize.class).buildMetadata();
        // PositiveTwoIncrementSize ID has allocationSize == 2, so PooledOptimizer should be used.
        // Warning should not be triggered.
        assertEquals(false, triggerable.wasTriggered());
        sessionFactory = (SessionFactoryImplementor) metadata.buildSessionFactory();
        assertOptimizer(sessionFactory, PositiveTwoIncrementSize.class, PooledOptimizer.class);
        session = sessionFactory.openSession();
        session.getTransaction().begin();
        // (since NoopOptimizer positive default allocationSize is 1)
        for (Integer i = -5; i <= 5; i++) {
            PositiveTwoIncrementSize theEntity = new PositiveTwoIncrementSize();
            session.persist(theEntity);
            assertEquals(i, theEntity.id);
        }
    } finally {
        if (session != null) {
            session.getTransaction().rollback();
            session.close();
        }
        if (sessionFactory != null) {
            sessionFactory.close();
        }
        if (serviceRegistry != null) {
            serviceRegistry.destroy();
        }
    }
}
Also used : StandardServiceRegistryBuilder(org.hibernate.boot.registry.StandardServiceRegistryBuilder) SessionFactoryImplementor(org.hibernate.engine.spi.SessionFactoryImplementor) Metadata(org.hibernate.boot.Metadata) MetadataSources(org.hibernate.boot.MetadataSources) ServiceRegistryImplementor(org.hibernate.service.spi.ServiceRegistryImplementor) Triggerable(org.hibernate.testing.logger.Triggerable) Session(org.hibernate.Session) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Example 8 with ServiceRegistryImplementor

use of org.hibernate.service.spi.ServiceRegistryImplementor in project hibernate-orm by hibernate.

the class NegativeValueSequenceTest method testNegativeTwoAllocationSizePositiveStartNoopOptimizer.

@Test
@TestForIssue(jiraKey = "HHH-11712")
public void testNegativeTwoAllocationSizePositiveStartNoopOptimizer() {
    ServiceRegistryImplementor serviceRegistry = null;
    SessionFactoryImplementor sessionFactory = null;
    Session session = null;
    try {
        serviceRegistry = (ServiceRegistryImplementor) new StandardServiceRegistryBuilder().applySetting(AvailableSettings.HBM2DDL_AUTO, "create-drop").build();
        Triggerable triggerable = logInspection.watchForLogMessages("HHH000116");
        Metadata metadata = new MetadataSources(serviceRegistry).addAnnotatedClass(NegativeTwoIncrementSizePositiveInitialValue.class).buildMetadata();
        // NegativeTwoIncrementSizePositiveInitialValue ID has allocationSize == -2, so warning should be triggered.
        assertEquals(true, triggerable.wasTriggered());
        sessionFactory = (SessionFactoryImplementor) metadata.buildSessionFactory();
        assertOptimizer(sessionFactory, NegativeTwoIncrementSizePositiveInitialValue.class, NoopOptimizer.class);
        session = sessionFactory.openSession();
        session.getTransaction().begin();
        // (since negative NoopOptimizer negative default is -1)
        for (Integer i = 5; i <= -5; i--) {
            NegativeTwoIncrementSizePositiveInitialValue theEntity = new NegativeTwoIncrementSizePositiveInitialValue();
            session.persist(theEntity);
            assertEquals(i, theEntity.id);
        }
    } finally {
        if (session != null) {
            session.getTransaction().rollback();
            session.close();
        }
        if (sessionFactory != null) {
            sessionFactory.close();
        }
        if (serviceRegistry != null) {
            serviceRegistry.destroy();
        }
    }
}
Also used : StandardServiceRegistryBuilder(org.hibernate.boot.registry.StandardServiceRegistryBuilder) SessionFactoryImplementor(org.hibernate.engine.spi.SessionFactoryImplementor) Metadata(org.hibernate.boot.Metadata) MetadataSources(org.hibernate.boot.MetadataSources) ServiceRegistryImplementor(org.hibernate.service.spi.ServiceRegistryImplementor) Triggerable(org.hibernate.testing.logger.Triggerable) Session(org.hibernate.Session) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Example 9 with ServiceRegistryImplementor

use of org.hibernate.service.spi.ServiceRegistryImplementor in project hibernate-orm by hibernate.

the class DiscriminatorMultiTenancyTest method setUp.

@Before
public void setUp() {
    Map settings = new HashMap();
    settings.put(Environment.MULTI_TENANT, MultiTenancyStrategy.DISCRIMINATOR);
    settings.put(Environment.MULTI_TENANT_IDENTIFIER_RESOLVER, currentTenantResolver);
    settings.put(Environment.CACHE_REGION_FACTORY, CachingRegionFactory.class.getName());
    settings.put(Environment.GENERATE_STATISTICS, "true");
    ServiceRegistryImplementor serviceRegistry = (ServiceRegistryImplementor) new StandardServiceRegistryBuilder().applySettings(settings).build();
    MetadataSources ms = new MetadataSources(serviceRegistry);
    ms.addAnnotatedClass(Customer.class);
    Metadata metadata = ms.buildMetadata();
    final PersistentClass customerMapping = metadata.getEntityBinding(Customer.class.getName());
    customerMapping.setCached(true);
    ((RootClass) customerMapping).setCacheConcurrencyStrategy("read-write");
    HibernateSchemaManagementTool tool = new HibernateSchemaManagementTool();
    tool.injectServices(serviceRegistry);
    connectionProvider = ConnectionProviderBuilder.buildConnectionProvider();
    final GenerationTargetToDatabase target = new GenerationTargetToDatabase(new DdlTransactionIsolatorTestingImpl(serviceRegistry, connectionProvider));
    new SchemaDropperImpl(serviceRegistry).doDrop(metadata, serviceRegistry, settings, true, target);
    new SchemaCreatorImpl(serviceRegistry).doCreation(metadata, serviceRegistry, settings, true, target);
    target.release();
    final SessionFactoryBuilder sfb = metadata.getSessionFactoryBuilder();
    sessionFactory = (SessionFactoryImplementor) sfb.build();
}
Also used : RootClass(org.hibernate.mapping.RootClass) StandardServiceRegistryBuilder(org.hibernate.boot.registry.StandardServiceRegistryBuilder) HashMap(java.util.HashMap) Customer(org.hibernate.test.multitenancy.schema.Customer) CachingRegionFactory(org.hibernate.testing.cache.CachingRegionFactory) MetadataSources(org.hibernate.boot.MetadataSources) Metadata(org.hibernate.boot.Metadata) ServiceRegistryImplementor(org.hibernate.service.spi.ServiceRegistryImplementor) HibernateSchemaManagementTool(org.hibernate.tool.schema.internal.HibernateSchemaManagementTool) DdlTransactionIsolatorTestingImpl(org.hibernate.test.util.DdlTransactionIsolatorTestingImpl) SchemaDropperImpl(org.hibernate.tool.schema.internal.SchemaDropperImpl) SchemaCreatorImpl(org.hibernate.tool.schema.internal.SchemaCreatorImpl) SessionFactoryBuilder(org.hibernate.boot.SessionFactoryBuilder) GenerationTargetToDatabase(org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase) HashMap(java.util.HashMap) Map(java.util.Map) PersistentClass(org.hibernate.mapping.PersistentClass) Before(org.junit.Before)

Example 10 with ServiceRegistryImplementor

use of org.hibernate.service.spi.ServiceRegistryImplementor in project hibernate-orm by hibernate.

the class IndividuallySchemaValidatorImplTest method testMismatchColumnType.

@Test
public void testMismatchColumnType() throws Exception {
    MetadataSources metadataSources = new MetadataSources(ssr);
    metadataSources.addAnnotatedClass(NameColumn.class);
    MetadataImplementor metadata = (MetadataImplementor) metadataSources.buildMetadata();
    metadata.validate();
    Map<String, Object> settings = new HashMap<>();
    ServiceRegistryImplementor serviceRegistry = (ServiceRegistryImplementor) new StandardServiceRegistryBuilder().applySettings(settings).build();
    DriverManagerConnectionProviderImpl connectionProvider = new DriverManagerConnectionProviderImpl();
    connectionProvider.configure(properties());
    final GenerationTargetToDatabase schemaGenerator = new GenerationTargetToDatabase(new DdlTransactionIsolatorTestingImpl(serviceRegistry, new JdbcConnectionAccessImpl(connectionProvider)));
    try {
        new SchemaCreatorImpl(ssr).doCreation(metadata, serviceRegistry, settings, true, schemaGenerator);
        metadataSources = new MetadataSources(ssr);
        metadataSources.addAnnotatedClass(IntegerNameColumn.class);
        metadata = (MetadataImplementor) metadataSources.buildMetadata();
        metadata.validate();
        try {
            getSchemaValidator(metadata);
            Assert.fail("SchemaManagementException expected");
        } catch (SchemaManagementException e) {
            assertEquals("Schema-validation: wrong column type encountered in column [name] in table [SomeSchema.ColumnEntity]; found [varchar (Types#VARCHAR)], but expecting [integer (Types#INTEGER)]", e.getMessage());
        }
    } finally {
        new SchemaDropperImpl(serviceRegistry).doDrop(metadata, false, schemaGenerator);
        serviceRegistry.destroy();
        connectionProvider.stop();
    }
}
Also used : JdbcConnectionAccessImpl(org.hibernate.testing.boot.JdbcConnectionAccessImpl) StandardServiceRegistryBuilder(org.hibernate.boot.registry.StandardServiceRegistryBuilder) HashMap(java.util.HashMap) MetadataSources(org.hibernate.boot.MetadataSources) MetadataImplementor(org.hibernate.boot.spi.MetadataImplementor) ServiceRegistryImplementor(org.hibernate.service.spi.ServiceRegistryImplementor) DriverManagerConnectionProviderImpl(org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl) DdlTransactionIsolatorTestingImpl(org.hibernate.test.util.DdlTransactionIsolatorTestingImpl) SchemaCreatorImpl(org.hibernate.tool.schema.internal.SchemaCreatorImpl) SchemaDropperImpl(org.hibernate.tool.schema.internal.SchemaDropperImpl) SchemaManagementException(org.hibernate.tool.schema.spi.SchemaManagementException) GenerationTargetToDatabase(org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase) Test(org.junit.Test)

Aggregations

ServiceRegistryImplementor (org.hibernate.service.spi.ServiceRegistryImplementor)16 MetadataSources (org.hibernate.boot.MetadataSources)15 StandardServiceRegistryBuilder (org.hibernate.boot.registry.StandardServiceRegistryBuilder)15 Test (org.junit.Test)13 Metadata (org.hibernate.boot.Metadata)10 Triggerable (org.hibernate.testing.logger.Triggerable)8 HashMap (java.util.HashMap)6 Session (org.hibernate.Session)6 SessionFactoryImplementor (org.hibernate.engine.spi.SessionFactoryImplementor)6 TestForIssue (org.hibernate.testing.TestForIssue)6 DdlTransactionIsolatorTestingImpl (org.hibernate.test.util.DdlTransactionIsolatorTestingImpl)5 SchemaCreatorImpl (org.hibernate.tool.schema.internal.SchemaCreatorImpl)5 SchemaDropperImpl (org.hibernate.tool.schema.internal.SchemaDropperImpl)5 GenerationTargetToDatabase (org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase)5 Map (java.util.Map)3 MetadataImplementor (org.hibernate.boot.spi.MetadataImplementor)3 DriverManagerConnectionProviderImpl (org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl)3 JdbcConnectionAccessImpl (org.hibernate.testing.boot.JdbcConnectionAccessImpl)3 CachingRegionFactory (org.hibernate.testing.cache.CachingRegionFactory)3 SessionFactoryBuilder (org.hibernate.boot.SessionFactoryBuilder)2