diff --git a/.travis.yml b/.travis.yml index 4474c69..19170b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,9 +18,7 @@ env: - ST=GemStone-3.0.1 - ST=GemStone-3.1.0.6 - ST=GemStone-3.2.0 - - ST=GemStone-3.2.1 - - ST=GemStone-3.2.2 - - ST=GemStone-3.2.3 + - ST=GemStone-3.2.7 install: - export PROJECT_HOME="$(pwd)" diff --git a/bin/startGemServerGem b/bin/startGemServerGem index 833b575..0100617 100755 --- a/bin/startGemServerGem +++ b/bin/startGemServerGem @@ -2,6 +2,7 @@ GemServer="$1" Port="$2" +PortName=`echo ${Port} | sed "s/'//g"` #strip ' off in case of a non-integer argument set -e # exit on error @@ -52,7 +53,7 @@ logDir=${GEMSTONE_LOGDIR} if [ "${logDir}x" = "x" ] ; then logDir=/opt/gemstone/log fi -logFile="${logDir}/${GemServer}_server-${Port}.log" +logFile="${logDir}/${GemServer}_server-${PortName}.log" username=$GEMSTONE_USER_NAME if [ "${GEMSTONE_USER_NAME}x" = "x" ] ; then @@ -71,18 +72,18 @@ iferror stack login run -(GemServerRegistry gemServerNamed: '$GemServer') scriptStartServiceOn: '$Port'. +(GemServerRegistry gemServerNamed: '$GemServer') scriptStartServiceOn: $Port. % run | logEntry | System beginTransaction. (logEntry := ObjectLogEntry - fatal: '${GemServer}_server_${Port}: topaz exit' + fatal: '${GemServer}_server_${PortName}: topaz exit' object: 'pid: ', (System gemVersionReport at: 'processId') printString) addToLog. (GemServerRegistry gemServerNamed: '$GemServer') - ifNotNil: [:gemServer | gemServer crashLog add: ('$Port') asString -> logEntry ]. + ifNotNil: [:gemServer | gemServer crashLog add: (${PortName}) asString -> logEntry ]. System commitTransaction. % diff --git a/bin/stopGemServerGem b/bin/stopGemServerGem index 38b49cc..22ca075 100755 --- a/bin/stopGemServerGem +++ b/bin/stopGemServerGem @@ -2,6 +2,7 @@ GemServer="$1" Port="$2" +PortName=`echo ${Port} | sed "s/'//g"` #strip ' off in case of a non-integer argument # must match GemServer>>gemPidFileName: @@ -9,13 +10,16 @@ logDir=${GEMSTONE_LOGDIR} if [ "${logDir}x" = "x" ] ; then logDir=/opt/gemstone/log fi -pidfile="${logDir}/${GemServer}_server-${Port}.pid" +pidfile="${logDir}/${GemServer}_server-${PortName}.pid" if [ -e $pidfile ]; then pid=`cat $pidfile` rm $pidfile echo " Stopping topaz PID $pid running on port $port" kill $pid + while [[ ( -d /proc/$pid ) && ( -z `grep zombie /proc/$pid/status` ) ]]; do + sleep 1 + done else echo " No PID file found for gem on port $port, not running?" fi diff --git a/docs/gettingStarted.md b/docs/gettingStarted.md index 1c397f6..304f93c 100644 --- a/docs/gettingStarted.md +++ b/docs/gettingStarted.md @@ -924,7 +924,7 @@ If you are not using auto commit mode, then an explicit commit is needed.* gemServer := GemServer gemServerNamed: 'example'. client := gemServer clientClass new. result := client - submitAndWaitFor: { #scheduleError } + submitAndWaitFor: { #scheduleErrorTask } gemServer: gemServer. ``` @@ -958,7 +958,7 @@ If you are not using auto commit mode, then an explicit commit is needed.* transaction. However, work you have done within your own object space is not affected by an abortTransaction. GemStone gives you a new view of the repository that does not include any changes you made to permanent objects during the aborted -transaction—because the transaction was aborted, your changes did not affect objects in +transaction—because the transaction was aborted, your changes did not affect objects in the repository. The new view, however, does include changes committed by other users since your last transaction started. Objects that you have created in the GemBuilder for Smalltalk object space, outside the repository, remain until you remove them or end your @@ -1006,13 +1006,13 @@ either explicitly begin a new one or change transaction modes.* --- -*Sessions only update their view of the repository when they commit or abort. The repository must keep a copy of each session’s view so long as the session is using it, even if other sessions frequently commit changes and create new views (commit records). Storing the original view and all the intermediate views uses up space in the repository, and can result in the repository running out of space. To avoid this problem, all sessions in a busy system should commit or abort regularly.* +*Sessions only update their view of the repository when they commit or abort. The repository must keep a copy of each session’s view so long as the session is using it, even if other sessions frequently commit changes and create new views (commit records). Storing the original view and all the intermediate views uses up space in the repository, and can result in the repository running out of space. To avoid this problem, all sessions in a busy system should commit or abort regularly.* *For a session that is not in a transaction, if the number of commit records exceeds the -value of STN_CR_BACKLOG_THRESHOLD, the Stone repository monitor signals the session to abort by signaling TransactionBacklog (also called “sigAbort”). If the session does not abort, the Stone repository monitor reinitializes the session or terminates it, depending on the value of STN_GEM_LOSTOT_TIMEOUT.* +value of STN_CR_BACKLOG_THRESHOLD, the Stone repository monitor signals the session to abort by signaling TransactionBacklog (also called “sigAbort”). If the session does not abort, the Stone repository monitor reinitializes the session or terminates it, depending on the value of STN_GEM_LOSTOT_TIMEOUT.* *Sessions that are in transaction are not subject to losing their view forcibly. Sessions in -transaction enable receipt of the signal TransactionBacklog, and handle it appropriately, but it is optional. It is important that sessions do not stay in transaction for long periods in busy systems; this can result in the Stone running out of space and shutting down. However, sessions that run in automatic transaction mode are always in transaction; as soon as they commit or abort, they begin a new transaction. (For a discussion of automatic and manual transaction modes, see the “Transactions and Concurrency Control” chapter of the GemStone/S 64 Bit Programming Guide.) * +transaction enable receipt of the signal TransactionBacklog, and handle it appropriately, but it is optional. It is important that sessions do not stay in transaction for long periods in busy systems; this can result in the Stone running out of space and shutting down. However, sessions that run in automatic transaction mode are always in transaction; as soon as they commit or abort, they begin a new transaction. (For a discussion of automatic and manual transaction modes, see the “Transactions and Concurrency Control” chapter of the GemStone/S 64 Bit Programming Guide.) * --- @@ -1074,7 +1074,7 @@ Smalltalk model).* --- -*GemStone prevents conflict between users by encapsulating each session’s operations +*GemStone prevents conflict between users by encapsulating each session’s operations (computations, stores, and fetches) in units called transactions. The operations that make up a transaction act on what appears to you to be a private view of GemStone objects. When you tell GemStone to commit the current transaction, GemStone tries to merge the @@ -1084,7 +1084,7 @@ modified objects in your view with the shared object store.* *Every user session maintains its own consistent view of the repository state. Objects that the repository contained at the beginning of your session are -preserved in your view, even if you are not using them—and even if other users’ actions +preserved in your view, even if you are not using them—and even if other users’ actions have rendered them obsolete. The storage that those objects are using cannot be reclaimed until you commit or abort your transaction. Depending upon the characteristics of your particular installation (such as the number of users and the commit frequency), this @@ -1175,7 +1175,7 @@ your application, they are copied to temporary object memory.* *Some of these objects may ultimately become permanent and reside on the disk, but probably not all of them. Temporary objects that your application creates merely in order to do its work reside in temporary object space until they are no longer needed, when the -Gem’s garbage collector reclaims the storage they use.* +Gem’s garbage collector reclaims the storage they use.* *It is important to provide sufficient temporary object space. At the same time, you must design your application so that it does not create an infinite amount of reachable @@ -1194,10 +1194,10 @@ and terminate.* *GemStone detects conflict by comparing your read and write sets with those of all other transactions committed since your transaction began. The following conditions signal a possible concurrency conflict:* -- *An object in your write set is also in the write set of another transaction—a write-write +- *An object in your write set is also in the write set of another transaction—a write-write conflict. Write-write conflicts can involve only a single object.* -- *An object in your write set is also in another session’s dependency list—a writedependency -conflict. An object belongs to a session’s dependency list if the session has +- *An object in your write set is also in another session’s dependency list—a writedependency +conflict. An object belongs to a session’s dependency list if the session has added, removed, or changed a dependency (index) for that object. For details about how GemStone creates and manages indexes on collections, see Chapter 7, Indexes and Querying.* diff --git a/repository/BaselineOfGsApplicationTools.package/BaselineOfGsApplicationTools.class/methodProperties.json b/repository/BaselineOfGsApplicationTools.package/BaselineOfGsApplicationTools.class/methodProperties.json index 06f617a..b92a49b 100644 --- a/repository/BaselineOfGsApplicationTools.package/BaselineOfGsApplicationTools.class/methodProperties.json +++ b/repository/BaselineOfGsApplicationTools.package/BaselineOfGsApplicationTools.class/methodProperties.json @@ -2,4 +2,4 @@ "class" : { }, "instance" : { - "baseline:" : "dkh 12/26/2014 11:59" } } + "baseline:" : "dkh 07/15/2015 17:34" } } diff --git a/repository/BaselineOfGsApplicationTools.package/monticello.meta/version b/repository/BaselineOfGsApplicationTools.package/monticello.meta/version index 6b5a38f..bbcc27e 100644 --- a/repository/BaselineOfGsApplicationTools.package/monticello.meta/version +++ b/repository/BaselineOfGsApplicationTools.package/monticello.meta/version @@ -1 +1 @@ -(name 'BaselineOfGsApplicationTools-dkh.8' message 'Issue #10: change baseline to require GLASS1...clean up sent but not implemented' id '87cb8c31-5c93-432a-aa56-919a9717192c' date '12/26/2014' time '12:05:27' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.7' message 'Issue #10: breakpoint, halt and another http example' id '3ac7606c-22da-4206-9d45-446a8c2b09e9' date '12/23/2014' time '16:28:41' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.6' message 'Issue #10: expand gemserver api a bit more ... add simple test for GemServerRemoteServerExample and it is passing' id 'b48a9dcd-2492-4eaa-b60c-b9e187f8e8c0' date '12/23/2014' time '14:01:05' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.5' message 'Issue #10: add GemServer>>gemServer: and GemServer>>gemServer:onError: as non-transactional veriants for handling server errors, breakpoints and halts (should satisfy Issue #12)...refactor GemServer>>gemServerTransaction:onError: to use GemServer>>gemServer:onError: ... add GemServer>>handleGemServerException: to isolate server error and interactiveMoe logic ... GemServer>>serverError:titled:inTransactionDo: allows for performing optional work in the same transaction as the continuation ... if one is already in transaction a commit is expected to come from the caller ... started work on an example server as the GemServerTestServer has been sacrificed to being able to test various error conditions and is no longer a clean example ...' id '83fef897-46b4-46cb-ab20-c3224414c21e' date '12/23/2014' time '11:19:31' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.4' message 'Issue #2: split out GemServer>>performOnServer: into separate 2.4 and 3.x packages ... add new packages and update baseline' id '04a850bf-fa2b-4431-aaf6-c2881f208745' date '11/29/2014' time '19:14:19' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.3' message 'Issue #2: correct mistakes in baseline for package renames' id 'fd5a3af5-23ff-4999-8f85-014970aa05e1' date '11/26/2014' time '14:35:15' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.2' message 'Issue #2: rename packages to have GsApplication-Tools as base name' id 'dde6d24e-71be-4e7e-acc1-cca1b40370bb' date '11/26/2014' time '14:25:46' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.1' message 'Issue #1: define baseline' id '716d27b8-3b41-4a1e-ac1e-60496cf001e3' date '11/26/2014' time '11:18:40' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'BaselineOfGsApplicationTools-dkh.10' message 'Issue #35: the package GsApplicationTools-ServerExtensionsV30 with GsProcess>>convertToPortableStack is not needed ...' id '79dbd8f9-25ca-4ab3-8dc3-c583689b24dc' date '07/15/2015' time '17:34:53' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.9' message 'Issue #35: implement GsProcess>>convertToPortableStack for GemStone versions 3.0 thru 3.2 in package GsApplicationTools-ServerExtensionsV30' id 'd7cd8b66-fa67-4946-af11-a92e59c839ed' date '07/15/2015' time '17:06:38' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.8' message 'Issue #10: change baseline to require GLASS1...clean up sent but not implemented' id '87cb8c31-5c93-432a-aa56-919a9717192c' date '12/26/2014' time '12:05:27' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.7' message 'Issue #10: breakpoint, halt and another http example' id '3ac7606c-22da-4206-9d45-446a8c2b09e9' date '12/23/2014' time '16:28:41' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.6' message 'Issue #10: expand gemserver api a bit more ... add simple test for GemServerRemoteServerExample and it is passing' id 'b48a9dcd-2492-4eaa-b60c-b9e187f8e8c0' date '12/23/2014' time '14:01:05' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.5' message 'Issue #10: add GemServer>>gemServer: and GemServer>>gemServer:onError: as non-transactional veriants for handling server errors, breakpoints and halts (should satisfy Issue #12)...refactor GemServer>>gemServerTransaction:onError: to use GemServer>>gemServer:onError: ... add GemServer>>handleGemServerException: to isolate server error and interactiveMoe logic ... GemServer>>serverError:titled:inTransactionDo: allows for performing optional work in the same transaction as the continuation ... if one is already in transaction a commit is expected to come from the caller ... started work on an example server as the GemServerTestServer has been sacrificed to being able to test various error conditions and is no longer a clean example ...' id '83fef897-46b4-46cb-ab20-c3224414c21e' date '12/23/2014' time '11:19:31' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.4' message 'Issue #2: split out GemServer>>performOnServer: into separate 2.4 and 3.x packages ... add new packages and update baseline' id '04a850bf-fa2b-4431-aaf6-c2881f208745' date '11/29/2014' time '19:14:19' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.3' message 'Issue #2: correct mistakes in baseline for package renames' id 'fd5a3af5-23ff-4999-8f85-014970aa05e1' date '11/26/2014' time '14:35:15' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.2' message 'Issue #2: rename packages to have GsApplication-Tools as base name' id 'dde6d24e-71be-4e7e-acc1-cca1b40370bb' date '11/26/2014' time '14:25:46' author 'dkh' ancestors ((name 'BaselineOfGsApplicationTools-dkh.1' message 'Issue #1: define baseline' id '716d27b8-3b41-4a1e-ac1e-60496cf001e3' date '11/26/2014' time '11:18:40' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServer.class/instance/basicTransactionReentry.st b/repository/GsApplicationTools-Server.package/GemServer.class/instance/basicTransactionReentry.st index f904cfa..ee50919 100644 --- a/repository/GsApplicationTools-Server.package/GemServer.class/instance/basicTransactionReentry.st +++ b/repository/GsApplicationTools-Server.package/GemServer.class/instance/basicTransactionReentry.st @@ -1,5 +1,7 @@ accessing basicTransactionReentry basicTransactionReentry value - ifNil: [ basicTransactionReentry value: self reentryAllowed ]. + ifNil: [ + self _setNoStubbing. "as long as I am in memory prevent stubbing of my instance variables ... I will stay in memory as long as I am referenced from stack.." + basicTransactionReentry value: self reentryAllowed ]. ^ basicTransactionReentry value \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServer.class/instance/executeStartGemCommand..st b/repository/GsApplicationTools-Server.package/GemServer.class/instance/executeStartGemCommand..st index c10d81f..d4a527b 100644 --- a/repository/GsApplicationTools-Server.package/GemServer.class/instance/executeStartGemCommand..st +++ b/repository/GsApplicationTools-Server.package/GemServer.class/instance/executeStartGemCommand..st @@ -1,6 +1,6 @@ server specialization executeStartGemCommand: portOrResourceName | commandLine | - commandLine := self startScriptPath , ' ' , self name , ' ' - , portOrResourceName asString , ' "' , self exeConfPath , '"'. + commandLine := self startScriptPath , ' ' , self name , ' "' + , portOrResourceName printString , '" "' , self exeConfPath , '"'. self performOnServer: commandLine \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServer.class/instance/isRunning.st b/repository/GsApplicationTools-Server.package/GemServer.class/instance/isRunning.st index c21194c..3471748 100644 --- a/repository/GsApplicationTools-Server.package/GemServer.class/instance/isRunning.st +++ b/repository/GsApplicationTools-Server.package/GemServer.class/instance/isRunning.st @@ -1,3 +1,3 @@ server specialization isRunning - ^self serverClass isRunning + ^self serverClass isRunning \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServer.class/instance/name.st b/repository/GsApplicationTools-Server.package/GemServer.class/instance/name.st index 5dfd59f..4a16061 100644 --- a/repository/GsApplicationTools-Server.package/GemServer.class/instance/name.st +++ b/repository/GsApplicationTools-Server.package/GemServer.class/instance/name.st @@ -2,4 +2,4 @@ accessing name name == nil ifTrue: [ ^self serverClass name ]. - ^name + ^name \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServer.class/instance/restartGems.st b/repository/GsApplicationTools-Server.package/GemServer.class/instance/restartGems.st index 2e98549..812b0e8 100644 --- a/repository/GsApplicationTools-Server.package/GemServer.class/instance/restartGems.st +++ b/repository/GsApplicationTools-Server.package/GemServer.class/instance/restartGems.st @@ -2,5 +2,4 @@ service instance-control restartGems self logControlEvent: 'Restart Gems: ' , self name. self stopGems. - (Delay forSeconds: 3) wait. "give gem a chance to close sockets" self startGems \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServer.class/instance/waitForStartGems..st b/repository/GsApplicationTools-Server.package/GemServer.class/instance/waitForStartGems..st new file mode 100644 index 0000000..0d4568b --- /dev/null +++ b/repository/GsApplicationTools-Server.package/GemServer.class/instance/waitForStartGems..st @@ -0,0 +1,17 @@ +service instance-control +waitForStartGems: timeOutSeconds + | pidList count | + pidList := ''. + count := 0. + self logControlEvent: 'Wait for Gems: ' , self name. + self portOrResourceNameList + do: [ :portOrResourceName | + | pidFilePath file | + pidFilePath := self gemPidFileName: portOrResourceName. + [ GsFile existsOnServer: pidFilePath ] + whileFalse: [ + (Delay forSeconds: 1) wait. + count := count + 1. + count > timeOutSeconds + ifTrue: [ ^ false ] ] ]. + ^ true \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServer.class/methodProperties.json b/repository/GsApplicationTools-Server.package/GemServer.class/methodProperties.json index 10e5920..6b7ec21 100644 --- a/repository/GsApplicationTools-Server.package/GemServer.class/methodProperties.json +++ b/repository/GsApplicationTools-Server.package/GemServer.class/methodProperties.json @@ -18,7 +18,7 @@ "basicServerOn:" : "dkh 01/03/2015 15:54", "basicServerProcess" : "dkh 01/02/2015 17:13", "basicServerProcess:" : "dkh 01/02/2015 17:13", - "basicTransactionReentry" : "dkh 01/09/2015 14:20", + "basicTransactionReentry" : "dkh 04/03/2015 11:44", "basicTransactionReentry:" : "dkh 01/09/2015 13:16", "bounceServerAfterSetOrClearBreakpoints:" : "dkh 12/09/2014 14:12", "bounceServerForBreakpointHandling" : "dkh 12/10/2014 14:48", @@ -39,7 +39,7 @@ "enableRemoteBreakpoints" : "dkh 12/10/2014 17:01", "enableRemoteBreakpoints:" : "dkh 11/26/2014 19:16", "exeConfPath" : "dkh 01/01/2015 16:54", - "executeStartGemCommand:" : "dkh 01/06/2015 15:31", + "executeStartGemCommand:" : "dkh 05/27/2015 17:02", "executeStatusGemCommand:" : "dkh 12/20/2014 21:46", "executeStopGemCommand:" : "dkh 01/06/2015 15:30", "gemPidFileName:" : "dkh 01/26/2015 15:07", @@ -79,7 +79,7 @@ "initialize" : "dkh 01/09/2015 14:21", "interactiveMode" : "dkh 12/22/2014 12:55", "interactiveMode:" : "dkh 12/22/2014 12:57", - "interactiveStartServiceOn:" : "dkh 01/06/2015 15:51", + "interactiveStartServiceOn:" : "dkh 01/16/2015 11:54", "interactiveStartServiceOn:transactionMode:" : "dkh 01/06/2015 15:50", "isRunning" : "SebastianHeidbrink 11/02/2014 15:00", "isValidName:" : "dkh 11/26/2014 18:31", @@ -99,7 +99,7 @@ "reentryAllowed" : "dkh 01/09/2015 13:12", "reentryDisallowed" : "dkh 01/09/2015 13:11", "register" : "dkh 01/06/2015 13:39", - "restartGems" : "dkh 12/06/2014 13:04", + "restartGems" : "dkh 05/27/2015 16:24", "saveContinuationFor:titled:inTransactionDo:" : "dkh 12/30/2014 07:25", "scriptBinDirPath" : "dkh 11/29/2014 09:44", "scriptLogEvent:object:" : "dkh 01/09/2015 17:18", @@ -132,4 +132,5 @@ "transactionMutex" : "dkh 12/22/2014 14:48", "unregister" : "dkh 01/06/2015 13:39", "validateName:" : "dkh 11/26/2014 18:29", + "waitForStartGems:" : "dkh 05/28/2015 00:47", "writeGemLogEntryFor:titled:" : "dkh 01/06/2015 16:49" } } diff --git a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/block..st b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/block..st index 230242c..ef9234f 100644 --- a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/block..st +++ b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/block..st @@ -1,4 +1,4 @@ accessing block: anObject - block := anObject + block := anObject \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeProcess..st b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeProcess..st index b7ef69e..cb24c90 100644 --- a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeProcess..st +++ b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeProcess..st @@ -1,4 +1,4 @@ accessing nativeProcess: anObject - nativeProcess := anObject + nativeProcess := anObject \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeProcess.st b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeProcess.st index b092267..9547f1b 100644 --- a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeProcess.st +++ b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeProcess.st @@ -1,4 +1,4 @@ accessing nativeProcess - ^nativeProcess + ^nativeProcess \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeSemaphore..st b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeSemaphore..st index dcf82d8..193362a 100644 --- a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeSemaphore..st +++ b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/nativeSemaphore..st @@ -1,4 +1,4 @@ accessing nativeSemaphore: anObject - nativeSemaphore := anObject + nativeSemaphore := anObject \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableProcess..st b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableProcess..st index 205bd2f..7da238c 100644 --- a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableProcess..st +++ b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableProcess..st @@ -1,4 +1,4 @@ accessing portableProcess: anObject - portableProcess := anObject + portableProcess := anObject \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableProcess.st b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableProcess.st index 5d21f5b..7aafd10 100644 --- a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableProcess.st +++ b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableProcess.st @@ -1,4 +1,4 @@ accessing portableProcess - ^portableProcess + ^portableProcess \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableSemaphore..st b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableSemaphore..st index 63fb535..53a47f9 100644 --- a/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableSemaphore..st +++ b/repository/GsApplicationTools-Server.package/GemServerLauncher.class/instance/portableSemaphore..st @@ -1,4 +1,4 @@ accessing portableSemaphore: anObject - portableSemaphore := anObject + portableSemaphore := anObject \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/gemServerNamed..st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/gemServerNamed..st index 216e547..ee2a9cc 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/gemServerNamed..st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/gemServerNamed..st @@ -1,3 +1,3 @@ gem server querying gemServerNamed: aString - ^self singleton serverNamed: aString + ^self singleton serverNamed: aString \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/gemServerNames.st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/gemServerNames.st index 91f3c1d..359ed0e 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/gemServerNames.st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/gemServerNames.st @@ -1,3 +1,3 @@ gem server querying gemServerNames - ^self singleton names asSortedCollection + ^self singleton names asSortedCollection \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/new.st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/new.st index 0859b53..0847eda 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/new.st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/new.st @@ -1,3 +1,3 @@ instance creation new - ^self singleton + ^self singleton \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/removeGemServerNamed..st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/removeGemServerNamed..st index 3983766..b1d3daa 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/removeGemServerNamed..st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/removeGemServerNamed..st @@ -1,4 +1,4 @@ registration removeGemServerNamed: aName self singleton removeServer: aName -. +. \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/serverGems.st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/serverGems.st index ae343fb..cc8852d 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/serverGems.st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/serverGems.st @@ -1,3 +1,3 @@ gem server querying serverGems - ^self singleton servers + ^self singleton servers \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/serversOnPort..st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/serversOnPort..st index c6a16a4..9399657 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/serversOnPort..st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/serversOnPort..st @@ -1,3 +1,3 @@ gem server querying serversOnPort: aPortNumber - ^self singleton serversOnPort: aPortNumber + ^self singleton serversOnPort: aPortNumber \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/singleton.st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/singleton.st index a58e22b..9931db8 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/singleton.st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/class/singleton.st @@ -2,4 +2,4 @@ accessing singleton Singleton isNil ifTrue: [self initSingleton]. - ^Singleton + ^Singleton \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/addServer..st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/addServer..st index eb29a0e..6ed1261 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/addServer..st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/addServer..st @@ -3,4 +3,4 @@ addServer: aServer (self serverNamed: aServer name) notNil ifTrue: [^Error error: 'Server with that name already exists!']. - self servers add: aServer + self servers add: aServer \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/names.st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/names.st index 65f172e..ad8a31c 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/names.st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/names.st @@ -1,4 +1,4 @@ other names - ^self servers collect:[:each | each name]. + ^self servers collect:[:each | each name]. \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/removeServer..st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/removeServer..st index 06a27d4..feec86b 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/removeServer..st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/removeServer..st @@ -2,4 +2,4 @@ other removeServer: aName |server| server :=self serverNamed:aName. - server == nil ifFalse:[ servers remove: server] + server == nil ifFalse:[ servers remove: server] \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serverClasses.st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serverClasses.st index 1b49ec7..f3689ef 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serverClasses.st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serverClasses.st @@ -1,4 +1,4 @@ other serverClasses - ^self servers collect:[:each | each serverClass]. + ^self servers collect:[:each | each serverClass]. \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serverNamed..st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serverNamed..st index deca720..ec10bf8 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serverNamed..st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serverNamed..st @@ -1,3 +1,3 @@ other serverNamed: aString - ^self servers detect:[:each | each name = aString] ifNone:[nil] + ^self servers detect:[:each | each name = aString] ifNone:[nil] \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/servers.st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/servers.st index e26caf2..d6a7961 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/servers.st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/servers.st @@ -1,3 +1,3 @@ other servers - ^servers + ^servers \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serversOfClass..st b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serversOfClass..st index f004827..e13a104 100644 --- a/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serversOfClass..st +++ b/repository/GsApplicationTools-Server.package/GemServerRegistry.class/instance/serversOfClass..st @@ -1,3 +1,3 @@ other serversOfClass: aClassName - ^servers select: [:each | each serverClass name = aClassName] + ^servers select: [:each | each serverClass name = aClassName] \ No newline at end of file diff --git a/repository/GsApplicationTools-Server.package/monticello.meta/version b/repository/GsApplicationTools-Server.package/monticello.meta/version index fbf8fab..5e89842 100644 --- a/repository/GsApplicationTools-Server.package/monticello.meta/version +++ b/repository/GsApplicationTools-Server.package/monticello.meta/version @@ -1 +1,7 @@ -(name 'GsApplicationTools-Server-dkh.82' message 'Issue #22: if GEMSTONE_LOG_DIR not defined use /opt/gemstone/log for GemServer pid files' id '30e9ea84-16ba-4b45-931b-c53d7ff4f69e' date '01/26/2015' time '15:09:49' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.81' message 'Issue #19: it turns out that the `initCrashLog` call in GemServer>>startGems was introducing a commit conflict when doing a `restartGems`. Moved `initCrashLog` to the tests that relied upon it, cleaned up the commit failure handling in GemServer>>startGems and test coverage GemServerRemoteServerExampleTests>>testStartRestartStopServer for the bug' id '1a5f8726-048f-4d86-9b19-f06cacdba0bf' date '01/15/2015' time '12:40:48' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.80' message 'Issue #16: isolate source of test errors (use of doTransaction while inTransaction) ... fix it and restore some code erroneously removed and cross fingers' id 'a9a2a4e7-869a-4fdd-a9a4-58864bb480e9' date '01/09/2015' time '17:23:04' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.79' message 'Issue #16: setup GemServerRemoteVMTests for static remote server tests (allow for server-side debugging in a tODE client) and fix a basic bug in reentry logic ... still no reentrant tests' id '22eae78d-23c5-4342-aedd-680d54f584e6' date '01/09/2015' time '14:25:11' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.78' message 'Issue #16: make GemServer>>doBasicTransaction: non-reentrant ... no tests yet' id '3cf71d75-5fe6-4492-95a7-a6389fe1c60e' date '01/09/2015' time '13:24:10' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.77' message 'Issue #15: remove ports iv' id '74b5e97e-97b1-4e3f-a03a-6967396419bb' date '01/09/2015' time '13:03:54' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.76' message 'add back in GemServer>>ports and GemServer>>ports:, since for gem servers that _do_ work with ports, this is the natural method to use ...' id '0e847e91-ae46-49f1-ad27-2a5911c981c0' date '01/07/2015' time '11:41:40' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.75' message 'Issue #58: checkpoint while working through @rjsargent (very thorough) document review' id 'a57d4750-da0d-4b57-8308-fa436a1a55d4' date '01/06/2015' time '17:07:32' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.74' message 'more work on replace use of ports with portOrResourceNameList' id 'f7a71ead-40e1-427e-931d-c37f2cd8f162' date '01/06/2015' time '16:18:11' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.73' message 'replace use of ports with portOrResourceNameList, since some gem servers are not port-based ... yet we need a unique id to identify the gem server instances ..' id '274fc069-2cfd-4e7f-ab58-886387389871' date '01/06/2015' time '15:39:57' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.72' message 'Make GemServerRegistry a second class object by moving interesting protocol to GemServer' id 'eecf6463-2e1f-411c-a296-c4f25f4bebc7' date '01/06/2015' time '13:45:20' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.71' message 'Issue #10: rename GemServer>>startSigAbortHandling to GemServer>>startTransactionBacklogHandling ... write to gem log first, then create continuation in GemServer>>logStack:titled:inTransactionDo: ' id '0ec21772-5f63-409b-b2b8-8984ec643b76' date '01/04/2015' time '00:06:23' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.70' message 'Issue #10: a bit more streamlining of the gemserver api' id '26bf99a9-3b4e-4633-a27c-17e64adb22f7' date '01/03/2015' time '20:20:02' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.69' message 'Issue #10: tweak stack unwind logic in GemServer>>gemServer:exceptionSet:beforeUnwind:ensure: ... use explicit `return:` instead of falling off end of exception handling block' id 'b3ba26be-2687-4e00-8e6a-ce2f517996a7' date '01/03/2015' time '12:58:39' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.68' message 'Issue #10: convert startBasicServerOn: to basicServerOn: ... basicServerOn: is now the method that should be subclassed' id '91969751-4247-480f-86c0-98676c6a095b' date '01/02/2015' time '17:54:02' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.67' message 'Issue #10: move basicServerProcess up to GemServer ...' id '9bffb268-d7e4-4e0e-a84a-b5eb6cf03998' date '01/02/2015' time '17:38:02' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.66' message 'Issue #10: default gem.conf file added ... use the default gem.conf for GemServerRemoteServerExample-based tests ... improve GemServer>>performOnServer: error message ... address the AlmostOutOfMemoory issue (for good?) apparently AlmostOutOfMemoory wasn''t getting re-enabled ' id '7df44e59-4dac-4020-baf6-9734bdd4fe9f' date '01/01/2015' time '18:14:01' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.65' message 'Issue #10: perhaps the granlarity of growth is the root cause .. looks like the vm is running out of memory in the process of handling the signal ... we''re creating a continuation ... a smaller increment means that we won''t be overrunning the limit by quite as much' id '778f751d-abd4-4297-adb4-b2574d2d4f25' date '01/01/2015' time '13:24:59' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.64' message 'Issue #10: implement (and use) GemServer>>doInteractiveModePass:' id '56b22587-b43c-4106-aafe-07ba9a4395e5' date '12/31/2014' time '21:23:50' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.63' message 'Issue #10: address GemServerRemoteServerParallelProcessingExampleTests>>#testInternalServerError failure ... tweak GemServerRemoteTaskExample class>>reset to avoid potential commit conflicts' id '1cb8556c-3b1f-4a62-b0ed-4887219e7e10' date '12/31/2014' time '21:16:21' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.62' message 'Issue #10: remove GemServerRemoteServerSerialProcessingExample>>startBasicServerOn: ... bad boy ... don''t automatically go into interactiveMode when running GemServer>>interactiveStartServiceOn:transactionMode: ... interactiveMode setting for server should be independently controlled, since it is convenient to use interactiveStart... to run tests without debugging exceptions ... to verify that bug is really fixed ... fix logic in GemServer>>doTransaction:onConflict:' id '473fd4c5-0a0b-4141-8322-adac4d74ac3b' date '12/31/2014' time '12:24:39' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.61' message 'Issue #10: more refactoring in face of building a sensible seaside gemserver stack' id 'da3b879d-e658-4d95-aac1-196271fac284' date '12/30/2014' time '17:18:53' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.60' message 'Issue #10: rename gemServer:* selectors to use beforeUnwind: instead of onError:' id 'e5deddb7-75be-4aa3-9266-236578df6ffd' date '12/30/2014' time '12:27:10' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.59' message 'Issue #10: tweak GemServer>>doTransaction:' id '358b7e45-5f77-42e9-ac0a-46a11b7f5368' date '12/30/2014' time '07:45:00' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.58' message 'Issue #10: implement GemServer>>doBasicTransaction:, GemServer>>doTransaction:, and GemServer>>doTransaction:onConflict: to replace GemServer>>doSimpleTransaction: and GemServer>>doComplexTransaction:onConflict: ... ongoing docs work' id '67f16c1a-1a4c-4260-9d41-ca661e4229de' date '12/30/2014' time '07:34:40' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.57' message 'Issue #10: exception pass does not belong in gemServerHandleErrorException: ... changed comment so the same mistake won''t be made again...' id 'dc5c8c41-4d16-42e6-b972-0a0c87e5c848' date '12/29/2014' time '21:38:19' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.56' message 'Issue #10: restore the exception pass for gemServerHandleErrorException: ... comment fiddling' id 'cc646ef5-d24c-4364-844a-7d151cf743b1' date '12/29/2014' time '18:03:59' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.55' message 'Issue #10: pull gemServerExceptionSet iv up to GemServer ... interactive tests needs to be able to customize the exception set used and it stands to reason that developers will as well ...' id 'ffbcc6d8-d6f8-4365-aa1e-e2e931e0a754' date '12/28/2014' time '08:38:51' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.54' message 'Issue #10: implement GemServer>>interactiveStartServiceOn:' id '482bdc62-5c86-4603-b33b-78a28e7c7314' date '12/28/2014' time '07:42:55' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.53' message 'Issue #10: straighten out interactiveMode operation with respect to exception passing .... fix handling of AlmostOutOfMemory exception with temp stack references in GemServerRemoteServerExample' id '41d9fd46-48c7-4531-9532-d7f5cdbdc1e4' date '12/28/2014' time '07:13:47' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.52' message 'Issue #10: move AlmostOutOtMemory, AlmostOutOfStack, and Break exception dispatching to v30 package' id '2d9d69d6-f3c7-4a6b-9ae8-23b025452ca8' date '12/26/2014' time '13:22:39' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.51' message 'Issue #10: add GemServer>>enableCreateContinuations and disable continuations for all GemServerRemoteServerExampleTests ... run baseline tests ' id '2f7e6ced-31b8-4f17-b0fd-a17d392a24c3' date '12/26/2014' time '08:31:00' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.50' message 'Issue #10: wrap proc with TransientStackValue and enable continuations again ...' id 'ab406ae1-9b32-4bfc-9514-1471deaf5b0c' date '12/26/2014' time '07:53:44' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.49' message 'Issue #10: turn off continuations' id '85ac4544-66d0-4315-af22-b4eacdef42d7' date '12/25/2014' time '21:58:40' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.48' message 'Issue #10: Delay and persistent blocks do not mix' id '95da3073-d3ae-4470-bcc2-c14f602be746' date '12/25/2014' time '15:04:48' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.47' message 'Issue #10: add crashLog to GemServer ... clients can recognize that a gem has crashed and take action...' id '2b3b92a6-cde0-4c9a-8398-412a1c08bcab' date '12/25/2014' time '08:25:23' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.46' message 'Issue #10: disable continuation creation until I find the reference to delay from continuation .... an abort is causing the process to forget the waiters ... bug will be finxed in 23.2.4? ... causing failure in GemServerRemoteServerExampleTests>>test100Tasks' id '149c80db-7920-43f1-ac02-c86cc1253fff' date '12/24/2014' time '23:05:32' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.45' message 'Issue #10: use double dispatching for cutomization of exception handling: exception implements exceptionHandlingForGemServer: to route appropriate message to server. Add AlmostOutOfMemory and AlmostOutOfStack support to GemServer ... add GemServerRemoteServerExampleTests tests for internal server errors, Warning, AlmostOutOfMemory and AlmostOutOfStack' id '9f23e4d9-413d-4934-95c5-f6221e5c5866' date '12/24/2014' time '13:37:20' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.44' message 'Issue #10: expand gemserver api a bit more ... add simple test for GemServerRemoteServerExample and it is passing' id 'a17abea7-f2c8-4b57-a064-ca89c08f8ffc' date '12/23/2014' time '14:01:04' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.43' message 'Issue #10: beef up GemServer>>doComplexTransaction: to include an onCoflictBlock ... GemServer>>doComplexTransaction:onConflict: conflict handling is WHY you use doComplexTransaction:. Allow for exceptionSet customization in gemServer:... gemServerTransaction:... calls and of course add onConflict customization to gemServerTransaction:... calls...GemServerTestServer>>startBasicServerOn: now uses both flavors of gemServer api calls: gemServer:... and gemServerTransaction:...' id '6d46b8e7-a406-4aa4-9e8f-61639f0f5a42' date '12/23/2014' time '12:32:01' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.42' message 'Issue #10: add GemServer>>gemServer: and GemServer>>gemServer:onError: as non-transactional veriants for handling server errors, breakpoints and halts (should satisfy Issue #12)...refactor GemServer>>gemServerTransaction:onError: to use GemServer>>gemServer:onError: ... add GemServer>>handleGemServerException: to isolate server error and interactiveMoe logic ... GemServer>>serverError:titled:inTransactionDo: allows for performing optional work in the same transaction as the continuation ... if one is already in transaction a commit is expected to come from the caller ... started work on an example server as the GemServerTestServer has been sacrificed to being able to test various error conditions and is no longer a clean example ...' id '83ec8997-c97d-4b4d-b54c-be97ed04eb33' date '12/23/2014' time '11:19:30' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.41' message 'Issue #10: add GemServerInteractiveVMTests to test interactiveMode of GemServer, i.e., in interactiveMode exceptions are handled, logged then passed so that developer can bring up a debugger in a development environment ... for those cases when server-side code is being written ...' id 'af09c85e-85f0-48d4-a834-29e141d689f5' date '12/22/2014' time '17:14:06' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.40' message 'Issue #10: internal server error handling ... expanded local and remote tests for internal server errors ... interactiveMode added so that exceptions are passed so that debugger can be used ' id 'a16f7bf3-5f2c-4804-863f-66f7f14b5c55' date '12/22/2014' time '14:01:48' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.39' message 'Issue #10: gearing up to work through interactive debugging transaction support' id '5b23d0e9-fb0c-4f8d-be85-6710410e48f4' date '12/22/2014' time '11:49:18' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.38' message 'Issue #10: fix a GemStone 2.4.x portability problem' id '19fa2ad7-e6cb-4481-98a5-e637b49e49ab' date '12/21/2014' time '19:26:04' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.37' message 'Issue #10: implement GemServerTestServer for running GemServerRemoteVMTests tests .... added several more tests and fixed some bugs in GemServer class>>gemServerTransaction:onError: and friends' id '8afc1307-7b63-4496-95cb-b0cda90083a5' date '12/21/2014' time '19:15:34' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.36' message 'Issue #10: bulding supporting methods for top-level application error handling and error logging ... server errors will be dealt with using separate (to be written) logic (checkpoint)' id 'a160a736-7277-462f-b478-e4b6eb81093a' date '12/21/2014' time '14:19:52' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.35' message 'define GemServer>>performOnServer:status: so that statusGems won''t error out if a gem doesn''t happen to be running ...' id 'ac15b558-6bcf-4248-abcf-940732736797' date '12/20/2014' time '21:47:41' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.34' message 'implement GemServer>>handleBreakpointException: ' id '09b5af03-82fd-4edd-a796-5a48f6aacde9' date '12/16/2014' time '07:13:11' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.33' message 'working on GsDevKit/Seaside31#59 and noticed that the output fro ps was clipped ... losing just the information that I might want to really see from the status command' id '1247e850-48da-42fd-a1af-be9f072486fc' date '12/15/2014' time '15:46:15' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.32' message 'add statusGems command for GemServer ... returns `ps` for processes associated with the ports' id 'cfdb9768-3b02-44c2-b4bd-c15c4254be56' date '12/13/2014' time '17:28:11' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.31' message 'ServiceVmGemServer moved to GsDevKit/ServiceVM project (https://github.com/GsDevKit/ServiceVM/issues/5)' id '339732d4-6e87-4854-9a64-0a8cc40c8501' date '12/13/2014' time '15:58:24' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.30' message 'Move MaintenanceVmGemServer to Seaside project' id '490a16f5-3868-450b-a8ef-3a346cbb9a00' date '12/12/2014' time '09:52:01' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.29' message 'lazy initialization is not good for the GemServer instances, since multiple gems could be spawned from the same GemServer instance which leads to commit conflicts ... ' id '851fbcd5-458d-47ff-8710-0795e6f344f5' date '12/10/2014' time '17:38:02' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.28' message 'pull up some behavior/state from ZnGemServer as I contemplate implementation of SeasideGemServer family (which is being moved to Seaside31 project)' id 'e20c5d30-c795-4514-9cca-c6333a97c614' date '12/10/2014' time '15:18:47' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.27' message 'portString no longer used' id 'b82c1aa0-5110-40a5-bc9b-757d225c9e31' date '12/10/2014' time '11:00:17' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.26' message 'More porting to 2.4.x ... add GemServerLauncherTests for simple test coverage, tODE should be used for the actual breakpoint and object log tests ' id '7ce13042-cf46-46f9-b3f2-26f4ddff24b8' date '12/09/2014' time '16:48:45' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.25' message 'Porting recent GemserverLauncher and friends work to 2.4' id '744c20b4-e439-46e7-b9c5-1e56e287167e' date '12/09/2014' time '14:15:39' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.24' message 'improve logging and make GemServer transaction safe by using TransientSemaphores' id '2d65afde-00f0-44d3-bfee-c707bebce03a' date '12/09/2014' time '09:57:23' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.23' message 'infrastructure changes to make it possible for a server to switch between native and portable code in support of remote breakpoints ...' id '75ba2020-977c-445c-81a1-3c59a6e5527d' date '12/07/2014' time '18:37:17' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.22' message 'Finish up with the remote breakpoint work ... won''t be able to enable this capability until 3.3 at the soonest ...' id '87bb2e41-1e71-4c39-891a-e472cefc1993' date '12/06/2014' time '14:57:45' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.21' message 'GemServer class>>handleBreakpointException: moved to ZnGemServerLogSupport' id 'a2c9d9a8-d677-409f-8c23-b23bdf34907c' date '12/05/2014' time '14:59:46' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.20' message 'use script for both start and stop ... pid files go into GEMSTONE_LOGDIR' id '6acecf92-5b4d-4ba8-9fd8-40d96a238c44' date '12/04/2014' time '08:09:49' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.19' message 'GemServer class>>handleBreakpointException: can be in common class' id 'dd67e194-1598-42b4-864f-a6532878f183' date '12/03/2014' time '16:24:21' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.18' message 'add GemServer register/unregister methods' id '852a3a6e-738a-4e0c-9647-7ccfe77b949c' date '12/03/2014' time '12:28:38' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.17' message 'remove some extraneous logging .. improve start server label' id '926e5364-3af4-463f-a47a-ec4f64066da8' date '11/30/2014' time '11:52:31' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.16' message 'add strategic object logging to aid in debugging GemServer processing' id 'acf24638-1085-4742-a68e-36c4b8724f16' date '11/30/2014' time '09:21:29' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.15' message 'Issue #2: change GemServer>>defaultScriptBinDirPath to directly access GemServer class, so that subclasses in different projects can still find the script' id '6043a78a-19aa-4760-9367-c4f8b70a5e82' date '11/29/2014' time '20:10:03' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.14' message 'Issue #2: GemServer>>enableRemoteBreakpointHandling is platform-specific as well' id '8e013040-0af2-4b22-bf00-76fa155060d3' date '11/29/2014' time '19:39:46' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.13' message 'Issue #2: split out GemServer>>performOnServer: into separate 2.4 and 3.x packages ... add new packages and update baseline' id '1270825e-9e4b-480c-95ba-89af92443ce6' date '11/29/2014' time '19:14:19' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.12' message 'Issue #2: adjustments for testing' id '0c523ab6-f8f4-4517-b8c4-8c47e683f48c' date '11/29/2014' time '14:48:13' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.11' message 'Issue #2: start/stop/restart appears to be working but I don''t like the level of feedback ... need status command that looks at pid and verifies that pid is there and perhaps some other status information...' id 'ed1d63d6-d88b-4ec0-8690-91cf0dc122ba' date '11/29/2014' time '14:24:04' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.10' message 'issue #2: [ci skip] checkpoint .. preparing for first script tests' id '2cd572d2-e096-4d29-a44d-2b9611c1c651' date '11/29/2014' time '11:42:19' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.9' message 'Issue #2: get ready to run scripts ... add test' id '69489d7e-d2e5-45fb-807b-dc0ebf625cbd' date '11/29/2014' time '09:49:21' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.8' message 'Issue #2: continue move towards GemServer centric design ... with GemServer class>>register:for:on: as the center piece' id '6fb8ce02-0f34-48a1-88f8-13518a567990' date '11/29/2014' time '09:07:49' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.7' message 'Issue #2: get tests passing?' id '7a39f9cf-f346-443b-85bb-df06c8999146' date '11/26/2014' time '22:02:56' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.6' message 'Issue #2: get rid of GemServer portInstance variable ... not really necessary' id '33b9790d-0fe6-448d-b307-2849898f89dc' date '11/26/2014' time '20:12:20' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.5' message 'Issue #2: remove the GemServerStarter classes .... refactor start logic to send startGems, restartGems and stopGems directory to the GemServer instance ... return GemServer instance when created, so that inline start and stop logic can be done without requiring lookup...' id 'd5daf1e3-d581-4a5c-8279-ecc26e65482f' date '11/26/2014' time '20:00:55' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.3' message 'Issue #2: incorporated the "server boilerplate" Smalltalk code from startSeaside30_Adaptor ... push a bunch of stuff around ...' id 'fbb1b950-b097-46da-bff4-c30718ff0445' date '11/26/2014' time '19:29:18' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.2' message 'Issue #2: Taking approach where instead of subclassing GemServerStarter, subclass GemServer ... then we can do direct customization of the various bits and pieces that need customization on run ... and pass any interesting state via the script call ... script location etc. can be specified by the subclass ... Added tests for validating the basic api' id '17c9ab9b-23fe-4849-9e8b-ecfed9e3eb62' date '11/26/2014' time '17:01:21' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.1' message 'Issue #2: rename Application-Server-Tools to GsApplicationTools-Server ... also doing a bit of restructuring' id '0b8a0237-7f35-46cc-978b-3cfa12e1b55b' date '11/26/2014' time '14:27:25' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'GsApplicationTools-Server-dkh.86' message 'GemServer>>waitForStartGems: waits for pid file to appear ... better than a fixed Delay in tests ... i hope' id '7b1e2bfc-72ce-4f9a-b98a-9fa8a5007bdd' date '05/28/2015' time '01:03:38' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.85' message 'proposed bugfixes for Issue #32 and Issue #30 ... +Issue #32 fix involves waiting until the gem process has well an truly stopped .. changes made to stopGemServerGem and removal of delay in GemServer>>restartGems +Issue #30 involves using #printString and well-placed `"` for command line argument creation in GemServer>>executeStartGemCommand: and changes to stopGemServerGem and startGemServerGems to strip the `''` character from file names while leaving it for use in Smalltalk code ...' id '841827f9-dca1-40ca-b73d-6052bc793562' date '05/27/2015' time '18:03:29' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.84' message 'Issue #29: fix recursion in fix ..' id '54788597-3f8b-4a73-a4cc-fc22fcc52b1d' date '04/03/2015' time '11:46:32' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.83' message 'Issue #29: use _setNoStubbing when the basicTransactionReentry code is being used on the stack ' id '394d4e95-abc3-4a27-b43c-b17fd061c028' date '04/03/2015' time '11:27:08' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.82' message 'Issue #22: if GEMSTONE_LOG_DIR not defined use /opt/gemstone/log for GemServer pid files' id '30e9ea84-16ba-4b45-931b-c53d7ff4f69e' date '01/26/2015' time '15:09:49' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.81' message 'Issue #19: it turns out that the `initCrashLog` call in GemServer>>startGems was introducing a commit conflict when doing a `restartGems`. Moved `initCrashLog` to the tests that relied upon it, cleaned up the commit failure handling in GemServer>>startGems and test coverage GemServerRemoteServerExampleTests>>testStartRestartStopServer for the bug' id '1a5f8726-048f-4d86-9b19-f06cacdba0bf' date '01/15/2015' time '12:40:48' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.80' message 'Issue #16: isolate source of test errors (use of doTransaction while inTransaction) ... fix it and restore some code erroneously removed and cross fingers' id 'a9a2a4e7-869a-4fdd-a9a4-58864bb480e9' date '01/09/2015' time '17:23:04' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.79' message 'Issue #16: setup GemServerRemoteVMTests for static remote server tests (allow for server-side debugging in a tODE client) and fix a basic bug in reentry logic ... still no reentrant tests' id '22eae78d-23c5-4342-aedd-680d54f584e6' date '01/09/2015' time '14:25:11' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.78' message 'Issue #16: make GemServer>>doBasicTransaction: non-reentrant ... no tests yet' id '3cf71d75-5fe6-4492-95a7-a6389fe1c60e' date '01/09/2015' time '13:24:10' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.77' message 'Issue #15: remove ports iv' id '74b5e97e-97b1-4e3f-a03a-6967396419bb' date '01/09/2015' time '13:03:54' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.76' message 'add back in GemServer>>ports and GemServer>>ports:, since for gem servers that _do_ work with ports, this is the natural method to use ...' id '0e847e91-ae46-49f1-ad27-2a5911c981c0' date '01/07/2015' time '11:41:40' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.75' message 'Issue #58: checkpoint while working through @rjsargent (very thorough) document review' id 'a57d4750-da0d-4b57-8308-fa436a1a55d4' date '01/06/2015' time '17:07:32' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.74' message 'more work on replace use of ports with portOrResourceNameList' id 'f7a71ead-40e1-427e-931d-c37f2cd8f162' date '01/06/2015' time '16:18:11' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.73' message 'replace use of ports with portOrResourceNameList, since some gem servers are not port-based ... yet we need a unique id to identify the gem server instances ..' id '274fc069-2cfd-4e7f-ab58-886387389871' date '01/06/2015' time '15:39:57' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.72' message 'Make GemServerRegistry a second class object by moving interesting protocol to GemServer' id 'eecf6463-2e1f-411c-a296-c4f25f4bebc7' date '01/06/2015' time '13:45:20' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.71' message 'Issue #10: rename GemServer>>startSigAbortHandling to GemServer>>startTransactionBacklogHandling ... write to gem log first, then create continuation in GemServer>>logStack:titled:inTransactionDo: ' id '0ec21772-5f63-409b-b2b8-8984ec643b76' date '01/04/2015' time '00:06:23' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.70' message 'Issue #10: a bit more streamlining of the gemserver api' id '26bf99a9-3b4e-4633-a27c-17e64adb22f7' date '01/03/2015' time '20:20:02' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.69' message 'Issue #10: tweak stack unwind logic in GemServer>>gemServer:exceptionSet:beforeUnwind:ensure: ... use explicit `return:` instead of falling off end of exception handling block' id 'b3ba26be-2687-4e00-8e6a-ce2f517996a7' date '01/03/2015' time '12:58:39' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.68' message 'Issue #10: convert startBasicServerOn: to basicServerOn: ... basicServerOn: is now the method that should be subclassed' id '91969751-4247-480f-86c0-98676c6a095b' date '01/02/2015' time '17:54:02' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.67' message 'Issue #10: move basicServerProcess up to GemServer ...' id '9bffb268-d7e4-4e0e-a84a-b5eb6cf03998' date '01/02/2015' time '17:38:02' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.66' message 'Issue #10: default gem.conf file added ... use the default gem.conf for GemServerRemoteServerExample-based tests ... improve GemServer>>performOnServer: error message ... address the AlmostOutOfMemoory issue (for good?) apparently AlmostOutOfMemoory wasn''t getting re-enabled ' id '7df44e59-4dac-4020-baf6-9734bdd4fe9f' date '01/01/2015' time '18:14:01' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.65' message 'Issue #10: perhaps the granlarity of growth is the root cause .. looks like the vm is running out of memory in the process of handling the signal ... we''re creating a continuation ... a smaller increment means that we won''t be overrunning the limit by quite as much' id '778f751d-abd4-4297-adb4-b2574d2d4f25' date '01/01/2015' time '13:24:59' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.64' message 'Issue #10: implement (and use) GemServer>>doInteractiveModePass:' id '56b22587-b43c-4106-aafe-07ba9a4395e5' date '12/31/2014' time '21:23:50' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.63' message 'Issue #10: address GemServerRemoteServerParallelProcessingExampleTests>>#testInternalServerError failure ... tweak GemServerRemoteTaskExample class>>reset to avoid potential commit conflicts' id '1cb8556c-3b1f-4a62-b0ed-4887219e7e10' date '12/31/2014' time '21:16:21' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.62' message 'Issue #10: remove GemServerRemoteServerSerialProcessingExample>>startBasicServerOn: ... bad boy ... don''t automatically go into interactiveMode when running GemServer>>interactiveStartServiceOn:transactionMode: ... interactiveMode setting for server should be independently controlled, since it is convenient to use interactiveStart... to run tests without debugging exceptions ... to verify that bug is really fixed ... fix logic in GemServer>>doTransaction:onConflict:' id '473fd4c5-0a0b-4141-8322-adac4d74ac3b' date '12/31/2014' time '12:24:39' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.61' message 'Issue #10: more refactoring in face of building a sensible seaside gemserver stack' id 'da3b879d-e658-4d95-aac1-196271fac284' date '12/30/2014' time '17:18:53' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.60' message 'Issue #10: rename gemServer:* selectors to use beforeUnwind: instead of onError:' id 'e5deddb7-75be-4aa3-9266-236578df6ffd' date '12/30/2014' time '12:27:10' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.59' message 'Issue #10: tweak GemServer>>doTransaction:' id '358b7e45-5f77-42e9-ac0a-46a11b7f5368' date '12/30/2014' time '07:45:00' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.58' message 'Issue #10: implement GemServer>>doBasicTransaction:, GemServer>>doTransaction:, and GemServer>>doTransaction:onConflict: to replace GemServer>>doSimpleTransaction: and GemServer>>doComplexTransaction:onConflict: ... ongoing docs work' id '67f16c1a-1a4c-4260-9d41-ca661e4229de' date '12/30/2014' time '07:34:40' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.57' message 'Issue #10: exception pass does not belong in gemServerHandleErrorException: ... changed comment so the same mistake won''t be made again...' id 'dc5c8c41-4d16-42e6-b972-0a0c87e5c848' date '12/29/2014' time '21:38:19' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.56' message 'Issue #10: restore the exception pass for gemServerHandleErrorException: ... comment fiddling' id 'cc646ef5-d24c-4364-844a-7d151cf743b1' date '12/29/2014' time '18:03:59' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.55' message 'Issue #10: pull gemServerExceptionSet iv up to GemServer ... interactive tests needs to be able to customize the exception set used and it stands to reason that developers will as well ...' id 'ffbcc6d8-d6f8-4365-aa1e-e2e931e0a754' date '12/28/2014' time '08:38:51' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.54' message 'Issue #10: implement GemServer>>interactiveStartServiceOn:' id '482bdc62-5c86-4603-b33b-78a28e7c7314' date '12/28/2014' time '07:42:55' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.53' message 'Issue #10: straighten out interactiveMode operation with respect to exception passing .... fix handling of AlmostOutOfMemory exception with temp stack references in GemServerRemoteServerExample' id '41d9fd46-48c7-4531-9532-d7f5cdbdc1e4' date '12/28/2014' time '07:13:47' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.52' message 'Issue #10: move AlmostOutOtMemory, AlmostOutOfStack, and Break exception dispatching to v30 package' id '2d9d69d6-f3c7-4a6b-9ae8-23b025452ca8' date '12/26/2014' time '13:22:39' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.51' message 'Issue #10: add GemServer>>enableCreateContinuations and disable continuations for all GemServerRemoteServerExampleTests ... run baseline tests ' id '2f7e6ced-31b8-4f17-b0fd-a17d392a24c3' date '12/26/2014' time '08:31:00' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.50' message 'Issue #10: wrap proc with TransientStackValue and enable continuations again ...' id 'ab406ae1-9b32-4bfc-9514-1471deaf5b0c' date '12/26/2014' time '07:53:44' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.49' message 'Issue #10: turn off continuations' id '85ac4544-66d0-4315-af22-b4eacdef42d7' date '12/25/2014' time '21:58:40' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.48' message 'Issue #10: Delay and persistent blocks do not mix' id '95da3073-d3ae-4470-bcc2-c14f602be746' date '12/25/2014' time '15:04:48' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.47' message 'Issue #10: add crashLog to GemServer ... clients can recognize that a gem has crashed and take action...' id '2b3b92a6-cde0-4c9a-8398-412a1c08bcab' date '12/25/2014' time '08:25:23' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.46' message 'Issue #10: disable continuation creation until I find the reference to delay from continuation .... an abort is causing the process to forget the waiters ... bug will be finxed in 23.2.4? ... causing failure in GemServerRemoteServerExampleTests>>test100Tasks' id '149c80db-7920-43f1-ac02-c86cc1253fff' date '12/24/2014' time '23:05:32' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.45' message 'Issue #10: use double dispatching for cutomization of exception handling: exception implements exceptionHandlingForGemServer: to route appropriate message to server. Add AlmostOutOfMemory and AlmostOutOfStack support to GemServer ... add GemServerRemoteServerExampleTests tests for internal server errors, Warning, AlmostOutOfMemory and AlmostOutOfStack' id '9f23e4d9-413d-4934-95c5-f6221e5c5866' date '12/24/2014' time '13:37:20' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.44' message 'Issue #10: expand gemserver api a bit more ... add simple test for GemServerRemoteServerExample and it is passing' id 'a17abea7-f2c8-4b57-a064-ca89c08f8ffc' date '12/23/2014' time '14:01:04' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.43' message 'Issue #10: beef up GemServer>>doComplexTransaction: to include an onCoflictBlock ... GemServer>>doComplexTransaction:onConflict: conflict handling is WHY you use doComplexTransaction:. Allow for exceptionSet customization in gemServer:... gemServerTransaction:... calls and of course add onConflict customization to gemServerTransaction:... calls...GemServerTestServer>>startBasicServerOn: now uses both flavors of gemServer api calls: gemServer:... and gemServerTransaction:...' id '6d46b8e7-a406-4aa4-9e8f-61639f0f5a42' date '12/23/2014' time '12:32:01' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.42' message 'Issue #10: add GemServer>>gemServer: and GemServer>>gemServer:onError: as non-transactional veriants for handling server errors, breakpoints and halts (should satisfy Issue #12)...refactor GemServer>>gemServerTransaction:onError: to use GemServer>>gemServer:onError: ... add GemServer>>handleGemServerException: to isolate server error and interactiveMoe logic ... GemServer>>serverError:titled:inTransactionDo: allows for performing optional work in the same transaction as the continuation ... if one is already in transaction a commit is expected to come from the caller ... started work on an example server as the GemServerTestServer has been sacrificed to being able to test various error conditions and is no longer a clean example ...' id '83ec8997-c97d-4b4d-b54c-be97ed04eb33' date '12/23/2014' time '11:19:30' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.41' message 'Issue #10: add GemServerInteractiveVMTests to test interactiveMode of GemServer, i.e., in interactiveMode exceptions are handled, logged then passed so that developer can bring up a debugger in a development environment ... for those cases when server-side code is being written ...' id 'af09c85e-85f0-48d4-a834-29e141d689f5' date '12/22/2014' time '17:14:06' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.40' message 'Issue #10: internal server error handling ... expanded local and remote tests for internal server errors ... interactiveMode added so that exceptions are passed so that debugger can be used ' id 'a16f7bf3-5f2c-4804-863f-66f7f14b5c55' date '12/22/2014' time '14:01:48' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.39' message 'Issue #10: gearing up to work through interactive debugging transaction support' id '5b23d0e9-fb0c-4f8d-be85-6710410e48f4' date '12/22/2014' time '11:49:18' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.38' message 'Issue #10: fix a GemStone 2.4.x portability problem' id '19fa2ad7-e6cb-4481-98a5-e637b49e49ab' date '12/21/2014' time '19:26:04' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.37' message 'Issue #10: implement GemServerTestServer for running GemServerRemoteVMTests tests .... added several more tests and fixed some bugs in GemServer class>>gemServerTransaction:onError: and friends' id '8afc1307-7b63-4496-95cb-b0cda90083a5' date '12/21/2014' time '19:15:34' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.36' message 'Issue #10: bulding supporting methods for top-level application error handling and error logging ... server errors will be dealt with using separate (to be written) logic (checkpoint)' id 'a160a736-7277-462f-b478-e4b6eb81093a' date '12/21/2014' time '14:19:52' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.35' message 'define GemServer>>performOnServer:status: so that statusGems won''t error out if a gem doesn''t happen to be running ...' id 'ac15b558-6bcf-4248-abcf-940732736797' date '12/20/2014' time '21:47:41' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.34' message 'implement GemServer>>handleBreakpointException: ' id '09b5af03-82fd-4edd-a796-5a48f6aacde9' date '12/16/2014' time '07:13:11' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.33' message 'working on GsDevKit/Seaside31#59 and noticed that the output fro ps was clipped ... losing just the information that I might want to really see from the status command' id '1247e850-48da-42fd-a1af-be9f072486fc' date '12/15/2014' time '15:46:15' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.32' message 'add statusGems command for GemServer ... returns `ps` for processes associated with the ports' id 'cfdb9768-3b02-44c2-b4bd-c15c4254be56' date '12/13/2014' time '17:28:11' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.31' message 'ServiceVmGemServer moved to GsDevKit/ServiceVM project (https://github.com/GsDevKit/ServiceVM/issues/5)' id '339732d4-6e87-4854-9a64-0a8cc40c8501' date '12/13/2014' time '15:58:24' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.30' message 'Move MaintenanceVmGemServer to Seaside project' id '490a16f5-3868-450b-a8ef-3a346cbb9a00' date '12/12/2014' time '09:52:01' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.29' message 'lazy initialization is not good for the GemServer instances, since multiple gems could be spawned from the same GemServer instance which leads to commit conflicts ... ' id '851fbcd5-458d-47ff-8710-0795e6f344f5' date '12/10/2014' time '17:38:02' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.28' message 'pull up some behavior/state from ZnGemServer as I contemplate implementation of SeasideGemServer family (which is being moved to Seaside31 project)' id 'e20c5d30-c795-4514-9cca-c6333a97c614' date '12/10/2014' time '15:18:47' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.27' message 'portString no longer used' id 'b82c1aa0-5110-40a5-bc9b-757d225c9e31' date '12/10/2014' time '11:00:17' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.26' message 'More porting to 2.4.x ... add GemServerLauncherTests for simple test coverage, tODE should be used for the actual breakpoint and object log tests ' id '7ce13042-cf46-46f9-b3f2-26f4ddff24b8' date '12/09/2014' time '16:48:45' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.25' message 'Porting recent GemserverLauncher and friends work to 2.4' id '744c20b4-e439-46e7-b9c5-1e56e287167e' date '12/09/2014' time '14:15:39' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.24' message 'improve logging and make GemServer transaction safe by using TransientSemaphores' id '2d65afde-00f0-44d3-bfee-c707bebce03a' date '12/09/2014' time '09:57:23' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.23' message 'infrastructure changes to make it possible for a server to switch between native and portable code in support of remote breakpoints ...' id '75ba2020-977c-445c-81a1-3c59a6e5527d' date '12/07/2014' time '18:37:17' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.22' message 'Finish up with the remote breakpoint work ... won''t be able to enable this capability until 3.3 at the soonest ...' id '87bb2e41-1e71-4c39-891a-e472cefc1993' date '12/06/2014' time '14:57:45' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.21' message 'GemServer class>>handleBreakpointException: moved to ZnGemServerLogSupport' id 'a2c9d9a8-d677-409f-8c23-b23bdf34907c' date '12/05/2014' time '14:59:46' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.20' message 'use script for both start and stop ... pid files go into GEMSTONE_LOGDIR' id '6acecf92-5b4d-4ba8-9fd8-40d96a238c44' date '12/04/2014' time '08:09:49' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.19' message 'GemServer class>>handleBreakpointException: can be in common class' id 'dd67e194-1598-42b4-864f-a6532878f183' date '12/03/2014' time '16:24:21' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.18' message 'add GemServer register/unregister methods' id '852a3a6e-738a-4e0c-9647-7ccfe77b949c' date '12/03/2014' time '12:28:38' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.17' message 'remove some extraneous logging .. improve start server label' id '926e5364-3af4-463f-a47a-ec4f64066da8' date '11/30/2014' time '11:52:31' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.16' message 'add strategic object logging to aid in debugging GemServer processing' id 'acf24638-1085-4742-a68e-36c4b8724f16' date '11/30/2014' time '09:21:29' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.15' message 'Issue #2: change GemServer>>defaultScriptBinDirPath to directly access GemServer class, so that subclasses in different projects can still find the script' id '6043a78a-19aa-4760-9367-c4f8b70a5e82' date '11/29/2014' time '20:10:03' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.14' message 'Issue #2: GemServer>>enableRemoteBreakpointHandling is platform-specific as well' id '8e013040-0af2-4b22-bf00-76fa155060d3' date '11/29/2014' time '19:39:46' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.13' message 'Issue #2: split out GemServer>>performOnServer: into separate 2.4 and 3.x packages ... add new packages and update baseline' id '1270825e-9e4b-480c-95ba-89af92443ce6' date '11/29/2014' time '19:14:19' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.12' message 'Issue #2: adjustments for testing' id '0c523ab6-f8f4-4517-b8c4-8c47e683f48c' date '11/29/2014' time '14:48:13' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.11' message 'Issue #2: start/stop/restart appears to be working but I don''t like the level of feedback ... need status command that looks at pid and verifies that pid is there and perhaps some other status information...' id 'ed1d63d6-d88b-4ec0-8690-91cf0dc122ba' date '11/29/2014' time '14:24:04' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.10' message 'issue #2: [ci skip] checkpoint .. preparing for first script tests' id '2cd572d2-e096-4d29-a44d-2b9611c1c651' date '11/29/2014' time '11:42:19' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.9' message 'Issue #2: get ready to run scripts ... add test' id '69489d7e-d2e5-45fb-807b-dc0ebf625cbd' date '11/29/2014' time '09:49:21' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.8' message 'Issue #2: continue move towards GemServer centric design ... with GemServer class>>register:for:on: as the center piece' id '6fb8ce02-0f34-48a1-88f8-13518a567990' date '11/29/2014' time '09:07:49' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.7' message 'Issue #2: get tests passing?' id '7a39f9cf-f346-443b-85bb-df06c8999146' date '11/26/2014' time '22:02:56' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.6' message 'Issue #2: get rid of GemServer portInstance variable ... not really necessary' id '33b9790d-0fe6-448d-b307-2849898f89dc' date '11/26/2014' time '20:12:20' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.5' message 'Issue #2: remove the GemServerStarter classes .... refactor start logic to send startGems, restartGems and stopGems directory to the GemServer instance ... return GemServer instance when created, so that inline start and stop logic can be done without requiring lookup...' id 'd5daf1e3-d581-4a5c-8279-ecc26e65482f' date '11/26/2014' time '20:00:55' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.3' message 'Issue #2: incorporated the "server boilerplate" Smalltalk code from startSeaside30_Adaptor ... push a bunch of stuff around ...' id 'fbb1b950-b097-46da-bff4-c30718ff0445' date '11/26/2014' time '19:29:18' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.2' message 'Issue #2: + +Taking approach where instead of subclassing GemServerStarter, subclass GemServer ... then we can do direct customization of the various bits and pieces that need customization on run ... and pass any interesting state via the script call ... script location etc. can be specified by the subclass ... + +Added tests for validating the basic api' id '17c9ab9b-23fe-4849-9e8b-ecfed9e3eb62' date '11/26/2014' time '17:01:21' author 'dkh' ancestors ((name 'GsApplicationTools-Server-dkh.1' message 'Issue #2: rename Application-Server-Tools to GsApplicationTools-Server ... also doing a bit of restructuring' id '0b8a0237-7f35-46cc-978b-3cfa12e1b55b' date '11/26/2014' time '14:27:25' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/GsApplicationTools-ServerV30.package/GemServerLauncher.extension/instance/convertToPortable.st b/repository/GsApplicationTools-ServerV30.package/GemServerLauncher.extension/instance/convertToPortable.st index 73ae3cd..1a5bc97 100644 --- a/repository/GsApplicationTools-ServerV30.package/GemServerLauncher.extension/instance/convertToPortable.st +++ b/repository/GsApplicationTools-ServerV30.package/GemServerLauncher.extension/instance/convertToPortable.st @@ -7,7 +7,7 @@ convertToPortable activeProcess := ProcessorScheduler scheduler activeProcess. [ activeProcess localStackDepth. - activeProcess _convertToPortableStack. + activeProcess convertToPortableStack. sema signal ] fork. sema wait \ No newline at end of file diff --git a/repository/GsApplicationTools-ServerV30.package/GemServerLauncher.extension/methodProperties.json b/repository/GsApplicationTools-ServerV30.package/GemServerLauncher.extension/methodProperties.json index ef9de24..73ebf05 100644 --- a/repository/GsApplicationTools-ServerV30.package/GemServerLauncher.extension/methodProperties.json +++ b/repository/GsApplicationTools-ServerV30.package/GemServerLauncher.extension/methodProperties.json @@ -2,4 +2,4 @@ "class" : { "activeProcessIsNative" : "dkh 12/09/2014 14:21" }, "instance" : { - "convertToPortable" : "dkh 12/08/2014 13:47" } } + "convertToPortable" : "dkh 07/15/2015 16:58" } } diff --git a/repository/GsApplicationTools-ServerV30.package/monticello.meta/version b/repository/GsApplicationTools-ServerV30.package/monticello.meta/version index c33e3cc..09c80e9 100644 --- a/repository/GsApplicationTools-ServerV30.package/monticello.meta/version +++ b/repository/GsApplicationTools-ServerV30.package/monticello.meta/version @@ -1 +1 @@ -(name 'GsApplicationTools-ServerV30-dkh.27' message 'Issue #58: checkpoint while working through @rjsargent (very thorough) document review' id 'af6e58c9-e28a-47dc-895f-192396d9e889' date '01/06/2015' time '17:07:33' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.26' message 'Issue #10: fiddle with test strcuture ... gather more information about the random failures ... (fail on travis, but not locally)' id '1e4cf801-f3e1-486f-9258-166072a60826' date '01/01/2015' time '11:20:34' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.25' message 'Issue #10: implement (and use) GemServer>>doInteractiveModePass:' id '55a84e63-f219-4605-93c6-73f98eb7308a' date '12/31/2014' time '21:23:50' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.24' message 'Issue #10: straighten out interactiveMode operation with respect to exception passing .... fix handling of AlmostOutOfMemory exception with temp stack references in GemServerRemoteServerExample' id '21b556de-c5cd-4c4a-a832-0f1a86df35f3' date '12/28/2014' time '07:13:48' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.23' message 'Issue #10: move AlmostOutOtMemory, AlmostOutOfStack, and Break exception dispatching to v30 package' id '4a21e467-752b-4778-a414-759df50fd169' date '12/26/2014' time '13:22:39' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.22' message 'Issue #10: 3.0 portability for AlmostOutOfMemory' id '91d478a7-9227-459e-b694-2c9e7797835d' date '12/24/2014' time '14:31:40' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.21' message 'Issue #10: use double dispatching for cutomization of exception handling: exception implements exceptionHandlingForGemServer: to route appropriate message to server. Add AlmostOutOfMemory and AlmostOutOfStack support to GemServer ... add GemServerRemoteServerExampleTests tests for internal server errors, Warning, AlmostOutOfMemory and AlmostOutOfStack' id 'c4e45fc7-073c-446a-b521-0fc97323fdb6' date '12/24/2014' time '13:37:20' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.20' message 'Issue #10: add GemServer>>gemServer: and GemServer>>gemServer:onError: as non-transactional veriants for handling server errors, breakpoints and halts (should satisfy Issue #12)...refactor GemServer>>gemServerTransaction:onError: to use GemServer>>gemServer:onError: ... add GemServer>>handleGemServerException: to isolate server error and interactiveMoe logic ... GemServer>>serverError:titled:inTransactionDo: allows for performing optional work in the same transaction as the continuation ... if one is already in transaction a commit is expected to come from the caller ... started work on an example server as the GemServerTestServer has been sacrificed to being able to test various error conditions and is no longer a clean example ...' id '35d0b7be-3357-47d9-b037-ea6aca5fad2b' date '12/23/2014' time '11:19:30' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.19' message 'Issue #10: internal server error handling ... expanded local and remote tests for internal server errors ... interactiveMode added so that exceptions are passed so that debugger can be used ' id '7513b713-e3d9-4b98-9ab8-d5e003459e5e' date '12/22/2014' time '14:01:49' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.18' message 'define GemServer>>performOnServer:status: so that statusGems won''t error out if a gem doesn''t happen to be running ...' id 'b9e11f4b-e94b-49fc-8b19-2391ccfa5c08' date '12/20/2014' time '21:47:42' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.17' message 'rename breakpointExceptionSet to gemServerExceptionSet' id '0f5ab0f0-906d-46cd-ae19-634f5123d6d1' date '12/20/2014' time '13:36:56' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.16' message 'Issue #59: error message not using error informatino from System class>._performOnServer: ... not very helpful' id 'ae4f1db4-4cf1-4e00-a2d5-22d3d981d934' date '12/15/2014' time '16:49:55' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.15' message 'add statusGems command for GemServer ... returns `ps` for processes associated with the ports' id '9344d3f2-b87d-4a34-a3f2-e0af58c47d9b' date '12/13/2014' time '17:28:11' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.14' message 'Include Break in the list of exceptions to snap off continuations for (and resume) in GemServer class>>breakpointExceptionSet for 3.x only' id 'cffea95e-18f6-4824-9ab9-da147486c0ca' date '12/11/2014' time '06:51:27' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.13' message 'lazy initialization is not good for the GemServer instances, since multiple gems could be spawned from the same GemServer instance which leads to commit conflicts ... ' id 'd59f8c28-3dde-4b1b-b087-1a3243220288' date '12/10/2014' time '17:38:03' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.12' message 'More porting to 2.4.x ... add GemServerLauncherTests for simple test coverage, tODE should be used for the actual breakpoint and object log tests ' id '40e5b866-b184-416b-b4f6-4a62f68ecbc3' date '12/09/2014' time '16:48:45' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.11' message 'Porting recent GemserverLauncher and friends work to 2.4' id '7a72f001-ec79-4d3d-8151-a12626650adb' date '12/09/2014' time '14:15:39' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.10' message 'improve logging and make GemServer transaction safe by using TransientSemaphores' id 'd36f80a3-6fcc-42d4-baff-8d0e3d035c73' date '12/09/2014' time '09:57:23' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.9' message 'infrastructure changes to make it possible for a server to switch between native and portable code in support of remote breakpoints ...' id '5eb2f361-fc13-4fa7-a53d-154b95ef33d1' date '12/07/2014' time '18:37:17' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.8' message 'Finish up with the remote breakpoint work ... won''t be able to enable this capability until 3.3 at the soonest ...' id '2448e1ee-648b-4e2f-841d-89d3aa11e3c6' date '12/06/2014' time '14:57:46' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.7' message 'GemServer class>>handleBreakpointException: can be in common class' id 'c4647b6e-92ba-4cdf-a178-0a8fa0da4863' date '12/03/2014' time '16:24:21' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.6' message 'Let''s create continuations for only Halt and Breakpoint ...' id '08aa16f1-09dc-4c6a-b313-136d47c59049' date '12/03/2014' time '16:13:50' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.5' message 'add GemServer register/unregister methods' id 'be9b111a-ea1f-445f-927e-c1ee9ffa53dc' date '12/03/2014' time '12:28:38' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.4' message 'remove some extraneous logging .. improve start server label' id '261dd58a-22b6-4f33-82fc-06ef4de1898b' date '11/30/2014' time '11:52:32' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.3' message 'add strategic object logging to aid in debugging GemServer processing' id '22f18935-a964-4f9b-b2e4-90f2777f2d03' date '11/30/2014' time '09:21:29' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.2' message 'Issue #2: GemServer>>enableRemoteBreakpointHandling is platform-specific as well' id '110b2f05-6165-4738-95f2-2a99fb98c001' date '11/29/2014' time '19:39:46' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.1' message 'split out GemServer>>performOnServer: for GemStone 3.x' id 'dd6e8497-ff11-4ab8-acf0-0390a193c04e' date '11/29/2014' time '19:10:24' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'GsApplicationTools-ServerV30-dkh.28' message 'Issue #35: implement GsProcess>>convertToPortableStack for GemStone versions 3.0 thru 3.2 in package GsApplicationTools-ServerExtensionsV30' id '91fb9515-f7d2-4d6a-909b-f5649b859c01' date '07/15/2015' time '17:06:38' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.27' message 'Issue #58: checkpoint while working through @rjsargent (very thorough) document review' id 'af6e58c9-e28a-47dc-895f-192396d9e889' date '01/06/2015' time '17:07:33' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.26' message 'Issue #10: fiddle with test strcuture ... gather more information about the random failures ... (fail on travis, but not locally)' id '1e4cf801-f3e1-486f-9258-166072a60826' date '01/01/2015' time '11:20:34' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.25' message 'Issue #10: implement (and use) GemServer>>doInteractiveModePass:' id '55a84e63-f219-4605-93c6-73f98eb7308a' date '12/31/2014' time '21:23:50' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.24' message 'Issue #10: straighten out interactiveMode operation with respect to exception passing .... fix handling of AlmostOutOfMemory exception with temp stack references in GemServerRemoteServerExample' id '21b556de-c5cd-4c4a-a832-0f1a86df35f3' date '12/28/2014' time '07:13:48' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.23' message 'Issue #10: move AlmostOutOtMemory, AlmostOutOfStack, and Break exception dispatching to v30 package' id '4a21e467-752b-4778-a414-759df50fd169' date '12/26/2014' time '13:22:39' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.22' message 'Issue #10: 3.0 portability for AlmostOutOfMemory' id '91d478a7-9227-459e-b694-2c9e7797835d' date '12/24/2014' time '14:31:40' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.21' message 'Issue #10: use double dispatching for cutomization of exception handling: exception implements exceptionHandlingForGemServer: to route appropriate message to server. Add AlmostOutOfMemory and AlmostOutOfStack support to GemServer ... add GemServerRemoteServerExampleTests tests for internal server errors, Warning, AlmostOutOfMemory and AlmostOutOfStack' id 'c4e45fc7-073c-446a-b521-0fc97323fdb6' date '12/24/2014' time '13:37:20' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.20' message 'Issue #10: add GemServer>>gemServer: and GemServer>>gemServer:onError: as non-transactional veriants for handling server errors, breakpoints and halts (should satisfy Issue #12)...refactor GemServer>>gemServerTransaction:onError: to use GemServer>>gemServer:onError: ... add GemServer>>handleGemServerException: to isolate server error and interactiveMoe logic ... GemServer>>serverError:titled:inTransactionDo: allows for performing optional work in the same transaction as the continuation ... if one is already in transaction a commit is expected to come from the caller ... started work on an example server as the GemServerTestServer has been sacrificed to being able to test various error conditions and is no longer a clean example ...' id '35d0b7be-3357-47d9-b037-ea6aca5fad2b' date '12/23/2014' time '11:19:30' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.19' message 'Issue #10: internal server error handling ... expanded local and remote tests for internal server errors ... interactiveMode added so that exceptions are passed so that debugger can be used ' id '7513b713-e3d9-4b98-9ab8-d5e003459e5e' date '12/22/2014' time '14:01:49' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.18' message 'define GemServer>>performOnServer:status: so that statusGems won''t error out if a gem doesn''t happen to be running ...' id 'b9e11f4b-e94b-49fc-8b19-2391ccfa5c08' date '12/20/2014' time '21:47:42' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.17' message 'rename breakpointExceptionSet to gemServerExceptionSet' id '0f5ab0f0-906d-46cd-ae19-634f5123d6d1' date '12/20/2014' time '13:36:56' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.16' message 'Issue #59: error message not using error informatino from System class>._performOnServer: ... not very helpful' id 'ae4f1db4-4cf1-4e00-a2d5-22d3d981d934' date '12/15/2014' time '16:49:55' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.15' message 'add statusGems command for GemServer ... returns `ps` for processes associated with the ports' id '9344d3f2-b87d-4a34-a3f2-e0af58c47d9b' date '12/13/2014' time '17:28:11' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.14' message 'Include Break in the list of exceptions to snap off continuations for (and resume) in GemServer class>>breakpointExceptionSet for 3.x only' id 'cffea95e-18f6-4824-9ab9-da147486c0ca' date '12/11/2014' time '06:51:27' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.13' message 'lazy initialization is not good for the GemServer instances, since multiple gems could be spawned from the same GemServer instance which leads to commit conflicts ... ' id 'd59f8c28-3dde-4b1b-b087-1a3243220288' date '12/10/2014' time '17:38:03' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.12' message 'More porting to 2.4.x ... add GemServerLauncherTests for simple test coverage, tODE should be used for the actual breakpoint and object log tests ' id '40e5b866-b184-416b-b4f6-4a62f68ecbc3' date '12/09/2014' time '16:48:45' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.11' message 'Porting recent GemserverLauncher and friends work to 2.4' id '7a72f001-ec79-4d3d-8151-a12626650adb' date '12/09/2014' time '14:15:39' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.10' message 'improve logging and make GemServer transaction safe by using TransientSemaphores' id 'd36f80a3-6fcc-42d4-baff-8d0e3d035c73' date '12/09/2014' time '09:57:23' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.9' message 'infrastructure changes to make it possible for a server to switch between native and portable code in support of remote breakpoints ...' id '5eb2f361-fc13-4fa7-a53d-154b95ef33d1' date '12/07/2014' time '18:37:17' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.8' message 'Finish up with the remote breakpoint work ... won''t be able to enable this capability until 3.3 at the soonest ...' id '2448e1ee-648b-4e2f-841d-89d3aa11e3c6' date '12/06/2014' time '14:57:46' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.7' message 'GemServer class>>handleBreakpointException: can be in common class' id 'c4647b6e-92ba-4cdf-a178-0a8fa0da4863' date '12/03/2014' time '16:24:21' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.6' message 'Let''s create continuations for only Halt and Breakpoint ...' id '08aa16f1-09dc-4c6a-b313-136d47c59049' date '12/03/2014' time '16:13:50' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.5' message 'add GemServer register/unregister methods' id 'be9b111a-ea1f-445f-927e-c1ee9ffa53dc' date '12/03/2014' time '12:28:38' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.4' message 'remove some extraneous logging .. improve start server label' id '261dd58a-22b6-4f33-82fc-06ef4de1898b' date '11/30/2014' time '11:52:32' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.3' message 'add strategic object logging to aid in debugging GemServer processing' id '22f18935-a964-4f9b-b2e4-90f2777f2d03' date '11/30/2014' time '09:21:29' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.2' message 'Issue #2: GemServer>>enableRemoteBreakpointHandling is platform-specific as well' id '110b2f05-6165-4738-95f2-2a99fb98c001' date '11/29/2014' time '19:39:46' author 'dkh' ancestors ((name 'GsApplicationTools-ServerV30-dkh.1' message 'split out GemServer>>performOnServer: for GemStone 3.x' id 'dd6e8497-ff11-4ab8-acf0-0390a193c04e' date '11/29/2014' time '19:10:24' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/startGems..st b/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/startGems..st index 33c4cb8..d183c94 100644 --- a/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/startGems..st +++ b/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/startGems..st @@ -6,4 +6,8 @@ startGems: gemServer self notify: 'evaluate on server: abort; /home/gemserver/example --start=Test_Server' ] - ifFalse: [ gemServer startGems ] \ No newline at end of file + ifFalse: [ + gemServer startGems. + self + waitForGemServer: gemServer + message: 'Gems did not start ' , self gemServerName ] \ No newline at end of file diff --git a/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/stopGems..st b/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/stopGems..st index e82abc1..4d27689 100644 --- a/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/stopGems..st +++ b/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/stopGems..st @@ -1,6 +1,4 @@ private stopGems: gemServer self staticRemoteServer - ifFalse: [ - gemServer stopGems. - (Delay forSeconds: 3) wait ] \ No newline at end of file + ifFalse: [ gemServer stopGems ] \ No newline at end of file diff --git a/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/waitForGemServer.message..st b/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/waitForGemServer.message..st new file mode 100644 index 0000000..8006284 --- /dev/null +++ b/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/waitForGemServer.message..st @@ -0,0 +1,8 @@ +private +waitForGemServer: gemServer message: message + (gemServer waitForStartGems: 20) + ifFalse: [ + Transcript + cr; + show: message. + self assert: false ] \ No newline at end of file diff --git a/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/methodProperties.json b/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/methodProperties.json index 08e6980..535566f 100644 --- a/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/methodProperties.json +++ b/repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/methodProperties.json @@ -8,7 +8,8 @@ "instance" : { "createGemServer" : "dkh 01/09/2015 14:05", "interactiveRemoteServer" : "dkh 01/09/2015 14:02", - "startGems:" : "dkh 01/09/2015 14:08", + "startGems:" : "dkh 05/28/2015 01:26", "staticRemoteServer" : "dkh 01/09/2015 14:03", - "stopGems:" : "dkh 01/09/2015 14:08", - "testForceBeginTransaction" : "dkh 01/09/2015 14:08" } } + "stopGems:" : "dkh 05/28/2015 01:05", + "testForceBeginTransaction" : "dkh 01/09/2015 14:08", + "waitForGemServer:message:" : "dkh 05/28/2015 01:25" } } diff --git a/repository/GsApplicationTools-Test.package/MockGemServer.class/instance/useEventLog..st b/repository/GsApplicationTools-Test.package/MockGemServer.class/instance/useEventLog..st index 4481101..e6e2303 100644 --- a/repository/GsApplicationTools-Test.package/MockGemServer.class/instance/useEventLog..st +++ b/repository/GsApplicationTools-Test.package/MockGemServer.class/instance/useEventLog..st @@ -1,4 +1,4 @@ accessing useEventLog: anObject - useEventLog := anObject + useEventLog := anObject \ No newline at end of file diff --git a/repository/GsApplicationTools-Test.package/monticello.meta/version b/repository/GsApplicationTools-Test.package/monticello.meta/version index ab2eff9..444ccc9 100644 --- a/repository/GsApplicationTools-Test.package/monticello.meta/version +++ b/repository/GsApplicationTools-Test.package/monticello.meta/version @@ -1 +1,5 @@ -(name 'GsApplicationTools-Test-dkh.41' message 'Issue #16: add a transactional test case ... ' id 'dab44f5a-f634-4bb0-8d9e-9a14e52c074f' date '01/12/2015' time '08:38:39' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.40' message 'Issue #16: isolate source of test errors (use of doTransaction while inTransaction) ... fix it and restore some code erroneously removed and cross fingers' id 'a4ef9321-75f6-4751-bd05-d75d6561ae06' date '01/09/2015' time '17:23:05' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.39' message 'Issue #16: checkpoint GemServerTests>>testReentrantTransactionError plus test cleanup ' id 'dcf59e12-a786-4d6a-8a46-1d26d6702a94' date '01/09/2015' time '16:35:18' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.38' message 'Issue #16: avoid reentering transactionDo: in GemServerInteractiveVMTests>>testError ... special case' id 'a2951444-a52d-407b-b6d3-6939282314f9' date '01/09/2015' time '15:48:52' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.37' message 'Issue #16: setup GemServerRemoteVMTests for static remote server tests (allow for server-side debugging in a tODE client) and fix a basic bug in reentry logic ... still no reentrant tests' id '90c12089-4348-4f7c-96f7-0d7dac03242b' date '01/09/2015' time '14:25:12' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.36' message 'more work on replace use of ports with portOrResourceNameList' id '075c0c92-1b5a-423c-9b3c-76acd5457bee' date '01/06/2015' time '16:18:11' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.35' message 'replace use of ports with portOrResourceNameList, since some gem servers are not port-based ... yet we need a unique id to identify the gem server instances ..' id 'a9fb05a8-f86b-4f88-8834-c1e49cf2ff68' date '01/06/2015' time '15:39:57' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.34' message 'address some test errors' id 'cb7f36cd-1cb5-4ac1-b642-549cb656f156' date '01/06/2015' time '14:10:01' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.33' message 'Make GemServerRegistry a second class object by moving interesting protocol to GemServer' id 'c234943d-547e-4e27-907e-84c8c47f56c9' date '01/06/2015' time '13:45:20' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.32' message 'Issue #10: a bit more streamlining of the gemserver api' id '7fb5e679-456f-4d3b-8104-4c54971d6268' date '01/03/2015' time '20:20:03' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.31' message 'Issue #10: convert startBasicServerOn: to basicServerOn: ... basicServerOn: is now the method that should be subclassed' id '35dbfd93-b887-4d92-b610-071d3f325f96' date '01/02/2015' time '17:54:03' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.30' message 'Issue #10: move basicServerProcess up to GemServer ...' id '2ead4e7f-6196-42f0-9a52-52b70778efb0' date '01/02/2015' time '17:38:02' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.29' message 'Issue #10: address testForceInternalServerError and testForceInternalServerError failures' id 'ebec0e7b-f540-40c5-8ac6-097109deb940' date '12/31/2014' time '13:53:52' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.28' message 'Issue #10: clean up sent but not implemented ... fix GemServerInteractiveVMTests test failures' id '3397c009-e44d-4e72-b55d-5d2de0062365' date '12/31/2014' time '13:02:41' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.27' message 'Issue #10: rename gemServer:* selectors to use beforeUnwind: instead of onError:' id '402c8e0d-6756-460c-a0dc-30c6aa70eec3' date '12/30/2014' time '12:27:10' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.26' message 'Issue #10: implement GemServer>>doBasicTransaction:, GemServer>>doTransaction:, and GemServer>>doTransaction:onConflict: to replace GemServer>>doSimpleTransaction: and GemServer>>doComplexTransaction:onConflict: ... ongoing docs work' id '47acc869-f34a-40f8-bd68-d9453989ad2f' date '12/30/2014' time '07:34:41' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.25' message 'Issue #10: should finally have GemServerInteractiveVMTests>>setUp back in shape...' id '3367f19f-6061-42a8-a9dc-c246011b02b6' date '12/28/2014' time '09:01:03' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.24' message 'Issue #10: pull gemServerExceptionSet iv up to GemServer ... interactive tests needs to be able to customize the exception set used and it stands to reason that developers will as well ...' id '097d8235-4f01-4c74-9c2b-e9c3294337f1' date '12/28/2014' time '08:38:51' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.23' message 'Issue #10: change baseline to require GLASS1...clean up sent but not implemented' id '1d058570-d537-408d-a4ff-1640217c0bef' date '12/26/2014' time '12:05:26' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.22' message 'Issue #10: beef up GemServer>>doComplexTransaction: to include an onCoflictBlock ... GemServer>>doComplexTransaction:onConflict: conflict handling is WHY you use doComplexTransaction:. Allow for exceptionSet customization in gemServer:... gemServerTransaction:... calls and of course add onConflict customization to gemServerTransaction:... calls...GemServerTestServer>>startBasicServerOn: now uses both flavors of gemServer api calls: gemServer:... and gemServerTransaction:...' id '71db5790-d413-46fe-ad95-792ac58b66b8' date '12/23/2014' time '12:32:01' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.21' message 'Issue #10: add GemServer>>gemServer: and GemServer>>gemServer:onError: as non-transactional veriants for handling server errors, breakpoints and halts (should satisfy Issue #12)...refactor GemServer>>gemServerTransaction:onError: to use GemServer>>gemServer:onError: ... add GemServer>>handleGemServerException: to isolate server error and interactiveMoe logic ... GemServer>>serverError:titled:inTransactionDo: allows for performing optional work in the same transaction as the continuation ... if one is already in transaction a commit is expected to come from the caller ... started work on an example server as the GemServerTestServer has been sacrificed to being able to test various error conditions and is no longer a clean example ...' id 'a777493a-51de-40a4-b7d3-5019d2252ddd' date '12/23/2014' time '11:19:30' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.20' message 'Issue #10: add GemServerInteractiveVMTests to test interactiveMode of GemServer, i.e., in interactiveMode exceptions are handled, logged then passed so that developer can bring up a debugger in a development environment ... for those cases when server-side code is being written ...' id '0eb302df-aa08-46ae-9223-72e0fd4702b4' date '12/22/2014' time '17:14:06' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.19' message 'Issue #10: internal server error handling ... expanded local and remote tests for internal server errors ... interactiveMode added so that exceptions are passed so that debugger can be used ' id '1e4bc30f-7578-42de-b931-ec41009543a3' date '12/22/2014' time '14:01:49' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.18' message 'Issue #10: gearing up to work through interactive debugging transaction support' id '9b929f60-3f93-44fd-9236-de1115259c8f' date '12/22/2014' time '11:49:18' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.17' message 'Issue #10: 2.4.x portability ...' id '6932f2db-e550-462a-99f1-8c76da8dab69' date '12/22/2014' time '10:17:32' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.16' message 'Issue #10: implement GemServerTestServer for running GemServerRemoteVMTests tests .... added several more tests and fixed some bugs in GemServer class>>gemServerTransaction:onError: and friends' id '6bae3b41-f9b1-4f6a-8854-a156711ceb74' date '12/21/2014' time '19:15:35' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.15' message 'fix test error' id '0cfee396-6e70-42c4-917b-b4d4aac80330' date '12/13/2014' time '17:38:02' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.14' message 'add statusGems command for GemServer ... returns `ps` for processes associated with the ports' id '5c266914-27f6-4eb4-9a76-cad155e67aa4' date '12/13/2014' time '17:28:11' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.13' message 'More porting to 2.4.x ... add GemServerLauncherTests for simple test coverage, tODE should be used for the actual breakpoint and object log tests ' id 'cdf57f8b-1f65-4b96-a58c-2de0c6f252a9' date '12/09/2014' time '16:48:45' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.12' message 'Issue #2: fix mistake in test' id '3a07e302-7a07-4ece-9768-114ba57f4e40' date '11/29/2014' time '18:22:04' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.11' message 'Issue #2: get the GemServerRemoteVMTests>>testStart test to function ' id '62ad1a30-c7a6-4907-baee-542a534c73a7' date '11/29/2014' time '18:16:14' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.10' message 'Issue #2: add remote vm test' id '73290117-3cfa-4112-b3fb-d81034b00ae6' date '11/29/2014' time '15:07:48' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.9' message 'Issue #2: adjustments for testing' id 'f75b38ed-0717-4895-9995-c83b76e6341f' date '11/29/2014' time '14:48:13' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.8' message 'Issue #2: start/stop/restart appears to be working but I don''t like the level of feedback ... need status command that looks at pid and verifies that pid is there and perhaps some other status information...' id 'b6f523ee-5da7-4b19-8e2e-8ce1198d471a' date '11/29/2014' time '14:24:04' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.7' message 'issue #2: [ci skip] checkpoint .. preparing for first script tests' id '74620772-ec63-42b5-b64c-e677f6122007' date '11/29/2014' time '11:42:20' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.6' message 'Issue #2: get ready to run scripts ... add test' id 'b79e09e2-62a0-4f6b-8a4b-b85fcc9b9e17' date '11/29/2014' time '09:49:22' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.5' message 'Issue #2: continue move towards GemServer centric design ... with GemServer class>>register:for:on: as the center piece' id '2fd99139-bbe8-4039-a3e7-4c60094a002c' date '11/29/2014' time '09:07:50' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.4' message 'Issue #2: get rid of GemServer portInstance variable ... not really necessary' id 'e5a5ac07-e90e-4af7-936b-b2568f6f9082' date '11/26/2014' time '20:12:20' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.3' message 'Issue #2: incorporated the "server boilerplate" Smalltalk code from startSeaside30_Adaptor ... push a bunch of stuff around ...' id 'aed37ec0-331f-45ff-af57-05edc4205308' date '11/26/2014' time '19:29:19' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.2' message 'Issue #2: Taking approach where instead of subclassing GemServerStarter, subclass GemServer ... then we can do direct customization of the various bits and pieces that need customization on run ... and pass any interesting state via the script call ... script location etc. can be specified by the subclass ... Added tests for validating the basic api' id '373d6136-05ff-4c01-a96f-ad233a82912e' date '11/26/2014' time '17:01:21' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.1' message 'Issue #2: add a tests package ... stub of test' id '2760d97c-bfa7-4373-9bb8-60c5da12f177' date '11/26/2014' time '14:28:11' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'GsApplicationTools-Test-dkh.43' message 'fix up GemServerRemoteVMTests ' id '9fe9b920-8045-404d-8f19-804bdda2ebdd' date '05/28/2015' time '01:30:21' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.42' message 'add GemServer>>waitForStartGems: calls to tests' id '3f299f33-641f-4340-88ba-d2dcd8df2a4d' date '05/28/2015' time '01:12:02' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.41' message 'Issue #16: add a transactional test case ... ' id 'dab44f5a-f634-4bb0-8d9e-9a14e52c074f' date '01/12/2015' time '08:38:39' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.40' message 'Issue #16: isolate source of test errors (use of doTransaction while inTransaction) ... fix it and restore some code erroneously removed and cross fingers' id 'a4ef9321-75f6-4751-bd05-d75d6561ae06' date '01/09/2015' time '17:23:05' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.39' message 'Issue #16: checkpoint GemServerTests>>testReentrantTransactionError plus test cleanup ' id 'dcf59e12-a786-4d6a-8a46-1d26d6702a94' date '01/09/2015' time '16:35:18' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.38' message 'Issue #16: avoid reentering transactionDo: in GemServerInteractiveVMTests>>testError ... special case' id 'a2951444-a52d-407b-b6d3-6939282314f9' date '01/09/2015' time '15:48:52' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.37' message 'Issue #16: setup GemServerRemoteVMTests for static remote server tests (allow for server-side debugging in a tODE client) and fix a basic bug in reentry logic ... still no reentrant tests' id '90c12089-4348-4f7c-96f7-0d7dac03242b' date '01/09/2015' time '14:25:12' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.36' message 'more work on replace use of ports with portOrResourceNameList' id '075c0c92-1b5a-423c-9b3c-76acd5457bee' date '01/06/2015' time '16:18:11' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.35' message 'replace use of ports with portOrResourceNameList, since some gem servers are not port-based ... yet we need a unique id to identify the gem server instances ..' id 'a9fb05a8-f86b-4f88-8834-c1e49cf2ff68' date '01/06/2015' time '15:39:57' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.34' message 'address some test errors' id 'cb7f36cd-1cb5-4ac1-b642-549cb656f156' date '01/06/2015' time '14:10:01' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.33' message 'Make GemServerRegistry a second class object by moving interesting protocol to GemServer' id 'c234943d-547e-4e27-907e-84c8c47f56c9' date '01/06/2015' time '13:45:20' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.32' message 'Issue #10: a bit more streamlining of the gemserver api' id '7fb5e679-456f-4d3b-8104-4c54971d6268' date '01/03/2015' time '20:20:03' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.31' message 'Issue #10: convert startBasicServerOn: to basicServerOn: ... basicServerOn: is now the method that should be subclassed' id '35dbfd93-b887-4d92-b610-071d3f325f96' date '01/02/2015' time '17:54:03' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.30' message 'Issue #10: move basicServerProcess up to GemServer ...' id '2ead4e7f-6196-42f0-9a52-52b70778efb0' date '01/02/2015' time '17:38:02' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.29' message 'Issue #10: address testForceInternalServerError and testForceInternalServerError failures' id 'ebec0e7b-f540-40c5-8ac6-097109deb940' date '12/31/2014' time '13:53:52' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.28' message 'Issue #10: clean up sent but not implemented ... fix GemServerInteractiveVMTests test failures' id '3397c009-e44d-4e72-b55d-5d2de0062365' date '12/31/2014' time '13:02:41' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.27' message 'Issue #10: rename gemServer:* selectors to use beforeUnwind: instead of onError:' id '402c8e0d-6756-460c-a0dc-30c6aa70eec3' date '12/30/2014' time '12:27:10' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.26' message 'Issue #10: implement GemServer>>doBasicTransaction:, GemServer>>doTransaction:, and GemServer>>doTransaction:onConflict: to replace GemServer>>doSimpleTransaction: and GemServer>>doComplexTransaction:onConflict: ... ongoing docs work' id '47acc869-f34a-40f8-bd68-d9453989ad2f' date '12/30/2014' time '07:34:41' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.25' message 'Issue #10: should finally have GemServerInteractiveVMTests>>setUp back in shape...' id '3367f19f-6061-42a8-a9dc-c246011b02b6' date '12/28/2014' time '09:01:03' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.24' message 'Issue #10: pull gemServerExceptionSet iv up to GemServer ... interactive tests needs to be able to customize the exception set used and it stands to reason that developers will as well ...' id '097d8235-4f01-4c74-9c2b-e9c3294337f1' date '12/28/2014' time '08:38:51' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.23' message 'Issue #10: change baseline to require GLASS1...clean up sent but not implemented' id '1d058570-d537-408d-a4ff-1640217c0bef' date '12/26/2014' time '12:05:26' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.22' message 'Issue #10: beef up GemServer>>doComplexTransaction: to include an onCoflictBlock ... GemServer>>doComplexTransaction:onConflict: conflict handling is WHY you use doComplexTransaction:. Allow for exceptionSet customization in gemServer:... gemServerTransaction:... calls and of course add onConflict customization to gemServerTransaction:... calls...GemServerTestServer>>startBasicServerOn: now uses both flavors of gemServer api calls: gemServer:... and gemServerTransaction:...' id '71db5790-d413-46fe-ad95-792ac58b66b8' date '12/23/2014' time '12:32:01' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.21' message 'Issue #10: add GemServer>>gemServer: and GemServer>>gemServer:onError: as non-transactional veriants for handling server errors, breakpoints and halts (should satisfy Issue #12)...refactor GemServer>>gemServerTransaction:onError: to use GemServer>>gemServer:onError: ... add GemServer>>handleGemServerException: to isolate server error and interactiveMoe logic ... GemServer>>serverError:titled:inTransactionDo: allows for performing optional work in the same transaction as the continuation ... if one is already in transaction a commit is expected to come from the caller ... started work on an example server as the GemServerTestServer has been sacrificed to being able to test various error conditions and is no longer a clean example ...' id 'a777493a-51de-40a4-b7d3-5019d2252ddd' date '12/23/2014' time '11:19:30' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.20' message 'Issue #10: add GemServerInteractiveVMTests to test interactiveMode of GemServer, i.e., in interactiveMode exceptions are handled, logged then passed so that developer can bring up a debugger in a development environment ... for those cases when server-side code is being written ...' id '0eb302df-aa08-46ae-9223-72e0fd4702b4' date '12/22/2014' time '17:14:06' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.19' message 'Issue #10: internal server error handling ... expanded local and remote tests for internal server errors ... interactiveMode added so that exceptions are passed so that debugger can be used ' id '1e4bc30f-7578-42de-b931-ec41009543a3' date '12/22/2014' time '14:01:49' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.18' message 'Issue #10: gearing up to work through interactive debugging transaction support' id '9b929f60-3f93-44fd-9236-de1115259c8f' date '12/22/2014' time '11:49:18' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.17' message 'Issue #10: 2.4.x portability ...' id '6932f2db-e550-462a-99f1-8c76da8dab69' date '12/22/2014' time '10:17:32' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.16' message 'Issue #10: implement GemServerTestServer for running GemServerRemoteVMTests tests .... added several more tests and fixed some bugs in GemServer class>>gemServerTransaction:onError: and friends' id '6bae3b41-f9b1-4f6a-8854-a156711ceb74' date '12/21/2014' time '19:15:35' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.15' message 'fix test error' id '0cfee396-6e70-42c4-917b-b4d4aac80330' date '12/13/2014' time '17:38:02' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.14' message 'add statusGems command for GemServer ... returns `ps` for processes associated with the ports' id '5c266914-27f6-4eb4-9a76-cad155e67aa4' date '12/13/2014' time '17:28:11' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.13' message 'More porting to 2.4.x ... add GemServerLauncherTests for simple test coverage, tODE should be used for the actual breakpoint and object log tests ' id 'cdf57f8b-1f65-4b96-a58c-2de0c6f252a9' date '12/09/2014' time '16:48:45' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.12' message 'Issue #2: fix mistake in test' id '3a07e302-7a07-4ece-9768-114ba57f4e40' date '11/29/2014' time '18:22:04' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.11' message 'Issue #2: get the GemServerRemoteVMTests>>testStart test to function ' id '62ad1a30-c7a6-4907-baee-542a534c73a7' date '11/29/2014' time '18:16:14' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.10' message 'Issue #2: add remote vm test' id '73290117-3cfa-4112-b3fb-d81034b00ae6' date '11/29/2014' time '15:07:48' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.9' message 'Issue #2: adjustments for testing' id 'f75b38ed-0717-4895-9995-c83b76e6341f' date '11/29/2014' time '14:48:13' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.8' message 'Issue #2: start/stop/restart appears to be working but I don''t like the level of feedback ... need status command that looks at pid and verifies that pid is there and perhaps some other status information...' id 'b6f523ee-5da7-4b19-8e2e-8ce1198d471a' date '11/29/2014' time '14:24:04' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.7' message 'issue #2: [ci skip] checkpoint .. preparing for first script tests' id '74620772-ec63-42b5-b64c-e677f6122007' date '11/29/2014' time '11:42:20' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.6' message 'Issue #2: get ready to run scripts ... add test' id 'b79e09e2-62a0-4f6b-8a4b-b85fcc9b9e17' date '11/29/2014' time '09:49:22' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.5' message 'Issue #2: continue move towards GemServer centric design ... with GemServer class>>register:for:on: as the center piece' id '2fd99139-bbe8-4039-a3e7-4c60094a002c' date '11/29/2014' time '09:07:50' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.4' message 'Issue #2: get rid of GemServer portInstance variable ... not really necessary' id 'e5a5ac07-e90e-4af7-936b-b2568f6f9082' date '11/26/2014' time '20:12:20' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.3' message 'Issue #2: incorporated the "server boilerplate" Smalltalk code from startSeaside30_Adaptor ... push a bunch of stuff around ...' id 'aed37ec0-331f-45ff-af57-05edc4205308' date '11/26/2014' time '19:29:19' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.2' message 'Issue #2: + +Taking approach where instead of subclassing GemServerStarter, subclass GemServer ... then we can do direct customization of the various bits and pieces that need customization on run ... and pass any interesting state via the script call ... script location etc. can be specified by the subclass ... + +Added tests for validating the basic api' id '373d6136-05ff-4c01-a96f-ad233a82912e' date '11/26/2014' time '17:01:21' author 'dkh' ancestors ((name 'GsApplicationTools-Test-dkh.1' message 'Issue #2: add a tests package ... stub of test' id '2760d97c-bfa7-4373-9bb8-60c5da12f177' date '11/26/2014' time '14:28:11' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file