New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Modules install resource #5
Modules install resource #5
Conversation
Update: while doing some additional testing I noticed that the WebSocket connection between the server and the web interface was frequently dropping when using this feature. After researching a bit of information about the exception that was being thrown by some Jetty internal class, I found out that there was a concurrency issue - multiple threads sometimes were trying to send WebSocket messages at the same time (when the |
Great find about the Jetty "deficiency". |
Engine PR has been merged, I think this one can be as well now :-) |
Thanks @Cervator and @gianluca-nitti of course. |
…w admin verification system
This small pull request adds the feature which allows server administrators to install modules in the server using the web interface or API.
The added resource,
ModuleInstallerResource
:WritableResource<Name[]>
in the sense that you can write to it (i.e. with a POST HTTP request or with the appropriate WebSocket message) a list of modules you want to install (which does not need to include all the dependencies; the dependency resolution happens server-side and the server adds the required dependencies - if any - to the download list automatically)ObservableReadableResource<String>
in the sense that you can read from it the current status of the installation, and every connected WebSocket client is automatically notified when the status changes (i.e. a progress in the download is made, or the installation has been completed).Important: for this to work, the engine must be built including my commits on pull request MovingBlocks/Terasology#3028; FacadeServer won't compile if classes introduced in that PR, like
ModuleInstallManager
, are missing.