Open mandy-chessell opened 1 month ago
The problem shown above could be:
The next step is to try this with the JanusGraph repository connector, and do further testing with the in-memory to check it is really working in the simple case.
The code for IsolatedClassLoader and IsolatedConnectorProvider is included in the main build (PR in prgress) but it is disabled. This is to allow ongoing work by different people without distrupting other 5.1 work.
Please describe the new behavior that that will improve Egeria
We have seen builds of Egeria where XTDB will not come up due to a mismatch in the levels of lucene in the platform and the level it needs. The issue comes and goes from build to build, machine to machine. So there is a slight timing issue on the order of class loading.
We have seen similar issues with large stacks (such as HBASE under JanusGraph, or working with Hive Metastore).
This is a proposal to add an optional custom class loader to the OCF framework that connector writers can choose to use. It would be used by all repository connectors as a first implementation.
The OCF ConnectorProvider is the place where the connector's classes are loaded which is where the enhancement needs to be made.
Alternatives
No response
Any Further Information?
At the time of raising, the OCF now has a new class loader called IsolatedConnectorClassLoader. There is an extension to ConnectorProviderBase called IsolatedConnectorProviderBase that makes use of the custom class loader. Connector writers just need to inherit from IsolatedConnectorProvider to make use of the custom class loader. Below is the change to the repository connector's connector provider.
It "seems" to work fine for the inmemory connector. However, XTDB has problems in start up. This is the console log