Checking the loaded gt4gemstone version inside a GemStone extent

This page shows how to check the version of gt4gemstone loaded inside the GemStone extent and compare it with the client version.

First if the image corresponds to a Glamorous Toolkit release, the image stores the release version.

releaseVersion := GtImage version versionString
  

If gt4gemstone is already installed in the remote extent, we can connect to it and get the version installed there. The snippet below is a GemStone snippet.This only works if gt4gemstone is installed remotely and the version there is compatible with the current version of Glamorous Toolkit.

GtGsRelease versionString
  

Using a plain GCI connection

If gt4gemstone is not installed remotely we can make a plain GCI call to the remote extent, and check if gt4gemstone is installed.

First we setup a new session. The session should already be configured.

defaultSession := GtGemStoneSessionRegistry default defaultSession.
  

We then check if the gt4gemstone release is present remotely.

classSearchResult := defaultSession evaluateAndWait: 'Globals 
	classesDo: [ :aUserProfile :aSymbolDictionary :aClass | 
		aClass name = #GtGsRelease ifTrue: [ ^ true] ].
false.'
  

In case a gt4gemstone release is present we can get its version.

self assert: classSearchResult = true.
  
remoteVersionString := defaultSession 
	evaluateAndWait: 'GtGsRelease versionString'
  

We can check if this version is the same as the local one.

remoteVersionString = GtImage version versionString
  

At the end we need to logout from the remote session.

defaultSession close