Removed deprecated SessionFactoryOptions.getStatelessInterceptorImplementor()
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
This commit is contained in:
parent
2244ab8e61
commit
4b5d3e645b
|
@ -883,11 +883,6 @@ public class SessionFactoryOptionsBuilder implements SessionFactoryOptions {
|
||||||
return interceptor == null ? EmptyInterceptor.INSTANCE : interceptor;
|
return interceptor == null ? EmptyInterceptor.INSTANCE : interceptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<? extends Interceptor> getStatelessInterceptorImplementor() {
|
|
||||||
return statelessInterceptorClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Supplier<? extends Interceptor> getStatelessInterceptorImplementorSupplier() {
|
public Supplier<? extends Interceptor> getStatelessInterceptorImplementorSupplier() {
|
||||||
return statelessInterceptorSupplier;
|
return statelessInterceptorSupplier;
|
||||||
|
@ -1251,6 +1246,16 @@ public class SessionFactoryOptionsBuilder implements SessionFactoryOptions {
|
||||||
|
|
||||||
public void applyStatelessInterceptor(Class<? extends Interceptor> statelessInterceptorClass) {
|
public void applyStatelessInterceptor(Class<? extends Interceptor> statelessInterceptorClass) {
|
||||||
this.statelessInterceptorClass = statelessInterceptorClass;
|
this.statelessInterceptorClass = statelessInterceptorClass;
|
||||||
|
this.applyStatelessInterceptorSupplier(
|
||||||
|
() -> {
|
||||||
|
try {
|
||||||
|
return statelessInterceptorClass.newInstance();
|
||||||
|
}
|
||||||
|
catch (InstantiationException | IllegalAccessException e) {
|
||||||
|
throw new HibernateException( String.format( "Could not supply stateless Interceptor of class %s", statelessInterceptorClass.getName()), e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void applyStatelessInterceptorSupplier(Supplier<? extends Interceptor> statelessInterceptorSupplier) {
|
public void applyStatelessInterceptorSupplier(Supplier<? extends Interceptor> statelessInterceptorSupplier) {
|
||||||
|
|
|
@ -10,7 +10,6 @@ import java.util.Map;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import org.hibernate.ConnectionReleaseMode;
|
|
||||||
import org.hibernate.CustomEntityDirtinessStrategy;
|
import org.hibernate.CustomEntityDirtinessStrategy;
|
||||||
import org.hibernate.EntityNameResolver;
|
import org.hibernate.EntityNameResolver;
|
||||||
import org.hibernate.Interceptor;
|
import org.hibernate.Interceptor;
|
||||||
|
@ -348,11 +347,6 @@ public class AbstractDelegatingSessionFactoryOptions implements SessionFactoryOp
|
||||||
return delegate.isPreferUserTransaction();
|
return delegate.isPreferUserTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<? extends Interceptor> getStatelessInterceptorImplementor() {
|
|
||||||
return delegate.getStatelessInterceptorImplementor();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Supplier<? extends Interceptor> getStatelessInterceptorImplementorSupplier() {
|
public Supplier<? extends Interceptor> getStatelessInterceptorImplementorSupplier() {
|
||||||
return delegate.getStatelessInterceptorImplementorSupplier();
|
return delegate.getStatelessInterceptorImplementorSupplier();
|
||||||
|
|
|
@ -11,7 +11,6 @@ import java.util.function.Supplier;
|
||||||
|
|
||||||
import org.hibernate.CustomEntityDirtinessStrategy;
|
import org.hibernate.CustomEntityDirtinessStrategy;
|
||||||
import org.hibernate.EntityNameResolver;
|
import org.hibernate.EntityNameResolver;
|
||||||
import org.hibernate.HibernateException;
|
|
||||||
import org.hibernate.Interceptor;
|
import org.hibernate.Interceptor;
|
||||||
import org.hibernate.SessionFactoryObserver;
|
import org.hibernate.SessionFactoryObserver;
|
||||||
import org.hibernate.TimeZoneStorageStrategy;
|
import org.hibernate.TimeZoneStorageStrategy;
|
||||||
|
@ -115,26 +114,8 @@ public interface SessionFactoryOptions extends QueryEngineOptions {
|
||||||
* Get the interceptor to use by default for all sessions opened from this factory.
|
* Get the interceptor to use by default for all sessions opened from this factory.
|
||||||
*
|
*
|
||||||
* @return The interceptor to use factory wide. May be {@code null}
|
* @return The interceptor to use factory wide. May be {@code null}
|
||||||
* @deprecated use {@link #getStatelessInterceptorImplementorSupplier()} instead.
|
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
Supplier<? extends Interceptor> getStatelessInterceptorImplementorSupplier();
|
||||||
Class<? extends Interceptor> getStatelessInterceptorImplementor();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the interceptor to use by default for all sessions opened from this factory.
|
|
||||||
*
|
|
||||||
* @return The interceptor to use factory wide. May be {@code null}
|
|
||||||
*/
|
|
||||||
default Supplier<? extends Interceptor> getStatelessInterceptorImplementorSupplier() {
|
|
||||||
return () -> {
|
|
||||||
try {
|
|
||||||
return getStatelessInterceptorImplementor().newInstance();
|
|
||||||
}
|
|
||||||
catch (InstantiationException | IllegalAccessException e) {
|
|
||||||
throw new HibernateException( "Could not supply session-scoped SessionFactory Interceptor", e );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
StatementInspector getStatementInspector();
|
StatementInspector getStatementInspector();
|
||||||
|
|
||||||
|
|
|
@ -1117,26 +1117,8 @@ public class SessionFactoryImpl implements SessionFactoryImplementor {
|
||||||
}
|
}
|
||||||
|
|
||||||
// then check the Session-scoped interceptor prototype
|
// then check the Session-scoped interceptor prototype
|
||||||
final Class<? extends Interceptor> statelessInterceptorImplementor = options.getStatelessInterceptorImplementor();
|
|
||||||
final Supplier<? extends Interceptor> statelessInterceptorImplementorSupplier = options.getStatelessInterceptorImplementorSupplier();
|
final Supplier<? extends Interceptor> statelessInterceptorImplementorSupplier = options.getStatelessInterceptorImplementorSupplier();
|
||||||
if ( statelessInterceptorImplementor != null && statelessInterceptorImplementorSupplier != null ) {
|
if ( statelessInterceptorImplementorSupplier != null ) {
|
||||||
throw new HibernateException(
|
|
||||||
"A session scoped interceptor class or supplier are allowed, but not both!" );
|
|
||||||
}
|
|
||||||
else if ( statelessInterceptorImplementor != null ) {
|
|
||||||
try {
|
|
||||||
/*
|
|
||||||
* We could remove the getStatelessInterceptorImplementor method and use just the getStatelessInterceptorImplementorSupplier
|
|
||||||
* since it can cover both cases when the user has given a Supplier<? extends Interceptor> or just the
|
|
||||||
* Class<? extends Interceptor>, in which case, we simply instantiate the Interceptor when calling the Supplier.
|
|
||||||
*/
|
|
||||||
return statelessInterceptorImplementor.newInstance();
|
|
||||||
}
|
|
||||||
catch (InstantiationException | IllegalAccessException e) {
|
|
||||||
throw new HibernateException( "Could not supply session-scoped SessionFactory Interceptor", e );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ( statelessInterceptorImplementorSupplier != null ) {
|
|
||||||
return statelessInterceptorImplementorSupplier.get();
|
return statelessInterceptorImplementorSupplier.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@ import org.hibernate.boot.MetadataSources;
|
||||||
import org.hibernate.boot.SessionFactoryBuilder;
|
import org.hibernate.boot.SessionFactoryBuilder;
|
||||||
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||||
import org.hibernate.boot.registry.internal.StandardServiceRegistryImpl;
|
import org.hibernate.boot.registry.internal.StandardServiceRegistryImpl;
|
||||||
import org.hibernate.cfg.Environment;
|
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
import org.hibernate.jpa.boot.spi.Bootstrap;
|
import org.hibernate.jpa.boot.spi.Bootstrap;
|
||||||
import org.hibernate.orm.test.jpa.Distributor;
|
import org.hibernate.orm.test.jpa.Distributor;
|
||||||
|
@ -169,7 +168,7 @@ public class InterceptorTest {
|
||||||
|
|
||||||
SessionFactoryBuilder sessionFactoryBuilder = metadata.getSessionFactoryBuilder();
|
SessionFactoryBuilder sessionFactoryBuilder = metadata.getSessionFactoryBuilder();
|
||||||
|
|
||||||
sessionFactoryBuilder.applyStatelessInterceptor( LocalExceptionInterceptor.class );
|
sessionFactoryBuilder.applyStatelessInterceptor( () -> new LocalExceptionInterceptor() );
|
||||||
sessionFactory = sessionFactoryBuilder.build();
|
sessionFactory = sessionFactoryBuilder.build();
|
||||||
|
|
||||||
final SessionFactory sessionFactoryInstance = sessionFactory;
|
final SessionFactory sessionFactoryInstance = sessionFactory;
|
||||||
|
|
Loading…
Reference in New Issue