HHH-16257 - Add `@JavaServiceLoadable` to document Services or strategies that are loadable as Java services
This commit is contained in:
parent
e72d58161c
commit
56223d3ebc
|
@ -14,6 +14,8 @@
|
||||||
|
|
||||||
package org.hibernate.boot.model;
|
package org.hibernate.boot.model;
|
||||||
|
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* On object that contributes custom HQL functions, eventually to a
|
* On object that contributes custom HQL functions, eventually to a
|
||||||
* {@link org.hibernate.query.sqm.function.SqmFunctionRegistry}, via an
|
* {@link org.hibernate.query.sqm.function.SqmFunctionRegistry}, via an
|
||||||
|
@ -33,6 +35,7 @@ package org.hibernate.boot.model;
|
||||||
*
|
*
|
||||||
* @author Karel Maesen
|
* @author Karel Maesen
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface FunctionContributor {
|
public interface FunctionContributor {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.boot.model;
|
package org.hibernate.boot.model;
|
||||||
|
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
import org.hibernate.service.ServiceRegistry;
|
import org.hibernate.service.ServiceRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,6 +32,7 @@ import org.hibernate.service.ServiceRegistry;
|
||||||
*
|
*
|
||||||
* @see org.hibernate.type.spi.TypeConfiguration
|
* @see org.hibernate.type.spi.TypeConfiguration
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface TypeContributor {
|
public interface TypeContributor {
|
||||||
/**
|
/**
|
||||||
* Contribute types
|
* Contribute types
|
||||||
|
|
|
@ -96,22 +96,18 @@ public interface ClassLoaderService extends ResourceLocator, ResourceStreamLocat
|
||||||
* @param <S> The type of the service contract
|
* @param <S> The type of the service contract
|
||||||
*
|
*
|
||||||
* @return The ordered set of discovered services.
|
* @return The ordered set of discovered services.
|
||||||
|
*
|
||||||
|
* @see org.hibernate.service.JavaServiceLoadable
|
||||||
*/
|
*/
|
||||||
<S> Collection<S> loadJavaServices(Class<S> serviceContract);
|
<S> Collection<S> loadJavaServices(Class<S> serviceContract);
|
||||||
|
|
||||||
<T> T generateProxy(InvocationHandler handler, Class... interfaces);
|
<T> T generateProxy(InvocationHandler handler, Class... interfaces);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loading a Package from the classloader. In case it's not found or an
|
* Loading a Package from the ClassLoader.
|
||||||
* internal error (such as @see {@link LinkageError} occurs, we
|
*
|
||||||
* return null rather than throwing an exception.
|
* @return The Package. {@code null} if no such Package is found, or if the
|
||||||
* This is significantly different than loading a Class, as in all
|
* ClassLoader call leads to an exception ({@link LinkageError}, e.g.).
|
||||||
* currently known usages, being unable to load the Package will
|
|
||||||
* only result in ignoring annotations on it - which is totally
|
|
||||||
* fine when the object doesn't exist.
|
|
||||||
* In case of other errors, implementations are expected to log
|
|
||||||
* a warning but it's still not treated as a fatal error.
|
|
||||||
* @return the matching Package, or null.
|
|
||||||
*/
|
*/
|
||||||
Package packageForNameOrNull(String packageName);
|
Package packageForNameOrNull(String packageName);
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.boot.registry.selector;
|
package org.hibernate.boot.registry.selector;
|
||||||
|
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Responsible for providing the registrations of one or more strategy selectors.
|
* Responsible for providing the registrations of one or more strategy selectors.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -20,6 +22,7 @@ package org.hibernate.boot.registry.selector;
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface StrategyRegistrationProvider {
|
public interface StrategyRegistrationProvider {
|
||||||
/**
|
/**
|
||||||
* Get all {@link StrategyRegistration}s announced by this provider.
|
* Get all {@link StrategyRegistration}s announced by this provider.
|
||||||
|
|
|
@ -8,10 +8,12 @@ package org.hibernate.boot.registry.selector.spi;
|
||||||
|
|
||||||
import org.hibernate.boot.registry.selector.internal.LazyServiceResolver;
|
import org.hibernate.boot.registry.selector.internal.LazyServiceResolver;
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
import org.hibernate.service.Service;
|
import org.hibernate.service.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Christian Beikov
|
* @author Christian Beikov
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface DialectSelector extends Service, LazyServiceResolver<Dialect> {
|
public interface DialectSelector extends Service, LazyServiceResolver<Dialect> {
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ package org.hibernate.boot.spi;
|
||||||
|
|
||||||
import org.hibernate.Incubating;
|
import org.hibernate.Incubating;
|
||||||
import org.hibernate.boot.ResourceStreamLocator;
|
import org.hibernate.boot.ResourceStreamLocator;
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contract allowing pluggable contributions of additional mapping objects.
|
* Contract allowing pluggable contributions of additional mapping objects.
|
||||||
|
@ -17,6 +18,7 @@ import org.hibernate.boot.ResourceStreamLocator;
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
@Incubating
|
@Incubating
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface AdditionalMappingContributor {
|
public interface AdditionalMappingContributor {
|
||||||
/**
|
/**
|
||||||
* The name of this contributor. May be {@code null}.
|
* The name of this contributor. May be {@code null}.
|
||||||
|
|
|
@ -8,6 +8,7 @@ package org.hibernate.boot.spi;
|
||||||
|
|
||||||
import org.hibernate.boot.Metadata;
|
import org.hibernate.boot.Metadata;
|
||||||
import org.hibernate.boot.MetadataSources;
|
import org.hibernate.boot.MetadataSources;
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An extension point for integrators that wish to hook into the process of how a {@link Metadata} is built. Intended as
|
* An extension point for integrators that wish to hook into the process of how a {@link Metadata} is built. Intended as
|
||||||
|
@ -16,6 +17,7 @@ import org.hibernate.boot.MetadataSources;
|
||||||
*
|
*
|
||||||
* @author Gunnar Morling
|
* @author Gunnar Morling
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface MetadataBuilderFactory {
|
public interface MetadataBuilderFactory {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -8,6 +8,7 @@ package org.hibernate.boot.spi;
|
||||||
|
|
||||||
import org.hibernate.boot.MetadataBuilder;
|
import org.hibernate.boot.MetadataBuilder;
|
||||||
import org.hibernate.boot.registry.StandardServiceRegistry;
|
import org.hibernate.boot.registry.StandardServiceRegistry;
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contract for contributing to the initialization of {@link MetadataBuilder}.
|
* Contract for contributing to the initialization of {@link MetadataBuilder}.
|
||||||
|
@ -20,6 +21,7 @@ import org.hibernate.boot.registry.StandardServiceRegistry;
|
||||||
*
|
*
|
||||||
* @since 5.0
|
* @since 5.0
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface MetadataBuilderInitializer {
|
public interface MetadataBuilderInitializer {
|
||||||
void contribute(MetadataBuilder metadataBuilder, StandardServiceRegistry serviceRegistry);
|
void contribute(MetadataBuilder metadataBuilder, StandardServiceRegistry serviceRegistry);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
package org.hibernate.boot.spi;
|
package org.hibernate.boot.spi;
|
||||||
|
|
||||||
import org.hibernate.boot.MetadataSources;
|
import org.hibernate.boot.MetadataSources;
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A bootstrap process hook for contributing sources to {@link MetadataSources}.
|
* A bootstrap process hook for contributing sources to {@link MetadataSources}.
|
||||||
|
@ -15,6 +16,7 @@ import org.hibernate.boot.MetadataSources;
|
||||||
*
|
*
|
||||||
* @since 5.0
|
* @since 5.0
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface MetadataSourcesContributor {
|
public interface MetadataSourcesContributor {
|
||||||
/**
|
/**
|
||||||
* Perform the process of contributing to the {@link MetadataSources}.
|
* Perform the process of contributing to the {@link MetadataSources}.
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
package org.hibernate.boot.spi;
|
package org.hibernate.boot.spi;
|
||||||
|
|
||||||
import org.hibernate.boot.SessionFactoryBuilder;
|
import org.hibernate.boot.SessionFactoryBuilder;
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An extension point for integrators that wish to hook into the process of how a SessionFactory
|
* An extension point for integrators that wish to hook into the process of how a SessionFactory
|
||||||
|
@ -15,6 +16,7 @@ import org.hibernate.boot.SessionFactoryBuilder;
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface SessionFactoryBuilderFactory {
|
public interface SessionFactoryBuilderFactory {
|
||||||
/**
|
/**
|
||||||
* The contract method. Return the {@link SessionFactoryBuilder}. May return {@code null}
|
* The contract method. Return the {@link SessionFactoryBuilder}. May return {@code null}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
package org.hibernate.engine.jdbc.dialect.spi;
|
package org.hibernate.engine.jdbc.dialect.spi;
|
||||||
|
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
import org.hibernate.service.Service;
|
import org.hibernate.service.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -15,6 +16,7 @@ import org.hibernate.service.Service;
|
||||||
* @author Tomoto Shimizu Washio
|
* @author Tomoto Shimizu Washio
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface DialectResolver extends Service {
|
public interface DialectResolver extends Service {
|
||||||
/**
|
/**
|
||||||
* Determine the {@link Dialect} to use based on the given information. Implementations are expected to return
|
* Determine the {@link Dialect} to use based on the given information. Implementations are expected to return
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.engine.transaction.jta.platform.spi;
|
package org.hibernate.engine.transaction.jta.platform.spi;
|
||||||
|
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link java.util.ServiceLoader}-style provider of {@link JtaPlatform}
|
* A {@link java.util.ServiceLoader}-style provider of {@link JtaPlatform}
|
||||||
* instances. Used when an explicit {@code JtaPlatform} is not provided.
|
* instances. Used when an explicit {@code JtaPlatform} is not provided.
|
||||||
|
@ -15,6 +17,7 @@ package org.hibernate.engine.transaction.jta.platform.spi;
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface JtaPlatformProvider {
|
public interface JtaPlatformProvider {
|
||||||
/**
|
/**
|
||||||
* Retrieve the JtaPlatform provided by this environment.
|
* Retrieve the JtaPlatform provided by this environment.
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.event.spi;
|
package org.hibernate.event.spi;
|
||||||
|
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Integration contract for contributing event types and listeners to the Hibernate event system.
|
* Integration contract for contributing event types and listeners to the Hibernate event system.
|
||||||
*
|
*
|
||||||
|
@ -13,6 +15,7 @@ package org.hibernate.event.spi;
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface EventEngineContributor {
|
public interface EventEngineContributor {
|
||||||
/**
|
/**
|
||||||
* Apply the contributions
|
* Apply the contributions
|
||||||
|
|
|
@ -9,12 +9,14 @@ package org.hibernate.id.factory.spi;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import jakarta.persistence.GenerationType;
|
import jakarta.persistence.GenerationType;
|
||||||
|
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
import org.hibernate.service.ServiceRegistry;
|
import org.hibernate.service.ServiceRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link java.util.ServiceLoader} contract for registering implementations
|
* A {@link java.util.ServiceLoader} contract for registering implementations
|
||||||
* of {@link GenerationTypeStrategy}.
|
* of {@link GenerationTypeStrategy}.
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface GenerationTypeStrategyRegistration {
|
public interface GenerationTypeStrategyRegistration {
|
||||||
void registerStrategies(BiConsumer<GenerationType, GenerationTypeStrategy> registry, ServiceRegistry serviceRegistry);
|
void registerStrategies(BiConsumer<GenerationType, GenerationTypeStrategy> registry, ServiceRegistry serviceRegistry);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import org.hibernate.Incubating;
|
||||||
import org.hibernate.boot.Metadata;
|
import org.hibernate.boot.Metadata;
|
||||||
import org.hibernate.boot.spi.BootstrapContext;
|
import org.hibernate.boot.spi.BootstrapContext;
|
||||||
import org.hibernate.engine.spi.SessionFactoryImplementor;
|
import org.hibernate.engine.spi.SessionFactoryImplementor;
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
import org.hibernate.service.spi.SessionFactoryServiceRegistry;
|
import org.hibernate.service.spi.SessionFactoryServiceRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -29,6 +30,7 @@ import org.hibernate.service.spi.SessionFactoryServiceRegistry;
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface Integrator {
|
public interface Integrator {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
|
||||||
|
*/
|
||||||
|
package org.hibernate.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marker annotation identifying integration points which Hibernate supports loading as a
|
||||||
|
* {@linkplain java.util.ServiceLoader Java service}.
|
||||||
|
*
|
||||||
|
* @see org.hibernate.boot.registry.classloading.spi.ClassLoaderService#loadJavaServices
|
||||||
|
*
|
||||||
|
* @author Steve Ebersole
|
||||||
|
*/
|
||||||
|
public @interface JavaServiceLoadable {
|
||||||
|
}
|
|
@ -7,6 +7,7 @@
|
||||||
package org.hibernate.service.spi;
|
package org.hibernate.service.spi;
|
||||||
|
|
||||||
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contract for contributing services.
|
* Contract for contributing services.
|
||||||
|
@ -16,6 +17,7 @@ import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface ServiceContributor {
|
public interface ServiceContributor {
|
||||||
/**
|
/**
|
||||||
* Contribute services to the indicated registry builder.
|
* Contribute services to the indicated registry builder.
|
||||||
|
|
|
@ -6,9 +6,12 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.service.spi;
|
package org.hibernate.service.spi;
|
||||||
|
|
||||||
|
import org.hibernate.service.JavaServiceLoadable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
@JavaServiceLoadable
|
||||||
public interface SessionFactoryServiceContributor {
|
public interface SessionFactoryServiceContributor {
|
||||||
/**
|
/**
|
||||||
* Contribute services to the indicated registry builder.
|
* Contribute services to the indicated registry builder.
|
||||||
|
|
Loading…
Reference in New Issue