Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package utils;
- import java.util.Properties;
- import org.hibernate.*;
- import org.hibernate.cfg.*;
- import org.webdsl.*;
- import org.hibernate.event.internal.DefaultFlushEntityEventListener;
- import org.hibernate.event.internal.DefaultSaveOrUpdateEventListener;
- import org.hibernate.event.service.spi.EventListenerRegistry;
- import org.hibernate.event.service.internal.EventListenerRegistryImpl;
- import org.hibernate.event.spi.EventType;
- import org.hibernate.event.spi.FlushEntityEvent;
- import org.hibernate.event.spi.SaveOrUpdateEvent;
- import org.hibernate.metamodel.Metadata;
- import org.hibernate.metamodel.MetadataSources;
- import org.hibernate.metamodel.source.internal.MetadataImpl;
- import org.hibernate.service.BasicServiceRegistry;
- import org.hibernate.service.ServiceRegistryBuilder;
- import org.hibernate.service.spi.SessionFactoryServiceRegistry;
- import java.util.*;
- import webdsl.generated.domain.*;
- @SuppressWarnings("unused") public class HibernateUtilConfigured
- {
- private static final SessionFactory sessionFactory;
- private static MetadataSources metadatasources;
- private static BasicServiceRegistry registry;
- static
- {
- try
- {
- registry = new ServiceRegistryBuilder().addService(EventListenerRegistry.class, new EventListenerRegistryImpl()).buildServiceRegistry();
- metadatasources = new MetadataSources(registry);
- metadatasources.addPackage("utils");
- metadatasources.addAnnotatedClass(utils.ApplicationContextProperty.class);
- metadatasources.addAnnotatedClass(utils.File.class);
- metadatasources.addPackage("org.webdsl.search");
- metadatasources.addAnnotatedClass(org.webdsl.search.SearchNamespace.class);
- metadatasources.addPackage("org.webdsl.generated");
- metadatasources.addAnnotatedClass(webdsl.generated.domain.Bla.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.Commit.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.dummy_webdsl_entity.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.Entry.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.GithubRepo.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.Project.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.QueuedEmail.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.Repo.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.RequestLogEntry.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.RequestLogEntryParam.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.Settings.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.SvnRepo.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.ValidationException.class);
- metadatasources.addAnnotatedClass(webdsl.generated.domain.ValidationExceptionMultiple.class);
- EventListenerRegistry eventListenerRegistry = registry.getService(EventListenerRegistry.class);
- eventListenerRegistry.setListeners(EventType.SAVE_UPDATE, new SetVersionSaveOrUpdateEventListener());
- eventListenerRegistry.setListeners(EventType.FLUSH_ENTITY, new SetValidationEventListener());
- sessionFactory = metadatasources.buildMetadata().buildSessionFactory();
- }
- catch(Throwable ex)
- {
- throw new ExceptionInInitializerError(ex);
- }
- }
- public static SessionFactory getSessionFactory()
- {
- return sessionFactory;
- }
- public static MetadataSources getMetaDataSources()
- {
- return metadatasources;
- }
- @SuppressWarnings("serial") private static class SetVersionSaveOrUpdateEventListener extends DefaultSaveOrUpdateEventListener
- {
- public void onSaveOrUpdate(SaveOrUpdateEvent event) throws HibernateException
- {
- setVersion(event.getObject());
- super.onSaveOrUpdate(event);
- }
- public void setVersion(Object o)
- {
- if(org.hibernate.Hibernate.isInitialized(o) && o instanceof WebDSLEntity)
- {
- WebDSLEntity we = (WebDSLEntity)o;
- if(we.getVersion() <= 0)
- {
- we.setVersion(1);
- }
- }
- }
- }
- @SuppressWarnings("serial") private static class SetValidationEventListener extends DefaultFlushEntityEventListener
- {
- public void onFlushEntity(FlushEntityEvent event) throws HibernateException
- {
- validate(event.getEntity());
- super.onFlushEntity(event);
- }
- public void validate(Object o)
- {
- if(o instanceof WebDSLEntity)
- {
- WebDSLEntity we = (WebDSLEntity)o;
- AbstractPageServlet aps = ThreadLocalPage.get();
- if(aps != null)
- {
- aps.addEntityToValidateAfterAction(we);
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment