Communication with GemStone/S

GemDev plugin does not use any of usual solutions for connecting to GemStone database (no GemBuilder).
Instead it uses topaz script in combination with HTTP and custom message format.

Life cycle:
  1. broker server  is started and listens on one port for incoming http request
  2. eclipse connects to broker server and asks it for new GemStone sessions (currently each GemDev project uses 2 GemStone sessions in parallel)
  3. broker server checks if there is enough free ports which can be used for communication (for each gemstone session there has to be one port)
  4. broker server executes topaz script which starts new http server listening on port assigned to this particular session
  5. after all sessions are created and their session servers started confirmation is returned to eclipse client
  6. from that point eclipse client always communicates directly with sessions (broker server is not used)
  7. when user disconnects the project, Eclipse closes all gemstone sessions it was using