diff --git a/bin/startGemServerGem b/bin/startGemServerGem index 9fc8540..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 @@ -78,11 +79,11 @@ 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/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/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 e794bb6..6b7ec21 100644 --- a/repository/GsApplicationTools-Server.package/GemServer.class/methodProperties.json +++ b/repository/GsApplicationTools-Server.package/GemServer.class/methodProperties.json @@ -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", @@ -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/monticello.meta/version b/repository/GsApplicationTools-Server.package/monticello.meta/version index 1981ebb..599621f 100644 --- a/repository/GsApplicationTools-Server.package/monticello.meta/version +++ b/repository/GsApplicationTools-Server.package/monticello.meta/version @@ -1 +1 @@ -(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 ()) \ 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-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..ee847d1 100644 --- a/repository/GsApplicationTools-Test.package/monticello.meta/version +++ b/repository/GsApplicationTools-Test.package/monticello.meta/version @@ -1 +1 @@ -(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