Skip to content

Commit

Permalink
OGM-668 Removing work-around for HHH-9451; Upgrading to Hibernate ORM…
Browse files Browse the repository at this point in the history
… 4.3.9
  • Loading branch information
gunnarmorling committed Apr 30, 2015
1 parent 855e3a0 commit dc04089
Show file tree
Hide file tree
Showing 15 changed files with 1 addition and 2,263 deletions.
2 changes: 1 addition & 1 deletion bom/pom.xml
Expand Up @@ -37,7 +37,7 @@
<neo4jCypherCompilerOlderVersion>2.0.3</neo4jCypherCompilerOlderVersion>
<!-- Neo4j does not support Lucene 4 currently-->
<neo4jLuceneVersion>3.6.2</neo4jLuceneVersion>
<hibernateVersion>4.3.8.Final</hibernateVersion>
<hibernateVersion>4.3.9.Final</hibernateVersion>
<hibernateSearchVersion>5.1.0.Final</hibernateSearchVersion>
<hibernateParserVersion>1.2.0.Alpha1</hibernateParserVersion>
<hibernateCommonsAnnotationsVersion>4.0.5.Final</hibernateCommonsAnnotationsVersion>
Expand Down
Expand Up @@ -6,7 +6,6 @@
*/
package org.hibernate.ogm.service.impl;

import java.lang.reflect.Field;
import java.util.Map;

import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
Expand All @@ -18,7 +17,6 @@
import org.hibernate.integrator.spi.IntegratorService;
import org.hibernate.integrator.spi.ServiceContributingIntegrator;
import org.hibernate.jpa.event.spi.JpaIntegrator;
import org.hibernate.jpa.event.spi.jpa.CallbackRegistry;
import org.hibernate.metamodel.source.MetadataImplementor;
import org.hibernate.ogm.cfg.OgmProperties;
import org.hibernate.ogm.cfg.impl.InternalProperties;
Expand All @@ -44,24 +42,10 @@
import org.hibernate.ogm.jdbc.impl.OgmConnectionProviderInitiator;
import org.hibernate.ogm.jpa.impl.OgmPersisterClassResolverInitiator;
import org.hibernate.ogm.options.navigation.impl.OptionsServiceInitiator;
import org.hibernate.ogm.service.listener.impl.OgmDefaultMergeEventListener;
import org.hibernate.ogm.service.listener.impl.OgmDefaultPersistEventListener;
import org.hibernate.ogm.service.listener.impl.OgmDefaultPersistOnFlushEventListener;
import org.hibernate.ogm.service.listener.impl.OgmDefaultReplicateEventListener;
import org.hibernate.ogm.service.listener.impl.OgmDefaultSaveEventListener;
import org.hibernate.ogm.service.listener.impl.OgmDefaultSaveOrUpdateEventListener;
import org.hibernate.ogm.service.listener.impl.OgmDefaultUpdateEventListener;
import org.hibernate.ogm.service.listener.impl.OgmJpaMergeEventListener;
import org.hibernate.ogm.service.listener.impl.OgmJpaPersistEventListener;
import org.hibernate.ogm.service.listener.impl.OgmJpaPersistOnFlushEventListener;
import org.hibernate.ogm.service.listener.impl.OgmJpaSaveEventListener;
import org.hibernate.ogm.service.listener.impl.OgmJpaSaveOrUpdateEventListener;
import org.hibernate.ogm.service.listener.impl.OgmPersistEventDuplicationStrategy;
import org.hibernate.ogm.transaction.impl.OgmJtaPlatformInitiator;
import org.hibernate.ogm.transaction.impl.OgmTransactionFactoryInitiator;
import org.hibernate.ogm.type.impl.TypeTranslatorInitiator;
import org.hibernate.ogm.util.configurationreader.spi.ConfigurationPropertyReader;
import org.hibernate.ogm.util.impl.TemporaryWorkaround;
import org.hibernate.service.spi.SessionFactoryServiceRegistry;

/**
Expand Down Expand Up @@ -120,7 +104,6 @@ private void doIntegrate(Configuration configuration, SessionFactoryImplementor

attachBatchListenersIfRequired( serviceRegistry );
attachEventContextManagingListenersIfRequired( configuration, serviceRegistry );
attachPersistListener( serviceRegistry );
}

private boolean isOgmUsed(Map properties) {
Expand Down Expand Up @@ -171,32 +154,6 @@ private boolean isEventContextRequired(Configuration configuration) {
return configuration.getProperties().get( OgmProperties.ERROR_HANDLER ) != null;
}

/**
* Registers OGM's persist event listeners.
*/
@TemporaryWorkaround("Only needed until HHH-9451 is fixed upstream")
private void attachPersistListener(SessionFactoryServiceRegistry serviceRegistry) {
EventListenerRegistry eventListenerRegistry = serviceRegistry.getService( EventListenerRegistry.class );

JpaIntegrator integrator = getIntegrator( JpaIntegrator.class, serviceRegistry );
CallbackRegistry callbackRegistry = integrator != null ? extractCallbackRegistry( integrator ) : null;

eventListenerRegistry.addDuplicationStrategy( new OgmPersistEventDuplicationStrategy( callbackRegistry ) );

eventListenerRegistry.getEventListenerGroup( EventType.MERGE ).appendListener( new OgmDefaultMergeEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.PERSIST ).appendListener( new OgmDefaultPersistEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.PERSIST_ONFLUSH ).appendListener( new OgmDefaultPersistOnFlushEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.REPLICATE ).appendListener( new OgmDefaultReplicateEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.SAVE ).appendListener( new OgmDefaultSaveEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.SAVE_UPDATE ).appendListener( new OgmDefaultSaveOrUpdateEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.UPDATE ).appendListener( new OgmDefaultUpdateEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.MERGE ).appendListener( new OgmJpaMergeEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.PERSIST ).appendListener( new OgmJpaPersistEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.PERSIST_ONFLUSH ).appendListener( new OgmJpaPersistOnFlushEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.SAVE ).appendListener( new OgmJpaSaveEventListener() );
eventListenerRegistry.getEventListenerGroup( EventType.SAVE_UPDATE ).appendListener( new OgmJpaSaveOrUpdateEventListener() );
}

@SuppressWarnings( "unchecked" )
private <T extends Integrator> T getIntegrator(Class<T> integratorType, SessionFactoryServiceRegistry serviceRegistry) {
Iterable<Integrator> integrators = serviceRegistry.getService( IntegratorService.class ).getIntegrators();
Expand All @@ -210,17 +167,6 @@ private <T extends Integrator> T getIntegrator(Class<T> integratorType, SessionF
return null;
}

private CallbackRegistry extractCallbackRegistry(JpaIntegrator integrator) {
try {
Field registryField = JpaIntegrator.class.getDeclaredField( "callbackRegistry" );
registryField.setAccessible( true );
return (CallbackRegistry) registryField.get( integrator );
}
catch (Exception e) {
throw new RuntimeException( "Can't extract callback registry", e );
}
}

private BatchOperationsDelegator asBatchDelegatorOrNull(GridDialect gridDialect) {
while ( gridDialect instanceof ForwardingGridDialect ) {
if ( gridDialect instanceof BatchOperationsDelegator ) {
Expand Down

This file was deleted.

0 comments on commit dc04089

Please sign in to comment.