You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by th...@apache.org on 2021/05/30 11:33:49 UTC
[tapestry-5] branch master updated: TAP5-2681: upgrade Hibernate
version to latest 5.x
This is an automated email from the ASF dual-hosted git repository.
thiagohp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
The following commit(s) were added to refs/heads/master by this push:
new 6afec63 TAP5-2681: upgrade Hibernate version to latest 5.x
6afec63 is described below
commit 6afec63488327012ff0208af3d249973f63ce944
Author: Thiago H. de Paula Figueiredo <th...@arsmachina.com.br>
AuthorDate: Sun May 30 08:33:38 2021 -0300
TAP5-2681: upgrade Hibernate version to latest 5.x
---
.../internal/HibernateSessionSourceImpl.java | 15 ++++++++---
.../hibernate/web/modules/HibernateModule.java | 29 +++++++++++++---------
2 files changed, 29 insertions(+), 15 deletions(-)
diff --git a/tapestry-hibernate-core/src/main/java/org/apache/tapestry5/hibernate/internal/HibernateSessionSourceImpl.java b/tapestry-hibernate-core/src/main/java/org/apache/tapestry5/hibernate/internal/HibernateSessionSourceImpl.java
index e8bab72..77a3f72 100644
--- a/tapestry-hibernate-core/src/main/java/org/apache/tapestry5/hibernate/internal/HibernateSessionSourceImpl.java
+++ b/tapestry-hibernate-core/src/main/java/org/apache/tapestry5/hibernate/internal/HibernateSessionSourceImpl.java
@@ -14,6 +14,12 @@
package org.apache.tapestry5.hibernate.internal;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import javax.persistence.metamodel.EntityType;
+
import org.apache.tapestry5.hibernate.HibernateConfigurer;
import org.apache.tapestry5.hibernate.HibernateSessionSource;
import org.apache.tapestry5.ioc.annotations.PostInjection;
@@ -24,8 +30,6 @@ import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.slf4j.Logger;
-import java.util.List;
-
public class HibernateSessionSourceImpl implements HibernateSessionSource
{
private final SessionFactory sessionFactory;
@@ -48,8 +52,13 @@ public class HibernateSessionSourceImpl implements HibernateSessionSource
long factoryCreated = System.currentTimeMillis();
logger.info(String.format("Hibernate startup: %,d ms to configure, %,d ms overall.", configurationComplete - startTime, factoryCreated - startTime));
+
+ List<Class<?>> classes = sessionFactory.getMetamodel().getEntities().stream()
+ .map(EntityType::getJavaType)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
- logger.info(String.format("Configured Hibernate entities: %s", InternalUtils.joinSorted(sessionFactory.getAllClassMetadata().keySet())));
+ logger.info(String.format("Configured Hibernate entities: %s", InternalUtils.joinSorted(classes)));
}
@PostInjection
diff --git a/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/web/modules/HibernateModule.java b/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/web/modules/HibernateModule.java
index 129d5b1..0fa2109 100644
--- a/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/web/modules/HibernateModule.java
+++ b/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/web/modules/HibernateModule.java
@@ -14,6 +14,12 @@
package org.apache.tapestry5.hibernate.web.modules;
+import java.util.Objects;
+import java.util.Set;
+
+import javax.persistence.metamodel.EntityType;
+import javax.persistence.metamodel.SingularAttribute;
+
import org.apache.tapestry5.ValueEncoder;
import org.apache.tapestry5.commons.Configuration;
import org.apache.tapestry5.commons.MappedConfiguration;
@@ -44,7 +50,6 @@ import org.apache.tapestry5.services.dashboard.DashboardManager;
import org.apache.tapestry5.services.dashboard.DashboardTab;
import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
import org.hibernate.Session;
-import org.hibernate.metadata.ClassMetadata;
/**
* Supplements the services defined by {@link org.apache.tapestry5.hibernate.modules.HibernateCoreModule} with additional
@@ -93,14 +98,14 @@ public class HibernateModule
if (!provideEncoders)
return;
- for (ClassMetadata classMetadata : sessionSource.getSessionFactory().getAllClassMetadata()
- .values())
+ Set<EntityType<?>> entities = sessionSource.getSessionFactory().getMetamodel().getEntities();
+ for (EntityType<?> entityType : entities)
{
- final Class entityClass = classMetadata.getMappedClass();
- final String idenfierPropertyName = classMetadata.getIdentifierPropertyName();
-
+ Class<?> entityClass = entityType.getJavaType();
if (entityClass != null)
{
+ SingularAttribute<?, ?> id = entityType.getId(entityType.getIdType().getJavaType());
+ final String idenfierPropertyName = id.getName();
ValueEncoderFactory factory = new ValueEncoderFactory()
{
@Override
@@ -156,19 +161,19 @@ public class HibernateModule
* creates Hibernate session
*/
public static void contributeApplicationStateManager(
- MappedConfiguration<Class, ApplicationStateContribution> configuration,
+ final MappedConfiguration<Class, ApplicationStateContribution> configuration,
@Symbol(HibernateSymbols.ENTITY_SESSION_STATE_PERSISTENCE_STRATEGY_ENABLED)
boolean entitySessionStatePersistenceStrategyEnabled, HibernateSessionSource sessionSource)
{
if (!entitySessionStatePersistenceStrategyEnabled)
return;
+
+ sessionSource.getSessionFactory().getMetamodel().getEntities().stream()
+ .map(EntityType::getJavaType)
+ .filter(Objects::nonNull)
+ .forEach(e -> configuration.add(e, new ApplicationStateContribution(HibernatePersistenceConstants.ENTITY)));
- for (ClassMetadata classMetadata : sessionSource.getSessionFactory().getAllClassMetadata().values())
- {
- final Class entityClass = classMetadata.getMappedClass();
- configuration.add(entityClass, new ApplicationStateContribution(HibernatePersistenceConstants.ENTITY));
- }
}
/**