-
Type:
Enhancement
-
Resolution: Unresolved
-
Priority:
P4
-
Affects Version/s: None
-
Component/s: Mission Control Client
-
None
I've worded the summary as if it were a bug (there actually is a bug here), but the changes I'm going to propose are more of an enhancement so I'll target this ticket as such.
At the moment, the Websocket server that is used to send selection data is created from within a JfrEditor page. So every time you open a new recording file, the JfrEditor code tries to start a new websocket server. This is a problem because there is only one field in the JMC settings to set the port number, and it is global to the application. So if I open recording-1, and then use the preferences menu to start the websocket server on port 8029, if I then open up recording-2 it will also try to open a websocket server on port 8029, and fail. As a result, sending data from recording-1 will work, but recording-2 will not.
I have extracted the websocket code out into it's own package and made it such that there is one server for the JMC application. So now if you toggle between recordings you can still send data to whatever application you want over websocket.
There's another advantage here, and that is moving the websocket code out of flightrecorder.ui widens the scope, and allows us to start getting creative and think about more integrations with JMC over websockets. For example, I'm thinking that there could be integrations with other apps where you might be able to send jfr or hprof files (or secure download urls instead of the files..) from other applications into JMC for quick analysis. Or maybe you'd want to send the files from JMC into other applications, who knows.