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();
}
}
}
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();
}
}
}
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();
}
}
}
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();
}
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();
}
}
Aggregations