Skip to content

Commit d311440

Browse files
committed
finally kill of Lifecycle after all these years
1 parent 98f06d4 commit d311440

File tree

20 files changed

+32
-448
lines changed

20 files changed

+32
-448
lines changed

hibernate-core/src/main/java/org/hibernate/CallbackException.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
package org.hibernate;
66

77
/**
8-
* Intended to be thrown from {@link org.hibernate.classic.Lifecycle}
9-
* and {@link Interceptor} callbacks.
8+
* Intended to be thrown from {@link Interceptor} callbacks.
109
*
1110
* @implNote This is a legacy exception type from back in the day before
1211
* Hibernate moved to an unchecked exception strategy.

hibernate-core/src/main/java/org/hibernate/Interceptor.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
*
5555
* @author Gavin King
5656
*/
57-
@SuppressWarnings("unused")
5857
public interface Interceptor {
5958
/**
6059
* Called just before an object is initialized. The interceptor may change the {@code state}, which will

hibernate-core/src/main/java/org/hibernate/classic/Lifecycle.java

Lines changed: 0 additions & 125 deletions
This file was deleted.

hibernate-core/src/main/java/org/hibernate/classic/package-info.java

Lines changed: 0 additions & 12 deletions
This file was deleted.

hibernate-core/src/main/java/org/hibernate/event/internal/AbstractSaveEventListener.java

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.hibernate.action.internal.AbstractEntityInsertAction;
1212
import org.hibernate.action.internal.EntityIdentityInsertAction;
1313
import org.hibernate.action.internal.EntityInsertAction;
14-
import org.hibernate.classic.Lifecycle;
1514
import org.hibernate.engine.internal.Cascade;
1615
import org.hibernate.engine.internal.CascadePoint;
1716
import org.hibernate.engine.spi.CascadingAction;
@@ -215,12 +214,7 @@ protected Object performSave(
215214
}
216215

217216
final EntityKey key = useIdentityColumn ? null : entityKey( id, persister, source );
218-
if ( invokeSaveLifecycle( entity, persister, source ) ) {
219-
return id;
220-
}
221-
else {
222-
return performSaveOrReplicate( entity, key, persister, useIdentityColumn, context, source, delayIdentityInserts );
223-
}
217+
return performSaveOrReplicate( entity, key, persister, useIdentityColumn, context, source, delayIdentityInserts );
224218
}
225219

226220
private static EntityKey entityKey(Object id, EntityPersister persister, EventSource source) {
@@ -241,19 +235,6 @@ else if ( persistenceContext.containsDeletedUnloadedEntityKey( key ) ) {
241235
return key;
242236
}
243237

244-
protected boolean invokeSaveLifecycle(Object entity, EntityPersister persister, EventSource source) {
245-
// Sub-insertions should occur before containing insertion so
246-
// Try to do the callback now
247-
if ( persister.implementsLifecycle() ) {
248-
LOG.debug( "Calling onSave()" );
249-
if ( ((Lifecycle) entity).onSave( source ) ) {
250-
LOG.debug( "Insertion vetoed by onSave()" );
251-
return true;
252-
}
253-
}
254-
return false;
255-
}
256-
257238
/**
258239
* Performs all the actual work needed to save an entity (well to get the save moved to
259240
* the execution queue).

hibernate-core/src/main/java/org/hibernate/event/internal/DefaultDeleteEventListener.java

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import org.hibernate.action.internal.OrphanRemovalAction;
1515
import org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer;
1616
import org.hibernate.bytecode.spi.BytecodeEnhancementMetadata;
17-
import org.hibernate.classic.Lifecycle;
1817
import org.hibernate.engine.internal.Cascade;
1918
import org.hibernate.engine.internal.CascadePoint;
2019
import org.hibernate.engine.internal.ForeignKeys;
@@ -271,20 +270,18 @@ private void delete(
271270
Object id,
272271
Object version,
273272
EntityEntry entityEntry) {
274-
callbackRegistry.preRemove(entity);
275-
if ( !invokeDeleteLifecycle( source, entity, persister ) ) {
276-
deleteEntity(
277-
source,
278-
entity,
279-
entityEntry,
280-
event.isCascadeDeleteEnabled(),
281-
event.isOrphanRemovalBeforeUpdates(),
282-
persister,
283-
transientEntities
284-
);
285-
if ( source.getFactory().getSessionFactoryOptions().isIdentifierRollbackEnabled() ) {
286-
persister.resetIdentifier( entity, id, version, source );
287-
}
273+
callbackRegistry.preRemove( entity );
274+
deleteEntity(
275+
source,
276+
entity,
277+
entityEntry,
278+
event.isCascadeDeleteEnabled(),
279+
event.isOrphanRemovalBeforeUpdates(),
280+
persister,
281+
transientEntities
282+
);
283+
if ( source.getFactory().getSessionFactoryOptions().isIdentifierRollbackEnabled() ) {
284+
persister.resetIdentifier( entity, id, version, source );
288285
}
289286
}
290287

@@ -293,7 +290,6 @@ private void delete(
293290
*/
294291
private boolean canBeDeletedWithoutLoading(EventSource source, EntityPersister persister) {
295292
return source.getInterceptor() == EmptyInterceptor.INSTANCE
296-
&& !persister.implementsLifecycle()
297293
&& !persister.hasSubclasses() //TODO: should be unnecessary, using EntityPersister.getSubclassPropertyTypeClosure(), etc
298294
&& !persister.hasCascadeDelete()
299295
&& !persister.hasNaturalIdentifier()
@@ -488,17 +484,6 @@ else if ( currentState[i] == LazyPropertyInitializer.UNFETCHED_PROPERTY
488484
return deletedState;
489485
}
490486

491-
protected boolean invokeDeleteLifecycle(EventSource session, Object entity, EntityPersister persister) {
492-
if ( persister.implementsLifecycle() ) {
493-
LOG.debug( "Calling onDelete()" );
494-
if ( ( (Lifecycle) entity ).onDelete( session ) ) {
495-
LOG.debug( "Deletion vetoed by onDelete()" );
496-
return true;
497-
}
498-
}
499-
return false;
500-
}
501-
502487
protected void cascadeBeforeDelete(
503488
EventSource session,
504489
EntityPersister persister,

hibernate-core/src/main/java/org/hibernate/event/internal/DefaultPostLoadEventListener.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import org.hibernate.LockMode;
1111
import org.hibernate.action.internal.EntityIncrementVersionProcess;
1212
import org.hibernate.action.internal.EntityVerifyVersionProcess;
13-
import org.hibernate.classic.Lifecycle;
1413
import org.hibernate.engine.spi.EntityEntry;
1514
import org.hibernate.event.spi.EventSource;
1615
import org.hibernate.event.spi.PostLoadEvent;
@@ -20,11 +19,7 @@
2019
import org.hibernate.persister.entity.EntityPersister;
2120

2221
/**
23-
* We do two things here:
24-
* <ul>
25-
* <li>Call {@link Lifecycle} interface if necessary</li>
26-
* <li>Perform needed {@link EntityEntry#getLockMode()} related processing</li>
27-
* </ul>
22+
* Performs needed {@link EntityEntry#getLockMode()}-related processing.
2823
*
2924
* @author Gavin King
3025
* @author Steve Ebersole
@@ -72,13 +67,5 @@ public void onPostLoad(PostLoadEvent event) {
7267
+ "] not supported for non-versioned entities [" + persister.getEntityName() + "]");
7368
}
7469
}
75-
76-
invokeLoadLifecycle( event, session );
77-
}
78-
79-
protected void invokeLoadLifecycle(PostLoadEvent event, EventSource session) {
80-
if ( event.getPersister().implementsLifecycle() ) {
81-
( (Lifecycle) event.getEntity() ).onLoad( session, event.getId() );
82-
}
8370
}
8471
}

hibernate-core/src/main/java/org/hibernate/metamodel/internal/EntityRepresentationStrategyPojoStandard.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import org.hibernate.bytecode.spi.BytecodeProvider;
1717
import org.hibernate.bytecode.spi.ReflectionOptimizer;
1818
import org.hibernate.bytecode.spi.ReflectionOptimizer.InstantiationOptimizer;
19-
import org.hibernate.classic.Lifecycle;
2019
import org.hibernate.internal.CoreLogging;
2120
import org.hibernate.internal.CoreMessageLogger;
2221
import org.hibernate.internal.util.ReflectHelper;
@@ -59,7 +58,6 @@ public class EntityRepresentationStrategyPojoStandard implements EntityRepresent
5958
private final JavaType<?> proxyJtd;
6059

6160
private final boolean isBytecodeEnhanced;
62-
private final boolean lifecycleImplementor;
6361

6462
private final ReflectionOptimizer reflectionOptimizer;
6563
private final ProxyFactory proxyFactory;
@@ -89,7 +87,6 @@ public EntityRepresentationStrategyPojoStandard(
8987
this.proxyJtd = null;
9088
}
9189

92-
this.lifecycleImplementor = Lifecycle.class.isAssignableFrom( mappedJavaType );
9390
this.isBytecodeEnhanced = isPersistentAttributeInterceptableType( mappedJavaType );
9491

9592
final Property identifierProperty = bootDescriptor.getIdentifierProperty();
@@ -389,11 +386,6 @@ public ProxyFactory getProxyFactory() {
389386
return proxyFactory;
390387
}
391388

392-
@Override
393-
public boolean isLifecycleImplementor() {
394-
return lifecycleImplementor;
395-
}
396-
397389
@Override
398390
public boolean isBytecodeEnhanced() {
399391
return isBytecodeEnhanced;

hibernate-core/src/main/java/org/hibernate/metamodel/spi/EntityRepresentationStrategy.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ public interface EntityRepresentationStrategy extends ManagedTypeRepresentationS
2727
*/
2828
ProxyFactory getProxyFactory();
2929

30-
default boolean isLifecycleImplementor() {
31-
return false;
32-
}
33-
3430
default boolean isBytecodeEnhanced() {
3531
return false;
3632
}

hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import org.hibernate.cache.spi.entry.StandardCacheEntryImpl;
4141
import org.hibernate.cache.spi.entry.StructuredCacheEntry;
4242
import org.hibernate.cache.spi.entry.UnstructuredCacheEntry;
43-
import org.hibernate.classic.Lifecycle;
4443
import org.hibernate.collection.spi.PersistentCollection;
4544
import org.hibernate.dialect.Dialect;
4645
import org.hibernate.dialect.lock.LockingStrategy;
@@ -464,8 +463,6 @@ public abstract class AbstractEntityPersister
464463
*/
465464
private final EntityPropertyMapping propertyMapping;
466465

467-
private final boolean implementsLifecycle;
468-
469466
private List<UniqueKeyEntry> uniqueKeyEntries = null; //lazily initialized
470467
private ConcurrentHashMap<String,SingleIdArrayLoadPlan> nonLazyPropertyLoadPlansByName;
471468

@@ -523,7 +520,6 @@ public AbstractEntityPersister(
523520

524521
javaType = representationStrategy.getLoadJavaType();
525522
assert javaType != null;
526-
this.implementsLifecycle = Lifecycle.class.isAssignableFrom( javaType.getJavaTypeClass() );
527523

528524
concreteProxy = entityMetamodel.isPolymorphic()
529525
&& ( getBytecodeEnhancementMetadata().isEnhancedForLazyLoading() || hasProxy() )
@@ -4181,11 +4177,6 @@ public final Class<?> getMappedClass() {
41814177
return this.getMappedJavaType().getJavaTypeClass();
41824178
}
41834179

4184-
@Override
4185-
public boolean implementsLifecycle() {
4186-
return this.implementsLifecycle;
4187-
}
4188-
41894180
@Override
41904181
public Class<?> getConcreteProxyClass() {
41914182
final JavaType<?> proxyJavaType = getRepresentationStrategy().getProxyJavaType();

0 commit comments

Comments
 (0)