/Wabash

RemoteServiceReplication experiments

Primary LanguageSmalltalkMIT LicenseMIT

Wabash

Experiments with RemoteServiceReplication

Wabash Server launch

	| host port acceptor connection |
	host := '127.0.0.1'.
	port := 47652.
	acceptor := RsrAcceptConnection
		host: host
		port: port.
	[ connection := acceptor waitForConnection.
		true ] 
		whileTrue: [ connection waitUntilClose ]

Wabash Client connect

	| host port initiator |
	host := '127.0.0.1'.
	port := 47652.
	initiator := RsrInitiateConnection host: host port: port.
	connection := initiator connect.
	client := connection serviceFor: #WbshProjectsServiceClient.
	client inspect.

Inspector is currently used to send messages to the client, like the following:

self projectNames.
WbshProjectListExample openOn: self.
_connection close

Wabash GemStone/Rowan load script

(RwSpecification fromFile: '$ROWAN_PROJECTS_HOME/Wabash/rowan/specs/Wabash.ston')
	resolve
	load

Wabash Pharo load script

Metacello new
	baseline: 'Wabash';
	repository: 'tonel:///home/dhenrich/rogue/_homes/rogue/_home/shared/repos/Wabash/rowan/src';
	get;
	load

Rowan project creation script

| projectName projectSpecification resolvedProject projectsHome projectRoot componentName |
projectName := 'Wabash'.
projectsHome := '$ROWAN_PROJECTS_HOME' asFileReference.
projectRoot := projectsHome / projectName.
componentName := 'Core'.

projectSpecification := RwResolvedProjectV2 new
	projectName: projectName;
	projectsHome: projectsHome;
	gitUrl: 'file://' , projectRoot pathString;
	packageConvention: 'Rowan';
	packageFormat: 'tonel';
	yourself.

resolvedProject := projectSpecification resolve.

resolvedProject addTopLevelComponentNamed: componentName.

(resolvedProject addPackageNamed: 'Wabash-Core' toComponentNamed: componentName).

resolvedProject
	export;
	exportLoadSpecification.