PAK Core – ContextBuilder
What You Will Learn
In this short summary you will get an idea how to use the ContextBuilder
to create the default IContext
of the framework.
1. Basics
You can use the ContextBuilder
to create the default IContext
provided by the framework.
The builder needs an IServiceProviderFactory
to create the context.
2. The Context
The IContext
resulting from the builder wraps the managed IServiceProvider
in a „proxy provider“ enhancing its abilities by allowing to find services with the Java ServiceLoader
mechanism. This mechanism is used as a fallback by default, but can be prioritized by the IServiceProvider
.
The proxy provider also wraps any IPersistenceService
registered, to be able to transform data from the persistence with the help of the IDataTransformer
service.
3. Builder Constraints
-
The
IServiceProvider
instantiated by the factory needs to have the servicesIJsonMapper
andIDataTransformer
registered.-
This constraint can also be fulfilled when the services are registered to the Java
ServiceLoader
. For example when having dependencies on the default implementationsde.asap.pak.core:pak-default-datatransformer
-
4. Usage
The following method example should show you, how to use the ContextBuilder
to create the default IContext
of the framework.
public IContext buildContext(){
final ContextBuilder cb = new ContextBuilder(); (1)
cb.setServiceProviderFactory(new SimpleServiceProviderFactory()); (2)
return cb.build(); (3)
}
1 | Create the ContextBuilder with its empty constructor. |
2 | Set the mandatory IServiceProviderFactory . You need to make sure that the resulting IServiceProvider has the two needed services registered, or at least have dependencies on them, so that the ServiceLoader is able to find them. |
3 | The last step is to build the default context. Ready to be used by the EngineBuilder for example. |