Module io.helidon.pico.api
Package io.helidon.pico.api
package io.helidon.pico.api
The Pico API provide these annotation types that are typically used at compile time
to assign special meaning to the type. It is used in conjunction with Helidon tooling (see the
pico-processor and
pico-maven-plugin modules) to create and validate the DI module at compile time.
Contract- signifies that the type can be used for lookup in the service registry.ExternalContracts- same as Contract, but applied to the implementation class instead.RunLevel- ascribes meaning for when the service should start.
jakarta.inject and jakarta.annotation modules are the
primary way to annotate your DI model types.
Other types from the API are less commonly used, but are still made available for situations where programmatic access is required or desirable in some way. The two most common types for entry into this part of the API are shown below.
PicoServices- suite of services that are typically delivered by the Pico provider.Services- the services registry, which is one such service from this suite.
-
ClassDescriptionTracks the transformations of
ServiceProvider'sActivationStatusin lifecycle activity (i.e., activation startup and deactivation shutdown).Log entry for lifecycle related events (i.e., activation startup and deactivation shutdown).Ensures that the non-nullable fields are populated with default values.Provide a means to query the activation log.A receiver of events from theServicesregistry and providers held by the service registry.Request to activate a service.Represents the result of a service activation or deactivation.The activation status.Activators are responsible for lifecycle creation and lazy activation of service providers.An Application instance, if available at runtime, will be expected to provide a blueprint for all service provider's injection points.This is the bootstrap needed to provide toPicoinitialization.For internal use only to Helidon.Factory for creatingCallingContextand builders for the calling context.Commonly usedQualifierAndValuetypes.Combines theServiceInfocriteria along with theInjectionPointInfocontext that the query applies to.TheContractannotation is used to relay significance to the type that it annotates.Request to deactivate aServiceProvider.DeActivators are responsible for lifecycle, transitioning aServiceProviderthrough itsPhase's, notably including anyPreDestroymethod invocations, and finally into the terminalPhase.DESTROYEDphase.Describes aQualifiertype annotation associated with a service being provided or dependant upon.The fluent builder.Represents a perServiceInfomapping ofDependencyInfo's.Comparator appropriate forDependencyInfo.Aggregates the set ofInjectionPointInfo's that are dependent upon a specific and commonServiceInfodefinition.Abstractly describes method or field elements of a managed service type (i.e., fields, constructors, injectable methods, etc.).The access describing the target injection point.The kind of injection target.A lifecycle activation event.Placed on the implementation of a service as an alternative to using aContract.Represents an injection exception.Describes a receiver for injection - identifies who/what is requesting an injection that needs to be satisfied.Provides ability to contextualize the injected service by the target receiver of the injection point dynamically at runtime.Used to perform programmatic activation and injection.The strategy the injector should attempt to apply.Provides optional, contextual tunings to theInjector.Indicates that type identified byIntercepted.value()is being intercepted.Meta-annotation for an annotation that will trigger services annotated with it to become intercepted.Implementors of this contract must beNamedaccording to theInterceptedannotation they support.Represents the next in line for interception, terminating with a call to the wrapped service provider.Used byInterceptor.Wraps any checked exceptions that are thrown during theInterceptorinvocations.Pico Metrics.Provides aggregation of services to the "containing" (jar) module.Provides a means to identify if the instance is optionally named.Forms a progression of full activation and deactivation.A general exception indicating that something failed related to Pico.An exception relative to aServiceProvider.Abstract factory for all services provided by a single Helidon Pico provider implementation.This is the configuration that the Pico service provider uses internally.The holder for the globally activePicoServicessingleton instance, as well as its associatedBootstrapprimordial configuration.Represents thePostConstructmethod.Represents thePreDestroymethod.Represents a tuple of the Qualifier and optionally any value.Implementors of this contract are capable of resetting the state of itself (i.e., clears cache, log entries, etc.).Indicates the desired startup sequence for a service class.Responsible for binding service providers to the service registry.Describes a managed service or injection point.Basic service info that describes a service provider type.Criteria to discover services.Responsible for registering the injection plan to the services in the service registry.The binder builder for the service plan.Provides management lifecycle around services.An extension toServiceProviderthat allows for startup binding from aPico$$Application, and thereby works in conjunction with theServiceBinderduring pico service registry initialization.Instances of these provide lists and maps ofServiceProviders.The service registry.