Example usage for org.hibernate.event.service.spi EventListenerRegistry getEventListenerGroup

List of usage examples for org.hibernate.event.service.spi EventListenerRegistry getEventListenerGroup

Introduction

In this page you can find the example usage for org.hibernate.event.service.spi EventListenerRegistry getEventListenerGroup.

Prototype

<T> EventListenerGroup<T> getEventListenerGroup(EventType<T> eventType);

Source Link

Usage

From source file:at.molindo.esi4j.module.hibernate.DefaultHibernateLifecycleInjector.java

License:Apache License

private void removeListeners(EventListenerRegistry registry, Object listener, EventType<?>... eventTypes) {
    for (EventType<?> eventType : eventTypes) {
        Iterator<?> iter = registry.getEventListenerGroup(eventType).listeners().iterator();
        while (iter.hasNext()) {
            if (iter.next() == listener) {
                iter.remove();/*from   w w w  .  jav  a2  s.c om*/
            }
        }
    }
}

From source file:com.corundumstudio.core.extensions.hibernate.BaseTest.java

License:Apache License

protected static void initHibernate() {
    Properties props = buildDatabaseConfiguration("db1");

    Configuration cfg = new Configuration();
    cfg.setProperty(Environment.GENERATE_STATISTICS, "true");
    cfg.setProperty(AvailableSettings.HBM2DDL_AUTO, "create");
    cfg.setProperty(AvailableSettings.CACHE_REGION_FACTORY, InfinispanRegionFactory.class.getName());
    cfg.setProperty(InfinispanRegionFactory.INFINISPAN_CONFIG_RESOURCE_PROP, "infinispan.xml");
    cfg.setProperty(AvailableSettings.QUERY_CACHE_FACTORY, DynamicQueryCacheFactory.class.getName());
    cfg.setProperty(Environment.USE_SECOND_LEVEL_CACHE, "true");
    cfg.setProperty(Environment.USE_QUERY_CACHE, "true");
    cfg.addAnnotatedClass(SimpleEntity.class);
    cfg.buildMappings();/*from w w w .j a va 2  s.c o m*/

    ServiceRegistryBuilder sb = new ServiceRegistryBuilder();
    ServiceRegistry serviceRegistry = sb.applySettings(props).buildServiceRegistry();
    sessionFactory = (SessionFactoryImplementor) cfg.buildSessionFactory(serviceRegistry);

    EventListenerRegistry registry = sessionFactory.getServiceRegistry()
            .getService(EventListenerRegistry.class);
    registry.getEventListenerGroup(EventType.POST_UPDATE).appendListener(queryCacheEntityListener);
    registry.getEventListenerGroup(EventType.POST_INSERT).appendListener(queryCacheEntityListener);
    registry.getEventListenerGroup(EventType.POST_DELETE).appendListener(queryCacheEntityListener);
}

From source file:com.github.javarch.persistence.orm.hibernate.spi.JavarchEventListenerIntegrator.java

License:Apache License

@Override
public void integrate(Configuration configuration, SessionFactoryImplementor sessionFactory,
        SessionFactoryServiceRegistry serviceRegistry) {

    LOG.info("Adicionando eventos customizados ao EventListenerRegistry.");
    EventListenerRegistry registry = serviceRegistry.getService(EventListenerRegistry.class);
    registry.getEventListenerGroup(EventType.PRE_INSERT).appendListener(new PreInsertEventListener());
    registry.getEventListenerGroup(EventType.PRE_UPDATE).appendListener(new PreUpdateEventListener());

}

From source file:com.invariantproperties.sandbox.springentitylistener.listener.HibernateEntityListenersConfigurer.java

License:Apache License

@PostConstruct
public void registerListeners() {
    HibernateEntityManagerFactory hemf = (HibernateEntityManagerFactory) emf;
    SessionFactory sf = hemf.getSessionFactory();
    EventListenerRegistry registry = ((SessionFactoryImpl) sf).getServiceRegistry()
            .getService(EventListenerRegistry.class);

    registry.getEventListenerGroup(EventType.PRE_INSERT).appendListener(listener);
    registry.getEventListenerGroup(EventType.POST_COMMIT_INSERT).appendListener(listener);
    registry.getEventListenerGroup(EventType.PRE_UPDATE).appendListener(listener);
    registry.getEventListenerGroup(EventType.POST_COMMIT_UPDATE).appendListener(listener);
    registry.getEventListenerGroup(EventType.PRE_DELETE).appendListener(listener);
    registry.getEventListenerGroup(EventType.POST_COMMIT_DELETE).appendListener(listener);
    registry.getEventListenerGroup(EventType.POST_LOAD).appendListener(listener);
}

From source file:com.invariantproperties.sandbox.springentitylistener.listener.SpringEntityListenersConfigurer.java

License:Apache License

@PostConstruct
public void registerListeners() {
    // get registry so we can add listeners.
    HibernateEntityManagerFactory hemf = (HibernateEntityManagerFactory) entityManagerFactory;
    SessionFactory sf = hemf.getSessionFactory();
    EventListenerRegistry registry = ((SessionFactoryImpl) sf).getServiceRegistry()
            .getService(EventListenerRegistry.class);

    final Set<Object> listeners = new HashSet<Object>();

    EntityManager entityManager = null;/*  w ww  .j av  a  2s . c  o  m*/
    try {
        entityManager = hemf.createEntityManager();
        // for every entity known to the system...
        for (EntityType<?> entity : entityManager.getMetamodel().getEntities()) {

            // ... register event listeners for it.
            if (entity.getJavaType().isAnnotationPresent(SpringEntityListeners.class)) {
                SpringEntityListeners annotation = (SpringEntityListeners) entity.getJavaType()
                        .getAnnotation(SpringEntityListeners.class);
                for (Class<?> beanClass : annotation.value()) {
                    Map<String, ?> map = context.getBeansOfType(beanClass);
                    listeners.addAll(map.values());
                }
            }
        }
    } finally {
        if (entityManager != null) {
            entityManager.close();
        }
    }

    // register adapter and listeners.
    HibernateEntityListenersAdapter adapter = new HibernateEntityListenersAdapter(
            new ArrayList<Object>(listeners), entityManagerFactory);
    registry.getEventListenerGroup(EventType.PRE_INSERT).appendListener(adapter);
    registry.getEventListenerGroup(EventType.POST_COMMIT_INSERT).appendListener(adapter);
    registry.getEventListenerGroup(EventType.PRE_UPDATE).appendListener(adapter);
    registry.getEventListenerGroup(EventType.POST_COMMIT_UPDATE).appendListener(adapter);
    registry.getEventListenerGroup(EventType.PRE_DELETE).appendListener(adapter);
    registry.getEventListenerGroup(EventType.POST_COMMIT_DELETE).appendListener(adapter);
    registry.getEventListenerGroup(EventType.POST_LOAD).appendListener(adapter);
}

From source file:de.dktk.dd.rpb.portal.audit.HibernateListenerRegistration.java

License:Open Source License

private <T> void register(EventType<T> eventType, T t) {
    EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry()
            .getService(EventListenerRegistry.class);
    log.info("Registering " + t.getClass() + " listener on " + eventType + " events.");
    registry.getEventListenerGroup(eventType).appendListener(t);
}

From source file:debop4k.data.orm.hibernate.HibernateEx.java

License:Apache License

/**
 * Hibernate SessionFactory ? event listener  ?.
 *
 * @param factory    SessionFactory instance
 * @param listener   Listener instance/*ww  w .j  a  va 2  s  . c o  m*/
 * @param eventTypes ? ? 
 */
@SuppressWarnings("unchecked")
public static <T> void registerEventListener(@NonNull SessionFactory factory, T listener,
        Collection<EventType<?>> eventTypes) {
    EventListenerRegistry registry = ((SessionFactoryImpl) factory).getServiceRegistry()
            .getService(EventListenerRegistry.class);

    for (EventType eventType : eventTypes) {
        registry.getEventListenerGroup(eventType).appendListener(listener);
    }
}

From source file:edu.nps.moves.mmowgli.hibernate.AbstractVHib.java

License:Open Source License

protected void _installDataBaseListeners()// AppMaster apMas)
{
    DatabaseListeners dlis = new DatabaseListeners(sr);
    MSysOut.println(HIBERNATE_LOGS, "Installing db listeners");
    EventListenerRegistry registry = ((SessionFactoryImpl) sf).getServiceRegistry()
            .getService(EventListenerRegistry.class);
    registry.addDuplicationStrategy(new DuplicationStrategy() {
        @Override/*from  w ww.  ja va  2s  . c om*/
        public boolean areMatch(Object listener, Object original) {
            return false;
        }

        @Override
        public Action getAction() {
            return null;
        }
    });

    if (dlis.getSaveListener() != null)
        registry.getEventListenerGroup(EventType.SAVE).appendListener(dlis.getSaveListener());
    if (dlis.getUpdateListener() != null)
        registry.getEventListenerGroup(EventType.UPDATE).appendListener(dlis.getUpdateListener());
    if (dlis.getSaveOrUpdateListener() != null)
        registry.getEventListenerGroup(EventType.SAVE_UPDATE).appendListener(dlis.getSaveOrUpdateListener());
    if (dlis.getDeleteListener() != null)
        registry.getEventListenerGroup(EventType.DELETE).appendListener(dlis.getDeleteListener());
    if (dlis.getPostInsertListener() != null)
        registry.getEventListenerGroup(EventType.POST_COMMIT_INSERT)
                .appendListener(dlis.getPostInsertListener());
    if (dlis.getPostUpdateListener() != null)
        registry.getEventListenerGroup(EventType.POST_COMMIT_UPDATE)
                .appendListener(dlis.getPostUpdateListener());

    MSysOut.println(HIBERNATE_LOGS, "db listeners installed");

    dlis.enableListeners(true); // may have to be moved later
}

From source file:kr.debop4j.data.hibernate.tools.HibernateTool.java

License:Apache License

/**
 * Register event listener./*w w  w .  j a  v a  2 s .  com*/
 *
 * @param sessionFactory the session factory
 * @param listener       the listener
 * @param eventTypes     the event types
 */
@SuppressWarnings("unchecked")
public static void registerEventListener(SessionFactory sessionFactory, Object listener,
        EventType... eventTypes) {
    shouldNotBeNull(sessionFactory, "sessionFactory");
    shouldNotBeNull(listener, "listener");

    log.trace("sessionFactory? event listener ?... listener=[{}], eventTypes=[{}]", listener,
            StringTool.listToString(eventTypes));

    EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry()
            .getService(EventListenerRegistry.class);

    for (EventType eventType : eventTypes) {
        try {
            registry.getEventListenerGroup(eventType).appendListener(listener);
        } catch (Exception ignored) {
        }
    }

}

From source file:net.krotscheck.jersey2.hibernate.factory.HibernateSessionFactoryFactoryTest.java

License:Apache License

/**
 * Test the application event injectors.
 *///from w w  w .j  a  v  a2s.  c o m
@Test
public void testEventInjection() {

    // Create a fake application.
    SessionFactory factoryFactory = locator.getService(SessionFactory.class);
    Assert.assertNotNull(factoryFactory);

    ServiceRegistry serviceRegistry = ((SessionFactoryImpl) factoryFactory).getServiceRegistry();
    EventListenerRegistry eventRegistry = serviceRegistry.getService(EventListenerRegistry.class);

    EventListenerGroup<PreInsertEventListener> priGroup = eventRegistry
            .getEventListenerGroup(EventType.PRE_INSERT);
    assertContainsListener(priGroup);

    EventListenerGroup<PostInsertEventListener> poiGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_INSERT);
    assertContainsListener(poiGroup);

    EventListenerGroup<PreUpdateEventListener> pruGroup = eventRegistry
            .getEventListenerGroup(EventType.PRE_UPDATE);
    assertContainsListener(pruGroup);

    EventListenerGroup<PostUpdateEventListener> pouGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_UPDATE);
    assertContainsListener(pouGroup);

    EventListenerGroup<PreDeleteEventListener> prdGroup = eventRegistry
            .getEventListenerGroup(EventType.PRE_DELETE);
    assertContainsListener(prdGroup);

    EventListenerGroup<PostDeleteEventListener> podGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_DELETE);
    assertContainsListener(podGroup);

    EventListenerGroup<PostInsertEventListener> pciGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_COMMIT_INSERT);
    assertContainsListener(pciGroup);

    EventListenerGroup<PostUpdateEventListener> pcuGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_COMMIT_UPDATE);
    assertContainsListener(pcuGroup);

    EventListenerGroup<PostDeleteEventListener> pcdGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_COMMIT_DELETE);
    assertContainsListener(pcdGroup);
}