When using the io.neonbee.internal.helper.FileSystemHelper.readJson method to load resource files within a NeonBee module, the resource file cannot be found. This occurs because the FileSystemHelper.readJson method relies on Vert.x's internal file resolver, which uses the application ClassLoader. The application ClassLoader is only aware of resource files within the NeonBee core, not those in the module's resources.
Expected Behavior
The FileSystemHelper.readJson method should be able to locate and load resource files from within the module’s resources when called from a NeonBee module.
Steps To Reproduce
Create a NeonBee module with its own resources, such as a JSON file (somefile.json).
Use the FileSystemHelper.readJson method in the module to attempt to load the JSON file from the module's resources.
Observe that the file cannot be found, and an error is thrown.
Environment
- NeonBee: 0.37.0
Relevant log output
No response
Anything else?
A workaround involves manually loading the resource file using the module's ClassLoader, as shown in the following code snippet:
Is there an existing issue for this?
Current Behavior
When using the
io.neonbee.internal.helper.FileSystemHelper.readJson
method to load resource files within a NeonBee module, the resource file cannot be found. This occurs because theFileSystemHelper.readJson
method relies on Vert.x's internal file resolver, which uses the application ClassLoader. The application ClassLoader is only aware of resource files within the NeonBee core, not those in the module's resources.Expected Behavior
The
FileSystemHelper.readJson
method should be able to locate and load resource files from within the module’s resources when called from a NeonBee module.Steps To Reproduce
Environment
Relevant log output
No response
Anything else?
A workaround involves manually loading the resource file using the module's ClassLoader, as shown in the following code snippet: