List of usage examples for org.hibernate.event.service.spi EventListenerRegistry appendListeners
<T> void appendListeners(EventType<T> type, T... listeners);
From source file:at.molindo.esi4j.module.hibernate.DefaultHibernateLifecycleInjector.java
License:Apache License
@Override public synchronized void injectLifecycle(SessionFactory sessionFactory, Esi4JBatchedEventProcessor batchedEventProcessor) { if (_listener != null) { throw new IllegalStateException("already injected"); }/*from w w w. jav a 2 s . c o m*/ SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) sessionFactory; EventListenerRegistry registry = sessionFactoryImpl.getServiceRegistry() .getService(EventListenerRegistry.class); _listener = doCreateListener(sessionFactoryImpl, batchedEventProcessor); if (_listener instanceof PostInsertEventListener) { if (registerPostCommitListeneres) { registry.appendListeners(EventType.POST_COMMIT_INSERT, (PostInsertEventListener) _listener); } else { registry.appendListeners(EventType.POST_INSERT, (PostInsertEventListener) _listener); } } if (_listener instanceof PostUpdateEventListener) { if (registerPostCommitListeneres) { registry.appendListeners(EventType.POST_COMMIT_UPDATE, (PostUpdateEventListener) _listener); } else { registry.appendListeners(EventType.POST_UPDATE, (PostUpdateEventListener) _listener); } } if (_listener instanceof PostDeleteEventListener) { if (registerPostCommitListeneres) { registry.appendListeners(EventType.POST_COMMIT_DELETE, (PostDeleteEventListener) _listener); } else { registry.appendListeners(EventType.POST_DELETE, (PostDeleteEventListener) _listener); } } // collections if (!registerPostCommitListeneres) { if (_listener instanceof PostCollectionRecreateEventListener) { registry.appendListeners(EventType.POST_COLLECTION_RECREATE, (PostCollectionRecreateEventListener) _listener); } if (_listener instanceof PostCollectionRemoveEventListener) { registry.appendListeners(EventType.POST_COLLECTION_REMOVE, (PostCollectionRemoveEventListener) _listener); } if (_listener instanceof PostCollectionUpdateEventListener) { registry.appendListeners(EventType.POST_COLLECTION_UPDATE, (PostCollectionUpdateEventListener) _listener); } } }
From source file:net.krotscheck.jersey2.hibernate.factory.HibernateSessionFactoryFactory.java
License:Apache License
/** * This method automatically adds discovered hibernate event listeners into * the hibernate service registry.//from w w w. ja v a 2 s. co m * * @param registry The service registry. */ private void injectEventListeners(final ServiceRegistry registry) { EventListenerRegistry eventRegistry = registry.getService(EventListenerRegistry.class); List<PostInsertEventListener> postInsertEvents = locator.getAllServices(PostInsertEventListener.class); for (PostInsertEventListener piEventListener : postInsertEvents) { logger.trace("Registering PostInsert: " + piEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_INSERT, piEventListener); } List<PostUpdateEventListener> postUpdateEvents = locator.getAllServices(PostUpdateEventListener.class); for (PostUpdateEventListener puEventListener : postUpdateEvents) { logger.trace("Registering PostUpdate: " + puEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_UPDATE, puEventListener); } List<PostDeleteEventListener> postDeleteEvents = locator.getAllServices(PostDeleteEventListener.class); for (PostDeleteEventListener pdEventListener : postDeleteEvents) { logger.trace("Registering PostDelete: " + pdEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_DELETE, pdEventListener); } List<PreInsertEventListener> preInsertEvents = locator.getAllServices(PreInsertEventListener.class); for (PreInsertEventListener piEventListener : preInsertEvents) { logger.trace("Registering PreInsert: " + piEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.PRE_INSERT, piEventListener); } List<PreUpdateEventListener> preUpdateEvents = locator.getAllServices(PreUpdateEventListener.class); for (PreUpdateEventListener puEventListener : preUpdateEvents) { logger.trace("Registering PreUpdate: " + puEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.PRE_UPDATE, puEventListener); } List<PreDeleteEventListener> preDeleteEvents = locator.getAllServices(PreDeleteEventListener.class); for (PreDeleteEventListener pdEventListener : preDeleteEvents) { logger.trace("Registering PreDelete: " + pdEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.PRE_DELETE, pdEventListener); } List<PostCommitInsertEventListener> pciEvents = locator.getAllServices(PostCommitInsertEventListener.class); for (PostCommitInsertEventListener cpiEventListener : pciEvents) { logger.trace("Registering PostCommitInsert: " + cpiEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_COMMIT_INSERT, cpiEventListener); } List<PostCommitUpdateEventListener> pcuEvents = locator.getAllServices(PostCommitUpdateEventListener.class); for (PostCommitUpdateEventListener cpuEventListener : pcuEvents) { logger.trace("Registering PostCommitUpdate: " + cpuEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_COMMIT_UPDATE, cpuEventListener); } List<PostCommitDeleteEventListener> pcdEvents = locator.getAllServices(PostCommitDeleteEventListener.class); for (PostCommitDeleteEventListener cpdEventListener : pcdEvents) { logger.trace("Registering PostCommitDelete: " + cpdEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_COMMIT_DELETE, cpdEventListener); } }
From source file:org.audit4j.integration.hibernate.bootstrap.Audit4jIntegrator.java
License:Apache License
public void integrate(Configuration configuration, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { System.out.println("Integrating......"); //final AuditService auditService = serviceRegistry.getService(AuditService.class); final AuditService auditService = new AuditServiceImpl(); auditService.init();//from w w w . j a va2s. co m if (!auditService.isInitialized()) { throw new InitializationException("Audit4j hibernate integration can not be initialized.."); } // Register listeners.. final EventListenerRegistry listenerRegistry = serviceRegistry.getService(EventListenerRegistry.class); listenerRegistry.appendListeners(EventType.POST_INSERT, new AuditPostInsertEventListenerImpl(auditService)); listenerRegistry.appendListeners(EventType.POST_UPDATE, new AuditPostUpdateEventListenerImpl(auditService)); listenerRegistry.appendListeners(EventType.POST_DELETE, new AuditPostDeleteEventListenerImpl(auditService)); }
From source file:org.codehaus.groovy.grails.orm.hibernate.EventListenerIntegrator.java
License:Apache License
@SuppressWarnings("unchecked") protected <T> void appendListeners(final EventListenerRegistry listenerRegistry, final EventType<T> eventType, final Map<String, Object> listeners) { Object listener = listeners.get(eventType.eventName()); if (listener != null) { listenerRegistry.appendListeners(eventType, (T) listener); }//from ww w . j av a2s .c o m }
From source file:org.flowerplatform.web.database.DatabaseManager.java
License:Open Source License
/** * @author Mariana//from w w w. ja va 2 s .co m */ public void initialize() { // Configuration config = new Configuration(); // Properties props = config.getProperties(); Properties props = new Properties(); // props.setProperty(Environment.DRIVER, "org.postgresql.Driver"); // props.setProperty(Environment.USER, "postgres"); // props.setProperty(Environment.URL, "jdbc:postgresql://localhost/flower-dev-center"); // props.setProperty(Environment.PASS, "postgres"); // props.setProperty(Environment.DIALECT, PostgresPlusDialect.class.getName()); // props.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread"); // props.setProperty(Environment.HBM2DDL_AUTO, "create-drop"); // props.setProperty(Environment.SHOW_SQL, "true"); props.setProperty(Environment.DRIVER, "org.h2.Driver"); props.setProperty(Environment.USER, "sa"); props.setProperty(Environment.URL, "jdbc:h2:mem:temp_flower_web;MVCC=TRUE"); props.setProperty(Environment.PASS, ""); props.setProperty(Environment.DIALECT, H2Dialect.class.getName()); props.setProperty(Environment.HBM2DDL_AUTO, "create"); // props.setProperty(Environment.SHOW_SQL, "true"); props.setProperty(PersistenceOptions.CASCADE_POLICY_ON_NON_CONTAINMENT, "REFRESH,PERSIST,MERGE"); props.setProperty(PersistenceOptions.PERSISTENCE_XML, "annotations.xml"); props.setProperty(PersistenceOptions.JOIN_TABLE_FOR_NON_CONTAINED_ASSOCIATIONS, "false"); props.setProperty(PersistenceOptions.ALWAYS_VERSION, "false"); // props.setProperty(PersistenceOptions.INHERITANCE_MAPPING, "TABLE_PER_CLASS"); props.setProperty(PersistenceOptions.INHERITANCE_MAPPING, "SINGLE_TABLE"); props.setProperty(PersistenceOptions.ADD_INDEX_FOR_FOREIGN_KEY, "false"); // create the HbDataStore using the name final HbDataStore hbds = HbHelper.INSTANCE.createRegisterDataStore(DS_NAME); // set the properties hbds.setDataStoreProperties(props); // sets its epackages stored in this datastore hbds.setEPackages(new EPackage[] { EntityPackage.eINSTANCE, NotationPackage.eINSTANCE }); // ((HbSessionDataStore) hbds).setConfiguration(config); // initialize try { hbds.initialize(); } catch (Throwable e) { System.err.println(hbds.getMappingXML()); logger.error("FATAL: error while initializing the HbDataStore", e); } System.err.println(hbds.getMappingXML()); factory = hbds.getSessionFactory(); EventListenerRegistry registry = ((SessionFactoryImpl) factory).getServiceRegistry() .getService(EventListenerRegistry.class); SecurityEntityListener listener = new SecurityEntityListener(); registry.appendListeners(EventType.POST_INSERT, listener); registry.appendListeners(EventType.POST_DELETE, listener); registry.appendListeners(EventType.POST_UPDATE, listener); registry.appendListeners(EventType.PRE_DELETE, listener); initWithTestData(); new DatabaseOperationWrapper(new DatabaseOperation() { @Override public void run() { DBVersion dbVersion = null; dbVersion = wrapper.find(DBVersion.class, DBVersion.SINGLETON_RECORD_ID); if (dbVersion == null) { logger.error("Cannot find database version from the database."); } else if (dbVersion.getDbVersion() < FlowerProperties.DB_VERSION) { logger.error( "Database version mismatch. Database version = {} is lower than expected = {}. Please run the DB update scripts.", dbVersion.getDbVersion(), FlowerProperties.DB_VERSION); } else if (dbVersion.getDbVersion() > FlowerProperties.DB_VERSION) { logger.warn( "Database version mismatch. Database version = {} is greater than expected = {}. You may continue, but please be aware that the application may malfunction and/or corrupt the data in the DB.", dbVersion.getDbVersion(), FlowerProperties.DB_VERSION); } else { // same version; everything is OK logger.info("Database version check OK. Version = {}", dbVersion.getDbVersion()); } } }); }
From source file:org.flowerplatform.web.tests.security.sandbox.SecurityPermissionsTests.java
License:Open Source License
@BeforeClass public static void setUp() { EclipseDependentTestSuiteBase.setUp(); Configuration config = new Configuration(); Properties props = config.getProperties(); props.setProperty(Environment.DRIVER, "org.h2.Driver"); props.setProperty(Environment.USER, "sa"); props.setProperty(Environment.URL, "jdbc:h2:mem:temp_flower_web;MVCC=TRUE"); props.setProperty(Environment.PASS, ""); props.setProperty(Environment.DIALECT, H2Dialect.class.getName()); props.setProperty(Environment.HBM2DDL_AUTO, "create"); props.setProperty(Environment.SHOW_SQL, "true"); props.setProperty(PersistenceOptions.CASCADE_POLICY_ON_NON_CONTAINMENT, "REFRESH,PERSIST,MERGE"); props.setProperty(PersistenceOptions.PERSISTENCE_XML, "annotations.xml"); props.setProperty(PersistenceOptions.JOIN_TABLE_FOR_NON_CONTAINED_ASSOCIATIONS, "false"); props.setProperty(PersistenceOptions.ALWAYS_VERSION, "false"); // props.setProperty(PersistenceOptions.INHERITANCE_MAPPING, "TABLE_PER_CLASS"); props.setProperty(PersistenceOptions.INHERITANCE_MAPPING, "SINGLE_TABLE"); props.setProperty(PersistenceOptions.ADD_INDEX_FOR_FOREIGN_KEY, "false"); // props.setProperty(Environment.DRIVER, "org.postgresql.Driver"); // props.setProperty(Environment.USER, "postgres"); // props.setProperty(Environment.URL, "jdbc:postgresql://localhost/flower-dev-center"); // props.setProperty(Environment.PASS, "postgres"); // props.setProperty(Environment.DIALECT, PostgresPlusDialect.class.getName()); // props.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread"); // props.setProperty(Environment.HBM2DDL_AUTO, "create-drop"); // props.setProperty(Environment.SHOW_SQL, "true"); // the name of the session factory String hbName = "Entity"; // create the HbDataStore using the name final HbDataStore hbds = HbHelper.INSTANCE.createRegisterDataStore(hbName); // set the properties hbds.setDataStoreProperties(props);/* w ww .j a v a 2s . c om*/ // sets its epackages stored in this datastore hbds.setEPackages(new EPackage[] { EntityPackage.eINSTANCE }); ((HbSessionDataStore) hbds).setConfiguration(config); try { // initialize hbds.initialize(); } catch (Exception e) { System.out.println(e); } WebPlugin.getInstance().getDatabaseManager().setFactory(hbds.getSessionFactory()); EventListenerRegistry registry = ((SessionFactoryImpl) hbds.getSessionFactory()).getServiceRegistry() .getService(EventListenerRegistry.class); SecurityEntityListener listener = new SecurityEntityListener(); registry.appendListeners(EventType.POST_INSERT, listener); registry.appendListeners(EventType.POST_DELETE, listener); registry.appendListeners(EventType.POST_UPDATE, listener); registry.appendListeners(EventType.PRE_DELETE, listener); Utils.deleteAllData(); System.setProperty("java.security.policy", new File(TestUtil.getResourcesDir(SecurityPermissionsTests.class) + "all.policy") .getAbsolutePath()); PolicyFile policyFile = new PolicyFile(); Policy.setPolicy(new FlowerWebPolicyTest(policyFile)); Policy.getPolicy().refresh(); System.setSecurityManager(new SecurityManager()); // disable sending mails during testing CommonPlugin.getInstance().getFlowerProperties().remove("mail.smtp.host"); SendMailService service = (SendMailService) CommunicationPlugin.getInstance().getServiceRegistry() .getService(SendMailService.SERVICE_ID); service.initializeProperties(); }
From source file:org.grails.orm.hibernate.EventListenerIntegrator.java
License:Apache License
@SuppressWarnings("unchecked") protected <T> void appendListeners(final EventListenerRegistry listenerRegistry, final EventType<T> eventType, final Map<String, Object> listeners) { Object listener = listeners.get(eventType.eventName()); if (listener != null) { if (shouldOverrideListeners(eventType, listener)) { // since ClosureEventTriggeringInterceptor extends DefaultSaveOrUpdateEventListener we want to override instead of append the listener here // to avoid there being 2 implementations which would impact performance too listenerRegistry.setListeners(eventType, (T) listener); } else {/*from w ww . j a v a 2 s . c o m*/ listenerRegistry.appendListeners(eventType, (T) listener); } } }
From source file:org.granite.test.tide.hibernate4.data.TestHibernate4ChangeSetApplier.java
License:Open Source License
@Override protected void initPersistence() { AnnotationConfiguration configuration = new AnnotationConfiguration() .addAnnotatedClass(AbstractEntity.class).addAnnotatedClass(Address.class) .addAnnotatedClass(Contact1.class).addAnnotatedClass(Country.class).addAnnotatedClass(Person1.class) .addAnnotatedClass(Phone.class).addAnnotatedClass(Contact2.class) .addAnnotatedClass(Classification.class).addAnnotatedClass(Person2.class) .addAnnotatedClass(Phone2.class).addAnnotatedClass(OrderRepo.class).addAnnotatedClass(Order.class) .addAnnotatedClass(LineItemBag.class).addAnnotatedClass(LineItemList.class) .addAnnotatedClass(Order2.class).addAnnotatedClass(LineItemBag2.class) .addAnnotatedClass(LineItemList2.class).addAnnotatedClass(AbstractEntitySoftDelete.class) .addAnnotatedClass(AddressSoftDelete.class).addAnnotatedClass(ContactSoftDelete.class) .addAnnotatedClass(CountrySoftDelete.class).addAnnotatedClass(PersonSoftDelete.class) .addAnnotatedClass(PhoneSoftDelete.class).addAnnotatedClass(Patient.class) .addAnnotatedClass(Patient3.class).addAnnotatedClass(Medication.class) .addAnnotatedClass(Medication3.class).addAnnotatedClass(Prescription.class) .addAnnotatedClass(Person3.class).addAnnotatedClass(Contact3.class) .addAnnotatedClass(Patient2.class).addAnnotatedClass(Visit2.class).addAnnotatedClass(Test2.class) .addAnnotatedClass(Alert.class).addAnnotatedClass(VitalSignTest2.class) .addAnnotatedClass(VitalSignObservation2.class).addAnnotatedClass(VitalSignTest3.class) .addAnnotatedClass(VitalSignObservation3.class) .setProperty("hibernate.dialect", org.hibernate.dialect.H2Dialect.class.getName()) .setProperty("hibernate.hbm2ddl.auto", "create-drop").setProperty("hibernate.show_sql", "true") .setProperty("hibernate.connection.driver_class", org.h2.Driver.class.getName()) .setProperty("hibernate.connection.url", "jdbc:h2:mem:test-changeset") .setProperty("hibernate.connection.username", "sa") .setProperty("hibernate.connection.password", ""); sessionFactory = configuration.buildSessionFactory(); EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry() .getService(EventListenerRegistry.class); registry.appendListeners(EventType.POST_INSERT, new HibernateDataChangePublishListener()); registry.appendListeners(EventType.POST_UPDATE, new HibernateDataChangePublishListener()); registry.appendListeners(EventType.POST_DELETE, new HibernateDataChangePublishListener()); }
From source file:org.granite.test.tide.hibernate4.spring.TestHibernate4TideDataPublishHibernate.java
License:Open Source License
@Before public void setUp() throws Exception { super.setUp(); EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry() .getService(EventListenerRegistry.class); registry.appendListeners(EventType.POST_INSERT, new HibernateDataPublishListener()); registry.appendListeners(EventType.POST_UPDATE, new HibernateDataPublishListener()); registry.appendListeners(EventType.POST_DELETE, new HibernateDataPublishListener()); }
From source file:org.libreplan.business.hibernate.notification.HibernateDatabaseModificationsListener.java
License:Open Source License
@PostConstruct private void registerHibernateListeners() { SessionFactoryImpl impl = (SessionFactoryImpl) sessionFactory; EventListenerRegistry registry = impl.getServiceRegistry().getService(EventListenerRegistry.class); registry.appendListeners(EventType.POST_INSERT, this); registry.appendListeners(EventType.POST_UPDATE, this); registry.appendListeners(EventType.POST_DELETE, this); hibernateListenersRegistered = true; }