MicroStream Reference Manual
MicroStream Home
API Docs
Search…
4.1
Preface
System Requirements
License
Changelog
Installation
Data-Store
Overview
Getting Started
Root Instances
Configuration
Storage Targets
Storing Data
Loading Data
Deleting Data
Queries
Application Life-Cycle
Legacy Type Mapping
Import / Export
Housekeeping
Customizing
Custom Type Handler
Custom Legacy Type Handler
Custom Class Loader
Custom Storing Behavior
Optional Storage Manager Reference in Entities
REST Interface
FAQ
Addendum
Cache
Overview
Getting Started
Configuration
Use Cases
Basic Concepts
Layered Entities
Wrapping
Powered By
GitBook
Custom Class Loader
This is the manual for older MicroStream versions (Version < 5.0).
The new documentation (Version >= 5.0) is located at:
​
https://docs.microstream.one/
​
In certain environments or setups it is necessary to provide specific
ClassLoader
instances. This can be done by customizing the connection foundation.
If a single
ClassLoader
is sufficient, just create a new provider by handing over the instance:
EmbeddedStorageManager
storage
=
EmbeddedStorage
.
Foundation
(
Paths
.
get
(
"mydb"
))
.
onConnectionFoundation
(
cf
->
cf
.
setClassLoaderProvider
(
ClassLoaderProvider
.
New
(
myClassLoader
))
)
.
start
();
Or return a
ClassLoader
depending on the requested type:
EmbeddedStorageManager
storage
=
EmbeddedStorage
.
Foundation
(
Paths
.
get
(
"mydb"
))
.
onConnectionFoundation
(
cf
->
cf
.
setClassLoaderProvider
(
typeName
->
{
if
(
typeName
.
startsWith
(
"com.company.module1."
))
{
return
module1ClassLoader
;
}
if
(
typeName
.
startsWith
(
"com.company.module2."
))
{
return
module2ClassLoader
;
}
return
ClassLoader
.
getSystemClassLoader
();
})
)
.
start
();
Class Loader in Application Server
Most application servers load the session's classes with the context class loader. Just use the one of the current thread:
EmbeddedStorageManager
storage
=
EmbeddedStorage
.
Foundation
(
Paths
.
get
(
"mydb"
))
.
onConnectionFoundation
(
cf
->
cf
.
setClassLoaderProvider
(
ClassLoaderProvider
.
New
(
Thread
.
currentThread
().
getContextClassLoader
()
))
)
.
start
();
Previous
Custom Legacy Type Handler
Next
Custom Storing Behavior
Last modified
1yr ago
Export as PDF
Copy link