Interface ServiceDescriptor<T>

Type Parameters:
T - type of the described service
All Superinterfaces:
Comparable<Weighted>, ServiceInfo, Weighted
All Known Implementing Classes:
ArrayBindingFactory__ServiceDescriptor, AsyncImpl__ServiceDescriptor, BigDecimalConverter__ServiceDescriptor, BigIntegerConverter__ServiceDescriptor, BinaryDataConverter__ServiceDescriptor, BooleanArrayConverter__ServiceDescriptor, BooleanConverter__ServiceDescriptor, BooleanFalseValidatorProvider__ServiceDescriptor, BooleanTrueValidatorProvider__ServiceDescriptor, BulkheadImpl__ServiceDescriptor, ByteArrayConverter__ServiceDescriptor, ByteConverter__ServiceDescriptor, CalendarConverter__ServiceDescriptor, CalendarFutureOrPresentValidatorProvider__ServiceDescriptor, CalendarFutureValidatorProvider__ServiceDescriptor, CalendarPastOrPresentValidatorProvider__ServiceDescriptor, CalendarPastValidatorProvider__ServiceDescriptor, ChannelRegistry__ServiceDescriptor, CharacterConverter__ServiceDescriptor, CharArrayConverter__ServiceDescriptor, CircuitBreakerImpl__ServiceDescriptor, CollectionSizeValidationProvider__ServiceDescriptor, ConfigObserveProvider__ServiceDescriptor, ConfigProvider__ServiceDescriptor, ConfigurationValueFactory__ServiceDescriptor, CorsFeature__ServiceDescriptor, DataSourceConfigFactory__ServiceDescriptor, DateConverter__ServiceDescriptor, DefaultClockService__ServiceDescriptor, DefaultErrorHandling__ServiceDescriptor, DefaultMapperProvider__ServiceDescriptor, DefaultResolverService__ServiceDescriptor, DoubleArrayConverter__ServiceDescriptor, DoubleConverter__ServiceDescriptor, DurationConverter__ServiceDescriptor, EnumBindingFactory__ServiceDescriptor, EventManagerImpl__ServiceDescriptor, ExemplarServiceManager__ServiceDescriptor, ExistingInstanceDescriptor, FloatArrayConverter__ServiceDescriptor, FloatConverter__ServiceDescriptor, GregorianCalendarConverter__ServiceDescriptor, GrpcEntryPointsImpl__ServiceDescriptor, GrpcServerFeature__ServiceDescriptor, Headers__ServiceDescriptor, HealthObserveProvider__ServiceDescriptor, HelidonTracingBasedTracerServiceFactory__ServiceDescriptor, HelidonTracingSemanticConventionsProvider__ServiceDescriptor, HikariDataSourceProviderService__ServiceDescriptor, HttpEntryPointsImpl__ServiceDescriptor, HttpPrologue__ServiceDescriptor, HttpSecurityInterceptor__ServiceDescriptor, InfoObserveProvider__ServiceDescriptor, InstanceName__ServiceDescriptor, InstantConverter__ServiceDescriptor, IntArrayConverter__ServiceDescriptor, IntegerConverter__ServiceDescriptor, IntegerMaxValidatorProvider__ServiceDescriptor, IntegerMinValidatorProvider__ServiceDescriptor, IntegerMultipleOfValidatorProvider__ServiceDescriptor, InterceptionMetadata__ServiceDescriptor, JdbcClientConfigFactory__ServiceDescriptor, JdbcClientFactory__ServiceDescriptor, JdbcDataSourceService__ServiceDescriptor, JdbcTransactionConnectionManager__ServiceDescriptor, JdbcTxSupport__ServiceDescriptor, JpaRepositoryExecutorImpl__ServiceDescriptor, JsonArrayConverter__ServiceDescriptor, JsonBindingConfigProvider__ServiceDescriptor, JsonBindingProvider__ServiceDescriptor, JsonBooleanConverter__ServiceDescriptor, JsonNullConverter__ServiceDescriptor, JsonNumberConverter__ServiceDescriptor, JsonObjectConverter__ServiceDescriptor, JsonStringConverter__ServiceDescriptor, JsonValueConverter__ServiceDescriptor, LinkedListBindingFactory__ServiceDescriptor, ListBindingFactory__ServiceDescriptor, LocalDateConverter__ServiceDescriptor, LocalDateTimeConverter__ServiceDescriptor, LocalTimeConverter__ServiceDescriptor, LocalTransactionStorage_LocalTransactionManager__ServiceDescriptor, LocalTransactionStorage_LocalTransactionProvider__ServiceDescriptor, LocalTxSupport__ServiceDescriptor, LogObserveProvider__ServiceDescriptor, LongArrayConverter__ServiceDescriptor, LongConverter__ServiceDescriptor, LongMaxValidatorProvider__ServiceDescriptor, LongMinValidatorProvider__ServiceDescriptor, LongMultipleOfValidatorProvider__ServiceDescriptor, LoomClient__ServiceDescriptor, LoomServer__ServiceDescriptor, MapBindingFactory__ServiceDescriptor, MappersFactory__ServiceDescriptor, MessagingConfigSupport_ConfigurationProvider__ServiceDescriptor, MessagingEntryPointsImpl__ServiceDescriptor, MessagingLifecycleGuard__ServiceDescriptor, MetaConfigFactory__ServiceDescriptor, MeterRegistryFactory__ServiceDescriptor, MetricsFactoryFactory__ServiceDescriptor, MetricsObserveProvider__ServiceDescriptor, NotNullValidatorProvider__ServiceDescriptor, NullValidatorProvider__ServiceDescriptor, NumberDigitsValidatorProvider__ServiceDescriptor, NumberMaxValidatorProvider__ServiceDescriptor, NumberMinValidatorProvider__ServiceDescriptor, NumberMultipleOfValidatorProvider__ServiceDescriptor, NumberNegativeOrZeroValidatorProvider__ServiceDescriptor, NumberNegativeValidatorProvider__ServiceDescriptor, NumberPositiveOrZeroValidatorProvider__ServiceDescriptor, NumberPositiveValidatorProvider__ServiceDescriptor, ObjectConverter__ServiceDescriptor, ObserveFeatureProvider__ServiceDescriptor, ObserveFeatureServicesFactory__ServiceDescriptor, ObserverServicesFactory__ServiceDescriptor, ObserveServices__ServiceDescriptor, OffsetDateTimeConverter__ServiceDescriptor, OpenApi30VersionProvider__ServiceDescriptor, OpenApi31VersionProvider__ServiceDescriptor, OpenApi32VersionProvider__ServiceDescriptor, OpenApiFeature__ServiceDescriptor, OpenTelemetryConfigOwnershipStrategy__ServiceDescriptor, OptionalBindingFactory__ServiceDescriptor, OptionalDoubleConverter__ServiceDescriptor, OptionalIntConverter__ServiceDescriptor, OptionalLongConverter__ServiceDescriptor, PeriodConverter__ServiceDescriptor, PerRequestScopeHandler__ServiceDescriptor, PersistenceUnitFactory__ServiceDescriptor, PrimitiveBooleanConverter__ServiceDescriptor, PrimitiveByteConverter__ServiceDescriptor, PrimitiveCharConverter__ServiceDescriptor, PrimitiveDoubleConverter__ServiceDescriptor, PrimitiveFloatConverter__ServiceDescriptor, PrimitiveIntegerConverter__ServiceDescriptor, PrimitiveLongConverter__ServiceDescriptor, PrimitiveShortConverter__ServiceDescriptor, RequestScopeFeatureProvider__ServiceDescriptor, RetryImpl__ServiceDescriptor, Scopes__ServiceDescriptor, SeMetricsProgrammaticConfig__ServiceDescriptor, ServerRequest__ServiceDescriptor, ServerRequestHeaders__ServiceDescriptor, ServerResponse__ServiceDescriptor, ServiceLoader__ServiceDescriptor, ServiceRegistry__ServiceDescriptor, SetBindingFactory__ServiceDescriptor, ShortArrayConverter__ServiceDescriptor, ShortConverter__ServiceDescriptor, StringConverter__ServiceDescriptor, StringEmailValidatorProvider__ServiceDescriptor, StringLengthValidatorProvider__ServiceDescriptor, StringNotBlankValidatorProvider__ServiceDescriptor, StringNotEmptyValidatorProvider__ServiceDescriptor, StringPatternValidatorProvider__ServiceDescriptor, SystemTagsManagerImpl__ServiceDescriptor, TaskManagerImpl__ServiceDescriptor, TimeoutImpl__ServiceDescriptor, TracerFactory__ServiceDescriptor, TracingObserveProvider__ServiceDescriptor, TracingOpenTelemetryOwnershipStrategy__ServiceDescriptor, TransactionContext_JtaLifeCycle__ServiceDescriptor, TypeValidationService__ServiceDescriptor, UcpDataSourceProviderService__ServiceDescriptor, UuidConverter__ServiceDescriptor, ValidatorsService__ServiceDescriptor, VirtualDescriptor, WebClientConfigFactory__ServiceDescriptor, WebServerService__ServiceDescriptor, WebServerStarterService__ServiceDescriptor, WsServerFeature__ServiceDescriptor, ZonedDateTimeConverter__ServiceDescriptor

public interface ServiceDescriptor<T> extends ServiceInfo
A descriptor of a service. In addition to providing service metadata, this also allows instantiation of the service instance, with dependent services as parameters.
  • Method Details

    • instantiate

      default Object instantiate(DependencyContext ctx, InterceptionMetadata interceptionMetadata)
      Create a new service instance.
      Parameters:
      ctx - dependency context with all dependencies of this service
      interceptionMetadata - metadata handler for interception
      Returns:
      a new instance, must be of the type T or a subclass
    • inject

      default void inject(DependencyContext ctx, InterceptionMetadata interceptionMetadata, Set<String> injected, T instance)
      Inject fields and methods.
      Parameters:
      ctx - injection context
      interceptionMetadata - interception metadata to support interception of field injection
      injected - mutable set of already injected methods from subtypes
      instance - instance to update
    • postConstruct

      default void postConstruct(T instance)
      Invoke Service.PostConstruct annotated method(s).
      Parameters:
      instance - instance to use
    • preDestroy

      default void preDestroy(T instance)
      Invoke Service.PreDestroy annotated method(s).
      Parameters:
      instance - instance to use
    • scope

      default TypeName scope()
      Scope of this service.
      Specified by:
      scope in interface ServiceInfo
      Returns:
      scope of the service
    • typeSet

      default Set<ResolvedType> typeSet(ResolvedType contract)
      Provide a mapping of a contracts of this service to its contract type set. If the result is empty, it will be ignored.
      Parameters:
      contract - contract to get types for
      Returns:
      type map for each type that is a contract of this service