diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/authenticator..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/authenticator..st index d20fb58b..34a4d4d6 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/authenticator..st +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/authenticator..st @@ -1,4 +1,8 @@ -accessing -authenticator: anObject +options +authenticator: object + "Set the object that will be sent #authenticateRequest:do: + to authenticate or refuse the requests. Can be nil. + When authentication succeeds, the block should be executed, + when authentication fails, a appropriate response should be returned" - authenticator := anObject + self optionAt: #authenticator put: object \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/authenticator.st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/authenticator.st index 086de20e..213a0d4f 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/authenticator.st +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/authenticator.st @@ -1,4 +1,10 @@ -accessing +options authenticator - - ^authenticator + "Return the optional authenticator, + the object that will be sent #authenticateRequest:do: + to authenticate or refuse the requests. + When authentication succeeds, the block should be executed, + when authentication fails, a appropriate response should be returned. + If there is no authenticator, all requests will pass" + + ^ self optionAt: #authenticator ifAbsent: [ nil ] \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/bindingAddress..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/bindingAddress..st new file mode 100644 index 00000000..74224c24 --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/bindingAddress..st @@ -0,0 +1,8 @@ +options +bindingAddress: address + "Set the interface address we will be listening on. + Specify nil to listen on all/any interfaces, the default. + Address must be a 4 element ByteArray, like #[127 0 0 1]. + Cannot be changed after the server is already running." + + self optionAt: #bindAddress put: address \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/bindingAddress.st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/bindingAddress.st new file mode 100644 index 00000000..92b02550 --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/bindingAddress.st @@ -0,0 +1,6 @@ +options +bindingAddress + "Return the interface address we are (or will be) listening on. + Nil means that we are (or will be) listening on all/any interfaces." + + ^ self optionAt: #bindAddress ifAbsent: [ nil ] \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/debugMode..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/debugMode..st index 3bc80904..7fec49ac 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/debugMode..st +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/debugMode..st @@ -1,4 +1,7 @@ -accessing -debugMode: anObject - - debugMode := anObject +options +debugMode: boolean + "Set my debug mode, the default being false. + In debug mode, Smalltalk Error during #handleRequest: will raise a Debugger. + When not in debug mode, a Smalltalk Error during #handleRequest: will result in an HTTP Server Error response." + + ^ self optionAt: #debugMode put: boolean \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/debugMode.st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/debugMode.st index 37af3b03..b53a35f8 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/debugMode.st +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/debugMode.st @@ -1,4 +1,5 @@ -accessing +options debugMode - debugMode ifNil: [ debugMode := false ]. - ^ debugMode \ No newline at end of file + "Return whether we are in debug mode, the default is false." + + ^ self optionAt: #debugMode ifAbsent: [ false ] \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/delegate..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/delegate..st index fa302b52..871feb99 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/delegate..st +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/delegate..st @@ -1,3 +1,6 @@ -initialization -delegate: aZnDelegate - ^ delegate := aZnDelegate \ No newline at end of file +options +delegate: object + "Set the delegate to object. Can be nil. + This will be sent #handleRequest: to handle a request and produce a response" + + self optionAt: #delegate put: object \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/delegate.st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/delegate.st index 5d31cc28..3a77faf0 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/delegate.st +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/delegate.st @@ -1,3 +1,7 @@ -accessing +options delegate - ^ delegate \ No newline at end of file + "Return the optional delegate, + the object that will be sent #handleRequest: to handle a request and produce a response. + The default delegate is ZnDefaultServerDelegate" + + ^ self optionAt: #delegate ifAbsentPut: [ ZnDefaultServerDelegate new ] \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/maximumEntitySize..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/maximumEntitySize..st new file mode 100644 index 00000000..20dbdc23 --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/maximumEntitySize..st @@ -0,0 +1,5 @@ +options +maximumEntitySize: integer + "Set the maximum entity size in bytes that I will read from a stream before signalling ZnEntityTooLarge" + + ^ self optionAt: #maximumEntitySize put: integer \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/maximumEntitySize.st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/maximumEntitySize.st new file mode 100644 index 00000000..9a1ba7cf --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/maximumEntitySize.st @@ -0,0 +1,5 @@ +options +maximumEntitySize + "Return the maximum entity size in bytes that I will read from a stream before signalling ZnEntityTooLarge" + + ^ self optionAt: #maximumEntitySize ifAbsent: [ ZnConstants defaultMaximumEntitySize ] \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/optionAt.ifAbsent..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/optionAt.ifAbsent..st new file mode 100644 index 00000000..27db9a24 --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/optionAt.ifAbsent..st @@ -0,0 +1,8 @@ +accessing +optionAt: key ifAbsent: block + "Return my option/settings stored under key. + Execute block if I have no such option/setting. + This is a generic interface, see my options protocol for specific usages." + + options ifNil: [ ^ block value ]. + ^ options at: key ifAbsent: block \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/optionAt.ifAbsentPut..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/optionAt.ifAbsentPut..st new file mode 100644 index 00000000..a6bc21bb --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/optionAt.ifAbsentPut..st @@ -0,0 +1,7 @@ +accessing +optionAt: key ifAbsentPut: block + "Return my option/settings stored under key. + If I have no such option/setting, store the result of evaluating block as new value and return it. + This is a generic interface, see my options protocol for specific usages." + + ^ options at: key ifAbsentPut: block \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/optionAt.put..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/optionAt.put..st new file mode 100644 index 00000000..b1166be3 --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/optionAt.put..st @@ -0,0 +1,7 @@ +accessing +optionAt: key put: value + "Set my option/setting identified by key to be value. + This is a generic interface, see my options protocol for specific usages." + + options ifNil: [ options := Dictionary new ]. + options at: key put: value \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/reader..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/reader..st new file mode 100644 index 00000000..8a20219c --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/reader..st @@ -0,0 +1,5 @@ +options +reader: block + "Customize how entities are read from a stream, see #reader" + + self optionAt: #reader put: block \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/reader.st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/reader.st new file mode 100644 index 00000000..69d5ea2e --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/reader.st @@ -0,0 +1,5 @@ +options +reader + "Return a block that when given a stream reads an entity from it." + + ^ self optionAt: #reader ifAbsentPut: [ [ :stream | ZnRequest readFrom: stream ] ] \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/route..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/route..st new file mode 100644 index 00000000..2e55faad --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/route..st @@ -0,0 +1,8 @@ +options +route: object + "Set the route of the server. + This is a short identification string to be appended at the end of server session ids, separated by a dot. + Routes are used by load balancers and proxies to correctly implement session affiinity or stickyness. + The default is nil, meaning that no route has to be appended." + + self optionAt: #route put: object \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/route.st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/route.st new file mode 100644 index 00000000..a8a63dd2 --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/route.st @@ -0,0 +1,8 @@ +options +route + "Return the route of the server. + This is a short identification string to be appended at the end of server session ids, separated by a dot. + Routes are used by load balancers and proxies to correctly implement session affiinity or stickyness. + The default is nil, meaning that no route has to be appended." + + ^ self optionAt: #route ifAbsent: [ nil ] \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/serverUrl..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/serverUrl..st new file mode 100644 index 00000000..11bbdf4a --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/serverUrl..st @@ -0,0 +1,7 @@ +options +serverUrl: urlObject + "Set the explicit external server URL to urlObject. Defaults to nil. + urlObject should be a ZnUrl or a String that parses correctly to one. + See also #url." + + ^ self optionAt: #serverUrl put: urlObject asZnUrl \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/serverUrl.st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/serverUrl.st new file mode 100644 index 00000000..02de727c --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/serverUrl.st @@ -0,0 +1,5 @@ +options +serverUrl + "Return the explicitely set external server URL, if any. Defaults to nil." + + ^ self optionAt: #serverUrl ifAbsent: [ nil ] \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/startBasicServerOn..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/startBasicServerOn..st index ebc86c2c..f9e29bf1 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/startBasicServerOn..st +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/startBasicServerOn..st @@ -4,11 +4,10 @@ startBasicServerOn: port | server startMessage | server := (self serverClass on: port) - delegate: self delegate; debugMode: self debugMode; log: self log; + _options: options; yourself. - self authenticator ifNotNil: [ :auth | server authenticator: auth ]. startMessage := server printString , ' (native thread: ' , self activeProcessIsNative printString , ')'. Transcript diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/useGzipCompressionAndChunking..st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/useGzipCompressionAndChunking..st new file mode 100644 index 00000000..515322a8 --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/useGzipCompressionAndChunking..st @@ -0,0 +1,5 @@ +options +useGzipCompressionAndChunking: boolean + "Set whether we should try to use gzip content encoding and chunked transfer encoding, the default being false." + + self optionAt: #useGzipCompressionAndChunking put: boolean \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/useGzipCompressionAndChunking.st b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/useGzipCompressionAndChunking.st new file mode 100644 index 00000000..4b0cd89e --- /dev/null +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/instance/useGzipCompressionAndChunking.st @@ -0,0 +1,5 @@ +options +useGzipCompressionAndChunking + "Return whether we should try to use gzip content encoding and chunked transfer encoding, the default is false." + + ^ self optionAt: #useGzipCompressionAndChunking ifAbsent: [ false ] \ No newline at end of file diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/methodProperties.json b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/methodProperties.json index 4c5e6f32..572939cd 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/methodProperties.json +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/methodProperties.json @@ -2,14 +2,16 @@ "class" : { "serverClass" : "dkh 11/29/2014 06:40" }, "instance" : { - "authenticator" : "dkh 12/13/2014 19:21", - "authenticator:" : "dkh 12/13/2014 19:21", + "authenticator" : "dkh 12/14/2014 07:35", + "authenticator:" : "dkh 12/14/2014 07:35", + "bindingAddress" : "dkh 12/14/2014 07:35", + "bindingAddress:" : "dkh 12/14/2014 07:35", "breakpointExceptionSet" : "dkh 12/05/2014 15:03", "breakpointExceptionSet:" : "dkh 12/05/2014 15:03", - "debugMode" : "dkh 11/30/2014 21:29", - "debugMode:" : "dkh 11/29/2014 08:44", - "delegate" : "dkh 11/29/2014 08:44", - "delegate:" : "dkh 11/29/2014 08:44", + "debugMode" : "dkh 12/14/2014 07:35", + "debugMode:" : "dkh 12/14/2014 07:35", + "delegate" : "dkh 12/14/2014 07:35", + "delegate:" : "dkh 12/14/2014 07:36", "enableContinuations" : "dkh 12/03/2014 12:21", "enableContinuations:" : "dkh 12/04/2014 09:56", "initialize" : "dkh 12/10/2014 14:49", @@ -26,6 +28,19 @@ "logListener:" : "dkh 12/04/2014 09:56", "logToObjectLog" : "dkh 12/03/2014 12:23", "logToTranscript" : "dkh 12/03/2014 12:16", + "maximumEntitySize" : "dkh 12/14/2014 07:36", + "maximumEntitySize:" : "dkh 12/14/2014 07:36", + "optionAt:ifAbsent:" : "dkh 12/14/2014 07:34", + "optionAt:ifAbsentPut:" : "dkh 12/14/2014 07:34", + "optionAt:put:" : "dkh 12/14/2014 07:33", + "reader" : "dkh 12/14/2014 07:36", + "reader:" : "dkh 12/14/2014 07:36", + "route" : "dkh 12/14/2014 07:36", + "route:" : "dkh 12/14/2014 07:36", "scheme" : "dkh 12/13/2014 19:24", - "startBasicServerOn:" : "dkh 12/13/2014 19:22", - "stop" : "dkh 12/13/2014 19:43" } } + "serverUrl" : "dkh 12/14/2014 07:36", + "serverUrl:" : "dkh 12/14/2014 07:37", + "startBasicServerOn:" : "dkh 12/14/2014 07:40", + "stop" : "dkh 12/13/2014 19:43", + "useGzipCompressionAndChunking" : "dkh 12/14/2014 07:37", + "useGzipCompressionAndChunking:" : "dkh 12/14/2014 07:37" } } diff --git a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/properties.json b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/properties.json index 6db994f1..ebd65082 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/properties.json +++ b/repository/Zinc-GemStone-Server-Tools.package/ZnGemServer.class/properties.json @@ -6,14 +6,12 @@ ], "commentStamp" : "", "instvars" : [ - "delegate", - "debugMode", "enableContinuations", "log", "logListener", "logFilter", "breakpointExceptionSet", - "authenticator" ], + "options" ], "name" : "ZnGemServer", "pools" : [ ], diff --git a/repository/Zinc-GemStone-Server-Tools.package/monticello.meta/version b/repository/Zinc-GemStone-Server-Tools.package/monticello.meta/version index 60a0fe79..44095a42 100644 --- a/repository/Zinc-GemStone-Server-Tools.package/monticello.meta/version +++ b/repository/Zinc-GemStone-Server-Tools.package/monticello.meta/version @@ -1 +1 @@ -(name 'Zinc-GemStone-Server-Tools-dkh.26' message 'Issue #58: checkpoint (tests failing) expand use of GemServer to cover ZnServerTests with class ZNGsServerTests' id '66004626-6bb3-4e85-86c0-8d65a84c3e48' date '12/13/2014' time '19:46:44' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.25' message 'Issue #58: some tweaks to implementation as I flesh out ZnSeasideGemServer for seaside ... fine tune logging and honor debugMode in terms of passing exceptions when set ....' id 'dfae1b4e-201d-4761-9593-1022db6fee59' date '12/11/2014' time '06:58:11' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.24' message 'Issue #58: remove currentServer iv ... replaced by inherited serverInstance iv' id '6d1263da-2431-451b-a92b-a257655c4906' date '12/10/2014' time '16:05:27' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.23' message 'push up some behavior/state to GemServer as I contemplate implementation of SeasideGemServer family' id '78bb3fd7-ea3b-4b64-a757-c303de1c56f0' date '12/10/2014' time '15:20:15' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.22' message 'Issue #58: use GemServer>>activeProcessIsNative instead of direct calls to GsProcess since GsProcess calls are 3.x specific' id '958f81d5-d3bc-429c-a2ba-7b9f462ed6af' date '12/09/2014' time '17:17:14' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.21' message 'Issue #58: make SocketStream and friends continuation friendly by wrapping GsSocket references in a TransientStackValue. Add ZnTransactionSafeManagingMultiThreadedServer a subclass of ZnManagingMultiThreadedServer where all references to GsSockets are wrapped by a TransientStackValue ... including places where GsSockets are passed as arguments ... this makes the server instance transaction safe, so continuations can be snapped off and transactions can be safely used in delegates ...' id '05823530-aa2c-4e34-90e9-fd0ebbe6215a' date '12/09/2014' time '11:21:22' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.20' message 'Issue #58: fine tune logging' id '3577aab1-db3d-4ab8-993d-04e58dd0ba47' date '12/08/2014' time '15:01:16' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.19' message 'Issue #58: fiddle with logging ... remote breakpoints back on table' id 'd5813371-9583-4269-af84-0dba231131c1' date '12/07/2014' time '18:45:27' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.18' message 'Issue #58: remove some logging' id 'fbb9609a-ca2d-410a-88c3-c452d6690d81' date '12/06/2014' time '15:06:43' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.17' message 'Issue #58: flesh out remote breakpoint work ... cannot switch back to native threads, but for development of servers, it can still be useful ... continue following this thread ...' id '128442d3-dfdb-4e9a-b1cc-d87d146b1a72' date '12/06/2014' time '15:02:55' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.16' message 'Issue #58: make ZnGemServer>>breakpointExceptionSet controllable now ... default is Halt and Breakpoint' id '78777ed1-d6a3-46c7-b7e9-40a1b05b16b6' date '12/05/2014' time '15:05:30' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.15' message 'Issue #58: GemServer class>>handleBreakpointException: moved to ZnGemServerLogSupport, so breakpoing exceptions can be under enableContinuations control .... and breakpointExceptionSet controlled vi ZnGemServer ' id '4b04024b-c0ee-4f7a-8fb3-ad7f25d30e42' date '12/05/2014' time '15:02:48' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.14' message 'Issue #58: tweak ZnGemServer a bit' id '3bdb5967-20df-46a7-81ed-8afd9c04f39b' date '12/04/2014' time '11:19:35' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.13' message 'Issue #58: add ZnLogSupport>>object: ... for dropping an object into the object log...refactor REST tests to allow for testing using remote ZnGemServer and add persistence to ZnExampleStorageRestServerDelegate ... a bit of house cleaning in ZnGemServer' id '9ed1bb9e-f405-4b3b-ae1c-8016c091c850' date '12/04/2014' time '06:38:40' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.12' message 'Issue #58: ZnSingleThreadedServer>>logServerError: to unconditionally log an error: and handleError: for GemStone so we make sure that all errors make it to the log (object log and continuation) AND the gem file .... add gobs of log helper methods to ZnGemServer ... control logging method and filter and whether or not continuations are created for errors from ZnGemServer' id '97e8bdaf-9586-463a-b1a1-f0a091d0b673' date '12/03/2014' time '14:38:57' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.11' message 'switch to ZnTranscriptLogger for debugging' id '808ce940-affd-44b0-b75c-4b7544f80ffa' date '12/03/2014' time '09:59:57' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.10' message 'Issue #58: add transactions to web socket delegate and some logging to understand the odd 30 second delay for the chat delegate' id 'ef0c148c-84ee-4ca0-b783-42f73ef5471e' date '12/02/2014' time '20:37:02' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.9' message 'Issue #58: args to on:do: blocks required in GemStone' id 'f9c11040-764e-4fe5-b17d-3e20aec70d4f' date '12/02/2014' time '15:55:10' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.8' message 'Issue #58: now the 3.x tests should pass' id 'a806216a-1845-4a8a-8d24-f235261cc639' date '11/30/2014' time '21:30:22' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.7' message 'Issue #58: a bit of cleanup to get the 3.x tests to pass(?)' id '479abb60-a604-4381-8746-8285d5265aa9' date '11/30/2014' time '21:19:18' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.6' message 'Issue #58: ZnWebSocketTests>>testEcho test passing ... in debugMode, use ZnObjectLogLogger ... practical to debug ZnGemServer using object log logging and continuations' id '2737e4b6-3600-49ac-ba57-ec8731159dab' date '11/30/2014' time '20:18:41' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.5' message 'Issue #58: tweak recent changes ... and get back to getting tests to pass' id '43bffba2-7b67-49f9-b52c-721b80ee1b66' date '11/30/2014' time '11:54:09' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.4' message 'Issue #58: a log can be specified for an instance of ZnGemServer. By default errors are logged to transcript and continuation commmited to object log.... ' id 'd017e51c-6b6a-404d-b07b-98b00853a012' date '11/30/2014' time '11:19:13' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.3' message 'Issue #58: - always snap off continuation when an error event occurs - add some error handling a bit higher up the zn stack ... to catch application errors as well ... might be able to continue processing without passing error ... still passing at the moment... - ZnTranscriptLogger for all ZnGemServer guys ... might want to make this easier to customize ' id 'c402419d-3976-4a02-ba31-be2670595768' date '11/30/2014' time '10:39:47' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.2' message 'Issue #58: start using ZnGemServer based on work done for https://github.com/GsDevKit/gsApplicationTools/issues/2' id 'ac143ad6-d3f3-4abc-a318-dd2f3d0e8e64' date '11/29/2014' time '19:58:22' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.1' message 'Issue #58: add dependency upon GsApplicationTools for Zinc-GemStone-Server-Tools, a new package which holds ZnServerStarter class needed by web socket tests ...' id '437b6f76-4bb6-4ea7-83b0-b5f93128158a' date '11/26/2014' time '13:39:44' 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 ()) \ No newline at end of file +(name 'Zinc-GemStone-Server-Tools-dkh.27' message 'Issue #58: conversion of ZnServerTests to support ZnGsServerTests ... support full range of ZnServer options in ZnGemServer' id '631e8ab1-5016-453a-a510-913d78246d75' date '12/14/2014' time '08:13:37' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.26' message 'Issue #58: checkpoint (tests failing) expand use of GemServer to cover ZnServerTests with class ZNGsServerTests' id '66004626-6bb3-4e85-86c0-8d65a84c3e48' date '12/13/2014' time '19:46:44' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.25' message 'Issue #58: some tweaks to implementation as I flesh out ZnSeasideGemServer for seaside ... fine tune logging and honor debugMode in terms of passing exceptions when set ....' id 'dfae1b4e-201d-4761-9593-1022db6fee59' date '12/11/2014' time '06:58:11' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.24' message 'Issue #58: remove currentServer iv ... replaced by inherited serverInstance iv' id '6d1263da-2431-451b-a92b-a257655c4906' date '12/10/2014' time '16:05:27' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.23' message 'push up some behavior/state to GemServer as I contemplate implementation of SeasideGemServer family' id '78bb3fd7-ea3b-4b64-a757-c303de1c56f0' date '12/10/2014' time '15:20:15' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.22' message 'Issue #58: use GemServer>>activeProcessIsNative instead of direct calls to GsProcess since GsProcess calls are 3.x specific' id '958f81d5-d3bc-429c-a2ba-7b9f462ed6af' date '12/09/2014' time '17:17:14' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.21' message 'Issue #58: make SocketStream and friends continuation friendly by wrapping GsSocket references in a TransientStackValue. Add ZnTransactionSafeManagingMultiThreadedServer a subclass of ZnManagingMultiThreadedServer where all references to GsSockets are wrapped by a TransientStackValue ... including places where GsSockets are passed as arguments ... this makes the server instance transaction safe, so continuations can be snapped off and transactions can be safely used in delegates ...' id '05823530-aa2c-4e34-90e9-fd0ebbe6215a' date '12/09/2014' time '11:21:22' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.20' message 'Issue #58: fine tune logging' id '3577aab1-db3d-4ab8-993d-04e58dd0ba47' date '12/08/2014' time '15:01:16' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.19' message 'Issue #58: fiddle with logging ... remote breakpoints back on table' id 'd5813371-9583-4269-af84-0dba231131c1' date '12/07/2014' time '18:45:27' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.18' message 'Issue #58: remove some logging' id 'fbb9609a-ca2d-410a-88c3-c452d6690d81' date '12/06/2014' time '15:06:43' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.17' message 'Issue #58: flesh out remote breakpoint work ... cannot switch back to native threads, but for development of servers, it can still be useful ... continue following this thread ...' id '128442d3-dfdb-4e9a-b1cc-d87d146b1a72' date '12/06/2014' time '15:02:55' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.16' message 'Issue #58: make ZnGemServer>>breakpointExceptionSet controllable now ... default is Halt and Breakpoint' id '78777ed1-d6a3-46c7-b7e9-40a1b05b16b6' date '12/05/2014' time '15:05:30' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.15' message 'Issue #58: GemServer class>>handleBreakpointException: moved to ZnGemServerLogSupport, so breakpoing exceptions can be under enableContinuations control .... and breakpointExceptionSet controlled vi ZnGemServer ' id '4b04024b-c0ee-4f7a-8fb3-ad7f25d30e42' date '12/05/2014' time '15:02:48' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.14' message 'Issue #58: tweak ZnGemServer a bit' id '3bdb5967-20df-46a7-81ed-8afd9c04f39b' date '12/04/2014' time '11:19:35' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.13' message 'Issue #58: add ZnLogSupport>>object: ... for dropping an object into the object log...refactor REST tests to allow for testing using remote ZnGemServer and add persistence to ZnExampleStorageRestServerDelegate ... a bit of house cleaning in ZnGemServer' id '9ed1bb9e-f405-4b3b-ae1c-8016c091c850' date '12/04/2014' time '06:38:40' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.12' message 'Issue #58: ZnSingleThreadedServer>>logServerError: to unconditionally log an error: and handleError: for GemStone so we make sure that all errors make it to the log (object log and continuation) AND the gem file .... add gobs of log helper methods to ZnGemServer ... control logging method and filter and whether or not continuations are created for errors from ZnGemServer' id '97e8bdaf-9586-463a-b1a1-f0a091d0b673' date '12/03/2014' time '14:38:57' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.11' message 'switch to ZnTranscriptLogger for debugging' id '808ce940-affd-44b0-b75c-4b7544f80ffa' date '12/03/2014' time '09:59:57' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.10' message 'Issue #58: add transactions to web socket delegate and some logging to understand the odd 30 second delay for the chat delegate' id 'ef0c148c-84ee-4ca0-b783-42f73ef5471e' date '12/02/2014' time '20:37:02' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.9' message 'Issue #58: args to on:do: blocks required in GemStone' id 'f9c11040-764e-4fe5-b17d-3e20aec70d4f' date '12/02/2014' time '15:55:10' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.8' message 'Issue #58: now the 3.x tests should pass' id 'a806216a-1845-4a8a-8d24-f235261cc639' date '11/30/2014' time '21:30:22' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.7' message 'Issue #58: a bit of cleanup to get the 3.x tests to pass(?)' id '479abb60-a604-4381-8746-8285d5265aa9' date '11/30/2014' time '21:19:18' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.6' message 'Issue #58: ZnWebSocketTests>>testEcho test passing ... in debugMode, use ZnObjectLogLogger ... practical to debug ZnGemServer using object log logging and continuations' id '2737e4b6-3600-49ac-ba57-ec8731159dab' date '11/30/2014' time '20:18:41' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.5' message 'Issue #58: tweak recent changes ... and get back to getting tests to pass' id '43bffba2-7b67-49f9-b52c-721b80ee1b66' date '11/30/2014' time '11:54:09' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.4' message 'Issue #58: a log can be specified for an instance of ZnGemServer. By default errors are logged to transcript and continuation commmited to object log.... ' id 'd017e51c-6b6a-404d-b07b-98b00853a012' date '11/30/2014' time '11:19:13' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.3' message 'Issue #58: - always snap off continuation when an error event occurs - add some error handling a bit higher up the zn stack ... to catch application errors as well ... might be able to continue processing without passing error ... still passing at the moment... - ZnTranscriptLogger for all ZnGemServer guys ... might want to make this easier to customize ' id 'c402419d-3976-4a02-ba31-be2670595768' date '11/30/2014' time '10:39:47' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.2' message 'Issue #58: start using ZnGemServer based on work done for https://github.com/GsDevKit/gsApplicationTools/issues/2' id 'ac143ad6-d3f3-4abc-a318-dd2f3d0e8e64' date '11/29/2014' time '19:58:22' author 'dkh' ancestors ((name 'Zinc-GemStone-Server-Tools-dkh.1' message 'Issue #58: add dependency upon GsApplicationTools for Zinc-GemStone-Server-Tools, a new package which holds ZnServerStarter class needed by web socket tests ...' id '437b6f76-4bb6-4ea7-83b0-b5f93128158a' date '11/26/2014' time '13:39:44' 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 diff --git a/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printHMSOn..st b/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printHMSOn..st index 56bca950..d7f67c28 100644 --- a/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printHMSOn..st +++ b/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printHMSOn..st @@ -6,4 +6,4 @@ printHMSOn: aStream nextPut: $:; nextPutAll: (self minute asString padded: #left to: 2 with: $0); nextPut: $:; - nextPutAll: (self second asString padded: #left to: 2 with: $0). \ No newline at end of file + nextPutAll: (self second asString padded: #left to: 2 with: $0). diff --git a/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printYMDOn..st b/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printYMDOn..st index 343249b8..12c9fee2 100644 --- a/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printYMDOn..st +++ b/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printYMDOn..st @@ -3,4 +3,4 @@ printYMDOn: aStream "Print just YYYY-MM-DD part. If the year is negative, prints out '-YYYY-MM-DD'." - ^self printYMDOn: aStream withLeadingSpace: false. \ No newline at end of file + ^self printYMDOn: aStream withLeadingSpace: false. diff --git a/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printYMDOn.withLeadingSpace..st b/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printYMDOn.withLeadingSpace..st index 41c4f84a..4cc3b7fe 100644 --- a/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printYMDOn.withLeadingSpace..st +++ b/repository/Zinc-HTTP.package/DateAndTimeANSI.extension/instance/printYMDOn.withLeadingSpace..st @@ -17,4 +17,4 @@ printYMDOn: aStream withLeadingSpace: printLeadingSpaceToo nextPut: $-; nextPutAll: (month asString padded: #left to: 2 with: $0); nextPut: $-; - nextPutAll: (day asString padded: #left to: 2 with: $0) \ No newline at end of file + nextPutAll: (day asString padded: #left to: 2 with: $0) diff --git a/repository/Zinc-HTTP.package/HTTPProgress.class/instance/amount..st b/repository/Zinc-HTTP.package/HTTPProgress.class/instance/amount..st index 5880bf00..89c86f65 100644 --- a/repository/Zinc-HTTP.package/HTTPProgress.class/instance/amount..st +++ b/repository/Zinc-HTTP.package/HTTPProgress.class/instance/amount..st @@ -2,4 +2,4 @@ updating amount: newValue "Modify the value of the instance variable 'amount'." - amount := newValue \ No newline at end of file + amount := newValue diff --git a/repository/Zinc-HTTP.package/HTTPProgress.class/instance/amount.st b/repository/Zinc-HTTP.package/HTTPProgress.class/instance/amount.st index 167a7a22..2204d91f 100644 --- a/repository/Zinc-HTTP.package/HTTPProgress.class/instance/amount.st +++ b/repository/Zinc-HTTP.package/HTTPProgress.class/instance/amount.st @@ -2,4 +2,4 @@ accessing amount "Return the value of the instance variable 'amount'." - ^amount \ No newline at end of file + ^amount diff --git a/repository/Zinc-HTTP.package/HTTPProgress.class/instance/total..st b/repository/Zinc-HTTP.package/HTTPProgress.class/instance/total..st index 5a03de4d..34658df5 100644 --- a/repository/Zinc-HTTP.package/HTTPProgress.class/instance/total..st +++ b/repository/Zinc-HTTP.package/HTTPProgress.class/instance/total..st @@ -2,4 +2,4 @@ updating total: newValue "Modify the value of the instance variable 'total'." - total := newValue \ No newline at end of file + total := newValue diff --git a/repository/Zinc-HTTP.package/HTTPProgress.class/instance/total.st b/repository/Zinc-HTTP.package/HTTPProgress.class/instance/total.st index 358b6929..be838c9d 100644 --- a/repository/Zinc-HTTP.package/HTTPProgress.class/instance/total.st +++ b/repository/Zinc-HTTP.package/HTTPProgress.class/instance/total.st @@ -2,4 +2,4 @@ accessing total "Return the value of the instance variable 'total'." - ^total \ No newline at end of file + ^total diff --git a/repository/Zinc-HTTP.package/Integer.extension/instance/print.on.prefix.length.padded..st b/repository/Zinc-HTTP.package/Integer.extension/instance/print.on.prefix.length.padded..st index 5caadedc..1df6bb4e 100644 --- a/repository/Zinc-HTTP.package/Integer.extension/instance/print.on.prefix.length.padded..st +++ b/repository/Zinc-HTTP.package/Integer.extension/instance/print.on.prefix.length.padded..st @@ -7,4 +7,5 @@ print: positiveNumberString on: aStream prefix: prefix length: minimum padded: z ifTrue: [aStream nextPutAll: prefix; nextPutAll: (String new: padLength withAll: $0)] ifFalse: [aStream nextPutAll: (String new: padLength withAll: Character space); nextPutAll: prefix]] ifFalse: [aStream nextPutAll: prefix]. - aStream nextPutAll: positiveNumberString \ No newline at end of file + aStream nextPutAll: positiveNumberString + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/Integer.extension/instance/printOn.base.length.padded..st b/repository/Zinc-HTTP.package/Integer.extension/instance/printOn.base.length.padded..st index a412f75c..a2e43494 100644 --- a/repository/Zinc-HTTP.package/Integer.extension/instance/printOn.base.length.padded..st +++ b/repository/Zinc-HTTP.package/Integer.extension/instance/printOn.base.length.padded..st @@ -2,4 +2,4 @@ printOn: aStream base: base length: minimum padded: zeroFlag | prefix | prefix := self negative ifTrue: ['-'] ifFalse: [String new]. - self print: (self abs printStringBase: base) on: aStream prefix: prefix length: minimum padded: zeroFlag \ No newline at end of file + self print: (self abs printStringBase: base) on: aStream prefix: prefix length: minimum padded: zeroFlag diff --git a/repository/Zinc-HTTP.package/NotFound.class/instance/object..st b/repository/Zinc-HTTP.package/NotFound.class/instance/object..st index a86c6f6d..560db7dc 100644 --- a/repository/Zinc-HTTP.package/NotFound.class/instance/object..st +++ b/repository/Zinc-HTTP.package/NotFound.class/instance/object..st @@ -2,4 +2,4 @@ updating object: newValue "Modify the value of the instance variable 'object'." - object := newValue \ No newline at end of file + object := newValue diff --git a/repository/Zinc-HTTP.package/NotFound.class/instance/object.st b/repository/Zinc-HTTP.package/NotFound.class/instance/object.st index 5cdddb56..ec872ea7 100644 --- a/repository/Zinc-HTTP.package/NotFound.class/instance/object.st +++ b/repository/Zinc-HTTP.package/NotFound.class/instance/object.st @@ -2,4 +2,4 @@ accessing object "Return the value of the instance variable 'object'." - ^object \ No newline at end of file + ^object diff --git a/repository/Zinc-HTTP.package/ZnBasicAuthenticator.class/instance/isRequestAuthenticated..st b/repository/Zinc-HTTP.package/ZnBasicAuthenticator.class/instance/isRequestAuthenticated..st index 7938adb8..eb81a1b4 100644 --- a/repository/Zinc-HTTP.package/ZnBasicAuthenticator.class/instance/isRequestAuthenticated..st +++ b/repository/Zinc-HTTP.package/ZnBasicAuthenticator.class/instance/isRequestAuthenticated..st @@ -4,4 +4,5 @@ isRequestAuthenticated: request authorization := [ request basicAuthentication ] on: Error do: [:err | ^ false ]. username := authorization first. password := authorization second. - ^ (credentials at: username ifAbsent: [ nil ]) = password \ No newline at end of file + ^ (credentials at: username ifAbsent: [ nil ]) = password + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/collectionSpecies.st b/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/collectionSpecies.st index ee01458d..e5753186 100644 --- a/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/collectionSpecies.st +++ b/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/collectionSpecies.st @@ -1,3 +1,4 @@ accessing collectionSpecies - ^ self isBinary ifTrue: [ ByteArray ] ifFalse: [ String ] \ No newline at end of file + ^ self isBinary ifTrue: [ ByteArray ] ifFalse: [ String ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/ensureChunkBufferOfSize..st b/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/ensureChunkBufferOfSize..st index f0ed35af..0a41811c 100644 --- a/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/ensureChunkBufferOfSize..st +++ b/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/ensureChunkBufferOfSize..st @@ -1,4 +1,4 @@ private ensureChunkBufferOfSize: size (chunk notNil and: [ size <= chunk size ]) ifTrue: [ ^ self ]. - chunk := self collectionSpecies new: size. \ No newline at end of file + chunk := self collectionSpecies new: size. diff --git a/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/ensureChunkOrAtEnd.st b/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/ensureChunkOrAtEnd.st index bcb88710..8bfd952c 100644 --- a/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/ensureChunkOrAtEnd.st +++ b/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/ensureChunkOrAtEnd.st @@ -3,4 +3,4 @@ ensureChunkOrAtEnd atEnd ifTrue: [ ^ self ]. (chunk isNil or: [ position >= limit ]) - ifTrue: [ self getNextChunk ] \ No newline at end of file + ifTrue: [ self getNextChunk ] diff --git a/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/isBinary.st b/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/isBinary.st index b111b7fa..9f60bda1 100644 --- a/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/isBinary.st +++ b/repository/Zinc-HTTP.package/ZnChunkedReadStream.class/instance/isBinary.st @@ -1,3 +1,3 @@ testing isBinary - ^ stream isBinary \ No newline at end of file + ^ stream isBinary diff --git a/repository/Zinc-HTTP.package/ZnChunkedWriteStream.class/instance/isBinary.st b/repository/Zinc-HTTP.package/ZnChunkedWriteStream.class/instance/isBinary.st index b111b7fa..9f60bda1 100644 --- a/repository/Zinc-HTTP.package/ZnChunkedWriteStream.class/instance/isBinary.st +++ b/repository/Zinc-HTTP.package/ZnChunkedWriteStream.class/instance/isBinary.st @@ -1,3 +1,3 @@ testing isBinary - ^ stream isBinary \ No newline at end of file + ^ stream isBinary diff --git a/repository/Zinc-HTTP.package/ZnChunkedWriteStream.class/instance/next.putAll.startingAt..st b/repository/Zinc-HTTP.package/ZnChunkedWriteStream.class/instance/next.putAll.startingAt..st index 5f91aa7a..30f87249 100644 --- a/repository/Zinc-HTTP.package/ZnChunkedWriteStream.class/instance/next.putAll.startingAt..st +++ b/repository/Zinc-HTTP.package/ZnChunkedWriteStream.class/instance/next.putAll.startingAt..st @@ -4,4 +4,4 @@ next: count putAll: collection startingAt: offset stream next: count putAll: collection startingAt: offset. self crlf. chunkCount := chunkCount + 1. - totalSize := totalSize + count \ No newline at end of file + totalSize := totalSize + count diff --git a/repository/Zinc-HTTP.package/ZnClient.class/instance/downloadEntityTo..st b/repository/Zinc-HTTP.package/ZnClient.class/instance/downloadEntityTo..st index 9162df5c..6d7987d7 100644 --- a/repository/Zinc-HTTP.package/ZnClient.class/instance/downloadEntityTo..st +++ b/repository/Zinc-HTTP.package/ZnClient.class/instance/downloadEntityTo..st @@ -14,4 +14,4 @@ downloadEntityTo: path do: [ :fileStream | fileStream binary. self withProgressDo: [ - self entity writeOn: fileStream ] ] \ No newline at end of file + self entity writeOn: fileStream ] ] diff --git a/repository/Zinc-HTTP.package/ZnClient.class/instance/exceptionSetForIfFail.st b/repository/Zinc-HTTP.package/ZnClient.class/instance/exceptionSetForIfFail.st index 92c34801..d6722f96 100644 --- a/repository/Zinc-HTTP.package/ZnClient.class/instance/exceptionSetForIfFail.st +++ b/repository/Zinc-HTTP.package/ZnClient.class/instance/exceptionSetForIfFail.st @@ -3,4 +3,5 @@ exceptionSetForIfFail "Return an explicit exception set for which the ifFail block, if any, will be invoked. This could later be cached, instance or class side, if necessary." - ^ Error, NetworkError, ZnParseError, ZnHttpUnsuccessful, ZnUnexpectedContentType \ No newline at end of file + ^ Error, NetworkError, ZnParseError, ZnHttpUnsuccessful, ZnUnexpectedContentType + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnClient.class/instance/executeWithRedirectsRemaining..st b/repository/Zinc-HTTP.package/ZnClient.class/instance/executeWithRedirectsRemaining..st index 8df52058..c9ab52ea 100644 --- a/repository/Zinc-HTTP.package/ZnClient.class/instance/executeWithRedirectsRemaining..st +++ b/repository/Zinc-HTTP.package/ZnClient.class/instance/executeWithRedirectsRemaining..st @@ -11,4 +11,5 @@ executeWithRedirectsRemaining: redirectCount ifFalse: [ self followRedirects ifTrue: [ ZnTooManyRedirects signal ] ] ]. - ^ self handleResponse \ No newline at end of file + ^ self handleResponse + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnClient.class/instance/handleRetry..st b/repository/Zinc-HTTP.package/ZnClient.class/instance/handleRetry..st index e005deb3..935f1c2a 100644 --- a/repository/Zinc-HTTP.package/ZnClient.class/instance/handleRetry..st +++ b/repository/Zinc-HTTP.package/ZnClient.class/instance/handleRetry..st @@ -2,4 +2,4 @@ private protocol handleRetry: exception self noteRetrying: exception. self close. - (Delay forSeconds: self retryDelay) wait. \ No newline at end of file + (Delay forSeconds: self retryDelay) wait. diff --git a/repository/Zinc-HTTP.package/ZnClient.class/instance/resetEntity.st b/repository/Zinc-HTTP.package/ZnClient.class/instance/resetEntity.st index 8a36d12a..2feaf7a7 100644 --- a/repository/Zinc-HTTP.package/ZnClient.class/instance/resetEntity.st +++ b/repository/Zinc-HTTP.package/ZnClient.class/instance/resetEntity.st @@ -5,4 +5,5 @@ resetEntity by #method: for GET or HEAD requests." (request notNil and: [ request hasEntity ]) - ifTrue: [ request resetEntity: nil ] \ No newline at end of file + ifTrue: [ request resetEntity: nil ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnClient.class/instance/setBasicAuthenticationUsername.password..st b/repository/Zinc-HTTP.package/ZnClient.class/instance/setBasicAuthenticationUsername.password..st index 7d4422c4..f9cfdf4a 100644 --- a/repository/Zinc-HTTP.package/ZnClient.class/instance/setBasicAuthenticationUsername.password..st +++ b/repository/Zinc-HTTP.package/ZnClient.class/instance/setBasicAuthenticationUsername.password..st @@ -2,4 +2,4 @@ accessing request setBasicAuthenticationUsername: username password: password "Set the username/password for basic authenticationfor the current request." - request setBasicAuthenticationUsername: username password: password \ No newline at end of file + request setBasicAuthenticationUsername: username password: password diff --git a/repository/Zinc-HTTP.package/ZnClient.class/instance/uploadEntityFrom..st b/repository/Zinc-HTTP.package/ZnClient.class/instance/uploadEntityFrom..st index b6110859..e0ec1d5d 100644 --- a/repository/Zinc-HTTP.package/ZnClient.class/instance/uploadEntityFrom..st +++ b/repository/Zinc-HTTP.package/ZnClient.class/instance/uploadEntityFrom..st @@ -11,4 +11,4 @@ uploadEntityFrom: path stream binary. type := ZnMimeType forFilenameExtension: (ZnFileSystemUtils extensionFor: path). length := ZnFileSystemUtils fileSizeFor: path. - self entity: (ZnStreamingEntity readFrom: stream usingType: type andLength: length) \ No newline at end of file + self entity: (ZnStreamingEntity readFrom: stream usingType: type andLength: length) diff --git a/repository/Zinc-HTTP.package/ZnClient.class/instance/username.password..st b/repository/Zinc-HTTP.package/ZnClient.class/instance/username.password..st index c5bcc48d..1ed36bef 100644 --- a/repository/Zinc-HTTP.package/ZnClient.class/instance/username.password..st +++ b/repository/Zinc-HTTP.package/ZnClient.class/instance/username.password..st @@ -2,4 +2,4 @@ accessing request username: username password: password "Set the username/password for basic authenticationfor the current request." - self setBasicAuthenticationUsername: username password: password \ No newline at end of file + self setBasicAuthenticationUsername: username password: password diff --git a/repository/Zinc-HTTP.package/ZnCookie.class/instance/^equals.st b/repository/Zinc-HTTP.package/ZnCookie.class/instance/^equals.st index 48d9fac9..65483c03 100644 --- a/repository/Zinc-HTTP.package/ZnCookie.class/instance/^equals.st +++ b/repository/Zinc-HTTP.package/ZnCookie.class/instance/^equals.st @@ -1,4 +1,5 @@ comparing = aCookie (aCookie isKindOf: self class) ifFalse: [ ^ false ]. - ^ (aCookie name = self name) & (aCookie path = self path) & (aCookie domain = self domain) \ No newline at end of file + ^ (aCookie name = self name) & (aCookie path = self path) & (aCookie domain = self domain) + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnCookie.class/instance/isInDomain..st b/repository/Zinc-HTTP.package/ZnCookie.class/instance/isInDomain..st index 4d5cc436..8a1434d3 100644 --- a/repository/Zinc-HTTP.package/ZnCookie.class/instance/isInDomain..st +++ b/repository/Zinc-HTTP.package/ZnCookie.class/instance/isInDomain..st @@ -4,4 +4,5 @@ isInDomain: urlObject domain := (self domain beginsWith: '.') ifTrue: [ self domain copyFrom: 2 to: self domain size ] ifFalse: [ self domain ]. - ^ urlObject host includesSubstring: domain \ No newline at end of file + ^ urlObject host includesSubstring: domain + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnCookie.class/instance/isInPath..st b/repository/Zinc-HTTP.package/ZnCookie.class/instance/isInPath..st index a99a5125..91403f9f 100644 --- a/repository/Zinc-HTTP.package/ZnCookie.class/instance/isInPath..st +++ b/repository/Zinc-HTTP.package/ZnCookie.class/instance/isInPath..st @@ -1,3 +1,4 @@ testing isInPath: urlObject - ^ urlObject pathPrintString includesSubstring: self path \ No newline at end of file + ^ urlObject pathPrintString includesSubstring: self path + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnCookieJar.class/instance/add..st b/repository/Zinc-HTTP.package/ZnCookieJar.class/instance/add..st index 60e77ffc..4459dedc 100644 --- a/repository/Zinc-HTTP.package/ZnCookieJar.class/instance/add..st +++ b/repository/Zinc-HTTP.package/ZnCookieJar.class/instance/add..st @@ -3,4 +3,5 @@ add: aCookie (self removeIfExpired: aCookie) ifTrue: [^nil]. self cookies copy do: [:cookie| cookie = aCookie ifTrue: [ self cookies remove: cookie]]. - self cookies add: aCookie \ No newline at end of file + self cookies add: aCookie + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/help..st b/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/help..st index 1ea430ce..89c881ef 100644 --- a/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/help..st +++ b/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/help..st @@ -2,4 +2,5 @@ responses help: request "Reply with a dynamic HTML page containing links to all pages I support" - ^ ZnResponse ok: (ZnEntity html: self generateHelp) \ No newline at end of file + ^ ZnResponse ok: (ZnEntity html: self generateHelp) + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/map.to..st b/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/map.to..st index 17af4e7f..8ab532ce 100644 --- a/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/map.to..st +++ b/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/map.to..st @@ -6,4 +6,5 @@ map: prefix to: handler self prefixMap at: prefix - put: handler \ No newline at end of file + put: handler + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/status..st b/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/status..st index 9e483a8f..918c1632 100644 --- a/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/status..st +++ b/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/status..st @@ -2,4 +2,5 @@ responses status: request "Reply with a dynamic HTML page describing the state of the server" - ^ ZnResponse ok: (ZnEntity html: self generateStatus) \ No newline at end of file + ^ ZnResponse ok: (ZnEntity html: self generateStatus) + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/systemVersionInfo.st b/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/systemVersionInfo.st index 95e7d29c..ced0553e 100644 --- a/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/systemVersionInfo.st +++ b/repository/Zinc-HTTP.package/ZnDefaultServerDelegate.class/instance/systemVersionInfo.st @@ -6,4 +6,5 @@ systemVersionInfo stream print: 'GemStone ', (versionReport at: 'gsRelease'), ' of ', (versionReport at: 'gsBuildDate'), ' build ', (versionReport at: 'gsBuildSerialNum'); nextPutAll: ' - '; - nextPutAll: ZnConstants defaultServerString ] \ No newline at end of file + nextPutAll: ZnConstants defaultServerString ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnDigestAuthenticator.class/instance/a1for..st b/repository/Zinc-HTTP.package/ZnDigestAuthenticator.class/instance/a1for..st index 13777b7d..bee3522d 100644 --- a/repository/Zinc-HTTP.package/ZnDigestAuthenticator.class/instance/a1for..st +++ b/repository/Zinc-HTTP.package/ZnDigestAuthenticator.class/instance/a1for..st @@ -2,4 +2,5 @@ private a1for: username | password | password := credentials at: username ifAbsent: [ ^ nil ]. - ^ self class md5Hash: username, ':', self realm, ':', password \ No newline at end of file + ^ self class md5Hash: username, ':', self realm, ':', password + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnDigestAuthenticator.class/instance/a2forUrl.method..st b/repository/Zinc-HTTP.package/ZnDigestAuthenticator.class/instance/a2forUrl.method..st index df7578b3..458ad716 100644 --- a/repository/Zinc-HTTP.package/ZnDigestAuthenticator.class/instance/a2forUrl.method..st +++ b/repository/Zinc-HTTP.package/ZnDigestAuthenticator.class/instance/a2forUrl.method..st @@ -1,3 +1,4 @@ private a2forUrl: uri method: method - ^ self class md5Hash: method, ':', uri \ No newline at end of file + ^ self class md5Hash: method, ':', uri + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnDispatcherDelegate.class/instance/handleRequest..st b/repository/Zinc-HTTP.package/ZnDispatcherDelegate.class/instance/handleRequest..st index dddddba3..092a1d1d 100644 --- a/repository/Zinc-HTTP.package/ZnDispatcherDelegate.class/instance/handleRequest..st +++ b/repository/Zinc-HTTP.package/ZnDispatcherDelegate.class/instance/handleRequest..st @@ -9,4 +9,5 @@ handleRequest: request value: (ZnResponse new statusLine: (ZnStatusLine ok); headers: ZnHeaders defaultResponseHeaders; - yourself). \ No newline at end of file + yourself). + diff --git a/repository/Zinc-HTTP.package/ZnEasy.class/class/delete.username.password..st b/repository/Zinc-HTTP.package/ZnEasy.class/class/delete.username.password..st index 3f1c8a80..0910748b 100644 --- a/repository/Zinc-HTTP.package/ZnEasy.class/class/delete.username.password..st +++ b/repository/Zinc-HTTP.package/ZnEasy.class/class/delete.username.password..st @@ -4,4 +4,5 @@ delete: urlObject username: username password: password url: urlObject; setBasicAuthenticationUsername: username password: password; delete; - response \ No newline at end of file + response + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnEasy.class/class/get..st b/repository/Zinc-HTTP.package/ZnEasy.class/class/get..st index 11f6d0a1..431473e0 100644 --- a/repository/Zinc-HTTP.package/ZnEasy.class/class/get..st +++ b/repository/Zinc-HTTP.package/ZnEasy.class/class/get..st @@ -5,4 +5,5 @@ get: urlObject ^ self client url: urlObject; get; - response \ No newline at end of file + response + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnEasy.class/class/get.username.password..st b/repository/Zinc-HTTP.package/ZnEasy.class/class/get.username.password..st index 75ef314e..26740184 100644 --- a/repository/Zinc-HTTP.package/ZnEasy.class/class/get.username.password..st +++ b/repository/Zinc-HTTP.package/ZnEasy.class/class/get.username.password..st @@ -4,4 +4,5 @@ get: urlObject username: username password: password url: urlObject; setBasicAuthenticationUsername: username password: password; get; - response \ No newline at end of file + response + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnEasy.class/class/put.data..st b/repository/Zinc-HTTP.package/ZnEasy.class/class/put.data..st index 2d0d31e0..ba456d9d 100644 --- a/repository/Zinc-HTTP.package/ZnEasy.class/class/put.data..st +++ b/repository/Zinc-HTTP.package/ZnEasy.class/class/put.data..st @@ -4,4 +4,4 @@ put: urlObject data: entity url: urlObject; entity: entity; put; - response \ No newline at end of file + response \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnEasy.class/class/put.data.username.password..st b/repository/Zinc-HTTP.package/ZnEasy.class/class/put.data.username.password..st index 97c810a1..60a6a3b4 100644 --- a/repository/Zinc-HTTP.package/ZnEasy.class/class/put.data.username.password..st +++ b/repository/Zinc-HTTP.package/ZnEasy.class/class/put.data.username.password..st @@ -5,4 +5,4 @@ put: urlObject data: entity username: username password: password setBasicAuthenticationUsername: username password: password; entity: entity; put; - response \ No newline at end of file + response \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnEntity.class/class/concreteSubclassForType.binary..st b/repository/Zinc-HTTP.package/ZnEntity.class/class/concreteSubclassForType.binary..st index 4ab76fd1..94bfd6f8 100644 --- a/repository/Zinc-HTTP.package/ZnEntity.class/class/concreteSubclassForType.binary..st +++ b/repository/Zinc-HTTP.package/ZnEntity.class/class/concreteSubclassForType.binary..st @@ -8,4 +8,4 @@ concreteSubclassForType: mimeType binary: forceBinary ifNone: [ (mimeType isBinary or: [ forceBinary ]) ifTrue: [ self byteArrayEntityClass ] - ifFalse: [ self stringEntityClass ] ] \ No newline at end of file + ifFalse: [ self stringEntityClass ] ] diff --git a/repository/Zinc-HTTP.package/ZnEntity.class/class/readBinaryFrom.usingType.andLength..st b/repository/Zinc-HTTP.package/ZnEntity.class/class/readBinaryFrom.usingType.andLength..st index b4e692bd..c6083635 100644 --- a/repository/Zinc-HTTP.package/ZnEntity.class/class/readBinaryFrom.usingType.andLength..st +++ b/repository/Zinc-HTTP.package/ZnEntity.class/class/readBinaryFrom.usingType.andLength..st @@ -7,4 +7,4 @@ readBinaryFrom: stream usingType: mimeType andLength: length newEntity := (self concreteSubclassForType: mimeType binary: true) type: mimeType length: length. newEntity readFrom: stream. - ^ newEntity \ No newline at end of file + ^ newEntity diff --git a/repository/Zinc-HTTP.package/ZnEntity.class/class/readFrom.usingType.andLength..st b/repository/Zinc-HTTP.package/ZnEntity.class/class/readFrom.usingType.andLength..st index 6f9eb3c4..a630b23e 100644 --- a/repository/Zinc-HTTP.package/ZnEntity.class/class/readFrom.usingType.andLength..st +++ b/repository/Zinc-HTTP.package/ZnEntity.class/class/readFrom.usingType.andLength..st @@ -7,4 +7,4 @@ readFrom: stream usingType: mimeType andLength: length newEntity := (self concreteSubclassForType: mimeType binary: false) type: mimeType length: length. newEntity readFrom: stream. - ^ newEntity \ No newline at end of file + ^ newEntity diff --git a/repository/Zinc-HTTP.package/ZnEntityWriter.class/instance/writeEntity..st b/repository/Zinc-HTTP.package/ZnEntityWriter.class/instance/writeEntity..st index 96c272a3..16d77e4a 100644 --- a/repository/Zinc-HTTP.package/ZnEntityWriter.class/instance/writeEntity..st +++ b/repository/Zinc-HTTP.package/ZnEntityWriter.class/instance/writeEntity..st @@ -18,4 +18,5 @@ writeEntity: entity bufferedStream ifNotNil: [ bufferedStream finish ]. chunkedStream - ifNotNil: [ chunkedStream finish ] \ No newline at end of file + ifNotNil: [ chunkedStream finish ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/constructMultiPartFormDataEntity..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/constructMultiPartFormDataEntity..st index 61828301..36e36d4d 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/constructMultiPartFormDataEntity..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/constructMultiPartFormDataEntity..st @@ -13,4 +13,4 @@ constructMultiPartFormDataEntity: arguments ifFalse: [ value content ]. fileEntity := ZnEntity with: contents type: value contentType. ZnMimePart fieldName: key fileName: value url pathForFile entity: fileEntity ]) ] ]. - ^ entity \ No newline at end of file + ^ entity diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/extendHeaders.with..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/extendHeaders.with..st index 75021576..101f52b2 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/extendHeaders.with..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/extendHeaders.with..st @@ -4,4 +4,5 @@ extendHeaders: headers with: object object isString ifTrue: [ headers addAll: (ZnHeaders readFrom: object readStream) ] ifFalse: [ headers withAll: object ]. - ^ headers \ No newline at end of file + ^ headers + diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpGet.args.accept.request..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpGet.args.accept.request..st index ae3478fb..982e4b34 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpGet.args.accept.request..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpGet.args.accept.request..st @@ -6,4 +6,4 @@ httpGet: urlObject args: queryArguments accept: mimeType request: extraHeaders accept: mimeType. self extendHeaders: client request headers with: extraHeaders. client get. - ^ self streamOrErrorStringFrom: client response uri: client request url \ No newline at end of file + ^ self streamOrErrorStringFrom: client response uri: client request url diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpGetDocument.args.accept.request..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpGetDocument.args.accept.request..st index 685399bc..8e69316b 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpGetDocument.args.accept.request..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpGetDocument.args.accept.request..st @@ -6,4 +6,4 @@ httpGetDocument: urlObject args: queryArguments accept: mimeType request: extraH accept: mimeType. self extendHeaders: client request headers with: extraHeaders. client get. - ^ self mimeDocumentOrErrorStringFrom: client response uri: client request url \ No newline at end of file + ^ self mimeDocumentOrErrorStringFrom: client response uri: client request url diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPost.args.accept..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPost.args.accept..st index 31b8d881..6a2c491a 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPost.args.accept..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPost.args.accept..st @@ -6,4 +6,4 @@ httpPost: urlObject args: arguments accept: mimeType accept: mimeType; formAddAll: arguments; post. - ^ self streamOrErrorStringFrom: client response uri: client request url \ No newline at end of file + ^ self streamOrErrorStringFrom: client response uri: client request url diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPost.args.user.passwd..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPost.args.user.passwd..st index ef210ba7..fd15a7ba 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPost.args.user.passwd..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPost.args.user.passwd..st @@ -6,4 +6,5 @@ httpPost: urlObject args: arguments user: username passwd: password setBasicAuthenticationUsername: username password: password; formAddAll: arguments; post. - ^ self mimeDocumentOrErrorStringFrom: client response uri: client request url \ No newline at end of file + ^ self mimeDocumentOrErrorStringFrom: client response uri: client request url + diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPostDocument.args.accept.request..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPostDocument.args.accept.request..st index 76506f1a..e3b26b10 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPostDocument.args.accept.request..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPostDocument.args.accept.request..st @@ -7,4 +7,4 @@ httpPostDocument: urlObject args: arguments accept: mimeType request: extraHeade formAddAll: arguments. self extendHeaders: client request headers with: extraHeaders. client post. - ^ self mimeDocumentOrErrorStringFrom: client response uri: client request url \ No newline at end of file + ^ self mimeDocumentOrErrorStringFrom: client response uri: client request url diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPostMultipart.args.accept.request..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPostMultipart.args.accept.request..st index 5e11b84c..5d5ba1d2 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPostMultipart.args.accept.request..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/httpPostMultipart.args.accept.request..st @@ -7,4 +7,4 @@ httpPostMultipart: urlObject args: arguments accept: mimeType request: extraHead entity: (self constructMultiPartFormDataEntity: arguments). self extendHeaders: client request headers with: extraHeaders. client post. - ^ self mimeDocumentOrErrorStringFrom: client response uri: client request url \ No newline at end of file + ^ self mimeDocumentOrErrorStringFrom: client response uri: client request url diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/mimeDocumentOrErrorStringFrom.uri..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/mimeDocumentOrErrorStringFrom.uri..st index b97f1d61..4835d2bc 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/mimeDocumentOrErrorStringFrom.uri..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/mimeDocumentOrErrorStringFrom.uri..st @@ -9,4 +9,5 @@ mimeDocumentOrErrorStringFrom: response uri: uri ifFalse: [ String streamContents: [ :stream | stream nextPutAll: 'HTTP request for '; print: uri; nextPutAll: ' failed with '. - response statusLine writeOn: stream ] ] \ No newline at end of file + response statusLine writeOn: stream ] ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/streamOrErrorStringFrom.uri..st b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/streamOrErrorStringFrom.uri..st index 711caa7f..e52b5f91 100644 --- a/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/streamOrErrorStringFrom.uri..st +++ b/repository/Zinc-HTTP.package/ZnHTTPSocketFacade.class/class/streamOrErrorStringFrom.uri..st @@ -8,4 +8,5 @@ streamOrErrorStringFrom: response uri: uri ifFalse: [ String streamContents: [ :stream | stream nextPutAll: 'HTTP request for '; print: uri; nextPutAll: ' failed with '. - response statusLine writeOn: stream ] ] \ No newline at end of file + response statusLine writeOn: stream ] ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/at.add..st b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/at.add..st index 700d8cb1..0598ed2a 100644 --- a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/at.add..st +++ b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/at.add..st @@ -3,4 +3,5 @@ at: headerName add: value "Store value under headerName, optionally turning it into a multi-valued header when a value was already present" - ^ self headers at: (self normalizeHeaderKey: headerName) add: value \ No newline at end of file + ^ self headers at: (self normalizeHeaderKey: headerName) add: value + diff --git a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/at.put.ifPresentMerge..st b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/at.put.ifPresentMerge..st index cdcb650a..6e9d6d9f 100644 --- a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/at.put.ifPresentMerge..st +++ b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/at.put.ifPresentMerge..st @@ -9,4 +9,6 @@ at: headerName put: value ifPresentMerge: binaryBlock newValue := existingValue isNil ifTrue: [ value ] ifFalse: [ binaryBlock value: existingValue value: value ]. - ^ self headers at: normalizedKey put: newValue \ No newline at end of file + ^ self headers at: normalizedKey put: newValue + + diff --git a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/includesKey..st b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/includesKey..st index df356dca..13da5304 100644 --- a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/includesKey..st +++ b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/includesKey..st @@ -1,3 +1,4 @@ testing includesKey: headerName - ^ self isEmpty not and: [ self headers includesKey: (self normalizeHeaderKey: headerName) ] \ No newline at end of file + ^ self isEmpty not and: [ self headers includesKey: (self normalizeHeaderKey: headerName) ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/isDescribingEntity.st b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/isDescribingEntity.st index ef7bbf8b..83886502 100644 --- a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/isDescribingEntity.st +++ b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/isDescribingEntity.st @@ -3,4 +3,4 @@ isDescribingEntity "Do I include enough information to describe an entity (i.e. content length and type) ?" ^ (self headers includesKey: 'Content-Type') - and: [ self headers includesKey: 'Content-Length' ] \ No newline at end of file + and: [ self headers includesKey: 'Content-Length' ] diff --git a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/printOn..st b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/printOn..st index aaa0d583..6e2ba5d2 100644 --- a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/printOn..st +++ b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/printOn..st @@ -1,4 +1,5 @@ printing printOn: stream super printOn: stream. - self isEmpty ifFalse: [ self headers printElementsOn: stream ] \ No newline at end of file + self isEmpty ifFalse: [ self headers printElementsOn: stream ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/request..st b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/request..st index d57cda58..fe1ead68 100644 --- a/repository/Zinc-HTTP.package/ZnHeaders.class/instance/request..st +++ b/repository/Zinc-HTTP.package/ZnHeaders.class/instance/request..st @@ -5,4 +5,4 @@ request: url (url isNil or: [ url hasHost not ]) ifTrue: [ ^ self ]. self at: 'Host' put: url authority. (ZnNetworkingUtils proxyAuthorizationHeaderValueToUrl: url) - ifNotNil: [ :value | self at: 'Proxy-Authorization' put: value ]. \ No newline at end of file + ifNotNil: [ :value | self at: 'Proxy-Authorization' put: value ]. diff --git a/repository/Zinc-HTTP.package/ZnLineReader.class/instance/processNext.st b/repository/Zinc-HTTP.package/ZnLineReader.class/instance/processNext.st index 678b8364..edb3701d 100644 --- a/repository/Zinc-HTTP.package/ZnLineReader.class/instance/processNext.st +++ b/repository/Zinc-HTTP.package/ZnLineReader.class/instance/processNext.st @@ -11,4 +11,6 @@ processNext position := position - 1. ^ nil ] ]. self store: item. - ^ item \ No newline at end of file + ^ item + + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnLineReader.class/instance/store..st b/repository/Zinc-HTTP.package/ZnLineReader.class/instance/store..st index 81b80380..887dc45b 100644 --- a/repository/Zinc-HTTP.package/ZnLineReader.class/instance/store..st +++ b/repository/Zinc-HTTP.package/ZnLineReader.class/instance/store..st @@ -2,4 +2,5 @@ private store: item position >= buffer size ifTrue: [ self growBuffer ]. position := position + 1. - buffer at: position put: item \ No newline at end of file + buffer at: position put: item + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/debug..st b/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/debug..st index aa5ccb00..3a2e065f 100644 --- a/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/debug..st +++ b/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/debug..st @@ -2,4 +2,5 @@ accessing debug: message self enabled ifTrue: [ - self announcer announce: (ZnLogEvent debug: message value) ] \ No newline at end of file + self announcer announce: (ZnLogEvent debug: message value) ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/info..st b/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/info..st index beec133e..2bfb07f7 100644 --- a/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/info..st +++ b/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/info..st @@ -2,4 +2,5 @@ accessing info: message self enabled ifTrue: [ - self announcer announce: (ZnLogEvent info: message value) ] \ No newline at end of file + self announcer announce: (ZnLogEvent info: message value) ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/transaction..st b/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/transaction..st index 0f1043e4..aef7879d 100644 --- a/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/transaction..st +++ b/repository/Zinc-HTTP.package/ZnLogSupport.class/instance/transaction..st @@ -2,4 +2,5 @@ accessing transaction: message self enabled ifTrue: [ - self announcer announce: (ZnLogEvent transaction: message value) ] \ No newline at end of file + self announcer announce: (ZnLogEvent transaction: message value) ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMessage.class/instance/readEntityFrom..st b/repository/Zinc-HTTP.package/ZnMessage.class/instance/readEntityFrom..st index 36fd4c12..872e94f5 100644 --- a/repository/Zinc-HTTP.package/ZnMessage.class/instance/readEntityFrom..st +++ b/repository/Zinc-HTTP.package/ZnMessage.class/instance/readEntityFrom..st @@ -1,3 +1,4 @@ initialize-release readEntityFrom: stream - self entity: (self entityReaderOn: stream) readEntity \ No newline at end of file + self entity: (self entityReaderOn: stream) readEntity + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMessage.class/instance/readFrom..st b/repository/Zinc-HTTP.package/ZnMessage.class/instance/readFrom..st index b0452c2c..89344a16 100644 --- a/repository/Zinc-HTTP.package/ZnMessage.class/instance/readFrom..st +++ b/repository/Zinc-HTTP.package/ZnMessage.class/instance/readFrom..st @@ -1,4 +1,5 @@ initialize-release readFrom: stream self readHeaderFrom: stream. - self readEntityFrom: stream \ No newline at end of file + self readEntityFrom: stream + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMessage.class/instance/readHeaderFrom..st b/repository/Zinc-HTTP.package/ZnMessage.class/instance/readHeaderFrom..st index fa5a198d..cc25ceb6 100644 --- a/repository/Zinc-HTTP.package/ZnMessage.class/instance/readHeaderFrom..st +++ b/repository/Zinc-HTTP.package/ZnMessage.class/instance/readHeaderFrom..st @@ -1,3 +1,4 @@ initialize-release readHeaderFrom: stream - self headers: (ZnHeaders readFrom: stream) \ No newline at end of file + self headers: (ZnHeaders readFrom: stream) + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMessage.class/instance/readStreamingFrom..st b/repository/Zinc-HTTP.package/ZnMessage.class/instance/readStreamingFrom..st index 43408c39..f142fced 100644 --- a/repository/Zinc-HTTP.package/ZnMessage.class/instance/readStreamingFrom..st +++ b/repository/Zinc-HTTP.package/ZnMessage.class/instance/readStreamingFrom..st @@ -4,4 +4,5 @@ readStreamingFrom: stream self readHeaderFrom: stream. (entityReader := self entityReaderOn: stream) streaming. - self entity: entityReader readEntity \ No newline at end of file + self entity: entityReader readEntity + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMimePart.class/class/fieldName.fileNamed..st b/repository/Zinc-HTTP.package/ZnMimePart.class/class/fieldName.fileNamed..st index 5d8ce6c2..2af78bf3 100644 --- a/repository/Zinc-HTTP.package/ZnMimePart.class/class/fieldName.fileNamed..st +++ b/repository/Zinc-HTTP.package/ZnMimePart.class/class/fieldName.fileNamed..st @@ -8,4 +8,5 @@ fieldName: fieldName fileNamed: fileName (entity := ZnStreamingEntity type: mimeType length: size) stream: fileStream. baseName := ZnFileSystemUtils baseNameFor: fileName. - ^ self fieldName: fieldName fileName: baseName entity: entity \ No newline at end of file + ^ self fieldName: fieldName fileName: baseName entity: entity + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMimePart.class/instance/printOn..st b/repository/Zinc-HTTP.package/ZnMimePart.class/instance/printOn..st index 86bff36d..40af3706 100644 --- a/repository/Zinc-HTTP.package/ZnMimePart.class/instance/printOn..st +++ b/repository/Zinc-HTTP.package/ZnMimePart.class/instance/printOn..st @@ -4,4 +4,5 @@ printOn: stream stream nextPut: $(. self hasEntity ifTrue: [ self entity printContentTypeAndLengthOn: stream ]. - stream nextPut: $) \ No newline at end of file + stream nextPut: $) + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMimePart.class/instance/readFrom..st b/repository/Zinc-HTTP.package/ZnMimePart.class/instance/readFrom..st index c2c2607c..24c26ccb 100644 --- a/repository/Zinc-HTTP.package/ZnMimePart.class/instance/readFrom..st +++ b/repository/Zinc-HTTP.package/ZnMimePart.class/instance/readFrom..st @@ -1,4 +1,5 @@ initialize-release readFrom: stream self headers: (ZnHeaders readFrom: stream). - self entity: (self entityReaderOn: stream) readEntity \ No newline at end of file + self entity: (self entityReaderOn: stream) readEntity + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/generateBoundary.st b/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/generateBoundary.st index 34983acc..0c366458 100644 --- a/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/generateBoundary.st +++ b/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/generateBoundary.st @@ -3,4 +3,5 @@ generateBoundary ^ String streamContents: [ :stream | | letters | stream nextPutAll: 'Boundary-Zn-'. letters := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. - 8 timesRepeat: [ stream nextPut: letters atRandom ] ] \ No newline at end of file + 8 timesRepeat: [ stream nextPut: letters atRandom ] ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/initialize.st b/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/initialize.st index a55c995d..88df9056 100644 --- a/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/initialize.st +++ b/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/initialize.st @@ -1,4 +1,5 @@ initialize-release initialize super initialize. - self contentType: self mimeTypeWithBoundary \ No newline at end of file + self contentType: self mimeTypeWithBoundary + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/writeRepresentationOn..st b/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/writeRepresentationOn..st index 11c5c51a..b04144cc 100644 --- a/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/writeRepresentationOn..st +++ b/repository/Zinc-HTTP.package/ZnMultiPartFormDataEntity.class/instance/writeRepresentationOn..st @@ -6,4 +6,4 @@ writeRepresentationOn: stream stream nextPutAll: '--'; nextPutAll: boundary; nextPutAll: String crlf. each writeOn: stream. stream nextPutAll: String crlf ]. - stream nextPutAll: '--'; nextPutAll: boundary; nextPutAll: '--'; nextPutAll: String crlf \ No newline at end of file + stream nextPutAll: '--'; nextPutAll: boundary; nextPutAll: '--'; nextPutAll: String crlf diff --git a/repository/Zinc-HTTP.package/ZnNetworkingUtils.class/instance/setSocketStreamParameters..st b/repository/Zinc-HTTP.package/ZnNetworkingUtils.class/instance/setSocketStreamParameters..st index 58de9909..0b4a46aa 100644 --- a/repository/Zinc-HTTP.package/ZnNetworkingUtils.class/instance/setSocketStreamParameters..st +++ b/repository/Zinc-HTTP.package/ZnNetworkingUtils.class/instance/setSocketStreamParameters..st @@ -5,4 +5,4 @@ setSocketStreamParameters: stream shouldSignal: true; autoFlush: false; bufferSize: self bufferSize; - timeout: self timeout. \ No newline at end of file + timeout: self timeout. diff --git a/repository/Zinc-HTTP.package/ZnRequest.class/instance/readHeaderFrom..st b/repository/Zinc-HTTP.package/ZnRequest.class/instance/readHeaderFrom..st index e578d41f..b48f75a9 100644 --- a/repository/Zinc-HTTP.package/ZnRequest.class/instance/readHeaderFrom..st +++ b/repository/Zinc-HTTP.package/ZnRequest.class/instance/readHeaderFrom..st @@ -1,4 +1,5 @@ initialize-release readHeaderFrom: stream self requestLine: (ZnRequestLine readFrom: stream). - super readHeaderFrom: stream \ No newline at end of file + super readHeaderFrom: stream + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnRequest.class/instance/setBasicAuthenticationUsername.password..st b/repository/Zinc-HTTP.package/ZnRequest.class/instance/setBasicAuthenticationUsername.password..st index d48c9859..ce712b70 100644 --- a/repository/Zinc-HTTP.package/ZnRequest.class/instance/setBasicAuthenticationUsername.password..st +++ b/repository/Zinc-HTTP.package/ZnRequest.class/instance/setBasicAuthenticationUsername.password..st @@ -4,4 +4,4 @@ setBasicAuthenticationUsername: username password: password ifTrue: [ self headers removeKey: 'Authorization' ifAbsent: []] ifFalse: [ - self setAuthorization: 'Basic ', (ZnUtils encodeBase64: (username, ':', password)) ] \ No newline at end of file + self setAuthorization: 'Basic ', (ZnUtils encodeBase64: (username, ':', password)) ] diff --git a/repository/Zinc-HTTP.package/ZnRequest.class/instance/setCookie..st b/repository/Zinc-HTTP.package/ZnRequest.class/instance/setCookie..st index 8644b195..266c0208 100644 --- a/repository/Zinc-HTTP.package/ZnRequest.class/instance/setCookie..st +++ b/repository/Zinc-HTTP.package/ZnRequest.class/instance/setCookie..st @@ -1,3 +1,3 @@ accessing setCookie: cookie - self headers at: 'Cookie' put: cookie \ No newline at end of file + self headers at: 'Cookie' put: cookie diff --git a/repository/Zinc-HTTP.package/ZnResponse.class/instance/addCookie..st b/repository/Zinc-HTTP.package/ZnResponse.class/instance/addCookie..st index 8adc55cf..9073964f 100644 --- a/repository/Zinc-HTTP.package/ZnResponse.class/instance/addCookie..st +++ b/repository/Zinc-HTTP.package/ZnResponse.class/instance/addCookie..st @@ -1,3 +1,3 @@ accessing addCookie: cookie - self headers at: 'Set-Cookie' add: cookie fullString \ No newline at end of file + self headers at: 'Set-Cookie' add: cookie fullString diff --git a/repository/Zinc-HTTP.package/ZnResponse.class/instance/printOn..st b/repository/Zinc-HTTP.package/ZnResponse.class/instance/printOn..st index 6c3bdce0..8fe23c37 100644 --- a/repository/Zinc-HTTP.package/ZnResponse.class/instance/printOn..st +++ b/repository/Zinc-HTTP.package/ZnResponse.class/instance/printOn..st @@ -6,4 +6,5 @@ printOn: stream self hasEntity ifTrue: [ stream space. self entity printContentTypeAndLengthOn: stream ]. - stream nextPut: $) \ No newline at end of file + stream nextPut: $) + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnResponse.class/instance/readHeaderFrom..st b/repository/Zinc-HTTP.package/ZnResponse.class/instance/readHeaderFrom..st index d63920eb..d21eea73 100644 --- a/repository/Zinc-HTTP.package/ZnResponse.class/instance/readHeaderFrom..st +++ b/repository/Zinc-HTTP.package/ZnResponse.class/instance/readHeaderFrom..st @@ -1,4 +1,5 @@ initialize-release readHeaderFrom: stream self statusLine: (ZnStatusLine readFrom: stream). - super readHeaderFrom: stream \ No newline at end of file + super readHeaderFrom: stream + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnResponse.class/instance/setKeepAliveFor..st b/repository/Zinc-HTTP.package/ZnResponse.class/instance/setKeepAliveFor..st index bf755e80..dedb1c02 100644 --- a/repository/Zinc-HTTP.package/ZnResponse.class/instance/setKeepAliveFor..st +++ b/repository/Zinc-HTTP.package/ZnResponse.class/instance/setKeepAliveFor..st @@ -1,4 +1,5 @@ accessing setKeepAliveFor: request (request isHttp10 and: [ request isConnectionKeepAlive ]) - ifTrue: [ self setConnectionKeepAlive ] \ No newline at end of file + ifTrue: [ self setConnectionKeepAlive ] + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnServer.class/class/startUp..st b/repository/Zinc-HTTP.package/ZnServer.class/class/startUp..st index de8595c5..bc859e04 100644 --- a/repository/Zinc-HTTP.package/ZnServer.class/class/startUp..st +++ b/repository/Zinc-HTTP.package/ZnServer.class/class/startUp..st @@ -1,3 +1,4 @@ system startup startUp: resuming - "noop for gemstone ... always explicitly start server on startup for GemStone" \ No newline at end of file + "noop for gemstone ... always explicitly start server on startup for GemStone" + diff --git a/repository/Zinc-HTTP.package/ZnServer.class/instance/_options..st b/repository/Zinc-HTTP.package/ZnServer.class/instance/_options..st new file mode 100644 index 00000000..a45a68e2 --- /dev/null +++ b/repository/Zinc-HTTP.package/ZnServer.class/instance/_options..st @@ -0,0 +1,5 @@ +accessing +_options: aDictionary + "Make it easy for a ZnGemserver to transfer options to the ZnServer instance" + + options := aDictionary \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnServer.class/methodProperties.json b/repository/Zinc-HTTP.package/ZnServer.class/methodProperties.json index bee1e2f1..44567c53 100644 --- a/repository/Zinc-HTTP.package/ZnServer.class/methodProperties.json +++ b/repository/Zinc-HTTP.package/ZnServer.class/methodProperties.json @@ -16,6 +16,7 @@ "stopDefault" : "SvenVanCaekenberghe 12/22/2011 11:29", "unregister:" : "SvenVanCaekenberghe 8/18/2011 14:10" }, "instance" : { + "_options:" : "dkh 12/14/2014 07:40", "authenticator" : "SvenVanCaekenberghe 9/5/2012 11:17", "authenticator:" : "SvenVanCaekenberghe 9/5/2012 11:17", "bindingAddress" : "SvenVanCaekenberghe 9/5/2012 10:07", diff --git a/repository/Zinc-HTTP.package/ZnSingleThreadedServer.class/instance/start.st b/repository/Zinc-HTTP.package/ZnSingleThreadedServer.class/instance/start.st index bbe163b6..1ce605cf 100644 --- a/repository/Zinc-HTTP.package/ZnSingleThreadedServer.class/instance/start.st +++ b/repository/Zinc-HTTP.package/ZnSingleThreadedServer.class/instance/start.st @@ -9,4 +9,5 @@ start process := [ [ self listenLoop ] repeat ] forkAt: Processor highIOPriority named: self serverProcessName. - Processor yield. \ No newline at end of file + Processor yield. + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnStandardOutputLogger.class/instance/initialize.st b/repository/Zinc-HTTP.package/ZnStandardOutputLogger.class/instance/initialize.st index 3eae63f5..e652c7a7 100644 --- a/repository/Zinc-HTTP.package/ZnStandardOutputLogger.class/instance/initialize.st +++ b/repository/Zinc-HTTP.package/ZnStandardOutputLogger.class/instance/initialize.st @@ -1,3 +1,4 @@ initialize-release initialize - super initialize. \ No newline at end of file + super initialize. + \ No newline at end of file diff --git a/repository/Zinc-HTTP.package/ZnStatusLine.class/instance/readFrom..st b/repository/Zinc-HTTP.package/ZnStatusLine.class/instance/readFrom..st index 3144f4e4..bb08c504 100644 --- a/repository/Zinc-HTTP.package/ZnStatusLine.class/instance/readFrom..st +++ b/repository/Zinc-HTTP.package/ZnStatusLine.class/instance/readFrom..st @@ -8,4 +8,4 @@ readFrom: stream httpCode := lineStream upTo: Character space. httpCode := Integer readFrom: httpCode ifFail: [ (ZnUnknownHttpStatusCode code: code) signal ]. self code: httpCode. - self reason: (lineStream upToEnd) \ No newline at end of file + self reason: (lineStream upToEnd) diff --git a/repository/Zinc-HTTP.package/ZnStreamingEntity.class/class/readFrom.usingType.andLength..st b/repository/Zinc-HTTP.package/ZnStreamingEntity.class/class/readFrom.usingType.andLength..st index d4fadbfa..2dfeabf0 100644 --- a/repository/Zinc-HTTP.package/ZnStreamingEntity.class/class/readFrom.usingType.andLength..st +++ b/repository/Zinc-HTTP.package/ZnStreamingEntity.class/class/readFrom.usingType.andLength..st @@ -6,4 +6,4 @@ readFrom: stream usingType: mimeType andLength: length ^ (self type: mimeType length: length) readFrom: stream; - yourself \ No newline at end of file + yourself diff --git a/repository/Zinc-HTTP.package/ZnUtils.class/class/isCapitalizedString..st b/repository/Zinc-HTTP.package/ZnUtils.class/class/isCapitalizedString..st index 5d905073..61f5a1b8 100644 --- a/repository/Zinc-HTTP.package/ZnUtils.class/class/isCapitalizedString..st +++ b/repository/Zinc-HTTP.package/ZnUtils.class/class/isCapitalizedString..st @@ -10,4 +10,7 @@ isCapitalizedString: string ifTrue: [ capitalExpected := false ] ifFalse: [ ^ false ] ] ifFalse: [ capitalExpected := true ] ]. - ^ true \ No newline at end of file + ^ true + + + diff --git a/repository/Zinc-HTTP.package/monticello.meta/version b/repository/Zinc-HTTP.package/monticello.meta/version index 18a035cb..7eb4c0e4 100644 --- a/repository/Zinc-HTTP.package/monticello.meta/version +++ b/repository/Zinc-HTTP.package/monticello.meta/version @@ -1 +1 @@ -(name 'Zinc-HTTP-dkh.408' message 'Issue #43: move SocketStream class>>openConnectionToHost:port:timeout: to SocketStream package' id '9f8ebe3d-5387-4e8f-b81c-75046ce436ed' date '12/11/2014' time '14:57:43' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.407' message 'Issue #46: add SpSocketError to ZnMultiThreadedServer>>readRequestTerminationExceptionSet and ZnMultiThreadedServer>>writeResponseTerminationExceptionSet' id '8f60ec48-79a7-4630-9961-b30712f02737' date '12/11/2014' time '14:43:00' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.406' message 'Issue #58: fix calling logic for ZnGemServerLogSupport>>handleBreakpointException:resumeIfResumable:' id '02b441e3-2f57-4cdd-b2eb-7d663d9c53c7' date '12/11/2014' time '14:20:39' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.405' message 'moved UUID>>asString36 to GLASS1 (see https://github.com/GsDevKit/zinc/issues/43)' id '2de0a436-81e1-4fd4-864e-f524a2ef5906' date '12/11/2014' time '13:47:28' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.404' message 'Issue #58: some tweaks to implementation as I flesh out ZnSeasideGemServer for seaside ... fine tune logging and honor debugMode in terms of passing exceptions when set ....' id '93d104da-763a-4c0a-a88f-948051c130e4' date '12/11/2014' time '06:58:08' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.403' message 'Issue #58: make SocketStream and friends continuation friendly by wrapping GsSocket references in a TransientStackValue. Add ZnTransactionSafeManagingMultiThreadedServer a subclass of ZnManagingMultiThreadedServer where all references to GsSockets are wrapped by a TransientStackValue ... including places where GsSockets are passed as arguments ... this makes the server instance transaction safe, so continuations can be snapped off and transactions can be safely used in delegates ...' id '0f71b3bd-51e8-4147-a86d-e304e0c1bbeb' date '12/09/2014' time '11:21:17' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.402' message 'Issue #58: fix typo' id '7b2f8914-dec9-4199-9ad3-86e354d28f27' date '12/07/2014' time '07:50:44' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.401' message 'Issue #58: flesh out remote breakpoint work ... cannot switch back to native threads, but for development of servers, it can still be useful ... continue following this thread ...' id '3dcf0fc7-510d-4beb-957f-924a845fa5d0' date '12/06/2014' time '15:02:52' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.400' message 'Issue #58: ZnLogSupport>>breakpointExceptionSet needed ... ZnRestServerDelegate>>handleRequest: should not handle Exception!' id '7f2f3b66-3cad-4189-a5d4-9f0c2f36e16f' date '12/05/2014' time '16:30:33' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.399' message 'Issue #58: GemServer class>>handleBreakpointException: moved to ZnGemServerLogSupport, so breakpoing exceptions can be under enableContinuations control .... and breakpointExceptionSet controlled vi ZnGemServer ' id 'd02fc4b2-a7d0-4365-b64d-f69abe945c22' date '12/05/2014' time '15:02:46' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.398' message 'Issue #58: fix sent but not implemented' id '719304b2-c0bd-4636-9bdb-f4629952a46d' date '12/04/2014' time '08:08:04' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.397' message 'Issue #58: fixed{?) an accept problem whereby an accept error in SocketStreamSocket would lead to an infinite loop creating processes and then running out of memory ... Fix Rest test error ... only pass exceptions in debugMode for ZnServer' id 'b5faca58-86c1-45ab-9553-1294e1af0ded' date '12/04/2014' time '07:52:23' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.396' message 'Issue #58: add ZnLogSupport>>object: ... for dropping an object into the object log...refactor REST tests to allow for testing using remote ZnGemServer and add persistence to ZnExampleStorageRestServerDelegate ... a bit of house cleaning in ZnGemServer' id '15078ceb-f99a-45da-a878-afaf6dd47bf4' date '12/04/2014' time '06:38:36' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.395' message 'Issue #58: add halt/breakpoint handlers to ZnSingleThreadedServer>>serveConnectionOn: and ZnMultiThreadedServer>>executeRequestResponseLoopOn: ' id '9dc2976d-a30a-459a-bf27-38e0cd344e2e' date '12/03/2014' time '15:04:20' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.394' message 'Issue #58: ZnSingleThreadedServer>>logServerError: to unconditionally log an error: and handleError: for GemStone so we make sure that all errors make it to the log (object log and continuation) AND the gem file .... add gobs of log helper methods to ZnGemServer ... control logging method and filter and whether or not continuations are created for errors from ZnGemServer' id 'adfc58cc-0093-4497-aa69-4bd5882c9fea' date '12/03/2014' time '14:38:54' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.393' message 'Issue #58: ZnSingleThreadedServer>>handleRequestProtected: don''t pass the exception ... debugMode doesn''t quite appy to GemStone ... need different granularity I think ... GsPharo 0.9.2 needs to be used' id 'baa8f9c1-8596-499c-b756-8b7c9d805bad' date '12/02/2014' time '16:29:11' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.392' message 'Issue #58: ZnWebSocketTests>>testEcho test passing ... in debugMode, use ZnObjectLogLogger ... practical to debug ZnGemServer using object log logging and continuations' id '56012f4e-e24d-4274-9480-464e39e012c3' date '11/30/2014' time '20:18:37' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.391' message 'Issue #58: a log can be specified for an instance of ZnGemServer. By default errors are logged to transcript and continuation commmited to object log.... ' id '287b4e2c-f842-43d8-b260-e19a3b059342' date '11/30/2014' time '11:19:10' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.390' message 'Issue #58: - always snap off continuation when an error event occurs - add some error handling a bit higher up the zn stack ... to catch application errors as well ... might be able to continue processing without passing error ... still passing at the moment... - ZnTranscriptLogger for all ZnGemServer guys ... might want to make this easier to customize ' id 'de82eb89-74dc-466c-990f-8f5ceae284f4' date '11/30/2014' time '10:39:44' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.389' message 'Issue #53: barring any new sent but not implmented messages, this bug should be fixed .... of course Issue #61 and Issue #62 were opened to implement the missing behavior' id '1fbac59e-9a7d-4d63-831c-a268f4ec664d' date '11/17/2014' time '16:17:42' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.388' message 'client forwarder safe tests for interactive session' id '5be60a6d-65b2-4738-a753-e5adff4864ac' date '06/29/2014' time '23:15:39' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.387' message 'remove extra tracing code ... tests greeen for GemStone 3.2' id '829b5fe3-3585-4b20-9a64-27cf084bd5da' date '06/29/2014' time '15:48:14' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.386' message 'logging for travix ZnServerTests>>testReadEvalPrint failures ' id 'f9fb3b5b-7c9d-44eb-8366-b06db2cc5f42' date '06/29/2014' time '15:17:53' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.385' message 'improve error reporting for ZnUnknownHttpMethod (tracking an error during tests) ... fix test case logging for non-interactive tests' id 'd0e4a2de-762b-432d-8600-a6dcf1bac062' date '06/29/2014' time '12:09:43' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.384' message 'significant work on Zinc logging... - add ZnObjectLogLogger to record ZnLogEvents in Object log - add ability to log errors for additional filter granularity in log. - install error event in the several(!) in Zinc client/server code where exceptions are silently ignored - exceptions logged as debug event along with hundreds of other non-exception based events) - use error event in ZnSingleThreadedServer>>logServerError: which also swallows errors ... returns an error response - Zinc tests refactored to: 1. turn on logging Transscript or ObjectLog depending upon whether tests are being run interactively or not 2. trace test running in object log to make it possible to correlate client/server log errors with the test being run.' id 'bb1e03f0-1ee1-4fb3-a05b-43e5961a28c6' date '06/29/2014' time '11:52:48' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.383' message 'checkpoint: 282 run, 274 passes, 0 expected defects, 6 failures, 2 errors, 0 unexpected passes' id '984043a7-e539-429c-8846-c7d1abec9505' date '06/27/2014' time '21:06:25' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.382' message 'strip ZnByteStringBecameWideString out of the zinc code (leave in tests) ... test fixes - 282 run, 272 passes, 0 expected defects, 8 failures, 2 errors, 0 unexpected passes' id 'c53c907d-0262-4d69-8d39-5a9e78c52cc2' date '06/27/2014' time '16:22:44' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.381' message '282 run, 269 passes, 0 expected defects, 11 failures, 2 errors, 0 unexpected passes - beef up server error handling - logic to bring up debugger when running interactively (clientForwarder defined for Transcript) - object log dumps ... no transactions at this point' id '8daec818-73e2-44d6-b558-55aa188cc061' date '06/27/2014' time '15:15:10' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.380' message 'Checkpoint: 282 run, 258 passes, 0 expected defects, 10 failures, 14 errors, 0 unexpected passes ' id '37891947-eb1c-417b-9228-2271d81a1a57' date '06/25/2014' time '21:52:54' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.379' message 'remove `(Delay forMilliseconds: 10) wait.` from ZnSingleThreadedServer>>releaseServerSocket ... not good result in GemStone3.x ..' id '124768f5-46a3-4d2b-ad55-82c44b1f56b1' date '06/25/2014' time '07:45:02' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.378' message 'port some changes made to improve stability for ZnMultiThreadedServer (i.e., error handling) ' id '3b13d0a2-2cf8-494f-a67e-878ca5953b57' date '06/24/2014' time '20:16:20' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.377' message 'move forkAt:named: to BlockClosure ... a shared class between 2.x and 3.x' id '632ea1bf-96f5-4838-b45b-bebfb4cafb3d' date '06/24/2014' time '19:42:59' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.376' message '' id 'b62843de-3718-4d88-b0e1-06af996ff809' date '05/24/2014' time '17:35:07' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.375' message 'zinc is dependent upon GLASS1 now ...' id '484f343c-dd72-4f02-8462-120cba385cec' date '05/23/2014' time '17:17:27' author 'dkh' ancestors ((name 'Zinc-HTTP-JohanBrichau.374' message 'fix WideString ref' id 'de950444-0140-45de-96af-238a26e4af0f' date '05/02/2014' time '23:52:37' author 'JohanBrichau' ancestors ((name 'Zinc-HTTP-JohanBrichau.373' message 'republish to get rid of bad utf8 encoding' id '3428f845-911a-4b51-a3a0-948c6d1eb449' date '01/05/2014' time '21:08:20' author 'JohanBrichau' ancestors ((name 'Zinc-HTTP-JohanBrichau.372' message 'porting code' id '2582ccc3-63aa-443d-859a-b90b9ed5b137' date '01/05/2014' time '15:27:28' author 'JohanBrichau' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.371' message 'Added an optimalization to ZnUTF8Encoder>>#readInto:startingAt:count:fromStream: to avoid the price of #becomeForward: when a ByteString to WideString conversion happens' id 'ef28893e-9902-4f96-bd30-1c97796df7f5' date '06/11/2013' time '04:34:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.370' message 'Two optimalizations: ZnStringEntity>>#readFrom: and ZnUtils class>>#readUpToEnd:limit: (if all contents read fits in the first buffer, take a fast path) - bis' id '78ad6f26-8414-47d1-980e-f1df75d91b2b' date '06/11/2013' time '02:06:42' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.369' message 'Two optimalizations: ZnStringEntity>>#readFrom: and ZnUtils class>>#readUpToEnd:limit: (if all contents read fits in the first buffer, take a fast path)' id '6ad9e454-799e-4d99-bd39-92f12cc41bef' date '06/11/2013' time '01:59:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.368' message 'Added/refactored some ZnHeaderTests Fixed ZnClientTests>>#testGetGeoIP' id '313a504c-dee4-49c8-8541-bdcdda740273' date '06/11/2013' time '11:41:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.367' message 'Introduction of ZnEntity class>>#matches: to fix ZnEntity class>>#concreteSubclassForType:binary: and ZnEntity>>#contentType: (Thanks Andy Kellens)' id '04dcc6f1-361f-46c1-a734-746b71460eb2' date '06/04/2013' time '04:28:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.366' message 'Updated some class comments' id 'ab163d28-d657-479b-90e3-b12566dfcb34' date '06/04/2013' time '01:52:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.365' message 'Further performance tuning of ZnEntity reading/writing' id '42e083e5-cad8-4800-b439-18bdb755909b' date '05/28/2013' time '01:25:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.364' message 'Optimized ZnHeaders>>#normalizeHeaderKey: using a CommonHeaders set' id '5564fa6a-bcde-4cfd-817c-3fd49f51d34d' date '05/28/2013' time '12:09:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.363' message 'Implemented ZnTestRunnerDelegate (original idea by Norbert Hartl - Thx) Minor optimalization to ZnUtils class>>#nextPutAll:on:' id 'a1fa8795-eb44-4812-81e7-3da28fa9bda9' date '05/28/2013' time '10:38:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.362' message 'Changed ZnMultiThreadedServer>>#readRequestTerminationSet to a more sane value (this was probably forgotten in the last refactoring) Added a CRLF to /echo in ZnDefaultServerDelegate' id '0ec0f1da-d41f-4b7a-9911-7111341cad51' date '05/27/2013' time '04:21:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.361' message 'A new implementation of ZnStringEntity>>#readFrom: based on buffer wise delegation to ZnCharacterEncoder>>#readInto:startingAt:count:fromStream' id '109ed743-caf5-410c-9162-72933240fa53' date '05/23/2013' time '12:37:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.360' message 'Performance enhancement in ZnMessage/ZnEntity writing (more intelligent buffering, more intelligent encoding) Implemented #= and #hash for all Zn Core objects Tracking ZnMimeType>>#= and #match: changes Added new tests and benchmarks ' id '9ee5d56f-fd93-4115-976f-371df43dd56d' date '05/22/2013' time '04:35:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.359' message 'Fixed a typo in ZnNetworkingUtils>>#initialize' id '455db906-7f02-4451-80e5-1efb8573609a' date '05/20/2013' time '03:31:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.358' message 'FIx ZnResponse>>#setTransferEncodingChuked to send a #clearContentLength' id 'd4a01cc3-c7b5-440c-8cfd-7f10b395816e' date '05/20/2013' time '03:02:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.357' message 'Added ZnServer>>#useGzipCompressionAndChunking[:] option and implementation (disabled by default)' id '3586cb96-51a2-4c00-b120-1ec622e2505a' date '05/19/2013' time '09:25:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.356' message 'Refactored ZnEntity subclasses #writeOn: to use the newly introduced ZnUtils class>>#nextPutAll:on: ZnEntityWriter now uses a buffered stream when there is chunking without gzip compression for text (otherwise each character would become a chunk) Switched ZnNetworkingUtils to use ZdcSocketStream when it is available' id '3c079a63-a106-4254-aa8c-81bc9a64aa69' date '05/19/2013' time '11:49:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.355' message 'Introduction of ZnEntityWriter with support for gzip/chunked encoding' id '69d9f0c8-d113-41e9-ab0d-8ba97e296597' date '05/18/2013' time '02:06:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.354' message 'Added #chunkCount to ZnChunked[Read|Write]Stream Added #position to ZnChunkedWriteStream' id '9dcbc597-fb19-4469-937f-9dc504b5d02d' date '05/18/2013' time '12:42:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.353' message 'Optimized ZnChunkedReadStream>>#upToEnd' id '79dce0bc-490e-4364-b138-584728356cc6' date '05/17/2013' time '11:57:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.352' message 'Added ZnChunkedWriteStream Reorganized ZnChunkedStreamTests' id '2ac8bc6d-5fdd-408b-8212-93df128a777a' date '05/17/2013' time '05:06:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.351' message 'Improved and simplified ZnReadEvalPrintDelegate.' id 'a4a8cbaf-2c42-485b-b442-8f982d8e08a4' date '05/16/2013' time '01:16:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.350' message 'Added ZnReadEvalPrintDelegate, a REPL Web Service.' id 'd18e631a-94e4-4803-9549-beff989ff14b' date '05/15/2013' time '10:46:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.349' message 'Changed exception handling in ZnMultiThreadedServer: parse errors while reading an incoming request now result in a bad request response ' id 'b77fabc9-a1e3-462a-8c1a-e18b4b017f25' date '05/14/2013' time '01:42:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.348' message 'Added ZnClient>>#curl debugging utility which generates a curl command line invocation from the current request' id 'c238e1b9-84f9-4960-bca4-6c0fae43db50' date '05/07/2013' time '05:05:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.347' message 'Extended ZnClient>>#noteRedirect to take the target URL as argument and log it' id '145d12ff-c4af-446a-9666-db575fcb7ff8' date '04/19/2013' time '01:24:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.346' message 'Bugfix to ZnApplicationFormUrlEncodedEntity>>#addAll: (#invalidateRepresentation was no longer called after a recent refactoring) - Thanks Paul DeBruicker' id 'fe87820c-7859-4abe-8258-2e93c9b2611b' date '02/24/2013' time '11:07:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.345' message 'Added a #prepareRequestHook to ZnClient (see #prepareRequest: to set, #prepareRequestHook to access and #prepareRequest for the invocation); the request preparation hook is an object conforming to the #value: protocol that gets the final chance to change a request right before it gets executed. Typically used to sign requests.' id '5429a096-2d7d-4bc6-9b41-ab845c52a2c7' date '02/21/2013' time '05:10:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.344' message 'Switch the internal lastUsed instance variable of ZnClient from using full TimeStamp to Time totalSeconds' id 'b241e90f-e64d-4a16-89f7-b484d9a21ca8' date '02/11/2013' time '11:53:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.343' message 'Bugfix in ZnSingleThreadedServer>>#logServerError:' id 'a6ebbdf3-96b6-48fd-82ca-663bddafeeea' date '02/01/2013' time '04:22:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.342' message 'ZnServer''s #handleRequestProtected: will now also do a #logServerError unless #logServerDetails is false - this gives exception, signaller context details and a stack trace of depth 8 when an unhandled error occurs.' id 'c2255d27-bd92-4e23-965c-7be405ac857e' date '01/31/2013' time '11:56:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.341' message 'Moving ZnMonticelloServerDelegate from Zinc-HTTP-Client-Server to Zinc-FileSystem and Zinc-FileSystem-Legacy' id '6459b7f2-49d1-4e4e-80cf-fff3f83a7969' date '01/30/2013' time '07:56:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.340' message 'Extended ZnClient>>#url: to accept the new user info (username and password) component of ZnUrl when present; ZnRequestLine>>#uri: now explicitely calls #enforceKnownScheme' id '46c6777e-07a4-41e9-8505-26f3db1f0438' date '01/30/2013' time '07:45:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.339' message 'Bugfix to ZnApplicationFormUrlEncodedEntity>>#readFrom: which failed when content-length was not specified (Thx Jan van de Sandt)' id '60911520-b3de-4382-89bb-aa6376640012' date '01/25/2013' time '02:46:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.338' message 'added ZnMessage>>#writeToTranscript' id '6fc88bfa-6111-4190-8ced-939a040c67ef' date '01/24/2013' time '10:07:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.337' message 'fix ZnUtils class>>#signalProgress:total: bug when total was nil: #format: index should be 1 not 0 (Thx Camillo Bruni !)' id '0cfbd214-abe9-4f6e-8a14-7184b312428b' date '01/15/2013' time '04:02:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.336' message 'Some internal ZnServer refactoring/cleanup; primary change is that ZnCurrentServer is now set over the whole request/response cycle including the reading/writing and not just the handleRequest (this was needed for WebSockets)' id 'd8ac8c4a-3914-4295-bcb3-e0ce7b22f745' date '01/10/2013' time '03:56:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.335' message 'ZnResponse class>>#redirect: and #created: now accept absolute URLs as well (thx Jan van de Sandt) New ZnRequest API (all suggested by Jan van de Sandt): #host to return the Host: header field as ZnUrl #relativeUrl to explicitely request the request line uri as a relative URL #absoluteUrl to combine the request line URL with the host URL into an absolute URL #mergedFields to return a multi value dictionary combining query fields and application url encoded form fields ZnClient>>#redirectUrl now uses ZnUrl>>#inContextOf: Reimplemented ZnApplicationUrlEncodedEntity>>#addAll: and ZnHeaders>>#addAll: using ZnMultiValueDictionary>>#addAllMulti: ' id '085c1ffd-3ce3-46a7-81ab-d504bd7f0dd8' date '01/07/2013' time '12:37:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.334' message 'Added ZnServer>>#url and the #serverUrl option, as well as #scheme. Now sorting all handlers in ZnDefaultServerDelegate>>#generateHelp ' id '4db52577-5ad9-4194-acf8-68abbcff67a3' date '01/04/2013' time '02:25:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.333' message 'refactored ZnSingleThreadedServer and subclasses (added #authenticateAndDelegateRequest: and protocol ''request handling''); added ZnServer #route option; extended ZnServerSessionManager>>#newSessionId to use the server route when set' id '2391f87a-1b49-4491-bd8f-722a1257d12e' date '12/31/2012' time '05:06:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.332' message 'fixed a typo/bug in ZnServerSessionManager>>#sessionFor: (expired sessions were not removed correctly)' id '89ca824f-fd84-4c63-aed7-d581dcca5a93' date '12/25/2012' time '09:28:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.331' message 'Backported a Pharo 2.0 patch: ZnNetworkingUtils>>#shouldProxyUrl: now takes the new NetworkSystemSettings class>>#isAnExceptionFor: API into account, when it is available (for pre 2.0 compatibility)' id 'b1ec8d0d-1367-4de3-94e6-c6e8fe1a8831' date '12/24/2012' time '02:30:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.330' message 'added ZnSingleThreadedServer>>#handleRequestProtected: with a general and global error handler that normally returns an HTTP server error unless the server is in #debugMode' id 'e049c94f-6d29-4d21-a235-7b4ce689b090' date '12/23/2012' time '06:27:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.329' message 'added ZnServerSession>>#attributeKeys and #removeAttribute:' id 'afc731a8-d1f6-4f5a-846d-c13ade5ab68a' date '12/21/2012' time '12:03:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.328' message 'Replaced ZnPercentEncodingWrong with ZnCharacterEncodingError; Using #beLenient ZnCharacterEncoder instanciation in ZnStringEntity>>#initializeEncoder since apparently even Google sends spurious Latin1 characters' id 'a6d2358e-3ca9-43c5-b4dc-8e885ad9895d' date '12/17/2012' time '04:22:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.327' message 'creation of Zinc-Character-Encoding-[Core|Tests] by moving various classes out of Zinc-HTTP' id '501cdb52-158d-4020-b01e-cab709a4cab6' date '12/16/2012' time '05:02:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.326' message 'introduction and usage of ZnCharacterEncodingError exception; rewrote ZnBufferedReadStream>>#upToEnd and ZnCharacterReadStream>>#upToEnd' id 'a384cd05-21fe-4e48-b5fd-1ed7e7c73cf4' date '12/16/2012' time '04:35:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.325' message 'fixed a typo in a ZnBase64Encoder class method' id '55fd39e4-2495-4a6b-8db3-135cc9ba6f3b' date '12/16/2012' time '12:59:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.324' message 'changed the implementation of ZnByteEncoder to correctly honor and dleal with holes in official mappings' id '50d334f7-91c4-479b-8d44-1e76a945754f' date '12/15/2012' time '10:02:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.323' message 'modified ZnByteEncoder to use its own byte to Unicode mapping tables; this includes the change that latin1 is no longer mapped to a null encoder' id '819adf4a-fa93-4994-9a80-640fdf069311' date '12/15/2012' time '08:09:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.322' message 'finished the implementation of ZnBase64Encoder' id '95c632af-ec48-489c-bb94-8d44cc989787' date '12/15/2012' time '02:11:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.321' message 'added empty ZnBase64Encoder' id 'cc44a426-3f95-4b1c-9e3c-095bba14632e' date '12/14/2012' time '07:53:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.320' message 'added ZnPercentEncoder' id 'a32bf1d1-469c-4274-9d5c-efeeb2443df4' date '12/13/2012' time '11:31:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.319' message 'reworked/simplified some ZnClient internals - removed the state concept and instance variable - removed the #resetRequestIfNeeded concept and method; added ZnClient>>#resetEntity; added ZnClient>>#isCreated and #isNotFound note: this might make some semantic differences for people heavily reusing ZnClient instances' id '0da03bdc-ec26-42c0-b04b-f1cd13f6f9bc' date '12/12/2012' time '10:40:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.318' message 'moved HierarchicalUrl>>#asZnUrl from Zinc-Resource-Meta-Core back to Zinc-HTTP' id 'b7c4b025-6901-428f-9a4d-04544f32b6dd' date '12/11/2012' time '10:15:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.317' message 'added ZnResponse>>#isNotFound' id 'c7b7a02b-2b16-4b98-9d41-1115e6fac2f9' date '12/10/2012' time '09:33:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.316' message 'moving ZnUrl, ZnMimeType and related support classes to a new, independent package Zinc-Resource-Meta-Core (and unit tests to Zinc-Resource-Meta-Tests); extended ZnUrl to allow for some simple file:// URLs' id '9e15776d-4fc6-4b0b-91be-8552bc8cfe29' date '12/08/2012' time '09:15:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.315' message 'added ZnServerSession>>#attributeAt:ifAbsentPut:' id '4790203a-4259-4a33-a31f-dc867a2a38ab' date '12/07/2012' time '01:27:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.314' message 'Improved performance of ZnUTF8Encoder #nextFromStream: and #nextPut:toStream: by making the ASCII path really fast and by unrolling the block closure creation and usage; Added ZnCharacterReadStream>>#peekFor:; FIxed ZnCharacterReadStream>>#encoding:' id 'edc26e38-09d5-4e60-9c66-3ff28fe9bdd1' date '12/03/2012' time '03:00:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.313' message 'Added ZnBufferedReadStream>>#peekFor: Added ZnBufferedReadStream class>>on:do: improved some comments' id 'ec815554-cc36-435d-805d-67a2ad49465f' date '12/02/2012' time '08:03:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.312' message 'added ZnBufferedReadStream (from STON); extended ZnBufferedWriteStream (with #next:putAll:startingAt: logic); added tests for these' id '6ac64f4c-3d4b-4d29-bfab-8b181d8668b6' date '11/30/2012' time '10:59:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.311' message 'initial version of optional server session management; ZnMessage and subclasses now implement #server and #session implemented via dynamic & process local variables respectively; moved ZnHTTPSocketFacaded to deprecated; started new category Zinc-HTTP-Variables; extended some default server delegate responses, added ''session'' response with counter test' id 'aa1d7f79-a906-4a72-a1f6-675ed32982f6' date '11/11/2012' time '08:14:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.310' message 'bugfix: ZnManagingMultiThreadedServer was overwriting the wrong #stop method (thx Pavel Krivanek)' id 'a50aebff-8910-4553-95d7-b89a9e97a8f4' date '10/10/2012' time '10:48:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.309' message 'merged with 305 (thx paul)' id '3da1e6fc-76e0-4efa-8abe-7f334d9644bc' date '10/02/2012' time '06:59:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.308' message 'added ZnClient>>#setAcceptEncodingGzip as well as ZnClient>>#isNotModified' id '25811184-aeab-4d41-88f0-59277712dac0' date '09/30/2012' time '09:03:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.307' message 'Modified ZnServer class>>#startUp: to use a deferred startup action to start all registered servers; this should allow for normal error handling when something goes wrong initializing server sockets (thanks Igor Stasenko for the fix; thanks Denis Kudriashov for the error report)' id '9387492b-daa2-4ebf-a49d-44950586bda3' date '09/29/2012' time '09:00:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.306' message 'extended ZnResponse>>isRedirect with 303 and 307' id '26b8c486-2b3b-46be-942e-d6ac67f0ac62' date '09/27/2012' time '10:07:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MarcusDenker.305' message 'Issue 6697: Zn+Zdc Update 2012-09-19 http://code.google.com/p/pharo/issues/detail?id=6697 Issue 6699: Share binding of metaclass methods http://code.google.com/p/pharo/issues/detail?id=6699 ' id '04e33e2c-1223-4626-87fb-3f4d73052504' date '09/21/2012' time '01:50:10' author 'MarcusDenker' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Zinc-HTTP-SvenVanCaekenberghe.305' message 'added extra guards to prevent ZnClent options #beOneShot and #streaming: true to be used at the same time because that would result in the stream being closed too soon; added ZnMimeType class>>#imageSvg (thx Paul DeBruicker)' id '3e1c02b0-b966-4d0d-96fb-ab90e7c1dc44' date '09/27/2012' time '02:45:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.304' message 'Added option ZnServer class>>#alwaysRestart: to fine tune the shutDown/startUp behavior, defaults to previous behavior' id 'dc02fe1f-869b-49a9-a281-f297b576181e' date '09/18/2012' time '01:51:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.303' message 'Refactored ZnNetworkingUtils>>#socketStreamToUrlDirectly: to honor/use the correct timeout both when doing a DNS lookup as well as during connect by using NetNameResolver directly as well as using #openConnectionToHost:port:timeout' id '9f5a3863-fc08-470d-b8a1-d44169952a66' date '09/18/2012' time '10:03:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.302' message 'Added HTTPProgress signalling to ZnByteArrayEntity, ZnStringEntity as well as ZnUtils class>>#readUpToEnd:limit: Refactored streaming and HTTPProgress signalling in ZnUtils by addition of ZnUtils class>>#[streamingBufferSize|signalProgress:total:]' id 'd3e6d62a-ed00-40c7-aa9a-476111595f2f' date '09/17/2012' time '04:08:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.301' message 'Fixed a bug where HTTPProgress notifications would trigger a retry. Thanks Camillo Bruni for finding this problem and suggesting a solution. Now, retries are only triggered by (NetworkError, ZnParseError), while the #ifFailBlock will be trigger on any Error. Furthermore, #noteRetrying: and noteIgnoringExceptionOnReusedConnection: will report on the actual exception. The default #ifFailBlock is now [ :exception | exception pass ] for some cleaner code. ' id '85632c09-a6c4-40e9-b29b-1c5e86d07ead' date '09/17/2012' time '10:10:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.300' message 'removal of all classes in Zinc-HTTP-Deprecated - ZnClientOld - ZnFixedClient - ZnExtendedFixedClient - ZnUserAgent - ZnHttpClient - ZnUserAgentSettings as well as all their unit test classes' id 'a09fb75e-0ba5-489c-bc1b-435481a08164' date '09/05/2012' time '01:59:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.299' message 'changed maximumEntitySize concept from a normal class variable on ZnConstants to a dynamic/process-specific variable ZnMaximumEntitySize; added the option #maximumEntitySize to ZnServer' id 'f16b9f44-38a7-403e-9743-57fe2e25e800' date '09/05/2012' time '01:21:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.298' message 'introduction of options in ZnServer; refactored port, bindingAddress, delegate, authenticator and reader as options' id '9f5f3ab5-6fc9-43f3-9815-579cb01d954c' date '09/05/2012' time '11:24:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.297' message '#includesSubString: becomes #includesSubstring:' id '1b207b45-8524-4e16-b2c4-64337eadb784' date '08/27/2012' time '09:41:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.296' message 'added [ZnDefaultServerDelegate|ZnMonticelloServerDelegate]>>#value:' id '8f44e26a-2144-48ce-8e30-6239fcf3d50d' date '08/22/2012' time '03:00:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.295' message 'fixed type (wws should be wss); patched ZnNetworkingUtils>>#socketStreamToUrlDirectly: to treat wss as needing a #connect' id '233bcdca-806d-4bce-b09f-13ab7b81c9b0' date '08/22/2012' time '11:15:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.294' message 'extended ZnMultithreadedServer>>#executeRequestResponseLoopOn: with two new features related to the response objects generated by delegates: - the response object now also can answer whether or not it #wantsConnectionClose - after a response is written (flushed and logged), the response objects gets a chance to continue using the connection in the current thread/process for its own custom purposes through #useConnection: ' id 'c0e261d1-ad93-46e1-8b01-c5eedc7d32af' date '08/21/2012' time '01:29:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.293' message 'changed ZnSingleThreadedServer>>#serveConnectionOn: to no longer fork a worker thread/process as this is against the key idea of the class (this in not really active code, so this cleanup in more theoretical)' id '03d30d07-c250-483b-8525-91f709584ce7' date '08/20/2012' time '02:10:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.292' message 'fixed an offset bug in ZnUtils>>#streamFrom:to: (thx again, Chris Bailey)' id '932b7c3b-0892-48e0-a156-87cd9c4661cf' date '08/03/2012' time '10:49:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.291' message 'various fixes to ZnChunkedReadStream>>#readInto:startingAt:count: (thx Chris Bailey for reporting the problem); added ZdcALimitedReadStream>>#nextInto: as it is used by Fuel' id '3d8c50cd-2d7b-459f-89f3-b77a23dccfdd' date '08/02/2012' time '11:26:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.290' message 'added ZnUtils class>>#streamFrom:to: to copy one stream to another using a buffer without knowing the size upfront and thus using #atEnd; patched ZnStreamingEntity>>#writeOn: to use the new method when the content-length is nil or 0' id 'b7c44798-970d-4ab0-9da4-e73a095c91c3' date '07/20/2012' time '01:11:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.289' message 'allow for the schemes ws and wss to be equivalent to http and https' id '894699cd-a923-4fe0-b71c-6c629dde4f89' date '07/20/2012' time '10:33:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.288' message 'removed usage of OS version from ZnUserAgentSettings class>>#platformDetails' id '9811cc67-6a03-4c46-a67a-952727699d1c' date '07/16/2012' time '11:49:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.287' message 'Changed ZnStreamingEntity>>#readFrom: to no longer switch to non-binary - this was wrong anyway since no encoding was used' id '285ffb16-c7b3-4f82-9c19-7db828769d6e' date '07/13/2012' time '08:30:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.286' message 'trying to restore ancestry and some lost changes: merged Zinc-HTTP-SvenVanCaekenberghe.282 and Zinc-HTTP-SvenVanCaekenberghe.283' id '55810020-2df7-4b64-9872-4eccb8db92da' date '07/12/2012' time '10:12:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.285' message 'enabled HTTPProgress signalling during streaming up/downloads. introduction of ZnSignalProgress with #enabled method' id 'e992fd76-efde-4b31-b4b4-bd468f8176f2' date '07/12/2012' time '09:58:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.284' message 'bugfix related to Pharo 2.0 - changed ZnClient>>#dowloadEntityTo: to use ZnFileSystemUtils class>>#newFileNamed:do: instead of #fileNamed:do:' id 'e71138c5-9577-4315-bbb9-19101b1a44cb' date '07/12/2012' time '01:23:15' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())(name 'Zinc-HTTP-SvenVanCaekenberghe.282' message 'killed a (comment) reference to mac.com' id 'de6f7d59-22da-4612-937b-07111df60678' date '07/04/2012' time '05:56:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.281' message 'introduction of the Zinc-FileSystem-Legacy package (including the new ZnFileSystemUtils class) to deal with pre/post FIleSystem introduction in Pharo 2.0 - this is the old code' id '1fcf9d84-c2c3-4e70-b45a-6c68a381329d' date '07/03/2012' time '01:48:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.280' message 'clean up ZnClient option setter methods to return self for easy chaining (thx Sean DeNigris)' id '00d1da5e-18a2-4f96-afe7-c7f7d6fe0c6c' date '05/30/2012' time '22:14:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.279' message 'added ZnMimeType class>>#applicationPdf as a convenience accessor as well .pdf as recognized file extension' id 'd636e0ff-907e-4299-bf7f-4328840ba225' date '05/27/2012' time '06:50:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.278' message 'added multiline/continuation header line parsing to ZnHeaders; added some extra guards to ZnDigestAuthenticator class>>#parseAuthRequest' id '5c5f70f9-0f04-4941-a09a-cbf28ba154e4' date '05/22/2012' time '10:48:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.277' message 'simplified the example in the class comment of ZnDispatcherDelegate' id 'c4263c43-acf8-44b7-a3cb-6731e8d1a125' date '05/21/2012' time '10:02:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.276' message 'minor fix to ZnStaticFileServerDelegate' id '388a9cd6-b0b8-41ee-a24a-00aae254fa48' date '05/15/2012' time '13:15:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.275' message 'refactored ZnStaticFileServerDelegate a bit: - store expiration times as seconds in #defaultMimeTypeExpiration & #mimeTypeExpiration map - add not only Cache-Control but Expires header as well - removed unused #responseForFile: fixed a bug in ZnMessage>>#clearEntity (didn''t #close streaming entities with HEAD requests) ' id '94f2451b-b7e0-4d74-866b-d55b01c98ed9' date '05/14/2012' time '10:59:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-PaulDeBruicker.274' message 'Added handling for If-Modified-Since and Not-Modified headers to the ZnStaticFileServerDelegate' id '3f7f92c3-1ae8-4bd4-b4e2-5421cf49614a' date '05/12/2012' time '10:15:58' author 'PaulDeBruicker' ancestors ((name 'Zinc-HTTP-PaulDeBruicker.273' message 'Added the ability to set expiration headers when serving static files with the ZnStaticFileServerDelegate. Can probably adapt it to work when returning files from a WAFileLibrary if there isn''t already a mechanism for that. ' id '7684ed9a-80b2-47bb-a165-6e7ef40d555e' date '05/11/2012' time '03:26:02' author 'PaulDeBruicker' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.272' message 'updated ZnServer welcome page' id '1511b44d-a8f8-4a66-9ab7-0c5d3b0ca955' date '05/11/2012' time '15:22:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.271' message 'added ZnClient>>setIfModifiedSince: refactored #downloadTo: using #downloadEntityTo:' id 'deabc112-7505-4072-9116-16200a9ea513' date '05/10/2012' time '22:46:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.270' message 'merged ZnUtils class>>#parseHttpDate: improvements by Sean DeNigris' id 'eec865bb-4103-4a28-9e55-5d3c471f26c7' date '05/10/2012' time '20:30:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SeanDeNigris.269' message 'Fix the HTTP date parsing to comply with the HTTP/1.1 standard. See discussion at http://forum.world.st/Parsing-HTTP-dates-td4623688.html. Matching update to the tests (which all pass): Zinc-Tests-SeanDeNigris.140' id 'c7d98308-0259-4d69-a273-0572a06d9d0f' date '05/10/2012' time '12:25:56' author 'SeanDeNigris' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.268' message 'added ZnClient>>#uploadEntityFrom: and #contentType: as a convencience to easier do a direct PUT or POST of a file.' id 'e4dabff1-c4ef-4630-85d3-f00afbb516e7' date '05/09/2012' time '09:57:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.267' message 'first, not yet integrated versions of ZnCharacter[Read|Write]Stream; added iso-8859-15 to known encodings in ZnByteEncoder; added some optimizations to ZnNullEncoder' id 'e25c20c3-e14a-493d-88fa-7c9717455beb' date '05/03/2012' time '22:15:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.266' message 'added #match: and #contents to ZnChunkedReadStream and ZnLimitedReadStream; added some convenience methods to ZnCharacterEncoder: #encodeString: #decodeBytes: and #encodedByteCountForString:' id '72b9579d-c272-417f-8949-2e66714574ba' date '05/02/2012' time '16:43:52' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.265' message 'finalized switch from ZnClient>>#downloadToFileNamed: to ZnClient>>#downloadTo: which also accepts directories and creates a file there like wget or curl can (as suggested by Sean P. DeNigris). Roll back FileSystem usage for now.' id '618f4d2b-35ee-4c05-a495-e74b8a793399' date '04/26/2012' time '16:45:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.264' message 'fixed ZnClient>>#downloadTo: using old school FileDirectory/FileStream' id '4d6a0d40-0927-4b6b-9c98-a583922b58b2' date '04/26/2012' time '14:34:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.263' message 'added experimental ZnClient>>#downloadTo:' id '2d0dd4da-87a0-44d5-b4aa-410041e67897' date '04/26/2012' time '14:19:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.262' message 'added ZnClient>>#downloadToFileNamed: ' id '483455c8-f370-40e8-8848-036044211929' date '04/25/2012' time '21:19:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.261' message 'timezone offsets should be Durations' id '070fd646-c4ee-451c-94f4-bf67010ada05' date '04/23/2012' time '15:41:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.260' message 'updated ZnEasy comment' id 'af3c61c1-498c-430a-9136-ddaf1d5537fe' date '04/21/2012' time '11:13:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.259' message 'Zinc-HTTP-PaulDeBruicker.257' id '67dd4881-a30f-4051-b052-f07774efec8c' date '04/20/2012' time '10:27:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.258' message 'merging forgotten 255 & 256 into 257' id '0c026aa8-59d1-42db-a714-8079feca26d3' date '04/16/2012' time '06:25:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.257' message 'minor allocation improvement to ZnStringEntity>>#readLimitedFrom:' id 'bc3d146e-dca8-4245-be9c-25f3fb76c1cb' date '04/15/2012' time '19:23:24' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())(name 'Zinc-HTTP-PaulDeBruicker.257' message ' Added ZnResponse>>#isError which checks if the ZnStatusLine code is >399. ' id '63eca7f3-2b5b-4112-b91e-b76ddcf0453c' date '04/19/2012' time '05:05:46' author 'PaulDeBruicker' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.256' message 'renamed ZnServer>>#interface[:] to ZnServer>>#bindingAddress[:] following a suggestion by Norbert Hartl, Thx!' id 'a3d6638c-d5c4-4c20-a6c1-566e00b752fb' date '04/13/2012' time '13:20:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.255' message 'added technology to allow entities to be read binary even when they are textual, thus disabling Zn''s normal decoding behavior; this is what Seaside expects (as Seaside does its own conversions); added ZnEntityReader>>#[is]Binary; added ZnMessage[class]>>#readBinaryFrom: added ZnEntity class>>#readBinaryFrom:usingType:andLength: added ZnSingleThreadedServer>>#reader[:] to allow customizing entity reading' id 'e0d6d894-7fbb-41dd-8376-f87e4ca9da32' date '04/07/2012' time '18:29:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.254' message 'ZnBivalentWriteStream has to forward #flush to its wrapped stream' id '3b82b4f5-a0ed-44b4-bcd1-a5ec129d9d42' date '04/04/2012' time '16:08:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.253' message 'modified the implementation of ZnUtils class>>#streamFrom:to:size: to use a larger buffer when necessary and to flush the output stream each time through the loop except for the last one (this is need because we use SocketStream with autoflush false and this results in internal buffer overflow on very large writes).' id '183dc82c-6011-45b4-8a56-2c8415d381fe' date '04/04/2012' time '13:46:20' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.252' message 'changed ZnDefaultServerDelegate>>generateDWBench to use a date/time timestamp with a constant space representation ' id '94aee4dc-7124-485c-a70d-2d8f2831b35f' date '03/18/2012' time '19:23:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.251' message 'added ZnServer>>#localUrl ' id 'c56ae9d6-6fb1-481c-94fe-fc9ee8fa59b9' date '03/12/2012' time '22:23:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.250' message 'added the option to restrict ZnServers to only listen on a specific interface; added Zn[SingleThreaded]Server>>interface[:]; added ZnNetworkingUtils [class]>>#serverSocketOn:interface' id '5097d852-2887-45ca-9f2f-5dc50ffc95f4' date '03/12/2012' time '19:50:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.249' message 'added some extra API to ZnMimeType to manipulate parameters and charSets' id '209986ca-144b-46d7-8449-f34b0e9c1864' date '03/06/2012' time '11:10:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.248' message 'Switched ZnServer class>>#defaultServerClass to ZnManagingMultiThreadedServer; Add ZnStandardOutputLogger and ZnSingleThreadedServer>>#logToStandardOutput' id 'aaab5645-ed48-4174-bdb5-53037fb297db' date '03/04/2012' time '20:25:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.247' message 'changed usage of #deprecated: to #deprecated:on:in:' id '5ae403b7-a4cb-4ca9-a49a-0e71b6bd036a' date '03/04/2012' time '10:35:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.246' message 'extended ZnDefaultServerDelegate>>#generateStatus' id 'e1714401-1e45-4d67-97cd-7b735be277a2' date '03/01/2012' time '13:58:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.245' message 'fixed a bug related to sending multiple cookies; fixed a bug related to receiving and sending cookies during redirects; thank you Sean DeNigris; ZnClient>>#prepareRedirect now receives and sends cookies; ZnClient>>#sendCookies now uses a single Set-Cookie header containing multiple cookies instead of multiple Set-Cookie headers; added ZnClient>>#resetCookies; extended ZnClient logging with #debug printing of headers and processed cookies; minor changes to ZnClient internal state variable' id '35bf1aac-cf81-479a-8683-8ad057b7566a' date '02/29/2012' time '20:10:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.244' message 'refactored/extended ZnRequest with authorization and basic authentication access' id 'b2397b7f-ec54-4461-999d-90bfa1fd517a' date '02/23/2012' time '22:17:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MarcusDenker.243' message 'Issue 5299: Yet another Zn update http://code.google.com/p/pharo/issues/detail?id=5299' id '583fa1ec-e230-4a83-8a67-12cb734c2bdb' date '02/17/2012' time '15:13:00' author 'MarcusDenker' ancestors ((name 'Zinc-HTTP-StephaneDucasse.236' message '- Issue 5149: add line in comment of VirtualMachine class>>parameterAt:. ThanksLuc Fabresse and Mariano Martinez-Peck. http://code.google.com/p/pharo/issues/detail?id=5149 - Issue 5132: CommentReference SourcedMethodReference MethodReference are now deprecated http://code.google.com/p/pharo/issues/detail?id=5132 - Issue 2560: Convenient methods from Grease for Strings. Thanks Sven van Caekenberghe. Part one. http://code.google.com/p/pharo/issues/detail?id=2560' id 'f47fd8ea-3884-4572-9af9-d9f6eb4457c9' date '01/09/2012' time '17:23:41' author 'StephaneDucasse' ancestors ((name 'Zinc-HTTP-StephaneDucasse.235' message '- Issue 5157: Finder > Class > right-click > Hierarchy opens not on Class but on FinderClassNode. Tx Benjamin van Ryseghem. http://code.google.com/p/pharo/issues/detail?id=5157 - Issue 5151: Recategorization of PanelMorph. Thanks Benjamin van Ryseghem. There is no useless cleans. Even small steps are cool and important. http://code.google.com/p/pharo/issues/detail?id=5151 - Issue 5154: It would be great to have a setting to allow the Debugger to open centered and be 3/4 of screen. Thanks Alain Plantec. http://code.google.com/p/pharo/issues/detail?id=5154 - Issue 5148: LimitNumberOfEntriesInZnMultiValueDictionary. Thanks Sven van Caekenberghe. http://code.google.com/p/pharo/issues/detail?id=5148 ' id 'c1c64007-e1ae-4347-b059-eb64071c1845' date '01/07/2012' time '19:13:20' author 'StephaneDucasse' ancestors ((name 'Zinc-HTTP-ZincUpdate.234' message '- Issue 5127: Zinc update http://code.google.com/p/pharo/issues/detail?id=5127 - last bit of Issue 4688: progress bar disappears on image save http://code.google.com/p/pharo/issues/detail?id=4688' id '96fb41c6-6187-4572-82d5-88acaff58417' date '12/25/2011' time '23:01:50' author 'ZincUpdate' ancestors ((name 'Zinc-HTTP-StephaneDucasse.233' message '- Issue 5117: MNU: Transcripter class>>open. Thanks vpnbecmann. http://code.google.com/p/pharo/issues/detail?id=5117 - Issue 5122: ZnUpdate-Dec-20. Thanks sven van caekenberghe. http://code.google.com/p/pharo/issues/detail?id=5120' id '49c87187-0e9e-41aa-a78d-f2eeba91da2f' date '12/25/2011' time '11:47:49' author 'StephaneDucasse' ancestors ((name 'Zinc-HTTP-MarcusDenker.227' message 'Issue 5063: Zinc uses default encoding of utf-8 when encoding url safe encoded strings http://code.google.com/p/pharo/issues/detail?id=5063' id '3a35f66b-1807-4525-be31-56999a7ec249' date '12/09/2011' time '13:17:57' author 'MarcusDenker' ancestors ((name 'Zinc-HTTP-MarcusDenker.224' message 'Issue 5048: Move Transcript to Tools Package http://code.google.com/p/pharo/issues/detail?id=5048 Issue 5047: Stream should not print its contents in printOn: http://code.google.com/p/pharo/issues/detail?id=5047 Issue 5053: ZnChunkedReadStream doesNotUnderstand: #next:into: http://code.google.com/p/pharo/issues/detail?id=5053' id '545d1d37-4bce-4a96-a438-cc7ad16618f9' date '12/04/2011' time '13:38:23' author 'MarcusDenker' ancestors ((name 'Zinc-HTTP-MarcusDenker.222' message 'Issue 4998: ContextPart>>#runUntilErrorOrReturnFrom: (for testing) http://code.google.com/p/pharo/issues/detail?id=4998 Issue 4994: Two failing test in ProcessTest http://code.google.com/p/pharo/issues/detail?id=4994 Issue 5014: zn updates http://code.google.com/p/pharo/issues/detail?id=5014' id '0eaf0a8a-f842-4a22-83d9-b1c65bf2b853' date '11/25/2011' time '16:03:18' author 'MarcusDenker' ancestors ((name 'Zinc-HTTP-StephaneDucasse.221' message ' Issue 4903: New version of Zinc http://code.google.com/p/pharo/issues/detail?id=4903' id '37c68635-515f-43fb-8665-9d7674c0aee3' date '11/18/2011' time '15:18:42' author 'StephaneDucasse' ancestors () stepChildren ())(name 'Zinc-HTTP-SvenVanCaekenberghe.215' message 'modified ZnNeoClient>>#contents to return the stream when streaming is requested (more specifically: do not call #contents on the ZnStreamingEntity by default as this would defeat the whole idea of streaming; note that when there is a #contentReader it should do the right thing)' id 'c94ae1c2-5cc3-4ce6-9f04-28155f6834c9' date '10/26/2011' time '14:45:52' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.214' message 'moved deprecated classes to category Zinc-HTTP-Deprecated, noted deprecation in class comments' id '248c4eaf-ca0f-4584-99f4-d399438fd2ed' date '10/04/2011' time '19:11:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.213' message 'small fix to ZnUrl>>#inContextOf: (don''t take over the port when the scheme''s differ)' id '54792b4f-3ff6-479d-950f-91fb8052c960' date '10/04/2011' time '16:07:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.212' message 'deprecated instance creation (#new) of ZnFixedClient (and ZnExtendedFixedClient) and ZnUserAgent (and ZnHttpClient)' id '4fa83eba-2814-4b9c-8a71-5376eb1feaf5' date '10/04/2011' time '14:23:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.211' message 'added basic ZnNeoClient>>#signalProgress support' id '1f875569-9635-4039-bd9a-43b2ceb46400' date '10/04/2011' time '13:48:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.210' message 'added logging support to ZnNeoClient' id '6d7ff297-2967-413a-95d6-c0af0c0720d4' date '10/04/2011' time '12:53:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.209' message 'added some Pharo 1.2 compatibility (ZnMultiThreadedServer>>#exceptionSet:)' id 'b4d77e24-8821-4cac-b32d-f0f1412cf0f5' date '10/04/2011' time '09:57:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.208' message 'made ZnClient deprecations proceedable and added a test for this behavior' id '7990b131-582c-4c3b-8077-ef408ae802fb' date '10/03/2011' time '14:44:33' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.207' message 'added some logging to #closeDelegate' id '2900a3fc-3677-49d4-98c0-4b6b1ffe772b' date '09/27/2011' time '20:37:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.206' message 'added internal ZnNeoClient>>#resetRequestIfNeeded and ''state'' instance variable to try to properly reset after a first request is executed and a second one starts (the idea is to only keep using scheme/host/port and the connection)' id '9d23f62f-0d10-451a-ac95-ca8acd5b0780' date '09/23/2011' time '14:58:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.205' message 'modified ZnHeaders>>#contentLength to allow for the special case when there are multiple content-length headers, but only when they are identical; fixed some typos in ZnHTTPSocketFacade where some arguments where ignored (thx Olivier Auverlot for reporting this) ' id '135d43af-b715-45d4-bd28-85323f49999d' date '09/20/2011' time '13:58:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.204' message 'made ZnTooManyRedirects an Exception instead of an Error subclass so that it is resumable; fixed ZnNeoClient>>executeWithRedirectsRemaining: to allow for a resumed ZnTooManyRedirects exception' id '1183d199-1245-4e35-ac40-a0d52576deb3' date '09/19/2011' time '13:30:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.203' message 'added redirect support to ZnNeoClient (throws ZnTooManyRedirects when needed); reworked ZnEntity #entity: #resetEntity: to allow nil as argument (see ZnHeaders>>#acceptEntityDescription:) added #clearEntity as well' id '90d7081c-2bb7-4a94-b45c-58e28dadf242' date '09/19/2011' time '11:09:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.202' message 'added ZnNeoClient>>#setIfModifiedSince: and test' id 'f02072f8-e33a-429d-8e27-169372fbc7f6' date '09/17/2011' time '20:42:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.201' message 'added time limit to ZnNeoClient connection reuse; added ZnNeoClient>>#headerAddAll: and #queryAddAll:' id 'a5b92040-b404-4fca-951d-9d5253156cbb' date '09/17/2011' time '14:05:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.200' message 'added optional delegate #close-ing to ZnServer hierarchy' id '915cab3c-eddb-44f0-b38e-61a5e83185ff' date '09/16/2011' time '17:40:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.199' message 'patched ZnRequest>>#setBasicAuthenicationUsername:password: to allow nil arguments for clearing the Authorization header' id 'c8cce21a-86d4-4a8d-bd03-21ea97514ce1' date '09/16/2011' time '13:52:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.198' message 'introducing ZnEasy to take over the class side functionality of ZnClient; ZnClient class side protocol being deprecated' id '37a8ac41-bd8c-4d7d-9d8c-3ef5d0c2fc0a' date '09/15/2011' time '20:42:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.197' message 'Modifed ZnNeoClient>>#isContentTypeAcceptable to allways accept empty responses; Added ZnResponse>>#isCreated test' id 'efcd6b46-0332-4a34-8523-8470bcfa6764' date '09/14/2011' time '15:30:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.196' message 'added ZnUtils class>>#parseHttpDate: for use in ZnCookie>>#expiresTimeStamp' id '0f0b5286-c002-45f2-9ec6-9b21a7c8eb13' date '09/13/2011' time '11:51:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.195' message 'added extra guard to ZnLineReader>>#processNext for when #next returns nil' id 'cab4a65f-52f8-ce41-996c-a1c2a6b1bb95' date '09/12/2011' time '14:27:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.194' message 'added a nice example to ZnClient class>>#getPng: (Thx Lukas Renggli)' id 'f90ea18e-4d80-4d8d-aff1-ecb917f191ce' date '09/12/2011' time '09:32:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.193' message 'Changed ZnManagingMultiThreadedServer class comment' id '64e3aa90-0672-4f41-9093-6e5c97b16a79' date '09/06/2011' time '12:32:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.192' message 'pushed down the connection management functionality of ZnMultiThreadedServer to a new subclass called ZnManagingMultiThreadedServer' id '859098cb-28ff-453a-b8ec-dc41d10f7859' date '09/05/2011' time '14:24:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.191' message 'changed ZnMultiThreadServer''s lock and connections instance variable to be lazy initialized, removed the initialize code' id '9f394e71-7904-40bd-9551-03faf2f1be98' date '09/05/2011' time '12:06:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.190' message 'added a guard clause to ZnMultiThreadedServer>>#closeConnections so that nothing is done when there are no connections' id 'f7bdca17-3172-45cf-969d-531845cb9e35' date '09/05/2011' time '11:40:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.189' message 'Added some new internal functionality to ZnMultiThreadedServer: To keep track of all its open client connections (socket streams) (#socketStreamOn: and #closeSocketStream) so that they can all be force closed (#closeAllConnections) when the server stops (#stop). This is necessary because on image save the worker processes and socket streams are frozen and fail when they start up afterwards due to illegal socket handles. Note that #readRequestSafely: was extended and #writeResponseSafely:on: was introduced to handle several exceptions, most notably PrimitiveFailed, in the situation where a socket stream is force closed on a live process using that stream. This can be observed in #testTimeout. The timeouts on reading/writing socket streams take care of closing connections that are kept open too long. Maybe the server side timeouts should be even shorter to conserve resources. ' id 'b4f2d979-0097-4dc8-bde9-23edda15a3f9' date '09/04/2011' time '15:20:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.188' message 'some simplifications to ZnNeoClient removed some dead code from ZnUserAgent' id 'a81a6b6f-ad24-4c3f-aa91-120a404fa082' date '08/31/2011' time '22:06:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.187' message 'added basic cookie support to ZnNeoClient; refactored some cookie related code; ZnMessage subclasses ZnRequest and ZnResponse each implement #addCookie: and #cookies for different headers; removed ZnHeaders>>#cookies; replaced ZnCookie>>#asString with ZnCookie>>#nameValueString and ZnCookie>>#fullString; added ZnNeoClient>>#get: and friends as convenience protocol' id '13e276c0-e257-4004-ad61-2e2fc6b5d829' date '08/30/2011' time '22:53:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.186' message 'added contentReader/contentWriter options to ZnNeoClient to use in #contents and #contents: fixed general ZnNeoClient>>#execute result to be either #contents on success or the result of the #ifFailBlock on failure' id '09f5880c-8b8e-4de1-9cc2-0e3306c987a1' date '08/19/2011' time '17:27:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.185' message 'reimplemented ZnHTTPSocketFacade using ZnNeoClient' id 'c969791c-20ec-483d-b053-edc9c44c946b' date '08/19/2011' time '11:45:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.184' message 're-implemented ZnClient class side methods using ZnNeoClient; revised ZnConnectionTimeout handling to allow nesting/overriding by changing the default to nil (see ZnNeoClient>>#withTimeoutDo:); changed ZnUrl>>#authority to not return a default port; added basic authentication support to ZnNeoClient; added ZnNeoClient>>#entity[:]' id '2dea8f25-4226-476c-ad33-6108bad5183b' date '08/18/2011' time '23:11:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.183' message 'listening to the code critics (mostly formatting)' id 'a1062344-e54b-46b5-be1e-e12e39932a62' date '08/18/2011' time '14:50:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.182' message 'added empty ZnEntity>>#close added ZnStreamingEntity>>#close to close the underlying stream if any ZnMessage>>#resetEntity: now sends close to the enity being replaced if necessary added ZnResponse class>>#methodNotAllowed: ZnStaticFileServerDelegate now refuses not GET/HEAD requests ZnSingleThreadedServer>>#handleRequest: now does a #resetEntity: on HEAD requests implemented ZnNeoClient>>#head streamlined the responses of ZnNeoClient operations to return #contents, except for #head' id 'e9ce39cf-0dde-447a-af48-69d07048c9d1' date '08/18/2011' time '13:57:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.181' message 'added ZnMimeType wildcard constants #any and #text; added ZnHttpUnsuccessful and ZnUnexpectedContentType exceptions; extended ZnNeoClient with #ifFail:, #enforceHttpSuccess, #enforceAcceptContentType and retry behavior' id 'cfaa0963-4bb7-49d8-a3b1-f89527ee2bc2' date '08/17/2011' time '21:42:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.180' message 'added ZnMimePart class>>#fieldName:entity: and #fieldName:fileNamed: added ZnNeoClient timeout option, more url building api, support for applicationFormUrlEncoded and multiPartFormData encoded entities for post/put' id 'ea58662e-243e-4eff-ad90-7ac4ff58e9a3' date '08/17/2011' time '14:24:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.179' message 'added ZnUrl>>#inContextOf: extended ZnHeaders>>#request: to handle urls without a host added request url building to ZnNeoClient added oneShot option to ZnNeoClient' id '97d7e216-e0ff-4931-9dcf-498e2a938465' date '08/12/2011' time '13:52:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.178' message 'added code to throw a ZnMissingHost exception when a bogus ZnUrl is used to connect to a HTTP host' id '6b9c0a42-5a10-4b68-9c4c-efc33a7f52a4' date '08/11/2011' time '19:42:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.177' message 'added support for dealing with certain defaults in ZnUrl: - new ZnUrl class>>#fromString:defaultScheme: and ZnUrl>>#parseFrom:defaultScheme (while #readFrom: and #parseFrom: are still using nil as default scheme, like before) - new ZnUrl>>#asZnUrlWithDefaults (and private #setDefaults) - new ZnUrl>>#schemeOrDefault (along the lines of #portOrDefault) - improved support for parsing relative URLs' id '82463b1e-0ceb-494f-a9fd-ac7e043d1307' date '08/11/2011' time '15:29:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.176' message 'Merged Damien Pollet''s changes regarding the misspelling of ''Unknow[n]'' in exception class names (thx); First definition of ZnNeoClient; added support for better HTML Doc Types in some generated HTML pages of ZnDefaultServerDelegate' id '333bbc02-577c-44e3-9ef1-7489a5586f57' date '08/11/2011' time '10:33:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.175' message 'Changed ZnMimePart>>#fieldValueString to return an empty string instead of ''nil'' when the field is empty or absent (Thx Lukas Renggli)' id 'b95d0734-62d3-4de6-8a94-03816784d360' date '07/29/2011' time '14:23:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MarcusDenker.172' message 'Issue 4326: Connection timeout problem http://code.google.com/p/pharo/issues/detail?id=4326 Issue 4417: Zinc does not honour network proxy configuration http://code.google.com/p/pharo/issues/detail?id=4417 Issue 4428: New mechanism for Zinc servers start/stop handling after system startUp/shutDown http://code.google.com/p/pharo/issues/detail?id=4428' id '190ce930-79bf-4a7e-b0fa-60d1fbaecfe0' date '06/21/2011' time '16:08:49' author 'MarcusDenker' ancestors () stepChildren ())) stepChildren ())(name 'Zinc-HTTP-DamienPollet.175' message 'Fix typo in exception names.' id '82fd6138-b87e-4e81-93ff-4c874ff72e03' date '08/04/2011' time '14:22:04' author 'DamienPollet' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.174' message 'ZnDefaultServerDelegate>>#echoRequest: added option to delay the response to /echo with a specified number of seconds, as in echo?delay=60' id 'bec35859-b638-42c1-9689-3f1d7a540c8b' date '07/14/2011' time '09:54:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.173' message 'added ZnSingleThreadedServer>>#onRequestRespond: convenience method' id '75b3a711-a7ff-430d-a049-95a5dd1a1c3c' date '07/01/2011' time '14:17:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.172' message 'implemented client side support for If-Modified-Since and Not Modified: - added ZnRequest>>#setIfModifiedSince: - refactored ZnMessage>>#readFrom to call #readEntityFrom: - overwritten ZnResponse>>#readEntityFrom: to take special no content response into account - extended ZnUtils class>>#httpDate: to accept any argument that understands #asTimeStamp ' id '64fe262e-fd77-4b45-8f6a-f874995d07ec' date '06/28/2011' time '11:05:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.171' message 'removed some bogus class variable from ZnConnectionTimeout' id '11c76430-7cc0-4885-b4a0-709f3fbf4f57' date '06/20/2011' time '14:50:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.170' message 'fixed undeclared in ZnNetworkingUtils class>>#initialize (SocketStreamTimeout was renamed to DefaultSocketStreamTimeout)' id '15682e90-31ca-40e3-b26f-a4df4aab8814' date '06/19/2011' time '16:38:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.169' message 'implementation of a new mechanism for system #startUp/#shutDown handling by ZnServer(s): ZnServer holds a class variable ManagedServers, clients can #register/#unregister to receive #start/#stop when the system #startUp/#shutDown is sent; currently only the default server (of which there is only one instance per ZnServer subclass) is automatically registered/unregistered in #defaultOn: and #stopDefault, other instances must do this explicitely themselves ' id 'ebc443eb-7ce9-488c-92cb-05a67179c4f4' date '06/19/2011' time '14:21:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.168' message 'introduction of ZnConnectionTimeout which is used by ZnNetworkingUtils class>>#socketStreamTimeout and defaults to ZnNetworkingUtils class>>#defaultSocketStreamTimeout Now you can do ZnConnectionTimeout value: 60 seconds during: [ ZnClient get: ''http://slowhost.com/foo'' ]' id 'dbe15895-070d-4a2f-8d62-dd40c5ba028a' date '06/18/2011' time '23:12:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.167' message 'merged' id 'cb16cb7a-5fac-494d-ab2a-97d4261f04ae' date '06/17/2011' time '15:51:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.165' message 'modified #on: Error do: to #on: Exception do:' id 'ccb2d275-7dd3-44f4-ace4-12fc2217f9a3' date '06/17/2011' time '15:46:54' author 'SvenVanCaekenberghe' ancestors () stepChildren ())(name 'Zinc-HTTP-MarcoSchmidt.166' message 'Patch to work behind firewall with basic authorization' id 'acb7f2fc-d621-5d4b-983f-25d217623f11' date '06/17/2011' time '15:31:11' author 'MarcoSchmidt' ancestors ((name 'Zinc-HTTP-MarcoSchmidt.165' message 'Corrected wrong method send in NetworkUtils' id '4290066c-4367-794e-bb95-c058f1a268a0' date '06/17/2011' time '15:26:54' author 'MarcoSchmidt' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.164' message 'implemented support for proxies that require authorization; ZnHeaders class>>#requestHeadersFor: will add a Proxy-Authorization header when needed; added public API ZnNetworkingUtils class>>#proxyAuthorizationHeaderValueToUrl: removed public API ZnNetworkingUtils class>>#httpProxy and #isProxySet; upgraded public API ZnNetworkingUtils class>>#shouldProxyUrl: to be a primary interface; refactored internals of ZnNetworkUtils to use NetworkSystemSettings directly instead of HTTPSocket; this code still has to be tested and validated with real world proxies ' id '90d57d3d-fc41-4548-a2fd-dcd7c22a3a1f' date '06/17/2011' time '09:16:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.163' message 'taking over a patch from Pharo (http://code.google.com/p/pharo/issues/detail?id=4326): adding SocketStreamTimeout as class variable to ZnNetworkingUtils to make this ''constant'' settable; the new default is now 30 seconds' id '3622d15d-b15a-4398-a9e6-0027e600a78a' date '06/09/2011' time '21:14:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.162' message 'extended ZnStringEntity>>#readUpToEndFrom: to deal with the weird SocketStream>>#atEnd issue by added an extra #peek; added ZnChunkedReadStream>>#peek; added chunk buffer reuse to ZnChunkedReadStream' id '0205b561-44a9-4434-b40b-976b5d9a65a6' date '05/19/2011' time '12:57:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.161' message 'a small change to improve Squeak compatibility' id '018ccd1d-2321-4dcb-b468-722a42b9d605' date '05/17/2011' time '21:34:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.160' message 'fixing support for HTTP proxies (thanks Alexandre Bergel for reporting this) requests to localhost are excluding from being proxied - ZnRequestLine>>#writeOn: now outputs absolute URLs when proxying - added ZnNetWorkingUtils class #isProxySet #shouldProxyUrl: and #httpProxy - added ZnUrl>>#isLocalHost - changed ZnUrl>>#host: to lowerCase its argument ' id '619a8697-4d71-4c1c-a99e-fe5e07f3dbb4' date '05/13/2011' time '11:07:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-NickAger.159' message 'minor refactoring to ZnDispatcherDelegate to use: ZnStatusLine ok rather than: ZnStatusLine code: 200 ' id 'e5ab93a6-b254-4ba2-bbd9-41ecf500f584' date '05/10/2011' time '15:53:33' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.158' message 'refactored cookie support: ZnResponse>>#setCookie: has been renamed to ZnResponse>>#addCookie: ZnResponse>>#setCookies: has been removed ZnHeaders>>#cookies now returns a dictionary rather than a ZnCookieJar ZnCookieJar>>#cookieAt: a helper method I added, I''ve removed. The tests have been updated as required.' id '75f5dd45-9dcf-4491-a28c-4f8cbe8e784a' date '05/10/2011' time '11:39:41' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.157' message 'added ZnStatusLine creation constants and refactored ZnResponse to use the constants' id '3fa86243-d119-4ab5-b87d-3c8622aa9257' date '05/10/2011' time '09:13:37' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.156' message 'created ZnResponse>>#setCookie: and refactored ZnResponse>>#setCookies: to use #setCookie:' id 'ac85f148-5de7-4b04-8a81-d8e7222e1f78' date '05/10/2011' time '08:37:25' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.155' message 'added: Request cookie accessor Response cookie setter' id '41a8f7a2-dbda-45bd-a831-03b7c0d6ca37' date '05/10/2011' time '02:52:47' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.154' message 'added ZnDispatcherDelegate for straight-forward dispatching to mapped urls. Modelled after Ruby''s WEBrick API: server = WEBrick::HTTPServer.new(:Port => 2000) server.mount_proc("/heresy"){|req, res| Application.new.handle(req, res)} server.mount_proc("/favicon.ico"){|req,res| res.status = 404} ZnDispatcherDelegate API: server := (ZnServer startDefaultOn: 9090) delegate: (ZnDispatcherDelegate new map: ''/hello'' to: [ :request :response | response entity: (ZnStringEntity html: ''

hello server

'') ]; map: ''/counter'' to: [ :request :response | counterApplication handleRequest: request response: response ]).' id '87d63347-b4ab-4c50-86a4-8d7d89d24e32' date '05/09/2011' time '21:44:58' author 'NickAger' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.153' message 'made ZnNetworkingUtils>>#socketStreamToHostNamed:port: private' id '44a98753-fe58-40bc-8a88-5887c0872212' date '05/09/2011' time '13:32:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.152' message 'extended ZnFixedClient with a scheme instance variable, adjusted the instance creation protocol, added a #baseUrl accessor for use in #newConnection; added ZnUrl class>>#defaultPortForScheme:; removed ZnNetworkingUtils class>>#socketStreamToHostNamed: to simplify the socket [stream] factory API' id '69fc77af-dddd-44c5-9119-11f9db4f85db' date '05/09/2011' time '10:23:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.151' message 'conversion of ZnNetworkingUtils into an instance socket[stream] factory and a class side API' id '6c95ba6b-65ec-47cb-b6dc-284fd95f3832' date '05/02/2011' time '22:46:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.150' message 'fixing a problem where responses without an explicit content-length but with an entity where not read as they should (thanks Esteban Lorenzano & Andy Burnett for reporting this): - ZnResponse>>#entityReaderOn: now extends the super entityReader with the #allowReadingUpToEnd option - ZnEntityReader>>#entityReader now swallows entities when they are #isEmpty (making them nil) - ZnStringEntity>>#readFrom: is split between #readLimitedFrom: and #readUpToEndFrom: where the last method has extra error handling to swallow ConnectionClosed exceptions (similar to what SocketStream>>#upToEnd does) - the ZnEntity hierarchy now implements #isEmpty' id '8fe0b470-7728-454d-bc90-fa42d8330817' date '05/01/2011' time '19:19:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.149' message 'rewrote ZnHTTPSocketFacade class>>#entendURL:withArguments: to be compatible with HTTPSocket class>>#argString: (Thanks Esteban Lorenzano)' id '3a49e678-fa7b-4c30-bdc6-0944c7637e7f' date '04/30/2011' time '20:55:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.148' message 'extended ZnDefaultServerDelegate with a configurable response to / (in the prefixMap the key ''/'' maps to another key that is used instead as prefix for another lookup)' id '309679c5-4d24-4741-b067-2adc9cc8f6c6' date '04/28/2011' time '22:27:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.147' message 'changed ZnServer class>>#initialize not to do a Smalltalk #addToStartUpList:after: but just use the plain #addToStartUpList: (we only depend on networking and multi-processing but those will probably be OK)' id 'b2b69990-95ff-40bc-9ff0-6cb11dc96a24' date '04/27/2011' time '19:42:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.146' message 'skipping over lost version: .145 fixed ZnUtils class>>#encodeBase64: to test whether Base64MimeConverter responds to #mimeEncode:multiLine:, fall back to #mimeEncode: and manually remove Character cr occurences; this should fix Pharo 1.1.1 compatibility (Thanks Esteban Lorenzano for reporting this) .144 added option to extend ZnDefaultServerDelegate''s prefixMap with block (taking request as argument, returning response); changed default welcome text to include reference to /help .143 added ZnUrl>>#postCopy; refactored ZnStaticFileServerDelegate and added the option to redirect for directories without an ending slash ' id '57e6d630-1045-413b-8938-1259024175f9' date '04/27/2011' time '16:22:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.145' message 'fixed ZnUtils class>>#encodeBase64: to test whether Base64MimeConverter responds to #mimeEncode:multiLine:, fall back to #mimeEncode: and manually remove Character cr occurences; this should fix Pharo 1.1.1 compatibility (Thanks Esteban Lorenzano for reporting this) ' id 'f9f0831d-5ffa-4a5c-a8ec-b276c9babc35' date '04/26/2011' time '19:01:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.144' message 'added option to extend ZnDefaultServerDelegate''s prefixMap with block (taking request as argument, returning response); changed default welcome text to include reference to /help' id '439b923a-997e-4f51-9b7d-90896f8dd97f' date '04/26/2011' time '13:44:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.143' message 'added ZnUrl>>#postCopy; refactored ZnStaticFileServerDelegate and added the option to redirect for directories without an ending slash' id '08a56e5b-3270-4231-9568-4e5beffb58ae' date '04/26/2011' time '13:24:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.142' message 'listening to the Code Critics' id 'c78b1867-b800-4b03-805a-004df5aa7556' date '04/20/2011' time '12:47:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.141' message 'small fix to ZnUrl>>#printPathOn: to deal with cases where forward slashes are encoded in URLs (Thanks, Jan van de Sandt for pointing this out); added ZnUrlTests>>#testEncodedSlash to cover these cases' id '88ca6bf6-ce11-447f-8a1d-be9c67e7db71' date '04/17/2011' time '10:33:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-PaulDeBruicker.140' message 'changed ByteArray declarations in ZnConstants>>#faviconBytes and ZnMultiPartFormDataEntity>>#parse:boundary: from square brackes to #() asByteArray so that the code loads with no problems into Pharo and Gemstone' id '9ac457ad-7824-4c0c-8d5d-e7ebe36f0280' date '04/10/2011' time '12:03:38' author 'PaulDeBruicker' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.139' message 'added ZnDefaultServerDelegate /help & /status; updated framework version from 0.1 to 1.0 ;-)' id 'f960a4c5-2462-4cfb-81a9-9ee740d2e294' date '03/31/2011' time '10:17:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.138' message 'increased ZnSingleThreadedServer>>#acceptWaitTimeout from 60 to 300 seconds; added some infrastructure to use this looping for future periodic tasks' id '5ba796b1-d698-4595-8a48-1500029cc52e' date '03/30/2011' time '21:25:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.137' message 'added new logging framework in Zinc-HTTP-Logging, consisting of ZnLogEvent (an Announcment), ZnLogSupport and ZnLogListener and subclasses ZnTranscriptLogger, ZnMemoryLogger and ZnFileLogger; now using the new logging facilities in Zn[Single|Multi]ThreadedServer, ZnFixedClient and ZnUserAgent; introduced new subclass of ZnFixedClient, ZnExtendedFixedClient that adds various hooks for customization ' id 'bb85953b-e489-472d-997b-27e28941c052' date '03/29/2011' time '16:49:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.136' message 'added postProcessHook to ZnFixedClient; extended ZnFixedClient reuse logic so that it is limited to a maximum keep alive time (of 5s) so as not to bother running into an error anyway.' id '85d852c0-b357-42ca-95da-0ebaec1c78ad' date '03/28/2011' time '16:24:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.135' message 'added preProcessHook & newConnectionHook to ZnFixedClient' id '3bc47cd7-fae8-4e62-a80d-5d991de3c137' date '03/28/2011' time '14:24:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.134' message 'some Socket[Stream] options/parameters tweaking: - server socket listen backlog increased from 10 to 32 - socket buffer size decreased from 8192 to 4096 (these were refused anyway) - client socket streams now get the same treatment (#setSocketStreamParameters:) as accepted server socket streams (i.e. setting timeout to 10s and buffersize) ' id 'ee477f07-3703-4504-b62a-9e9905aec294' date '03/24/2011' time '11:01:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.133' message 'bugfix: it turns out that String>>#base64Encoded introduces newlines which we definitively do not want when doing Basic HTTP Encoding for example; introduced ZnUtils class>>#encodeBase64: to do the right thing and invoke Base64MimeConvertor with the #mimeEncode: multiLine: false; replaced all usages (added a #decodeBase64: for orthogonality); added a unit test to catch this ' id '8c6bc0e9-09b3-4b38-84dc-90b76ad30c94' date '03/21/2011' time '20:49:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.132' message 'added ZnResponse>>#isNotModified' id '9d915967-5593-4909-ad83-8ba8577f6cd7' date '03/21/2011' time '10:46:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.131' message 'introduced ZnUnknownScheme exception' id 'd4ee20cf-2166-4a40-98ee-3f89c21e4d2e' date '03/18/2011' time '13:31:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.130' message 'new categories: Zinc-HTTP-Exceptions and Zinc-HTTP-Streaming; added ZnParseError hiearchy to better handle illegal input; fixed a bug in dealing with percent encoding in ZnUrl paths; ZnMultiThreadedServer>>readRequestSafely: now closes on ZnParseErrors in the input' id 'ec9629aa-9c2a-45d2-aa2c-4988ab48b239' date '02/28/2011' time '15:59:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.129' message 'added ZnMultiPartFormDataEntity>>#partsDo:' id '5e8a1d68-ab52-4b98-80f5-4a75aa724b4f' date '02/27/2011' time '20:27:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.128' message 'added some extra allowed HTTP methods' id '5df00c70-8ce3-45a2-8991-770dcb04c480' date '02/24/2011' time '09:12:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.127' message 'implemented ZnLimitedReadStream>>#next:into:' id 'b99b13a8-0959-4e1e-a501-cf9ed2334d70' date '02/21/2011' time '23:32:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.126' message 'implemented ZnHTTPSocketFacade class>>#httpPostMultipart:args:accept:request: added ZnHTTPSocketFacade class>>#constructMultiPartFormDataEntity:' id 'fbc9bd8a-55fc-4bef-99b4-cd54bd89b0cf' date '02/07/2011' time '09:37:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.125' message 'added ZnResponse>>#serverError:' id 'f17a0fb7-5e9a-4188-885c-553e3a372d25' date '02/04/2011' time '23:03:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.124' message 'fixed a typo in the ZnMimePart instance creation methods (formdata should be form-data) (thx Cédrick Béler)' id 'af6dbddc-b5d8-482a-b2ef-4071fcbba787' date '01/31/2011' time '20:16:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.123' message 'added ZnUrl>>#queryDo: ZnApplicationForUrlEncodedEntity>>#fieldsDo: added ZnMessage>>#resetEntity: to allow overwriting content type and length when these are already set' id 'dffdb499-d272-4fca-9991-ad5c3ebdaad9' date '01/31/2011' time '13:58:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.122' message 'added proper content length computation to ZnMultiPartFormDataEntity (bugfix); some code cleanup to ZnEntity content length computation' id 'faea419a-c94d-4f44-b0ae-067b635f1c4e' date '01/27/2011' time '17:17:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.121' message 'added #textJavascript as a constant to ZnMimeType; added ZnByteEncoder to handle single byte encodings that do not map directly to the lower Unicode section (for example Latin2, ISO-8859-2) by reusing the mapping tables from ByteTextConverter; added #handlesEncoding: and #newForEncoding: protocol to class side of ZnCharacterEncoding hierarchy' id 'c040db5f-1548-45bb-9f9d-757b78a67d70' date '01/25/2011' time '13:48:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.120' message 'fixed ZnUserAgent>>#redirectUrl so that relative redirect urls are made absolute in reference to the (previous) request''s url instead of self url; changed ZnHttpClient>>#get and #head not to reference url as an inst var' id '4bf543a0-c919-4508-8703-d0a272e32691' date '01/20/2011' time '21:20:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.119' message 'fix ZnUserAgent>>#openConnection to honor its ZnUserAgentSettings>>#timeout' id '69b705b0-6b68-46f9-8ed0-ba43fe195768' date '01/20/2011' time '19:40:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.118' message 'Updated class comments' id 'acea0a40-8a21-4257-8191-72f399e4a2a4' date '01/18/2011' time '11:05:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.117' message 'more fixes to ZnUserAgent redirect following behavior: rewrote logic' id '39d2e9eb-9bdb-4ee4-8ca8-68c812abb3b7' date '01/14/2011' time '22:03:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.116' message 'changed the redirect behavior for POST/PUT requests: the common practice is to turn these into GET request, see ZnUserAgent>>#method:for:headers:data:imit: and ZnUserAgent>>#prepareRedirect:' id 'a102bbdc-8185-41b0-afa2-4d0af8f2557a' date '01/13/2011' time '13:39:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.115' message 'added an extra guard to ZnFixedClient>>#fixedUrl: when host is nil (thx, Cédrick Béler)' id 'ac2bcf63-4c24-4c6a-b696-2b8dff2eae4b' date '01/12/2011' time '16:15:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.114' message 'ZnUserAgent (and ZnClient) now can follow relative redirect locations; introduced ZnMultiValueDictionary to allow multiple values to be stored under one key as an array; using ZnMultiValueDictionary for queries and headers; ZnUrl now uses ZnUtils>>parseQueryFrom: again; various simplifications and cleanups which might help when reading the code in ZnUserAgent (and ZnClient); ZnUserAgent (and ZnClient) now handle parameter encoding differently ' id 'e1a49d00-d9f0-4800-8cd7-cb354e86d671' date '01/12/2011' time '14:03:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.113' message 'promoted ZnFixedClient>>#fixedUrl: and ZnClient>>#executeRequest: to public status (and added comments); changed ZnFixedClient>>#fixedUrl: to accept ZnUrl objects as well for more flexibility (allowing users to add query/fragment URL elements in addition to the path) ' id 'c3b62aa9-da90-4478-9ab3-ba2670411cb3' date '01/08/2011' time '20:36:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.112' message 'split of ZnNetworkingUtils from ZnUtils to separate related functionality (Thx S.Ducasses)' id '845f67f8-df1c-40cf-a644-4699f50bc3bb' date '01/07/2011' time '19:52:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.111' message 'fixed ZnClient class>>#getImageOfType:usingParser:fromUrl: to correctly report responses with unexpected mime types (Thx S.Ducasses) ' id 'd633bf09-4617-4e34-b6c7-0260dc759817' date '01/07/2011' time '19:35:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.110' message 'added ZnUrl>>#queryAddAll:' id 'ae2dbf13-b27d-4e45-ae66-24ee8687bb3a' date '01/05/2011' time '21:07:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.109' message 'added application/xml as a predefined constant to ZnMimeType' id 'eb18136d-284f-4501-81e3-8c18a0b0e503' date '01/05/2011' time '13:53:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.108' message 'various changes to reduce the (Lint) warning count' id 'e455691d-fadb-4303-a83f-680be600e875' date '01/04/2011' time '21:15:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.107' message 'introduced #asZnMimeType on ZnMimeType, MIMEType & String to replace ZnUtils class>>#asMimeType: which was removed' id '6008c428-e4d3-4767-9622-879979d4a9f9' date '01/04/2011' time '20:04:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.106' message 'more cleanup added ZnBivalentWriteStream>>next:putAll:startingAt: fixed ZnStaticFileServerDelegate example' id '2e02dc65-d058-4d72-94ff-309d005a7c16' date '01/04/2011' time '16:30:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.105' message 'removing unused extension methods' id '93d4f4d1-39de-40ca-9e38-6a8741df39c4' date '01/04/2011' time '16:11:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.104' message 'massive migration from builtin Url to ZnUrl; added asZnUrl to String and Url ' id '73cb3a10-8b68-4f91-96a4-80a4f8603695' date '01/04/2011' time '15:34:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.103' message 'first version of ZnUrl class' id '8e7d4ba7-f5d9-41e7-a489-e7bfa2804c8e' date '01/04/2011' time '12:22:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.102' message 'added an extra guard to ZnSingleThreadedServer>>#releaseServerSocket' id '8f40387c-7d98-4816-ad2b-35665b66b14b' date '12/19/2010' time '14:53:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.101' message 'added caching to ZnDefaultDelegate>>#bytes: to improve benchmarking performance: this make a huge difference (thx, Philippe Marschall); refactored ZnMultiThreadedServer>>#readRequestSafely: to use #, to concatenate exceptions into an exception set (how elegant) ' id 'ab05d220-caa7-4f39-9276-e71491ca9b78' date '12/19/2010' time '14:43:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.100' message 'added /bytes to ZnDefaultServerDelegate to measure the huge speed difference between binary and UTF-8 encoded data; added ZnServer>>#isListening' id '4c960061-613e-443b-82d6-268c144d5d52' date '12/15/2010' time '21:42:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.99' message 'refactored ZnServer hierarchy: - renamed old ZnServer to ZnSingleThreadedServer - renamed old ZnExperimentalServer to ZnMultiThreadedServer - added ZnServer as superclass and facade ZnServer class>>#defaultServerClass is now ZnMultiThreadedServer! ' id 'f1366cea-f241-4260-bd60-23b6747b537b' date '12/15/2010' time '15:56:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.98' message 'finally ''solved'' the ab (apachebench) concurrent load problem (ab -k does HTTP/1.0 with Connection:keep-alive and expects Connection:keep-alive back); added #isHttp10 and #isHttp11 to ZnRequest and ZnRequestLine; rewrote ZnMessage>>#isConnectionClose and #isConnectionKeepAlive; added ZnMessage>>#setConnectionKeepAlive; added ZnRequest>>#wantConnectionClose; added ZnResponse>>#setKeepAliveFor:; improved ZnServer logging with proper header (including PID); Zn[Experimental]Server>>#readRequest and #writeResponse:on: now do logging themselves #logRequest and logResponse now set lastRequest and lastResponse debugging instance variables ' id 'a463c5c8-a719-4d6e-b916-2b17116a8df0' date '12/14/2010' time '15:01:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.97' message 'revised #printOn: and helper methods of ZnMessage and ZnEntity hierarchy to support ZnServer>>#logRequest and #logResponse; fixed a bug in ZnStringEntity encoder initialization; extended ZnServer>>#acceptWaitTimeout to 60s; ' id 'f6ba0f3f-5b5a-4eb4-a54e-2c6c316ae95d' date '12/14/2010' time '12:23:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.96' message 'added #favicon: and #random: handlers to ZnDefaultServerDelegate' id '28d9458b-51e9-45e7-8ecf-3611b5039d2c' date '12/14/2010' time '10:54:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.95' message 'added #logger and #log: to Zn[Experimental]Server for extensive tracing' id '9a30d6f8-cd49-4ef4-8723-88d73ec297fe' date '12/14/2010' time '09:26:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.94' message 'made a number of socket related constants explicit in ZnUtils and ZnServer; ZnUtils class>>#socketStreamOn: now sets more options explicitely; improved process name in Zn[Experimental]Server; ZnDefaultServerDelegate>>#welcome: now replaces CR with LF in ZnConstants class>>#welcomePageHtml ' id 'b6740682-52d3-4cc6-af7a-8ce6f5a2dbfc' date '12/13/2010' time '17:02:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.93' message 'refactored ZnServer''s and ZnExperimentalServer''s #listenLoop and #serveConnection[s]On: with the introduction of #initializeServerSocket, #releaseServerSocket, #executeOneRequestResponseOn: and #executeRequestResponseLoopOn:' id '7308c60d-4aa0-4653-89eb-78c703dd047f' date '12/10/2010' time '16:17:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.92' message 'Simplified ZnServer by moving functionality to ZnDefaultServerDelegate, a new class handling echo, dw-bench, unicode and / welcome' id '3f058ee0-89a2-4999-bd25-f02bf68cf0ff' date '12/10/2010' time '15:54:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.91' message 'added ad improved ZnServer method comments' id '0a8191cc-e438-4345-bc9b-e42a11ef367e' date '12/10/2010' time '15:05:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.90' message 'added ZnBufferedWriteStream class>>#on:do: modeled after #fileNamed:do: a convenience method that makes sure #flush is a called' id 'b8d896bf-6688-41e0-8ca5-267326b29c2a' date '12/09/2010' time '18:26:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.89' message 'added ZnUtils>>#socketStreamToHostNamed:port: followed by some simplification and refactoring' id 'a00bab52-f57d-4d34-bc86-be0a4b2be3cc' date '12/08/2010' time '11:19:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.88' message 'added experimental ZnBufferWriteStream' id 'fd2dd63e-035b-4c72-a4d4-58933b890e13' date '12/08/2010' time '10:21:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.87' message 'added ZnValueDelegate that converts #handleRequest: to #value: on a wrapped object' id '34a705ac-c414-441f-a606-443e50f91449' date '12/07/2010' time '16:20:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.86' message 'some more comment improvements' id '6e89b08f-198b-4ccd-b334-801598105a9e' date '12/07/2010' time '15:23:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.85' message 'renamed ZnMagicCookie[Jar] to ZnCookie[Jar]' id '1885b80b-6dfc-4366-8f69-ba459de201ea' date '12/07/2010' time '00:02:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.84' message 'moved all classes from category ''Zinc-HTTP-New-*'' to ''Zinc-HTTP-*''' id 'fb5273fe-7cd7-4bf0-b4e4-a366bf735e65' date '12/06/2010' time '21:41:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.83' message 'removed all Zinc-HTTP-Old-* categorized classes from the Zinc-HTTP package (these will be moved to a new MC package called ''Zinc-Old'')' id '4123ffde-b6f7-4233-b9c8-ddfdac314c1f' date '12/06/2010' time '17:26:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.82' message 'removed #isBinary from ZnEntity (and subclasses) ''testing'' protocol' id '3b12b147-c0bb-447b-bac2-53d899b54703' date '12/06/2010' time '16:05:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.81' message 'ZnStringEntity>>#printContentsOn: now relies on #nextPutAll: instead of #print: to avoid quoting by String>>#storeOn:' id '83409534-1da5-4991-a7ba-eeed6de8b6c9' date '12/06/2010' time '15:16:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.80' message 'renamed class ZnNewStringEntity to ZnStringEntity' id 'ef1213ed-3501-4a47-b346-424edb8828c3' date '12/06/2010' time '13:50:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.79' message 'removed class ZnStringEntity' id '305134b7-e6f5-4930-b3ed-70ee5213bf01' date '12/06/2010' time '13:47:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.78' message 'ZnMessage>>#hasHeaders was wrong; ZnBivalentWriteStream class>>#on: will no longer instanciate a new wrapper if the wrapped stream is of its own type; went over all class comments and updated lots of them ' id '0ac22c19-d755-4abf-8271-701953203148' date '12/06/2010' time '13:12:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.77' message 'fixed ZnHTTPSocketFacade>>#httpPut:to:user:passwd: (apparently MC passed in a byte array instead of a string, luckily ZnEntity>>#with: can deal with this)' id '58c44c1f-02ea-40e3-a5bd-e54fcd38ffd3' date '12/04/2010' time '14:26:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.76' message 'large changeset: switch from ZnStringEntity to ZnNewStringEntity, now using binary socket streams on server, all with the goal of proper UTF-8 support; - ZnEntity and subclasses not do proper #printOn: using #printContentsOn: (this is used in ZnServer''s echo handler); - added ZnBivalentWriteStream>>#isBinary which caches the #isBinary property of the stream it wraps (added fallback when DNU #isBinary); - added ZnUtils>>#socketStreamOn: which is used by ZnServer>>#serveConnectionOn: to force a binary stream; - fixed ZnMessage>>#hasHeaders and ZnMimePart>>#hasHeaders; - debugged ZnNewStringEntity - in order to support both binary and character streams, ZnMessage, ZnStatusLine, ZnRequestLine and ZnHeaders now use a ZnBivalentWriteStream in their #writeOn: implementations; - fixed ZnUserAgent>>#processResponse: to only read headers and no entity when doing a HEAD request ' id 'c7354231-e350-4fa6-aee7-b3d7e68eae66' date '12/04/2010' time '14:11:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.75' message 'added instance creation and preferred subclass accessing protocol to ZnEntity to make it a facade; replace all direct references to ZnStringEntity and ZnByteArrayEntity with ZnEntity facade invocations ' id '38988dd8-c300-47cb-8aca-bf620c808fc3' date '12/03/2010' time '14:08:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.74' message 'added #isCharSetUTF8 and #setCharSetUTF8 to ZnMimeType; changed the defaults/constants #textPlain and #textHtml of ZnMimeType to use UTF-8 as charset; created new class ZnNewStringEntity that uses an encoder to write/read strings to/from a binary stream ' id 'b5a8d802-77ff-4880-9e20-3af6d16d14c4' date '12/02/2010' time '13:50:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.73' message 'ZnUTF8Encoder: introduced next block in #nextPut:toStream: to reduce code duplication; made #nextFrom: more compact' id 'b0852d58-48b1-48d8-8172-d54525449ef6' date '11/30/2010' time '13:49:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.72' message 'introduction of ZnCharacterEncoder, ZnNullEncoder and ZnUTF8Encoder' id '7cdd0747-637c-44a9-a835-8b055e0353b9' date '11/30/2010' time '12:28:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-pmm.71' message '- fix unit tests - see http://hudson.lukas-renggli.ch/job/Zinc/' id '3554a779-86fe-4c2b-a826-900044edbb67' date '10/25/2010' time '07:10:47' author 'pmm' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.70' message 'added ZnBufferedEntity (part 1 of a refactoring of entities)' id 'b703ca9b-f970-416a-bb28-c08a0246d585' date '10/20/2010' time '10:40:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.69' message 'ZnUtils>>socketStreamToUrl: meant to put the stream in binary mode but was using isBinary, fixed' id 'e85c3518-20bc-407b-9522-4cca9e0ce34d' date '10/14/2010' time '14:35:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MattKennedy.68' message 'Added isComplete testing message to the ZnCredential classes to answer true if all required fields are set. Updated ZnUserAgent>>prepareCredentials:for:method to use ZnCredential>>isComplete test. Updated ZnUserAgent>>defaultErrorHandler to raise exceptions again.' id '25b31f4c-23b2-458e-939d-557bce7e1e71' date '10/06/2010' time '17:24:46' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.67' message 'removed another String>>#trimBoth usage from ZnMimePart>>#contentDispositionValues; reimplemented ZnUserAgentSettings class>>#platform more elegantly ' id '72a2d1b8-f68a-4c85-84c6-e7f515f1879b' date '10/06/2010' time '09:34:33' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MattKennedy.66' message 'Reverted ZnUserAgent>>defaultErrorHandler change. Wasn''t passing all tests correctly.' id '6a148c14-5451-4ca5-8180-767e1c376f08' date '10/05/2010' time '17:39:08' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.65' message 'ZnUserAgent default error handler raises exceptions to the debugger again. Added ZnHttpClient>>parameterAt:add:' id '433b8d17-912b-46dd-9a52-3888f753fdc4' date '10/05/2010' time '17:33:49' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.64' message 'added ZnUtils class>>#trimString: until String>>#trimBoth is available everywhere; fixed usage in ZnMimeType>>#contentDispositionValues ' id 'd25e7ffe-691e-43c1-9607-842b9225d5a8' date '10/05/2010' time '21:26:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.63' message 'first complete/working version of ZnMultiPartFormDataEntity and ZnMimePart (reading/writing/instance creation/accessing); added ZnMimeType>>#parameterAt:[ifAbsent:] ' id '5c9658b2-329f-4197-b9a5-d25751435191' date '10/05/2010' time '20:33:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.62' message 'first rough and unfinished implementation of ZnMultiPartFormDataEntity; started extending ZnMimePart to allow field handling; introduced ZnBivalentWriteStream ' id '19b39ff5-631f-4e08-bda2-370466c52bae' date '10/04/2010' time '21:24:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MattKennedy.61' message 'Added ZnHttpClient which subclasses ZnUserAgent to implement a high level API. Updated ZnUserAgent>>prepareCredentials:for:method: to handle credentials stored on the session before the client receives a 401 from the server. ' id '70e0bcdb-0b42-4f13-9c9b-c7d1b8a01815' date '10/01/2010' time '22:31:54' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.60' message 'Expanded options for MD5 hash mechanisms in ZnDigestAuthenticator. Added test method to ZnDigestAuthenticator to answer if MD5 support is available.' id '7b1d4f73-febb-4e32-86ca-8af7b3e610e5' date '10/01/2010' time '05:44:52' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-svc.59' message 'OK, even more fixes after testing in Squeak 4.1 (MD5 is still missing though)' id '44a8cccf-1470-4fa8-9e15-344cba9e6411' date '10/01/2010' time '09:56:22' author 'svc' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.58' message 'OK, some more fixes after testing in Pharo 1.2' id '93d5f2cc-330a-4931-8163-599c21f80253' date '10/01/2010' time '21:44:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.57' message 'reimplemented ZnUserAgentSettings class>>#platform to deal with Pharo 1.1/1.2 portability issues (introduction of OSPlatform class); modified ZnUserAgent>>#prepareHeaders:for: to use ZnHeaders>>#addAll: ' id 'bf8f9509-4a6c-4fed-9575-3202a9627d2e' date '10/01/2010' time '21:37:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MattKennedy.56' message 'Added .errorHandler to ZnUserAgent' id 'ae9aa81f-770d-40cc-859d-d1316d3a12cd' date '10/01/2010' time '14:44:47' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.55' message 'merging' id '3cae8f4c-33ca-44ab-85e9-c7e5e8f6a84d' date '10/01/2010' time '09:43:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.54' message 'introducing ZnMimePart (has maybe to much implementation in common with ZnMessage, but in use they are less similar) ' id '8888796c-9303-408d-b6c0-30310fee5ab6' date '10/01/2010' time '09:41:57' author 'SvenVanCaekenberghe' ancestors () stepChildren ())(name 'Zinc-HTTP-MattKennedy.54' message 'Modifed ZnResponse so that the WWW-Authenticate response is no longer hard coded. ZnBasicAuthenticator supports optional custom realm settings. Added ZnDigestAuthenticator.' id '88223dbc-9831-4746-a680-f2eff6720e76' date '09/30/2010' time '17:36:25' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.53' message 'Removed trimBoth: sender from ZnDigestCredential>>parseAuthRequest:' id '5d0dfdae-b927-4634-a4a9-272e3d78aeb0' date '09/30/2010' time '12:28:40' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.52' message 'changed the required protocol for a ZnServer delegate from #value: to #handleRequest: ' id '6f652f18-f202-4ce8-b139-a47c687d36f1' date '09/30/2010' time '18:15:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.51' message 'changed ZnServer authenticator protocol from #value:value to #authenticateRequest:do: introduction of ZnBasicAuthenticator class as a first plugin ' id '49469b61-5c90-45cb-8253-5483f43f79e1' date '09/30/2010' time '16:35:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-LukasRenggli.50' message '- removed the sender of #trimBoth: that removes $" before and after the basic-autentication string, as #trimBoth: is not part of PharoCore - this fixes 2 breaking tests, but maybe introduces a regression on certain we browsers?' id 'a991e99b-b085-4cf0-ae5a-1d9addb5d83a' date '09/30/2010' time '08:33:20' author 'lr' ancestors ((name 'Zinc-HTTP-MattKennedy.49' message 'ZnDigestCredential now implements working Digest authentication support for client requests in ZnUserAgent.' id '4fb9842a-9138-4567-b15a-0136611d6ce8' date '09/29/2010' time '17:18:28' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.48' message 'Handling authentication credentials for ZnUserAgent with ZnCredentials and ZnUserAgentSession implemented, currently with support only for Basic authentication.' id '40c5bd87-c830-4b93-97d7-4f6b4a52b0de' date '09/29/2010' time '00:57:02' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.47' message 'Added ZnCredential and subclasses for Basic and Digest auth. Only stubs right now, next step to flesh out with test cases. Updated ZnUserAgentSession for storing credential objects. Added ZnMagicCookieJar>>cookieAt:forUrl: and ZnUserAgent>>cookieAt:' id '45c35930-c60a-48b8-b2b5-68a29e905ca4' date '09/28/2010' time '16:38:54' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.46' message 'Added ZnMagicCookie, ZnMagicCookieJar, ZnUserAgentSession. ZnUserAgent now accepts and sends cookies. Modified ZnHeaders>>readOneHeaderFrom: to add items with ZnHeaders>>at:add: instead of ZnHeaders>>at:put: to handle requests and responses with multiple Set-Cookie or Cookie headers.' id 'baf796cb-154c-454c-9ebd-c4f2d412a64c' date '09/28/2010' time '13:56:36' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.45' message 'added ZnMessage>>#contents and ZnResponse>>#isSuccess; added ZnStreamingEntity>>#contents (non-repeatable); extended ZnFixedClient (added #isConnected and reimplemented #executeRequest error handling logic)' id '3831115e-48cf-466f-81e0-752247f6aefc' date '09/28/2010' time '14:17:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.44' message 'Merging Matt Kenedy''s code: Added ZnUserAgent and ZnUserAgentSettings' id '527f4690-0c3e-4e62-8482-de4bb3f76b0b' date '09/27/2010' time '23:36:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.43' message 'introduced ZnExperimentalServer to test server side connection keepalive/reuse; added ZnMessage>>#isConnectionClose; refactored ZnFixedClient with #preProcessRequest and #postProcessResponse (which handles server side connection close now) ' id 'bc799fbc-48ab-45c3-8cde-38fd1dd418bb' date '09/27/2010' time '23:25:06' author 'SvenVanCaekenberghe' ancestors () stepChildren ())(name 'Zinc-HTTP-MattKennedy.43' message 'Added ZnUserAgent and ZnUserAgentSettings.' id '217daf1b-07d3-4c49-bdf1-7b00262c5f70' date '09/27/2010' time '15:10:26' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.42' message 'extended ZnEntityReader with the ability to read Gzip content encoded entities; added ZnRequest>>#setAcceptEncodingGzip; we now use socket streams in binary mode by default (see ZnUtils>>#socketStreamToUrl:); we''re now using ZnLineReader to read CRLF delimited lines (handles bivalent access); ZnEntities set content length in #readFrom: when reading upToEnd; refactored ZnLimitedReadStream to track position explicitely (added #position); added #position to ZnChunkedReadStream; fixed ZnMessage>>#readStreamingFrom: ' id 'c60def04-29e9-4bb0-95d2-dad31539c4cc' date '09/27/2010' time '19:55:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.41' message 'extended ZnEntityReader with ability to read chunked transfer encoded content (see #readEntity); created helper class ZnChunkedReadStream wrapping a chunked transfer encoded stream, hiding the encoding from clients; all ZnEntities'' #readFrom: methods now work either with defined #contentLength (as before) or with undetermined #contentLength (doing #upToEnd); added ZnHeaders>>#keysAndValuesDo: ' id '3a023d61-98e4-4eaa-9c60-e7826ce05fbf' date '09/26/2010' time '20:10:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.40' message 'introduction of ZnEntityReader helper object; added some more operations to ZnFixedClient; some API cleanup' id 'c076371b-1e6b-48ad-ad3e-78a678785484' date '09/25/2010' time '23:16:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.39' message 'first version of ZnFixedClient for talking to one host:port combination and trying for connection reuse; added ZnMimeType>>#applicationJson (as non-binary!) ' id '784a8e5d-f9ef-4b96-838c-86d330aeec7b' date '09/25/2010' time '21:14:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.38' message 'replace #crlf with nextPutAll: String crlf to improve stream compatibility; added #url accessor to ZnRequest (alias to #uri)' id '12cb56a0-a124-4e23-bded-52ad0bbecf87' date '09/21/2010' time '22:06:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.37' message 'try to use MIMEDocument without referencing MIMEType' id '5b008ad4-0e12-4218-995a-635d765fa653' date '09/21/2010' time '16:15:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.36' message 'introduced ZnUtils>>#ipAddressToString:' id '6f149459-e4bf-4eca-a3c6-a20ede32ac0a' date '09/21/2010' time '16:01:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.35' message 'implemented a complete set of ZnClient methods (GET,PUT,POST,DELETE,HEAD) with basic authentication variants; introduced ZnClient>>#executeOneShot:on:; refactored ZnMessage and subclasses reading (#readFrom: #readStreamingFrom: #readHeaderFrom:) to support asymmetric head requests and remove code duplication; cleaned up ZnMessage and ZnHeaders #contentType and #contentLength access improved some ZnHeaders methods to better deal with missing headers dictionary (lazy initialization); added ZnServer>>#printOn:; renamed some older classes' id '71e40771-0e1a-477c-b999-94ac5537668c' date '09/21/2010' time '12:59:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.34' message 'added #printOn: to ZnStatusLine, ZnRequestLine, ZnHeaders and ZnEntity; some bug fixes and added robustness' id '58cafaad-d422-458a-9f26-57b801613e83' date '09/20/2010' time '19:40:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.33' message 'Renamed all categories with old code to Zinc-HTTP-Old-*' id '56666b16-26a2-4785-a7b0-69934e9f5a1b' date '09/19/2010' time '18:44:52' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.32' message 'various changes suggested by Code critics' id 'b9a81c31-f509-4443-b5ab-5d0980ba1f1b' date '09/17/2010' time '20:54:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.31' message 'first working implementation of ZnMonticelloServerDelegate; added ZnResponse #setLocation and #setWWWAuthenticate; added ZnResponse convencience instance creation methods #created: and #badRequest:; ZnResponse convencience instance creation methods now pass their uri through ZnUtils>>#urlPathQueryFragmentOf:; ZnUtils>>#httpDate: now does an #asUTC conversion; added ZnUtils>>#streamFrom:to:size: fast stream copier; added ZnUtils>>isSlash:' id 'e3e6a58f-52f3-4474-b700-132198106c9d' date '09/17/2010' time '15:45:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.30' message '1st working version of ZnStaticFileServerDelegate (on 1 directory with 1 prefix); extended ZnResponse with #notFound: and #redirect instance creation methods; added ZnUtils>>#httpDate: (and implemented #httpDate using it); extended ZnMimeType with MimeTypes and ExtensionsMap class variables for faster constant access and file extension to mime type mapping; ZnStreamingEntity>>#writeOn: now closes its stream after using it ' id '6074fdf3-5027-46f8-9e5b-9629d0ef5074' date '09/16/2010' time '20:50:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.29' message 'ZnStatusLine and ZnRequestLine now handle their own crlf line ending (see #readFrom: and #writeTo:); Experimental introduction of ZnStreamingEntity (see #readStreamingFrom:) ZnLimitedReadStream is now used in ZnApplicationFormUrlEncodedEntity>>#readFrom: ' id '4fae956f-e1d3-4307-90d0-eae856459f18' date '09/15/2010' time '20:24:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.28' message 'fixed ZnMimeType parser dependency on Grease #trimBoth; added serverSocket as inst var to ZnServer' id 'd09f0956-371c-442a-aeab-0eed4d433a3e' date '09/15/2010' time '09:59:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.27' message 'fixing ZnHTTPSocketFacade>>#httpPut:to:user:passwd: semantics; added ZnMessage #head: #post and #put; added ZnHeaders>>#removeKey:[ifAbsent:] ; allowed for missing content-type when reading entities; enforcing content-length header to be string in #acceptEntityDescription: ' id 'cb4bffd1-218f-4103-8679-b81e5e51dc7a' date '09/14/2010' time '15:15:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.26' message 'ZnHTTPSocketFacade: adjusting semantics; implemented some missing methods; some refactoring (#execute:on) ' id '541ca458-55fa-404a-a317-9a5801a6322b' date '09/14/2010' time '13:27:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.25' message 'some code reformatting in ZnHTTPSocketFacade; added more strings to ZnConstants; ZnServer now returns a nice default welcome page (the echo handler now only runs when the path starts with ''echo'')' id '7c2531d4-acde-449a-8c98-ed0d3affe342' date '09/14/2010' time '11:07:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.24' message 'first complete implementation of (new) ZnHTTPSocketFacade (incomplete tests); added #contents to ZnEntity; added #addAll: and #withAll to ZnHeaders and ZnApplicationFormUrlEncodedEntity; store remoteAddress as dotted IP string instead of printed byte array' id 'd30509ad-79a7-4410-9507-0a34a6639fc2' date '09/13/2010' time '22:31:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.23' message 'reorganized categories (Zinc-HTTP-New-Core, Zinc-HTTP-New-Client-Server, Zinc-HTTP-New-Support); started new implementation of ZnHTTPSocketFacade (renamed old one to ZnOldHTTPSocketFacade) with image access methods; refactored image access methods in ZnClient (introduced ZnClient>>#getImageOfType:usingParser:fromUrl:); changed ZnEntity>>#contentType: to only allow assigning mime types compatible with an entity''s designated mime type (if any) ' id 'eb6683ed-f103-46af-aa28-4d1c0d6689f3' date '09/13/2010' time '16:17:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.22' message 'added support for server side basic authentication' id '55c0e0fa-9e16-428f-800a-0ed87537fb45' date '09/13/2010' time '13:54:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.21' message 'added support for client side basic authentication' id 'f61af145-d04a-4c18-b8a9-4dc9c904c636' date '09/12/2010' time '20:34:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.20' message 'added simple http client proxy support using the system settings (untested though) ' id 'bae5ca73-9f54-4b2b-bfa2-3eb66228c7e1' date '09/12/2010' time '11:55:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.19' message 'refactored ZnEntity hierarchy with new instance creation framework; implementation of ZnApplicationFormUrlEncodedEntity; created mock ZnMultiPartFormDataEntity; added ZnUtils>>#parseQueryFrom: ZnMimeType>>#printOn: now simply prints the RFC string ' id '10746c52-3fcb-4b36-895f-a5fc34b8dd04' date '09/12/2010' time '11:28:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.18' message 'added header name normalization; added optional multi-valued header values; added optional header value merging' id '1e65b930-7310-4677-b5cf-b779a38bf759' date '09/10/2010' time '21:06:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-pmm.17' message 'use aStream print: anObject instead of aStream nextPutAll: anObject printString' id '4b6b2702-4ec3-4314-b712-ccc1d9da802c' date '09/10/2010' time '12:40:03' author 'pmm' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.16' message 'replaced usage of #displayString with #printString; renamed ZnMimeType>>#greaseString to #asRFCString' id '10c584eb-c842-4aa1-8ac7-60d2ca426265' date '09/10/2010' time '12:22:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.15' message 'added #at:ifAbsent: to ZnHeaders; added #headersDo: to ZnMessage; added #isRunning to ZnServer; ZnServer now sets a (ZnConstants remoteAddressHeader) header with the client''s remote IP address; extended ZnServer with a general purpose delegate mechanism ' id 'b3fa69a2-3f1a-4ea5-94db-47447fcab5a6' date '09/09/2010' time '20:53:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.14' message '1st primitive but working ZnServer' id '996b6601-b412-48ae-a64c-7dc78dac058d' date '09/08/2010' time '11:06:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.13' message 'ZnClient #get: and #getJpeg: now work for normal situations' id 'cbbe9f1e-39a9-4b3a-a6f1-e08e11c4c5cf' date '09/07/2010' time '20:04:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.12' message 'Started the Zinc-HTTP-New implementation; not much to see yet' id 'de2cead7-a4dd-4a3c-ac68-69e4cef2964d' date '09/06/2010' time '23:05:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.11' message 'some more recategorizations' id '7b109f45-7460-4edc-9983-3a201efa0815' date '09/05/2010' time '11:10:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.10' message 'refactoring for a cleaner #executeMethod: introducing #allHeadersFor:on: #generateRequestOn: #sendContentTo: removed #noContentLength: renamed #MIMEDocument to #getResponseAsMIMEDocument ; renamed some post method classes' id '0e5bf523-5aa9-40f3-be02-17abc7a18d6b' date '09/03/2010' time '23:29:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.9' message 'forgot one usage of #page' id 'd56be428-7eed-4712-ab04-2094e3808c3a' date '09/02/2010' time '20:16:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.8' message 'fixed wrong header case in #mimeTypeHeaderOn: ; refactored the extension protocol on HierarchicalUrl using new method names (using the concept of path directory and adding the String suffix for conversion methods)' id '28ab58db-ba2b-4db5-a473-2cd613cca92b' date '09/02/2010' time '20:10:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.7' message 'using code critics to remove some dead code and obvious problems (but may issues are left open); more method categorizations' id '1c64f23b-0156-41d4-bc9b-72d9c52d0227' date '09/02/2010' time '16:36:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.6' message 'did an initial method categorization in the core classes ZnHTTPClient and ZnHTTMethod (and its subclasses); removed one no-op #initialize' id '45e8c7be-7a6e-4aa3-8c8d-6f30c0e26bf5' date '09/02/2010' time '12:41:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.5' message 'introduced ZnConnectNew, a plugin replacement for ZnConnection.The old code was using its own SocketStream, now we''re using the system supplied SocketStream. Some backwards compatibility protocol was added, could be cleaned up later. It is probably also possible to use SocketStream directly; added ZnHTTPClientFacade with 2 get methods' id '2d453fab-9a2f-4743-8ce5-d7879bbc14a1' date '09/02/2010' time '11:47:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.4' message 'reduced some dependencies on extensions' id 'e3317890-f543-461c-a2de-d32ba48b2af0' date '09/01/2010' time '21:02:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.3' message 'Some cleanup of ZnHTTPSocketFacade''s class methods' id '58105dc7-a59a-4e9b-add7-1ae71a212e3c' date '09/01/2010' time '19:59:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.2' message 'Renamed HC HTTP Client to Zinc HTTP Components; Renamed all classes to use Zn namespace prefix; Renamed all extension protocols to *zinc-http; Renamed Facade to HTTPSocketFacade' id '42475f7f-909f-4292-90d2-78b2fe48c9a2' date '09/01/2010' time '19:13:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.1' message 'Renamed HC HTTP Client to Zinc HTTP Components; Renamed all classes to use Zn namespace prefix; Renamed all extension protocols to *zinc-http; Renamed Facade to HTTPSocketFacade' id '4b0032ae-27eb-462c-b0db-29800c2cc647' date '09/01/2010' time '17:29:24' author 'SvenVanCaekenberghe' 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 ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Zinc-HTTP-SvenVanCaekenberghe.242' message 'added ZnEntityTooLarge to the exceptions silently catched by ZnMultiThreadedServer>>#readRequestSafely:' id '8c18da8d-4ec0-40a7-92ea-01e7c09b9929' date '02/01/2012' time '11:26:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.241' message 'simplified and optimized implementation of ZnChunkedReadStream' id '36d5243f-deb3-4689-9315-d3d4c5393da7' date '01/31/2012' time '21:21:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.240' message 'added some speed improvements to the implementation of ZnLimitedReadStream' id '24874b38-2c00-4d0c-b3b3-cec7c4f91d71' date '01/31/2012' time '21:08:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.239' message 'fixed the implementation of ZnLimitedReadStream to honor EOF on the underlying stream' id '16a06aa4-34ec-4c81-87ca-701823088ac2' date '01/31/2012' time '20:55:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.238' message 'introduction of a resource limit to the size of entities read from a stream; added ZnConstants class>>#maximumEntitySize[:] added ZnEntityTooLarge resumable exception added ZnUtils class>>#readUpToEnd:limit: #readFrom: logic of Zn[String|ByteArray|MultiPartFormData]Entity now take the limit into account extended ZnChunkedReadStream and ZnLimitedReadStream with #readInto:startingAt:count: as a first step to improve their performance' id '4af222aa-e05c-458b-a1ce-2d62b2d23d2d' date '01/31/2012' time '14:02:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.237' message 'changed ZnMimePart class>>#fieldName:value: to use ZnEntity>>#with: on the value so that Strings become ZnStringEntities and others become ZnByteArrayEntities; changed ZnUrl>>#queryAt: to signal a KeyNotFound error when there is no query' id '37e466f7-592f-4f15-a016-f2689b56f3fb' date '01/29/2012' time '19:43:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.236' message 'added ZnUrl>>#retrieveContents convenience method' id 'b5d081c0-6b4f-40a2-8e4c-5b58c4a02de5' date '01/24/2012' time '11:59:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.235' message 'now using #trimBoth instead of #withBlanksTrimmed' id 'bc327259-a3d3-4829-a24a-504b08ab8cbf' date '01/08/2012' time '14:20:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.234' message 'changed the implementation of ZnHeaders to use ZnMultiValueDictionary; ZnLineReader now uses ZnConstants class>>#maximumLineLength (4096) as default for signaling a ZnLineTooLong exception; added a limit option to ZnMultiValueDictionary that defaults to ZnConstants class>>#maximumNumberOfDictionaryEntries (256) for signaling a ZnTooManyDictionaryEntries exception; added new ZnTooManyDictionaryEntries error; changed parent of ZnTooManyRedirects from Exception to Error and added a #isResumable true method; extended ZnMultiThreadedServer>>#readRequestSafely: to also catch ZnTooManyDictionaryEntries' id 'add34728-015e-46b6-9aeb-eda8f63e1f03' date '01/03/2012' time '15:42:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.233' message 'Rewrote ZnServer and subclasses''s class methods #startDefaultOn: and #defaultOn: to treat the default instance like a singleton by reusing/restarting/reconfiguring existing instances; expanded comments; Changed the implementation of ZnServer>>#start to automagically register the default instance; Changed the implementation of ZnServer>>#stop to always unregister; added ZnServer>>#stop: with an option to control the unregistering so that it does not happen when shutting down the image ' id '8dd541c9-2890-4a8f-b5cb-d6ac2e9341af' date '12/22/2011' time '12:54:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.232' message 'changed ZnClient>>#executeWithTimeout to use an explicit and selective #exceptionSetForIfFail so that only network, http parsing, http unsuccessful and unexpected content type exceptions trigger the #ifFailBlock; this fixes the problem where HTTPProgress exceptions triggered the ifFail block; thx Camillo Bruni ' id '3ca78fe3-4355-46ee-9ba3-5e0f540b9ec0' date '12/20/2011' time '14:24:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.231' message 'Extended the ZnHttpUnsuccessful and ZnUnexpectedContentType exceptions to contain the repsonse respectively the two content types so as to produce better error messages (thx Camillo Bruni for suggesting this)' id 'c94e86a8-3b1a-4c26-bae5-3aebc90764b2' date '12/20/2011' time '13:26:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.230' message 'Changed ZnClient>>#timeout to use the global ZnNetworkingUtils defaultSocketStreamTimeout as default' id 'fb0c7c07-a6dd-4105-bdd4-a65860b4b452' date '12/14/2011' time '14:07:42' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.229' message 'expanded the ZnUrl class comment' id 'b239edd4-c432-4139-a71a-d27618beef91' date '12/14/2011' time '13:45:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.228' message 'added ZnUrl>>#queryKeys' id 'f979e877-6dfa-4167-b159-ec322a629c98' date '12/13/2011' time '14:21:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.227' message 'added the WebDAV methods to ZnConstants class>>#knownHTTPMethods; added convenience constructor #xml: to ZnStringEntity and ZnEntity' id 'd8262a06-7f5b-4a88-9fdb-cc4bb05ed422' date '12/11/2011' time '19:47:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.226' message 'changed ZnMimeType such that the ''constants'' returned by the methods in the class side convenience protocol can now be freely modified by returning a copy; implemented ZnMimeType>>#postCopy; ZnMimeType>>#parameters will now lazy initialize to a SmallDictionary instead of a regular Dictionary' id '52cc1692-4d4f-4c43-813c-21b61e386eaf' date '12/06/2011' time '20:56:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-NorbertHartl.225' message 'changed ZnApplicationFormUrlEncodedEntity to check encoding of contentType. If an encoding is present to presentation is written using the specified encoding' id '18a28639-5e95-4594-937c-268df69987ec' date '12/06/2011' time '18:30:33' author 'NorbertHartl' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.224' message 'added ZnLimitedReadStream>>#peek' id '4f9dffc5-3af2-4adc-a0c9-0bc22d1de76e' date '12/04/2011' time '20:10:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.223' message 'added missing ZnChunkedReadStream>>#next:into: that was used by ZnEntityReader when reading a ZnByteArrayEntity fix to Pharo issue 5053 (http://code.google.com/p/pharo/issues/detail?id=5053) thanks Laurent Laffont for reporting' id '19ce4497-786a-46a7-bd6c-55fa682dba56' date '12/03/2011' time '17:51:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.222' message 'small fix to ZnEntityReader>>#readEntityFromStream added an extra guard copying extraHeaders from a chunked stream since these are missing when reading a streaming entity' id 'a1b1d190-4690-4cc0-b9b5-eab77cc5153b' date '12/01/2011' time '10:40:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.221' message 'added new #followsRedirects boolean option to ZnClient because setting #maxNumberOfRedirects to 0 did not work well for an example see the ZnClientTests>>#testRedirectDontFollow Thx Jan van de Sandt for reporting this' id '4df9982e-63e1-49ea-bfb0-2f9cb43f6f0b' date '11/23/2011' time '17:30:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.220' message 'added auto initialization of ZnNetworkingUtils>>#secureSocketStreamClass' id '147d6c42-b509-40e4-abb0-7c804d5df01d' date '11/13/2011' time '21:46:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.219' message 'reworked ZnNetworkingUtils to take over most if not all functionality of ZnZodiacNetworkingUtils so that HTTPS should work out of the box when Zodiac is loaded; small refactoring to ZnServer hierarchy: use #socketStreamOn: consistently' id 'f0eb7dbf-ae05-4daa-87da-84feb09ba23a' date '11/10/2011' time '14:09:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.218' message 'renamed ZnNeoClient -> ZnClient; added a better class comment' id '8c789ded-a882-4491-bdf9-e9ad45af69f2' date '11/08/2011' time '22:33:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.217' message 'renamed ZnClient -> ZnClientOld' id 'df12536b-7fa7-4e00-84eb-6de051894eb6' date '11/08/2011' time '22:14:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.216' message 'documented all public methods of ZnNeoClient; minor fixes: - #close sets state to nil - #contents return the stream when streaming - #headerAddAll: and #headerAt:add: now do a #resetRequestIfNeeded' id 'bfb5ff74-76f9-4689-a976-95ef34260531' date '11/08/2011' time '21:10:32' author 'SvenVanCaekenberghe' 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 ())(name 'Zinc-HTTP-SvenVanCaekenberghe.283' message 'added an efficiency improvement to ZnMultiPartFormDataEntity>>#parse:boundary: added convenience protocol to ZnUrl: - #withPathSegment[s]: #/ - #withQuery: #? #&' id '51351ae8-99a9-44cc-856a-976fcd55e2cf' date '07/09/2012' time '04:38:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MarcusDenker.282' message 'Issue 6259: DataStream is still there http://code.google.com/p/pharo/issues/detail?id=6259 Issue 6255: Zinc Pharo Conference update with FileSystem support http://code.google.com/p/pharo/issues/detail?id=6255 Issue 6223: FileLocator and FileRerernce have extension from File Package http://code.google.com/p/pharo/issues/detail?id=6223' id '03911f2b-c422-4142-bedf-617d90674243' date '07/04/2012' time '04:16:25' author 'MarcusDenker' 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 ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) 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 'Zinc-HTTP-dkh.409' message 'Issue #58: conversion of ZnServerTests to support ZnGsServerTests ... support full range of ZnServer options in ZnGemServer' id '7d7873e6-70b7-4d01-8a98-8df422525f11' date '12/14/2014' time '08:13:33' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.408' message 'Issue #43: move SocketStream class>>openConnectionToHost:port:timeout: to SocketStream package' id '9f8ebe3d-5387-4e8f-b81c-75046ce436ed' date '12/11/2014' time '14:57:43' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.407' message 'Issue #46: add SpSocketError to ZnMultiThreadedServer>>readRequestTerminationExceptionSet and ZnMultiThreadedServer>>writeResponseTerminationExceptionSet' id '8f60ec48-79a7-4630-9961-b30712f02737' date '12/11/2014' time '14:43:00' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.406' message 'Issue #58: fix calling logic for ZnGemServerLogSupport>>handleBreakpointException:resumeIfResumable:' id '02b441e3-2f57-4cdd-b2eb-7d663d9c53c7' date '12/11/2014' time '14:20:39' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.405' message 'moved UUID>>asString36 to GLASS1 (see https://github.com/GsDevKit/zinc/issues/43)' id '2de0a436-81e1-4fd4-864e-f524a2ef5906' date '12/11/2014' time '13:47:28' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.404' message 'Issue #58: some tweaks to implementation as I flesh out ZnSeasideGemServer for seaside ... fine tune logging and honor debugMode in terms of passing exceptions when set ....' id '93d104da-763a-4c0a-a88f-948051c130e4' date '12/11/2014' time '06:58:08' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.403' message 'Issue #58: make SocketStream and friends continuation friendly by wrapping GsSocket references in a TransientStackValue. Add ZnTransactionSafeManagingMultiThreadedServer a subclass of ZnManagingMultiThreadedServer where all references to GsSockets are wrapped by a TransientStackValue ... including places where GsSockets are passed as arguments ... this makes the server instance transaction safe, so continuations can be snapped off and transactions can be safely used in delegates ...' id '0f71b3bd-51e8-4147-a86d-e304e0c1bbeb' date '12/09/2014' time '11:21:17' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.402' message 'Issue #58: fix typo' id '7b2f8914-dec9-4199-9ad3-86e354d28f27' date '12/07/2014' time '07:50:44' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.401' message 'Issue #58: flesh out remote breakpoint work ... cannot switch back to native threads, but for development of servers, it can still be useful ... continue following this thread ...' id '3dcf0fc7-510d-4beb-957f-924a845fa5d0' date '12/06/2014' time '15:02:52' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.400' message 'Issue #58: ZnLogSupport>>breakpointExceptionSet needed ... ZnRestServerDelegate>>handleRequest: should not handle Exception!' id '7f2f3b66-3cad-4189-a5d4-9f0c2f36e16f' date '12/05/2014' time '16:30:33' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.399' message 'Issue #58: GemServer class>>handleBreakpointException: moved to ZnGemServerLogSupport, so breakpoing exceptions can be under enableContinuations control .... and breakpointExceptionSet controlled vi ZnGemServer ' id 'd02fc4b2-a7d0-4365-b64d-f69abe945c22' date '12/05/2014' time '15:02:46' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.398' message 'Issue #58: fix sent but not implemented' id '719304b2-c0bd-4636-9bdb-f4629952a46d' date '12/04/2014' time '08:08:04' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.397' message 'Issue #58: fixed{?) an accept problem whereby an accept error in SocketStreamSocket would lead to an infinite loop creating processes and then running out of memory ... Fix Rest test error ... only pass exceptions in debugMode for ZnServer' id 'b5faca58-86c1-45ab-9553-1294e1af0ded' date '12/04/2014' time '07:52:23' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.396' message 'Issue #58: add ZnLogSupport>>object: ... for dropping an object into the object log...refactor REST tests to allow for testing using remote ZnGemServer and add persistence to ZnExampleStorageRestServerDelegate ... a bit of house cleaning in ZnGemServer' id '15078ceb-f99a-45da-a878-afaf6dd47bf4' date '12/04/2014' time '06:38:36' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.395' message 'Issue #58: add halt/breakpoint handlers to ZnSingleThreadedServer>>serveConnectionOn: and ZnMultiThreadedServer>>executeRequestResponseLoopOn: ' id '9dc2976d-a30a-459a-bf27-38e0cd344e2e' date '12/03/2014' time '15:04:20' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.394' message 'Issue #58: ZnSingleThreadedServer>>logServerError: to unconditionally log an error: and handleError: for GemStone so we make sure that all errors make it to the log (object log and continuation) AND the gem file .... add gobs of log helper methods to ZnGemServer ... control logging method and filter and whether or not continuations are created for errors from ZnGemServer' id 'adfc58cc-0093-4497-aa69-4bd5882c9fea' date '12/03/2014' time '14:38:54' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.393' message 'Issue #58: ZnSingleThreadedServer>>handleRequestProtected: don''t pass the exception ... debugMode doesn''t quite appy to GemStone ... need different granularity I think ... GsPharo 0.9.2 needs to be used' id 'baa8f9c1-8596-499c-b756-8b7c9d805bad' date '12/02/2014' time '16:29:11' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.392' message 'Issue #58: ZnWebSocketTests>>testEcho test passing ... in debugMode, use ZnObjectLogLogger ... practical to debug ZnGemServer using object log logging and continuations' id '56012f4e-e24d-4274-9480-464e39e012c3' date '11/30/2014' time '20:18:37' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.391' message 'Issue #58: a log can be specified for an instance of ZnGemServer. By default errors are logged to transcript and continuation commmited to object log.... ' id '287b4e2c-f842-43d8-b260-e19a3b059342' date '11/30/2014' time '11:19:10' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.390' message 'Issue #58: - always snap off continuation when an error event occurs - add some error handling a bit higher up the zn stack ... to catch application errors as well ... might be able to continue processing without passing error ... still passing at the moment... - ZnTranscriptLogger for all ZnGemServer guys ... might want to make this easier to customize ' id 'de82eb89-74dc-466c-990f-8f5ceae284f4' date '11/30/2014' time '10:39:44' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.389' message 'Issue #53: barring any new sent but not implmented messages, this bug should be fixed .... of course Issue #61 and Issue #62 were opened to implement the missing behavior' id '1fbac59e-9a7d-4d63-831c-a268f4ec664d' date '11/17/2014' time '16:17:42' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.388' message 'client forwarder safe tests for interactive session' id '5be60a6d-65b2-4738-a753-e5adff4864ac' date '06/29/2014' time '23:15:39' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.387' message 'remove extra tracing code ... tests greeen for GemStone 3.2' id '829b5fe3-3585-4b20-9a64-27cf084bd5da' date '06/29/2014' time '15:48:14' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.386' message 'logging for travix ZnServerTests>>testReadEvalPrint failures ' id 'f9fb3b5b-7c9d-44eb-8366-b06db2cc5f42' date '06/29/2014' time '15:17:53' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.385' message 'improve error reporting for ZnUnknownHttpMethod (tracking an error during tests) ... fix test case logging for non-interactive tests' id 'd0e4a2de-762b-432d-8600-a6dcf1bac062' date '06/29/2014' time '12:09:43' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.384' message 'significant work on Zinc logging... - add ZnObjectLogLogger to record ZnLogEvents in Object log - add ability to log errors for additional filter granularity in log. - install error event in the several(!) in Zinc client/server code where exceptions are silently ignored - exceptions logged as debug event along with hundreds of other non-exception based events) - use error event in ZnSingleThreadedServer>>logServerError: which also swallows errors ... returns an error response - Zinc tests refactored to: 1. turn on logging Transscript or ObjectLog depending upon whether tests are being run interactively or not 2. trace test running in object log to make it possible to correlate client/server log errors with the test being run.' id 'bb1e03f0-1ee1-4fb3-a05b-43e5961a28c6' date '06/29/2014' time '11:52:48' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.383' message 'checkpoint: 282 run, 274 passes, 0 expected defects, 6 failures, 2 errors, 0 unexpected passes' id '984043a7-e539-429c-8846-c7d1abec9505' date '06/27/2014' time '21:06:25' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.382' message 'strip ZnByteStringBecameWideString out of the zinc code (leave in tests) ... test fixes - 282 run, 272 passes, 0 expected defects, 8 failures, 2 errors, 0 unexpected passes' id 'c53c907d-0262-4d69-8d39-5a9e78c52cc2' date '06/27/2014' time '16:22:44' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.381' message '282 run, 269 passes, 0 expected defects, 11 failures, 2 errors, 0 unexpected passes - beef up server error handling - logic to bring up debugger when running interactively (clientForwarder defined for Transcript) - object log dumps ... no transactions at this point' id '8daec818-73e2-44d6-b558-55aa188cc061' date '06/27/2014' time '15:15:10' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.380' message 'Checkpoint: 282 run, 258 passes, 0 expected defects, 10 failures, 14 errors, 0 unexpected passes ' id '37891947-eb1c-417b-9228-2271d81a1a57' date '06/25/2014' time '21:52:54' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.379' message 'remove `(Delay forMilliseconds: 10) wait.` from ZnSingleThreadedServer>>releaseServerSocket ... not good result in GemStone3.x ..' id '124768f5-46a3-4d2b-ad55-82c44b1f56b1' date '06/25/2014' time '07:45:02' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.378' message 'port some changes made to improve stability for ZnMultiThreadedServer (i.e., error handling) ' id '3b13d0a2-2cf8-494f-a67e-878ca5953b57' date '06/24/2014' time '20:16:20' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.377' message 'move forkAt:named: to BlockClosure ... a shared class between 2.x and 3.x' id '632ea1bf-96f5-4838-b45b-bebfb4cafb3d' date '06/24/2014' time '19:42:59' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.376' message '' id 'b62843de-3718-4d88-b0e1-06af996ff809' date '05/24/2014' time '17:35:07' author 'dkh' ancestors ((name 'Zinc-HTTP-dkh.375' message 'zinc is dependent upon GLASS1 now ...' id '484f343c-dd72-4f02-8462-120cba385cec' date '05/23/2014' time '17:17:27' author 'dkh' ancestors ((name 'Zinc-HTTP-JohanBrichau.374' message 'fix WideString ref' id 'de950444-0140-45de-96af-238a26e4af0f' date '05/02/2014' time '23:52:37' author 'JohanBrichau' ancestors ((name 'Zinc-HTTP-JohanBrichau.373' message 'republish to get rid of bad utf8 encoding' id '3428f845-911a-4b51-a3a0-948c6d1eb449' date '01/05/2014' time '21:08:20' author 'JohanBrichau' ancestors ((name 'Zinc-HTTP-JohanBrichau.372' message 'porting code' id '2582ccc3-63aa-443d-859a-b90b9ed5b137' date '01/05/2014' time '15:27:28' author 'JohanBrichau' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.371' message 'Added an optimalization to ZnUTF8Encoder>>#readInto:startingAt:count:fromStream: to avoid the price of #becomeForward: when a ByteString to WideString conversion happens' id 'ef28893e-9902-4f96-bd30-1c97796df7f5' date '06/11/2013' time '04:34:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.370' message 'Two optimalizations: ZnStringEntity>>#readFrom: and ZnUtils class>>#readUpToEnd:limit: (if all contents read fits in the first buffer, take a fast path) - bis' id '78ad6f26-8414-47d1-980e-f1df75d91b2b' date '06/11/2013' time '02:06:42' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.369' message 'Two optimalizations: ZnStringEntity>>#readFrom: and ZnUtils class>>#readUpToEnd:limit: (if all contents read fits in the first buffer, take a fast path)' id '6ad9e454-799e-4d99-bd39-92f12cc41bef' date '06/11/2013' time '01:59:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.368' message 'Added/refactored some ZnHeaderTests Fixed ZnClientTests>>#testGetGeoIP' id '313a504c-dee4-49c8-8541-bdcdda740273' date '06/11/2013' time '11:41:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.367' message 'Introduction of ZnEntity class>>#matches: to fix ZnEntity class>>#concreteSubclassForType:binary: and ZnEntity>>#contentType: (Thanks Andy Kellens)' id '04dcc6f1-361f-46c1-a734-746b71460eb2' date '06/04/2013' time '04:28:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.366' message 'Updated some class comments' id 'ab163d28-d657-479b-90e3-b12566dfcb34' date '06/04/2013' time '01:52:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.365' message 'Further performance tuning of ZnEntity reading/writing' id '42e083e5-cad8-4800-b439-18bdb755909b' date '05/28/2013' time '01:25:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.364' message 'Optimized ZnHeaders>>#normalizeHeaderKey: using a CommonHeaders set' id '5564fa6a-bcde-4cfd-817c-3fd49f51d34d' date '05/28/2013' time '12:09:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.363' message 'Implemented ZnTestRunnerDelegate (original idea by Norbert Hartl - Thx) Minor optimalization to ZnUtils class>>#nextPutAll:on:' id 'a1fa8795-eb44-4812-81e7-3da28fa9bda9' date '05/28/2013' time '10:38:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.362' message 'Changed ZnMultiThreadedServer>>#readRequestTerminationSet to a more sane value (this was probably forgotten in the last refactoring) Added a CRLF to /echo in ZnDefaultServerDelegate' id '0ec0f1da-d41f-4b7a-9911-7111341cad51' date '05/27/2013' time '04:21:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.361' message 'A new implementation of ZnStringEntity>>#readFrom: based on buffer wise delegation to ZnCharacterEncoder>>#readInto:startingAt:count:fromStream' id '109ed743-caf5-410c-9162-72933240fa53' date '05/23/2013' time '12:37:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.360' message 'Performance enhancement in ZnMessage/ZnEntity writing (more intelligent buffering, more intelligent encoding) Implemented #= and #hash for all Zn Core objects Tracking ZnMimeType>>#= and #match: changes Added new tests and benchmarks ' id '9ee5d56f-fd93-4115-976f-371df43dd56d' date '05/22/2013' time '04:35:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.359' message 'Fixed a typo in ZnNetworkingUtils>>#initialize' id '455db906-7f02-4451-80e5-1efb8573609a' date '05/20/2013' time '03:31:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.358' message 'FIx ZnResponse>>#setTransferEncodingChuked to send a #clearContentLength' id 'd4a01cc3-c7b5-440c-8cfd-7f10b395816e' date '05/20/2013' time '03:02:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.357' message 'Added ZnServer>>#useGzipCompressionAndChunking[:] option and implementation (disabled by default)' id '3586cb96-51a2-4c00-b120-1ec622e2505a' date '05/19/2013' time '09:25:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.356' message 'Refactored ZnEntity subclasses #writeOn: to use the newly introduced ZnUtils class>>#nextPutAll:on: ZnEntityWriter now uses a buffered stream when there is chunking without gzip compression for text (otherwise each character would become a chunk) Switched ZnNetworkingUtils to use ZdcSocketStream when it is available' id '3c079a63-a106-4254-aa8c-81bc9a64aa69' date '05/19/2013' time '11:49:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.355' message 'Introduction of ZnEntityWriter with support for gzip/chunked encoding' id '69d9f0c8-d113-41e9-ab0d-8ba97e296597' date '05/18/2013' time '02:06:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.354' message 'Added #chunkCount to ZnChunked[Read|Write]Stream Added #position to ZnChunkedWriteStream' id '9dcbc597-fb19-4469-937f-9dc504b5d02d' date '05/18/2013' time '12:42:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.353' message 'Optimized ZnChunkedReadStream>>#upToEnd' id '79dce0bc-490e-4364-b138-584728356cc6' date '05/17/2013' time '11:57:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.352' message 'Added ZnChunkedWriteStream Reorganized ZnChunkedStreamTests' id '2ac8bc6d-5fdd-408b-8212-93df128a777a' date '05/17/2013' time '05:06:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.351' message 'Improved and simplified ZnReadEvalPrintDelegate.' id 'a4a8cbaf-2c42-485b-b442-8f982d8e08a4' date '05/16/2013' time '01:16:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.350' message 'Added ZnReadEvalPrintDelegate, a REPL Web Service.' id 'd18e631a-94e4-4803-9549-beff989ff14b' date '05/15/2013' time '10:46:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.349' message 'Changed exception handling in ZnMultiThreadedServer: parse errors while reading an incoming request now result in a bad request response ' id 'b77fabc9-a1e3-462a-8c1a-e18b4b017f25' date '05/14/2013' time '01:42:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.348' message 'Added ZnClient>>#curl debugging utility which generates a curl command line invocation from the current request' id 'c238e1b9-84f9-4960-bca4-6c0fae43db50' date '05/07/2013' time '05:05:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.347' message 'Extended ZnClient>>#noteRedirect to take the target URL as argument and log it' id '145d12ff-c4af-446a-9666-db575fcb7ff8' date '04/19/2013' time '01:24:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.346' message 'Bugfix to ZnApplicationFormUrlEncodedEntity>>#addAll: (#invalidateRepresentation was no longer called after a recent refactoring) - Thanks Paul DeBruicker' id 'fe87820c-7859-4abe-8258-2e93c9b2611b' date '02/24/2013' time '11:07:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.345' message 'Added a #prepareRequestHook to ZnClient (see #prepareRequest: to set, #prepareRequestHook to access and #prepareRequest for the invocation); the request preparation hook is an object conforming to the #value: protocol that gets the final chance to change a request right before it gets executed. Typically used to sign requests.' id '5429a096-2d7d-4bc6-9b41-ab845c52a2c7' date '02/21/2013' time '05:10:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.344' message 'Switch the internal lastUsed instance variable of ZnClient from using full TimeStamp to Time totalSeconds' id 'b241e90f-e64d-4a16-89f7-b484d9a21ca8' date '02/11/2013' time '11:53:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.343' message 'Bugfix in ZnSingleThreadedServer>>#logServerError:' id 'a6ebbdf3-96b6-48fd-82ca-663bddafeeea' date '02/01/2013' time '04:22:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.342' message 'ZnServer''s #handleRequestProtected: will now also do a #logServerError unless #logServerDetails is false - this gives exception, signaller context details and a stack trace of depth 8 when an unhandled error occurs.' id 'c2255d27-bd92-4e23-965c-7be405ac857e' date '01/31/2013' time '11:56:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.341' message 'Moving ZnMonticelloServerDelegate from Zinc-HTTP-Client-Server to Zinc-FileSystem and Zinc-FileSystem-Legacy' id '6459b7f2-49d1-4e4e-80cf-fff3f83a7969' date '01/30/2013' time '07:56:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.340' message 'Extended ZnClient>>#url: to accept the new user info (username and password) component of ZnUrl when present; ZnRequestLine>>#uri: now explicitely calls #enforceKnownScheme' id '46c6777e-07a4-41e9-8505-26f3db1f0438' date '01/30/2013' time '07:45:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.339' message 'Bugfix to ZnApplicationFormUrlEncodedEntity>>#readFrom: which failed when content-length was not specified (Thx Jan van de Sandt)' id '60911520-b3de-4382-89bb-aa6376640012' date '01/25/2013' time '02:46:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.338' message 'added ZnMessage>>#writeToTranscript' id '6fc88bfa-6111-4190-8ced-939a040c67ef' date '01/24/2013' time '10:07:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.337' message 'fix ZnUtils class>>#signalProgress:total: bug when total was nil: #format: index should be 1 not 0 (Thx Camillo Bruni !)' id '0cfbd214-abe9-4f6e-8a14-7184b312428b' date '01/15/2013' time '04:02:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.336' message 'Some internal ZnServer refactoring/cleanup; primary change is that ZnCurrentServer is now set over the whole request/response cycle including the reading/writing and not just the handleRequest (this was needed for WebSockets)' id 'd8ac8c4a-3914-4295-bcb3-e0ce7b22f745' date '01/10/2013' time '03:56:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.335' message 'ZnResponse class>>#redirect: and #created: now accept absolute URLs as well (thx Jan van de Sandt) New ZnRequest API (all suggested by Jan van de Sandt): #host to return the Host: header field as ZnUrl #relativeUrl to explicitely request the request line uri as a relative URL #absoluteUrl to combine the request line URL with the host URL into an absolute URL #mergedFields to return a multi value dictionary combining query fields and application url encoded form fields ZnClient>>#redirectUrl now uses ZnUrl>>#inContextOf: Reimplemented ZnApplicationUrlEncodedEntity>>#addAll: and ZnHeaders>>#addAll: using ZnMultiValueDictionary>>#addAllMulti: ' id '085c1ffd-3ce3-46a7-81ab-d504bd7f0dd8' date '01/07/2013' time '12:37:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.334' message 'Added ZnServer>>#url and the #serverUrl option, as well as #scheme. Now sorting all handlers in ZnDefaultServerDelegate>>#generateHelp ' id '4db52577-5ad9-4194-acf8-68abbcff67a3' date '01/04/2013' time '02:25:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.333' message 'refactored ZnSingleThreadedServer and subclasses (added #authenticateAndDelegateRequest: and protocol ''request handling''); added ZnServer #route option; extended ZnServerSessionManager>>#newSessionId to use the server route when set' id '2391f87a-1b49-4491-bd8f-722a1257d12e' date '12/31/2012' time '05:06:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.332' message 'fixed a typo/bug in ZnServerSessionManager>>#sessionFor: (expired sessions were not removed correctly)' id '89ca824f-fd84-4c63-aed7-d581dcca5a93' date '12/25/2012' time '09:28:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.331' message 'Backported a Pharo 2.0 patch: ZnNetworkingUtils>>#shouldProxyUrl: now takes the new NetworkSystemSettings class>>#isAnExceptionFor: API into account, when it is available (for pre 2.0 compatibility)' id 'b1ec8d0d-1367-4de3-94e6-c6e8fe1a8831' date '12/24/2012' time '02:30:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.330' message 'added ZnSingleThreadedServer>>#handleRequestProtected: with a general and global error handler that normally returns an HTTP server error unless the server is in #debugMode' id 'e049c94f-6d29-4d21-a235-7b4ce689b090' date '12/23/2012' time '06:27:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.329' message 'added ZnServerSession>>#attributeKeys and #removeAttribute:' id 'afc731a8-d1f6-4f5a-846d-c13ade5ab68a' date '12/21/2012' time '12:03:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.328' message 'Replaced ZnPercentEncodingWrong with ZnCharacterEncodingError; Using #beLenient ZnCharacterEncoder instanciation in ZnStringEntity>>#initializeEncoder since apparently even Google sends spurious Latin1 characters' id 'a6d2358e-3ca9-43c5-b4dc-8e885ad9895d' date '12/17/2012' time '04:22:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.327' message 'creation of Zinc-Character-Encoding-[Core|Tests] by moving various classes out of Zinc-HTTP' id '501cdb52-158d-4020-b01e-cab709a4cab6' date '12/16/2012' time '05:02:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.326' message 'introduction and usage of ZnCharacterEncodingError exception; rewrote ZnBufferedReadStream>>#upToEnd and ZnCharacterReadStream>>#upToEnd' id 'a384cd05-21fe-4e48-b5fd-1ed7e7c73cf4' date '12/16/2012' time '04:35:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.325' message 'fixed a typo in a ZnBase64Encoder class method' id '55fd39e4-2495-4a6b-8db3-135cc9ba6f3b' date '12/16/2012' time '12:59:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.324' message 'changed the implementation of ZnByteEncoder to correctly honor and dleal with holes in official mappings' id '50d334f7-91c4-479b-8d44-1e76a945754f' date '12/15/2012' time '10:02:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.323' message 'modified ZnByteEncoder to use its own byte to Unicode mapping tables; this includes the change that latin1 is no longer mapped to a null encoder' id '819adf4a-fa93-4994-9a80-640fdf069311' date '12/15/2012' time '08:09:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.322' message 'finished the implementation of ZnBase64Encoder' id '95c632af-ec48-489c-bb94-8d44cc989787' date '12/15/2012' time '02:11:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.321' message 'added empty ZnBase64Encoder' id 'cc44a426-3f95-4b1c-9e3c-095bba14632e' date '12/14/2012' time '07:53:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.320' message 'added ZnPercentEncoder' id 'a32bf1d1-469c-4274-9d5c-efeeb2443df4' date '12/13/2012' time '11:31:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.319' message 'reworked/simplified some ZnClient internals - removed the state concept and instance variable - removed the #resetRequestIfNeeded concept and method; added ZnClient>>#resetEntity; added ZnClient>>#isCreated and #isNotFound note: this might make some semantic differences for people heavily reusing ZnClient instances' id '0da03bdc-ec26-42c0-b04b-f1cd13f6f9bc' date '12/12/2012' time '10:40:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.318' message 'moved HierarchicalUrl>>#asZnUrl from Zinc-Resource-Meta-Core back to Zinc-HTTP' id 'b7c4b025-6901-428f-9a4d-04544f32b6dd' date '12/11/2012' time '10:15:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.317' message 'added ZnResponse>>#isNotFound' id 'c7b7a02b-2b16-4b98-9d41-1115e6fac2f9' date '12/10/2012' time '09:33:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.316' message 'moving ZnUrl, ZnMimeType and related support classes to a new, independent package Zinc-Resource-Meta-Core (and unit tests to Zinc-Resource-Meta-Tests); extended ZnUrl to allow for some simple file:// URLs' id '9e15776d-4fc6-4b0b-91be-8552bc8cfe29' date '12/08/2012' time '09:15:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.315' message 'added ZnServerSession>>#attributeAt:ifAbsentPut:' id '4790203a-4259-4a33-a31f-dc867a2a38ab' date '12/07/2012' time '01:27:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.314' message 'Improved performance of ZnUTF8Encoder #nextFromStream: and #nextPut:toStream: by making the ASCII path really fast and by unrolling the block closure creation and usage; Added ZnCharacterReadStream>>#peekFor:; FIxed ZnCharacterReadStream>>#encoding:' id 'edc26e38-09d5-4e60-9c66-3ff28fe9bdd1' date '12/03/2012' time '03:00:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.313' message 'Added ZnBufferedReadStream>>#peekFor: Added ZnBufferedReadStream class>>on:do: improved some comments' id 'ec815554-cc36-435d-805d-67a2ad49465f' date '12/02/2012' time '08:03:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.312' message 'added ZnBufferedReadStream (from STON); extended ZnBufferedWriteStream (with #next:putAll:startingAt: logic); added tests for these' id '6ac64f4c-3d4b-4d29-bfab-8b181d8668b6' date '11/30/2012' time '10:59:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.311' message 'initial version of optional server session management; ZnMessage and subclasses now implement #server and #session implemented via dynamic & process local variables respectively; moved ZnHTTPSocketFacaded to deprecated; started new category Zinc-HTTP-Variables; extended some default server delegate responses, added ''session'' response with counter test' id 'aa1d7f79-a906-4a72-a1f6-675ed32982f6' date '11/11/2012' time '08:14:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.310' message 'bugfix: ZnManagingMultiThreadedServer was overwriting the wrong #stop method (thx Pavel Krivanek)' id 'a50aebff-8910-4553-95d7-b89a9e97a8f4' date '10/10/2012' time '10:48:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.309' message 'merged with 305 (thx paul)' id '3da1e6fc-76e0-4efa-8abe-7f334d9644bc' date '10/02/2012' time '06:59:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.308' message 'added ZnClient>>#setAcceptEncodingGzip as well as ZnClient>>#isNotModified' id '25811184-aeab-4d41-88f0-59277712dac0' date '09/30/2012' time '09:03:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.307' message 'Modified ZnServer class>>#startUp: to use a deferred startup action to start all registered servers; this should allow for normal error handling when something goes wrong initializing server sockets (thanks Igor Stasenko for the fix; thanks Denis Kudriashov for the error report)' id '9387492b-daa2-4ebf-a49d-44950586bda3' date '09/29/2012' time '09:00:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.306' message 'extended ZnResponse>>isRedirect with 303 and 307' id '26b8c486-2b3b-46be-942e-d6ac67f0ac62' date '09/27/2012' time '10:07:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MarcusDenker.305' message 'Issue 6697: Zn+Zdc Update 2012-09-19 http://code.google.com/p/pharo/issues/detail?id=6697 Issue 6699: Share binding of metaclass methods http://code.google.com/p/pharo/issues/detail?id=6699 ' id '04e33e2c-1223-4626-87fb-3f4d73052504' date '09/21/2012' time '01:50:10' author 'MarcusDenker' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Zinc-HTTP-SvenVanCaekenberghe.305' message 'added extra guards to prevent ZnClent options #beOneShot and #streaming: true to be used at the same time because that would result in the stream being closed too soon; added ZnMimeType class>>#imageSvg (thx Paul DeBruicker)' id '3e1c02b0-b966-4d0d-96fb-ab90e7c1dc44' date '09/27/2012' time '02:45:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.304' message 'Added option ZnServer class>>#alwaysRestart: to fine tune the shutDown/startUp behavior, defaults to previous behavior' id 'dc02fe1f-869b-49a9-a281-f297b576181e' date '09/18/2012' time '01:51:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.303' message 'Refactored ZnNetworkingUtils>>#socketStreamToUrlDirectly: to honor/use the correct timeout both when doing a DNS lookup as well as during connect by using NetNameResolver directly as well as using #openConnectionToHost:port:timeout' id '9f5a3863-fc08-470d-b8a1-d44169952a66' date '09/18/2012' time '10:03:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.302' message 'Added HTTPProgress signalling to ZnByteArrayEntity, ZnStringEntity as well as ZnUtils class>>#readUpToEnd:limit: Refactored streaming and HTTPProgress signalling in ZnUtils by addition of ZnUtils class>>#[streamingBufferSize|signalProgress:total:]' id 'd3e6d62a-ed00-40c7-aa9a-476111595f2f' date '09/17/2012' time '04:08:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.301' message 'Fixed a bug where HTTPProgress notifications would trigger a retry. Thanks Camillo Bruni for finding this problem and suggesting a solution. Now, retries are only triggered by (NetworkError, ZnParseError), while the #ifFailBlock will be trigger on any Error. Furthermore, #noteRetrying: and noteIgnoringExceptionOnReusedConnection: will report on the actual exception. The default #ifFailBlock is now [ :exception | exception pass ] for some cleaner code. ' id '85632c09-a6c4-40e9-b29b-1c5e86d07ead' date '09/17/2012' time '10:10:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.300' message 'removal of all classes in Zinc-HTTP-Deprecated - ZnClientOld - ZnFixedClient - ZnExtendedFixedClient - ZnUserAgent - ZnHttpClient - ZnUserAgentSettings as well as all their unit test classes' id 'a09fb75e-0ba5-489c-bc1b-435481a08164' date '09/05/2012' time '01:59:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.299' message 'changed maximumEntitySize concept from a normal class variable on ZnConstants to a dynamic/process-specific variable ZnMaximumEntitySize; added the option #maximumEntitySize to ZnServer' id 'f16b9f44-38a7-403e-9743-57fe2e25e800' date '09/05/2012' time '01:21:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.298' message 'introduction of options in ZnServer; refactored port, bindingAddress, delegate, authenticator and reader as options' id '9f5f3ab5-6fc9-43f3-9815-579cb01d954c' date '09/05/2012' time '11:24:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.297' message '#includesSubString: becomes #includesSubstring:' id '1b207b45-8524-4e16-b2c4-64337eadb784' date '08/27/2012' time '09:41:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.296' message 'added [ZnDefaultServerDelegate|ZnMonticelloServerDelegate]>>#value:' id '8f44e26a-2144-48ce-8e30-6239fcf3d50d' date '08/22/2012' time '03:00:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.295' message 'fixed type (wws should be wss); patched ZnNetworkingUtils>>#socketStreamToUrlDirectly: to treat wss as needing a #connect' id '233bcdca-806d-4bce-b09f-13ab7b81c9b0' date '08/22/2012' time '11:15:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.294' message 'extended ZnMultithreadedServer>>#executeRequestResponseLoopOn: with two new features related to the response objects generated by delegates: - the response object now also can answer whether or not it #wantsConnectionClose - after a response is written (flushed and logged), the response objects gets a chance to continue using the connection in the current thread/process for its own custom purposes through #useConnection: ' id 'c0e261d1-ad93-46e1-8b01-c5eedc7d32af' date '08/21/2012' time '01:29:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.293' message 'changed ZnSingleThreadedServer>>#serveConnectionOn: to no longer fork a worker thread/process as this is against the key idea of the class (this in not really active code, so this cleanup in more theoretical)' id '03d30d07-c250-483b-8525-91f709584ce7' date '08/20/2012' time '02:10:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.292' message 'fixed an offset bug in ZnUtils>>#streamFrom:to: (thx again, Chris Bailey)' id '932b7c3b-0892-48e0-a156-87cd9c4661cf' date '08/03/2012' time '10:49:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.291' message 'various fixes to ZnChunkedReadStream>>#readInto:startingAt:count: (thx Chris Bailey for reporting the problem); added ZdcALimitedReadStream>>#nextInto: as it is used by Fuel' id '3d8c50cd-2d7b-459f-89f3-b77a23dccfdd' date '08/02/2012' time '11:26:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.290' message 'added ZnUtils class>>#streamFrom:to: to copy one stream to another using a buffer without knowing the size upfront and thus using #atEnd; patched ZnStreamingEntity>>#writeOn: to use the new method when the content-length is nil or 0' id 'b7c44798-970d-4ab0-9da4-e73a095c91c3' date '07/20/2012' time '01:11:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.289' message 'allow for the schemes ws and wss to be equivalent to http and https' id '894699cd-a923-4fe0-b71c-6c629dde4f89' date '07/20/2012' time '10:33:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.288' message 'removed usage of OS version from ZnUserAgentSettings class>>#platformDetails' id '9811cc67-6a03-4c46-a67a-952727699d1c' date '07/16/2012' time '11:49:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.287' message 'Changed ZnStreamingEntity>>#readFrom: to no longer switch to non-binary - this was wrong anyway since no encoding was used' id '285ffb16-c7b3-4f82-9c19-7db828769d6e' date '07/13/2012' time '08:30:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.286' message 'trying to restore ancestry and some lost changes: merged Zinc-HTTP-SvenVanCaekenberghe.282 and Zinc-HTTP-SvenVanCaekenberghe.283' id '55810020-2df7-4b64-9872-4eccb8db92da' date '07/12/2012' time '10:12:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.285' message 'enabled HTTPProgress signalling during streaming up/downloads. introduction of ZnSignalProgress with #enabled method' id 'e992fd76-efde-4b31-b4b4-bd468f8176f2' date '07/12/2012' time '09:58:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.284' message 'bugfix related to Pharo 2.0 - changed ZnClient>>#dowloadEntityTo: to use ZnFileSystemUtils class>>#newFileNamed:do: instead of #fileNamed:do:' id 'e71138c5-9577-4315-bbb9-19101b1a44cb' date '07/12/2012' time '01:23:15' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())(name 'Zinc-HTTP-SvenVanCaekenberghe.282' message 'killed a (comment) reference to mac.com' id 'de6f7d59-22da-4612-937b-07111df60678' date '07/04/2012' time '05:56:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.281' message 'introduction of the Zinc-FileSystem-Legacy package (including the new ZnFileSystemUtils class) to deal with pre/post FIleSystem introduction in Pharo 2.0 - this is the old code' id '1fcf9d84-c2c3-4e70-b45a-6c68a381329d' date '07/03/2012' time '01:48:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.280' message 'clean up ZnClient option setter methods to return self for easy chaining (thx Sean DeNigris)' id '00d1da5e-18a2-4f96-afe7-c7f7d6fe0c6c' date '05/30/2012' time '22:14:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.279' message 'added ZnMimeType class>>#applicationPdf as a convenience accessor as well .pdf as recognized file extension' id 'd636e0ff-907e-4299-bf7f-4328840ba225' date '05/27/2012' time '06:50:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.278' message 'added multiline/continuation header line parsing to ZnHeaders; added some extra guards to ZnDigestAuthenticator class>>#parseAuthRequest' id '5c5f70f9-0f04-4941-a09a-cbf28ba154e4' date '05/22/2012' time '10:48:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.277' message 'simplified the example in the class comment of ZnDispatcherDelegate' id 'c4263c43-acf8-44b7-a3cb-6731e8d1a125' date '05/21/2012' time '10:02:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.276' message 'minor fix to ZnStaticFileServerDelegate' id '388a9cd6-b0b8-41ee-a24a-00aae254fa48' date '05/15/2012' time '13:15:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.275' message 'refactored ZnStaticFileServerDelegate a bit: - store expiration times as seconds in #defaultMimeTypeExpiration & #mimeTypeExpiration map - add not only Cache-Control but Expires header as well - removed unused #responseForFile: fixed a bug in ZnMessage>>#clearEntity (didn''t #close streaming entities with HEAD requests) ' id '94f2451b-b7e0-4d74-866b-d55b01c98ed9' date '05/14/2012' time '10:59:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-PaulDeBruicker.274' message 'Added handling for If-Modified-Since and Not-Modified headers to the ZnStaticFileServerDelegate' id '3f7f92c3-1ae8-4bd4-b4e2-5421cf49614a' date '05/12/2012' time '10:15:58' author 'PaulDeBruicker' ancestors ((name 'Zinc-HTTP-PaulDeBruicker.273' message 'Added the ability to set expiration headers when serving static files with the ZnStaticFileServerDelegate. Can probably adapt it to work when returning files from a WAFileLibrary if there isn''t already a mechanism for that. ' id '7684ed9a-80b2-47bb-a165-6e7ef40d555e' date '05/11/2012' time '03:26:02' author 'PaulDeBruicker' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.272' message 'updated ZnServer welcome page' id '1511b44d-a8f8-4a66-9ab7-0c5d3b0ca955' date '05/11/2012' time '15:22:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.271' message 'added ZnClient>>setIfModifiedSince: refactored #downloadTo: using #downloadEntityTo:' id 'deabc112-7505-4072-9116-16200a9ea513' date '05/10/2012' time '22:46:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.270' message 'merged ZnUtils class>>#parseHttpDate: improvements by Sean DeNigris' id 'eec865bb-4103-4a28-9e55-5d3c471f26c7' date '05/10/2012' time '20:30:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SeanDeNigris.269' message 'Fix the HTTP date parsing to comply with the HTTP/1.1 standard. See discussion at http://forum.world.st/Parsing-HTTP-dates-td4623688.html. Matching update to the tests (which all pass): Zinc-Tests-SeanDeNigris.140' id 'c7d98308-0259-4d69-a273-0572a06d9d0f' date '05/10/2012' time '12:25:56' author 'SeanDeNigris' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.268' message 'added ZnClient>>#uploadEntityFrom: and #contentType: as a convencience to easier do a direct PUT or POST of a file.' id 'e4dabff1-c4ef-4630-85d3-f00afbb516e7' date '05/09/2012' time '09:57:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.267' message 'first, not yet integrated versions of ZnCharacter[Read|Write]Stream; added iso-8859-15 to known encodings in ZnByteEncoder; added some optimizations to ZnNullEncoder' id 'e25c20c3-e14a-493d-88fa-7c9717455beb' date '05/03/2012' time '22:15:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.266' message 'added #match: and #contents to ZnChunkedReadStream and ZnLimitedReadStream; added some convenience methods to ZnCharacterEncoder: #encodeString: #decodeBytes: and #encodedByteCountForString:' id '72b9579d-c272-417f-8949-2e66714574ba' date '05/02/2012' time '16:43:52' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.265' message 'finalized switch from ZnClient>>#downloadToFileNamed: to ZnClient>>#downloadTo: which also accepts directories and creates a file there like wget or curl can (as suggested by Sean P. DeNigris). Roll back FileSystem usage for now.' id '618f4d2b-35ee-4c05-a495-e74b8a793399' date '04/26/2012' time '16:45:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.264' message 'fixed ZnClient>>#downloadTo: using old school FileDirectory/FileStream' id '4d6a0d40-0927-4b6b-9c98-a583922b58b2' date '04/26/2012' time '14:34:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.263' message 'added experimental ZnClient>>#downloadTo:' id '2d0dd4da-87a0-44d5-b4aa-410041e67897' date '04/26/2012' time '14:19:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.262' message 'added ZnClient>>#downloadToFileNamed: ' id '483455c8-f370-40e8-8848-036044211929' date '04/25/2012' time '21:19:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.261' message 'timezone offsets should be Durations' id '070fd646-c4ee-451c-94f4-bf67010ada05' date '04/23/2012' time '15:41:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.260' message 'updated ZnEasy comment' id 'af3c61c1-498c-430a-9136-ddaf1d5537fe' date '04/21/2012' time '11:13:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.259' message 'Zinc-HTTP-PaulDeBruicker.257' id '67dd4881-a30f-4051-b052-f07774efec8c' date '04/20/2012' time '10:27:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.258' message 'merging forgotten 255 & 256 into 257' id '0c026aa8-59d1-42db-a714-8079feca26d3' date '04/16/2012' time '06:25:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.257' message 'minor allocation improvement to ZnStringEntity>>#readLimitedFrom:' id 'bc3d146e-dca8-4245-be9c-25f3fb76c1cb' date '04/15/2012' time '19:23:24' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())(name 'Zinc-HTTP-PaulDeBruicker.257' message ' Added ZnResponse>>#isError which checks if the ZnStatusLine code is >399. ' id '63eca7f3-2b5b-4112-b91e-b76ddcf0453c' date '04/19/2012' time '05:05:46' author 'PaulDeBruicker' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.256' message 'renamed ZnServer>>#interface[:] to ZnServer>>#bindingAddress[:] following a suggestion by Norbert Hartl, Thx!' id 'a3d6638c-d5c4-4c20-a6c1-566e00b752fb' date '04/13/2012' time '13:20:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.255' message 'added technology to allow entities to be read binary even when they are textual, thus disabling Zn''s normal decoding behavior; this is what Seaside expects (as Seaside does its own conversions); added ZnEntityReader>>#[is]Binary; added ZnMessage[class]>>#readBinaryFrom: added ZnEntity class>>#readBinaryFrom:usingType:andLength: added ZnSingleThreadedServer>>#reader[:] to allow customizing entity reading' id 'e0d6d894-7fbb-41dd-8376-f87e4ca9da32' date '04/07/2012' time '18:29:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.254' message 'ZnBivalentWriteStream has to forward #flush to its wrapped stream' id '3b82b4f5-a0ed-44b4-bcd1-a5ec129d9d42' date '04/04/2012' time '16:08:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.253' message 'modified the implementation of ZnUtils class>>#streamFrom:to:size: to use a larger buffer when necessary and to flush the output stream each time through the loop except for the last one (this is need because we use SocketStream with autoflush false and this results in internal buffer overflow on very large writes).' id '183dc82c-6011-45b4-8a56-2c8415d381fe' date '04/04/2012' time '13:46:20' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.252' message 'changed ZnDefaultServerDelegate>>generateDWBench to use a date/time timestamp with a constant space representation ' id '94aee4dc-7124-485c-a70d-2d8f2831b35f' date '03/18/2012' time '19:23:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.251' message 'added ZnServer>>#localUrl ' id 'c56ae9d6-6fb1-481c-94fe-fc9ee8fa59b9' date '03/12/2012' time '22:23:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.250' message 'added the option to restrict ZnServers to only listen on a specific interface; added Zn[SingleThreaded]Server>>interface[:]; added ZnNetworkingUtils [class]>>#serverSocketOn:interface' id '5097d852-2887-45ca-9f2f-5dc50ffc95f4' date '03/12/2012' time '19:50:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.249' message 'added some extra API to ZnMimeType to manipulate parameters and charSets' id '209986ca-144b-46d7-8449-f34b0e9c1864' date '03/06/2012' time '11:10:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.248' message 'Switched ZnServer class>>#defaultServerClass to ZnManagingMultiThreadedServer; Add ZnStandardOutputLogger and ZnSingleThreadedServer>>#logToStandardOutput' id 'aaab5645-ed48-4174-bdb5-53037fb297db' date '03/04/2012' time '20:25:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.247' message 'changed usage of #deprecated: to #deprecated:on:in:' id '5ae403b7-a4cb-4ca9-a49a-0e71b6bd036a' date '03/04/2012' time '10:35:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.246' message 'extended ZnDefaultServerDelegate>>#generateStatus' id 'e1714401-1e45-4d67-97cd-7b735be277a2' date '03/01/2012' time '13:58:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.245' message 'fixed a bug related to sending multiple cookies; fixed a bug related to receiving and sending cookies during redirects; thank you Sean DeNigris; ZnClient>>#prepareRedirect now receives and sends cookies; ZnClient>>#sendCookies now uses a single Set-Cookie header containing multiple cookies instead of multiple Set-Cookie headers; added ZnClient>>#resetCookies; extended ZnClient logging with #debug printing of headers and processed cookies; minor changes to ZnClient internal state variable' id '35bf1aac-cf81-479a-8683-8ad057b7566a' date '02/29/2012' time '20:10:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.244' message 'refactored/extended ZnRequest with authorization and basic authentication access' id 'b2397b7f-ec54-4461-999d-90bfa1fd517a' date '02/23/2012' time '22:17:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MarcusDenker.243' message 'Issue 5299: Yet another Zn update http://code.google.com/p/pharo/issues/detail?id=5299' id '583fa1ec-e230-4a83-8a67-12cb734c2bdb' date '02/17/2012' time '15:13:00' author 'MarcusDenker' ancestors ((name 'Zinc-HTTP-StephaneDucasse.236' message '- Issue 5149: add line in comment of VirtualMachine class>>parameterAt:. ThanksLuc Fabresse and Mariano Martinez-Peck. http://code.google.com/p/pharo/issues/detail?id=5149 - Issue 5132: CommentReference SourcedMethodReference MethodReference are now deprecated http://code.google.com/p/pharo/issues/detail?id=5132 - Issue 2560: Convenient methods from Grease for Strings. Thanks Sven van Caekenberghe. Part one. http://code.google.com/p/pharo/issues/detail?id=2560' id 'f47fd8ea-3884-4572-9af9-d9f6eb4457c9' date '01/09/2012' time '17:23:41' author 'StephaneDucasse' ancestors ((name 'Zinc-HTTP-StephaneDucasse.235' message '- Issue 5157: Finder > Class > right-click > Hierarchy opens not on Class but on FinderClassNode. Tx Benjamin van Ryseghem. http://code.google.com/p/pharo/issues/detail?id=5157 - Issue 5151: Recategorization of PanelMorph. Thanks Benjamin van Ryseghem. There is no useless cleans. Even small steps are cool and important. http://code.google.com/p/pharo/issues/detail?id=5151 - Issue 5154: It would be great to have a setting to allow the Debugger to open centered and be 3/4 of screen. Thanks Alain Plantec. http://code.google.com/p/pharo/issues/detail?id=5154 - Issue 5148: LimitNumberOfEntriesInZnMultiValueDictionary. Thanks Sven van Caekenberghe. http://code.google.com/p/pharo/issues/detail?id=5148 ' id 'c1c64007-e1ae-4347-b059-eb64071c1845' date '01/07/2012' time '19:13:20' author 'StephaneDucasse' ancestors ((name 'Zinc-HTTP-ZincUpdate.234' message '- Issue 5127: Zinc update http://code.google.com/p/pharo/issues/detail?id=5127 - last bit of Issue 4688: progress bar disappears on image save http://code.google.com/p/pharo/issues/detail?id=4688' id '96fb41c6-6187-4572-82d5-88acaff58417' date '12/25/2011' time '23:01:50' author 'ZincUpdate' ancestors ((name 'Zinc-HTTP-StephaneDucasse.233' message '- Issue 5117: MNU: Transcripter class>>open. Thanks vpnbecmann. http://code.google.com/p/pharo/issues/detail?id=5117 - Issue 5122: ZnUpdate-Dec-20. Thanks sven van caekenberghe. http://code.google.com/p/pharo/issues/detail?id=5120' id '49c87187-0e9e-41aa-a78d-f2eeba91da2f' date '12/25/2011' time '11:47:49' author 'StephaneDucasse' ancestors ((name 'Zinc-HTTP-MarcusDenker.227' message 'Issue 5063: Zinc uses default encoding of utf-8 when encoding url safe encoded strings http://code.google.com/p/pharo/issues/detail?id=5063' id '3a35f66b-1807-4525-be31-56999a7ec249' date '12/09/2011' time '13:17:57' author 'MarcusDenker' ancestors ((name 'Zinc-HTTP-MarcusDenker.224' message 'Issue 5048: Move Transcript to Tools Package http://code.google.com/p/pharo/issues/detail?id=5048 Issue 5047: Stream should not print its contents in printOn: http://code.google.com/p/pharo/issues/detail?id=5047 Issue 5053: ZnChunkedReadStream doesNotUnderstand: #next:into: http://code.google.com/p/pharo/issues/detail?id=5053' id '545d1d37-4bce-4a96-a438-cc7ad16618f9' date '12/04/2011' time '13:38:23' author 'MarcusDenker' ancestors ((name 'Zinc-HTTP-MarcusDenker.222' message 'Issue 4998: ContextPart>>#runUntilErrorOrReturnFrom: (for testing) http://code.google.com/p/pharo/issues/detail?id=4998 Issue 4994: Two failing test in ProcessTest http://code.google.com/p/pharo/issues/detail?id=4994 Issue 5014: zn updates http://code.google.com/p/pharo/issues/detail?id=5014' id '0eaf0a8a-f842-4a22-83d9-b1c65bf2b853' date '11/25/2011' time '16:03:18' author 'MarcusDenker' ancestors ((name 'Zinc-HTTP-StephaneDucasse.221' message ' Issue 4903: New version of Zinc http://code.google.com/p/pharo/issues/detail?id=4903' id '37c68635-515f-43fb-8665-9d7674c0aee3' date '11/18/2011' time '15:18:42' author 'StephaneDucasse' ancestors () stepChildren ())(name 'Zinc-HTTP-SvenVanCaekenberghe.215' message 'modified ZnNeoClient>>#contents to return the stream when streaming is requested (more specifically: do not call #contents on the ZnStreamingEntity by default as this would defeat the whole idea of streaming; note that when there is a #contentReader it should do the right thing)' id 'c94ae1c2-5cc3-4ce6-9f04-28155f6834c9' date '10/26/2011' time '14:45:52' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.214' message 'moved deprecated classes to category Zinc-HTTP-Deprecated, noted deprecation in class comments' id '248c4eaf-ca0f-4584-99f4-d399438fd2ed' date '10/04/2011' time '19:11:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.213' message 'small fix to ZnUrl>>#inContextOf: (don''t take over the port when the scheme''s differ)' id '54792b4f-3ff6-479d-950f-91fb8052c960' date '10/04/2011' time '16:07:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.212' message 'deprecated instance creation (#new) of ZnFixedClient (and ZnExtendedFixedClient) and ZnUserAgent (and ZnHttpClient)' id '4fa83eba-2814-4b9c-8a71-5376eb1feaf5' date '10/04/2011' time '14:23:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.211' message 'added basic ZnNeoClient>>#signalProgress support' id '1f875569-9635-4039-bd9a-43b2ceb46400' date '10/04/2011' time '13:48:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.210' message 'added logging support to ZnNeoClient' id '6d7ff297-2967-413a-95d6-c0af0c0720d4' date '10/04/2011' time '12:53:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.209' message 'added some Pharo 1.2 compatibility (ZnMultiThreadedServer>>#exceptionSet:)' id 'b4d77e24-8821-4cac-b32d-f0f1412cf0f5' date '10/04/2011' time '09:57:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.208' message 'made ZnClient deprecations proceedable and added a test for this behavior' id '7990b131-582c-4c3b-8077-ef408ae802fb' date '10/03/2011' time '14:44:33' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.207' message 'added some logging to #closeDelegate' id '2900a3fc-3677-49d4-98c0-4b6b1ffe772b' date '09/27/2011' time '20:37:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.206' message 'added internal ZnNeoClient>>#resetRequestIfNeeded and ''state'' instance variable to try to properly reset after a first request is executed and a second one starts (the idea is to only keep using scheme/host/port and the connection)' id '9d23f62f-0d10-451a-ac95-ca8acd5b0780' date '09/23/2011' time '14:58:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.205' message 'modified ZnHeaders>>#contentLength to allow for the special case when there are multiple content-length headers, but only when they are identical; fixed some typos in ZnHTTPSocketFacade where some arguments where ignored (thx Olivier Auverlot for reporting this) ' id '135d43af-b715-45d4-bd28-85323f49999d' date '09/20/2011' time '13:58:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.204' message 'made ZnTooManyRedirects an Exception instead of an Error subclass so that it is resumable; fixed ZnNeoClient>>executeWithRedirectsRemaining: to allow for a resumed ZnTooManyRedirects exception' id '1183d199-1245-4e35-ac40-a0d52576deb3' date '09/19/2011' time '13:30:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.203' message 'added redirect support to ZnNeoClient (throws ZnTooManyRedirects when needed); reworked ZnEntity #entity: #resetEntity: to allow nil as argument (see ZnHeaders>>#acceptEntityDescription:) added #clearEntity as well' id '90d7081c-2bb7-4a94-b45c-58e28dadf242' date '09/19/2011' time '11:09:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.202' message 'added ZnNeoClient>>#setIfModifiedSince: and test' id 'f02072f8-e33a-429d-8e27-169372fbc7f6' date '09/17/2011' time '20:42:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.201' message 'added time limit to ZnNeoClient connection reuse; added ZnNeoClient>>#headerAddAll: and #queryAddAll:' id 'a5b92040-b404-4fca-951d-9d5253156cbb' date '09/17/2011' time '14:05:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.200' message 'added optional delegate #close-ing to ZnServer hierarchy' id '915cab3c-eddb-44f0-b38e-61a5e83185ff' date '09/16/2011' time '17:40:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.199' message 'patched ZnRequest>>#setBasicAuthenicationUsername:password: to allow nil arguments for clearing the Authorization header' id 'c8cce21a-86d4-4a8d-bd03-21ea97514ce1' date '09/16/2011' time '13:52:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.198' message 'introducing ZnEasy to take over the class side functionality of ZnClient; ZnClient class side protocol being deprecated' id '37a8ac41-bd8c-4d7d-9d8c-3ef5d0c2fc0a' date '09/15/2011' time '20:42:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.197' message 'Modifed ZnNeoClient>>#isContentTypeAcceptable to allways accept empty responses; Added ZnResponse>>#isCreated test' id 'efcd6b46-0332-4a34-8523-8470bcfa6764' date '09/14/2011' time '15:30:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.196' message 'added ZnUtils class>>#parseHttpDate: for use in ZnCookie>>#expiresTimeStamp' id '0f0b5286-c002-45f2-9ec6-9b21a7c8eb13' date '09/13/2011' time '11:51:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.195' message 'added extra guard to ZnLineReader>>#processNext for when #next returns nil' id 'cab4a65f-52f8-ce41-996c-a1c2a6b1bb95' date '09/12/2011' time '14:27:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.194' message 'added a nice example to ZnClient class>>#getPng: (Thx Lukas Renggli)' id 'f90ea18e-4d80-4d8d-aff1-ecb917f191ce' date '09/12/2011' time '09:32:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.193' message 'Changed ZnManagingMultiThreadedServer class comment' id '64e3aa90-0672-4f41-9093-6e5c97b16a79' date '09/06/2011' time '12:32:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.192' message 'pushed down the connection management functionality of ZnMultiThreadedServer to a new subclass called ZnManagingMultiThreadedServer' id '859098cb-28ff-453a-b8ec-dc41d10f7859' date '09/05/2011' time '14:24:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.191' message 'changed ZnMultiThreadServer''s lock and connections instance variable to be lazy initialized, removed the initialize code' id '9f394e71-7904-40bd-9551-03faf2f1be98' date '09/05/2011' time '12:06:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.190' message 'added a guard clause to ZnMultiThreadedServer>>#closeConnections so that nothing is done when there are no connections' id 'f7bdca17-3172-45cf-969d-531845cb9e35' date '09/05/2011' time '11:40:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.189' message 'Added some new internal functionality to ZnMultiThreadedServer: To keep track of all its open client connections (socket streams) (#socketStreamOn: and #closeSocketStream) so that they can all be force closed (#closeAllConnections) when the server stops (#stop). This is necessary because on image save the worker processes and socket streams are frozen and fail when they start up afterwards due to illegal socket handles. Note that #readRequestSafely: was extended and #writeResponseSafely:on: was introduced to handle several exceptions, most notably PrimitiveFailed, in the situation where a socket stream is force closed on a live process using that stream. This can be observed in #testTimeout. The timeouts on reading/writing socket streams take care of closing connections that are kept open too long. Maybe the server side timeouts should be even shorter to conserve resources. ' id 'b4f2d979-0097-4dc8-bde9-23edda15a3f9' date '09/04/2011' time '15:20:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.188' message 'some simplifications to ZnNeoClient removed some dead code from ZnUserAgent' id 'a81a6b6f-ad24-4c3f-aa91-120a404fa082' date '08/31/2011' time '22:06:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.187' message 'added basic cookie support to ZnNeoClient; refactored some cookie related code; ZnMessage subclasses ZnRequest and ZnResponse each implement #addCookie: and #cookies for different headers; removed ZnHeaders>>#cookies; replaced ZnCookie>>#asString with ZnCookie>>#nameValueString and ZnCookie>>#fullString; added ZnNeoClient>>#get: and friends as convenience protocol' id '13e276c0-e257-4004-ad61-2e2fc6b5d829' date '08/30/2011' time '22:53:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.186' message 'added contentReader/contentWriter options to ZnNeoClient to use in #contents and #contents: fixed general ZnNeoClient>>#execute result to be either #contents on success or the result of the #ifFailBlock on failure' id '09f5880c-8b8e-4de1-9cc2-0e3306c987a1' date '08/19/2011' time '17:27:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.185' message 'reimplemented ZnHTTPSocketFacade using ZnNeoClient' id 'c969791c-20ec-483d-b053-edc9c44c946b' date '08/19/2011' time '11:45:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.184' message 're-implemented ZnClient class side methods using ZnNeoClient; revised ZnConnectionTimeout handling to allow nesting/overriding by changing the default to nil (see ZnNeoClient>>#withTimeoutDo:); changed ZnUrl>>#authority to not return a default port; added basic authentication support to ZnNeoClient; added ZnNeoClient>>#entity[:]' id '2dea8f25-4226-476c-ad33-6108bad5183b' date '08/18/2011' time '23:11:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.183' message 'listening to the code critics (mostly formatting)' id 'a1062344-e54b-46b5-be1e-e12e39932a62' date '08/18/2011' time '14:50:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.182' message 'added empty ZnEntity>>#close added ZnStreamingEntity>>#close to close the underlying stream if any ZnMessage>>#resetEntity: now sends close to the enity being replaced if necessary added ZnResponse class>>#methodNotAllowed: ZnStaticFileServerDelegate now refuses not GET/HEAD requests ZnSingleThreadedServer>>#handleRequest: now does a #resetEntity: on HEAD requests implemented ZnNeoClient>>#head streamlined the responses of ZnNeoClient operations to return #contents, except for #head' id 'e9ce39cf-0dde-447a-af48-69d07048c9d1' date '08/18/2011' time '13:57:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.181' message 'added ZnMimeType wildcard constants #any and #text; added ZnHttpUnsuccessful and ZnUnexpectedContentType exceptions; extended ZnNeoClient with #ifFail:, #enforceHttpSuccess, #enforceAcceptContentType and retry behavior' id 'cfaa0963-4bb7-49d8-a3b1-f89527ee2bc2' date '08/17/2011' time '21:42:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.180' message 'added ZnMimePart class>>#fieldName:entity: and #fieldName:fileNamed: added ZnNeoClient timeout option, more url building api, support for applicationFormUrlEncoded and multiPartFormData encoded entities for post/put' id 'ea58662e-243e-4eff-ad90-7ac4ff58e9a3' date '08/17/2011' time '14:24:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.179' message 'added ZnUrl>>#inContextOf: extended ZnHeaders>>#request: to handle urls without a host added request url building to ZnNeoClient added oneShot option to ZnNeoClient' id '97d7e216-e0ff-4931-9dcf-498e2a938465' date '08/12/2011' time '13:52:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.178' message 'added code to throw a ZnMissingHost exception when a bogus ZnUrl is used to connect to a HTTP host' id '6b9c0a42-5a10-4b68-9c4c-efc33a7f52a4' date '08/11/2011' time '19:42:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.177' message 'added support for dealing with certain defaults in ZnUrl: - new ZnUrl class>>#fromString:defaultScheme: and ZnUrl>>#parseFrom:defaultScheme (while #readFrom: and #parseFrom: are still using nil as default scheme, like before) - new ZnUrl>>#asZnUrlWithDefaults (and private #setDefaults) - new ZnUrl>>#schemeOrDefault (along the lines of #portOrDefault) - improved support for parsing relative URLs' id '82463b1e-0ceb-494f-a9fd-ac7e043d1307' date '08/11/2011' time '15:29:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.176' message 'Merged Damien Pollet''s changes regarding the misspelling of ''Unknow[n]'' in exception class names (thx); First definition of ZnNeoClient; added support for better HTML Doc Types in some generated HTML pages of ZnDefaultServerDelegate' id '333bbc02-577c-44e3-9ef1-7489a5586f57' date '08/11/2011' time '10:33:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.175' message 'Changed ZnMimePart>>#fieldValueString to return an empty string instead of ''nil'' when the field is empty or absent (Thx Lukas Renggli)' id 'b95d0734-62d3-4de6-8a94-03816784d360' date '07/29/2011' time '14:23:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MarcusDenker.172' message 'Issue 4326: Connection timeout problem http://code.google.com/p/pharo/issues/detail?id=4326 Issue 4417: Zinc does not honour network proxy configuration http://code.google.com/p/pharo/issues/detail?id=4417 Issue 4428: New mechanism for Zinc servers start/stop handling after system startUp/shutDown http://code.google.com/p/pharo/issues/detail?id=4428' id '190ce930-79bf-4a7e-b0fa-60d1fbaecfe0' date '06/21/2011' time '16:08:49' author 'MarcusDenker' ancestors () stepChildren ())) stepChildren ())(name 'Zinc-HTTP-DamienPollet.175' message 'Fix typo in exception names.' id '82fd6138-b87e-4e81-93ff-4c874ff72e03' date '08/04/2011' time '14:22:04' author 'DamienPollet' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.174' message 'ZnDefaultServerDelegate>>#echoRequest: added option to delay the response to /echo with a specified number of seconds, as in echo?delay=60' id 'bec35859-b638-42c1-9689-3f1d7a540c8b' date '07/14/2011' time '09:54:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.173' message 'added ZnSingleThreadedServer>>#onRequestRespond: convenience method' id '75b3a711-a7ff-430d-a049-95a5dd1a1c3c' date '07/01/2011' time '14:17:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.172' message 'implemented client side support for If-Modified-Since and Not Modified: - added ZnRequest>>#setIfModifiedSince: - refactored ZnMessage>>#readFrom to call #readEntityFrom: - overwritten ZnResponse>>#readEntityFrom: to take special no content response into account - extended ZnUtils class>>#httpDate: to accept any argument that understands #asTimeStamp ' id '64fe262e-fd77-4b45-8f6a-f874995d07ec' date '06/28/2011' time '11:05:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.171' message 'removed some bogus class variable from ZnConnectionTimeout' id '11c76430-7cc0-4885-b4a0-709f3fbf4f57' date '06/20/2011' time '14:50:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.170' message 'fixed undeclared in ZnNetworkingUtils class>>#initialize (SocketStreamTimeout was renamed to DefaultSocketStreamTimeout)' id '15682e90-31ca-40e3-b26f-a4df4aab8814' date '06/19/2011' time '16:38:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.169' message 'implementation of a new mechanism for system #startUp/#shutDown handling by ZnServer(s): ZnServer holds a class variable ManagedServers, clients can #register/#unregister to receive #start/#stop when the system #startUp/#shutDown is sent; currently only the default server (of which there is only one instance per ZnServer subclass) is automatically registered/unregistered in #defaultOn: and #stopDefault, other instances must do this explicitely themselves ' id 'ebc443eb-7ce9-488c-92cb-05a67179c4f4' date '06/19/2011' time '14:21:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.168' message 'introduction of ZnConnectionTimeout which is used by ZnNetworkingUtils class>>#socketStreamTimeout and defaults to ZnNetworkingUtils class>>#defaultSocketStreamTimeout Now you can do ZnConnectionTimeout value: 60 seconds during: [ ZnClient get: ''http://slowhost.com/foo'' ]' id 'dbe15895-070d-4a2f-8d62-dd40c5ba028a' date '06/18/2011' time '23:12:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.167' message 'merged' id 'cb16cb7a-5fac-494d-ab2a-97d4261f04ae' date '06/17/2011' time '15:51:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.165' message 'modified #on: Error do: to #on: Exception do:' id 'ccb2d275-7dd3-44f4-ace4-12fc2217f9a3' date '06/17/2011' time '15:46:54' author 'SvenVanCaekenberghe' ancestors () stepChildren ())(name 'Zinc-HTTP-MarcoSchmidt.166' message 'Patch to work behind firewall with basic authorization' id 'acb7f2fc-d621-5d4b-983f-25d217623f11' date '06/17/2011' time '15:31:11' author 'MarcoSchmidt' ancestors ((name 'Zinc-HTTP-MarcoSchmidt.165' message 'Corrected wrong method send in NetworkUtils' id '4290066c-4367-794e-bb95-c058f1a268a0' date '06/17/2011' time '15:26:54' author 'MarcoSchmidt' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.164' message 'implemented support for proxies that require authorization; ZnHeaders class>>#requestHeadersFor: will add a Proxy-Authorization header when needed; added public API ZnNetworkingUtils class>>#proxyAuthorizationHeaderValueToUrl: removed public API ZnNetworkingUtils class>>#httpProxy and #isProxySet; upgraded public API ZnNetworkingUtils class>>#shouldProxyUrl: to be a primary interface; refactored internals of ZnNetworkUtils to use NetworkSystemSettings directly instead of HTTPSocket; this code still has to be tested and validated with real world proxies ' id '90d57d3d-fc41-4548-a2fd-dcd7c22a3a1f' date '06/17/2011' time '09:16:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.163' message 'taking over a patch from Pharo (http://code.google.com/p/pharo/issues/detail?id=4326): adding SocketStreamTimeout as class variable to ZnNetworkingUtils to make this ''constant'' settable; the new default is now 30 seconds' id '3622d15d-b15a-4398-a9e6-0027e600a78a' date '06/09/2011' time '21:14:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.162' message 'extended ZnStringEntity>>#readUpToEndFrom: to deal with the weird SocketStream>>#atEnd issue by added an extra #peek; added ZnChunkedReadStream>>#peek; added chunk buffer reuse to ZnChunkedReadStream' id '0205b561-44a9-4434-b40b-976b5d9a65a6' date '05/19/2011' time '12:57:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.161' message 'a small change to improve Squeak compatibility' id '018ccd1d-2321-4dcb-b468-722a42b9d605' date '05/17/2011' time '21:34:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.160' message 'fixing support for HTTP proxies (thanks Alexandre Bergel for reporting this) requests to localhost are excluding from being proxied - ZnRequestLine>>#writeOn: now outputs absolute URLs when proxying - added ZnNetWorkingUtils class #isProxySet #shouldProxyUrl: and #httpProxy - added ZnUrl>>#isLocalHost - changed ZnUrl>>#host: to lowerCase its argument ' id '619a8697-4d71-4c1c-a99e-fe5e07f3dbb4' date '05/13/2011' time '11:07:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-NickAger.159' message 'minor refactoring to ZnDispatcherDelegate to use: ZnStatusLine ok rather than: ZnStatusLine code: 200 ' id 'e5ab93a6-b254-4ba2-bbd9-41ecf500f584' date '05/10/2011' time '15:53:33' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.158' message 'refactored cookie support: ZnResponse>>#setCookie: has been renamed to ZnResponse>>#addCookie: ZnResponse>>#setCookies: has been removed ZnHeaders>>#cookies now returns a dictionary rather than a ZnCookieJar ZnCookieJar>>#cookieAt: a helper method I added, I''ve removed. The tests have been updated as required.' id '75f5dd45-9dcf-4491-a28c-4f8cbe8e784a' date '05/10/2011' time '11:39:41' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.157' message 'added ZnStatusLine creation constants and refactored ZnResponse to use the constants' id '3fa86243-d119-4ab5-b87d-3c8622aa9257' date '05/10/2011' time '09:13:37' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.156' message 'created ZnResponse>>#setCookie: and refactored ZnResponse>>#setCookies: to use #setCookie:' id 'ac85f148-5de7-4b04-8a81-d8e7222e1f78' date '05/10/2011' time '08:37:25' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.155' message 'added: Request cookie accessor Response cookie setter' id '41a8f7a2-dbda-45bd-a831-03b7c0d6ca37' date '05/10/2011' time '02:52:47' author 'NickAger' ancestors ((name 'Zinc-HTTP-NickAger.154' message 'added ZnDispatcherDelegate for straight-forward dispatching to mapped urls. Modelled after Ruby''s WEBrick API: server = WEBrick::HTTPServer.new(:Port => 2000) server.mount_proc("/heresy"){|req, res| Application.new.handle(req, res)} server.mount_proc("/favicon.ico"){|req,res| res.status = 404} ZnDispatcherDelegate API: server := (ZnServer startDefaultOn: 9090) delegate: (ZnDispatcherDelegate new map: ''/hello'' to: [ :request :response | response entity: (ZnStringEntity html: ''

hello server

'') ]; map: ''/counter'' to: [ :request :response | counterApplication handleRequest: request response: response ]).' id '87d63347-b4ab-4c50-86a4-8d7d89d24e32' date '05/09/2011' time '21:44:58' author 'NickAger' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.153' message 'made ZnNetworkingUtils>>#socketStreamToHostNamed:port: private' id '44a98753-fe58-40bc-8a88-5887c0872212' date '05/09/2011' time '13:32:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.152' message 'extended ZnFixedClient with a scheme instance variable, adjusted the instance creation protocol, added a #baseUrl accessor for use in #newConnection; added ZnUrl class>>#defaultPortForScheme:; removed ZnNetworkingUtils class>>#socketStreamToHostNamed: to simplify the socket [stream] factory API' id '69fc77af-dddd-44c5-9119-11f9db4f85db' date '05/09/2011' time '10:23:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.151' message 'conversion of ZnNetworkingUtils into an instance socket[stream] factory and a class side API' id '6c95ba6b-65ec-47cb-b6dc-284fd95f3832' date '05/02/2011' time '22:46:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.150' message 'fixing a problem where responses without an explicit content-length but with an entity where not read as they should (thanks Esteban Lorenzano & Andy Burnett for reporting this): - ZnResponse>>#entityReaderOn: now extends the super entityReader with the #allowReadingUpToEnd option - ZnEntityReader>>#entityReader now swallows entities when they are #isEmpty (making them nil) - ZnStringEntity>>#readFrom: is split between #readLimitedFrom: and #readUpToEndFrom: where the last method has extra error handling to swallow ConnectionClosed exceptions (similar to what SocketStream>>#upToEnd does) - the ZnEntity hierarchy now implements #isEmpty' id '8fe0b470-7728-454d-bc90-fa42d8330817' date '05/01/2011' time '19:19:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.149' message 'rewrote ZnHTTPSocketFacade class>>#entendURL:withArguments: to be compatible with HTTPSocket class>>#argString: (Thanks Esteban Lorenzano)' id '3a49e678-fa7b-4c30-bdc6-0944c7637e7f' date '04/30/2011' time '20:55:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.148' message 'extended ZnDefaultServerDelegate with a configurable response to / (in the prefixMap the key ''/'' maps to another key that is used instead as prefix for another lookup)' id '309679c5-4d24-4741-b067-2adc9cc8f6c6' date '04/28/2011' time '22:27:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.147' message 'changed ZnServer class>>#initialize not to do a Smalltalk #addToStartUpList:after: but just use the plain #addToStartUpList: (we only depend on networking and multi-processing but those will probably be OK)' id 'b2b69990-95ff-40bc-9ff0-6cb11dc96a24' date '04/27/2011' time '19:42:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.146' message 'skipping over lost version: .145 fixed ZnUtils class>>#encodeBase64: to test whether Base64MimeConverter responds to #mimeEncode:multiLine:, fall back to #mimeEncode: and manually remove Character cr occurences; this should fix Pharo 1.1.1 compatibility (Thanks Esteban Lorenzano for reporting this) .144 added option to extend ZnDefaultServerDelegate''s prefixMap with block (taking request as argument, returning response); changed default welcome text to include reference to /help .143 added ZnUrl>>#postCopy; refactored ZnStaticFileServerDelegate and added the option to redirect for directories without an ending slash ' id '57e6d630-1045-413b-8938-1259024175f9' date '04/27/2011' time '16:22:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.145' message 'fixed ZnUtils class>>#encodeBase64: to test whether Base64MimeConverter responds to #mimeEncode:multiLine:, fall back to #mimeEncode: and manually remove Character cr occurences; this should fix Pharo 1.1.1 compatibility (Thanks Esteban Lorenzano for reporting this) ' id 'f9f0831d-5ffa-4a5c-a8ec-b276c9babc35' date '04/26/2011' time '19:01:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.144' message 'added option to extend ZnDefaultServerDelegate''s prefixMap with block (taking request as argument, returning response); changed default welcome text to include reference to /help' id '439b923a-997e-4f51-9b7d-90896f8dd97f' date '04/26/2011' time '13:44:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.143' message 'added ZnUrl>>#postCopy; refactored ZnStaticFileServerDelegate and added the option to redirect for directories without an ending slash' id '08a56e5b-3270-4231-9568-4e5beffb58ae' date '04/26/2011' time '13:24:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.142' message 'listening to the Code Critics' id 'c78b1867-b800-4b03-805a-004df5aa7556' date '04/20/2011' time '12:47:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.141' message 'small fix to ZnUrl>>#printPathOn: to deal with cases where forward slashes are encoded in URLs (Thanks, Jan van de Sandt for pointing this out); added ZnUrlTests>>#testEncodedSlash to cover these cases' id '88ca6bf6-ce11-447f-8a1d-be9c67e7db71' date '04/17/2011' time '10:33:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-PaulDeBruicker.140' message 'changed ByteArray declarations in ZnConstants>>#faviconBytes and ZnMultiPartFormDataEntity>>#parse:boundary: from square brackes to #() asByteArray so that the code loads with no problems into Pharo and Gemstone' id '9ac457ad-7824-4c0c-8d5d-e7ebe36f0280' date '04/10/2011' time '12:03:38' author 'PaulDeBruicker' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.139' message 'added ZnDefaultServerDelegate /help & /status; updated framework version from 0.1 to 1.0 ;-)' id 'f960a4c5-2462-4cfb-81a9-9ee740d2e294' date '03/31/2011' time '10:17:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.138' message 'increased ZnSingleThreadedServer>>#acceptWaitTimeout from 60 to 300 seconds; added some infrastructure to use this looping for future periodic tasks' id '5ba796b1-d698-4595-8a48-1500029cc52e' date '03/30/2011' time '21:25:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.137' message 'added new logging framework in Zinc-HTTP-Logging, consisting of ZnLogEvent (an Announcment), ZnLogSupport and ZnLogListener and subclasses ZnTranscriptLogger, ZnMemoryLogger and ZnFileLogger; now using the new logging facilities in Zn[Single|Multi]ThreadedServer, ZnFixedClient and ZnUserAgent; introduced new subclass of ZnFixedClient, ZnExtendedFixedClient that adds various hooks for customization ' id 'bb85953b-e489-472d-997b-27e28941c052' date '03/29/2011' time '16:49:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.136' message 'added postProcessHook to ZnFixedClient; extended ZnFixedClient reuse logic so that it is limited to a maximum keep alive time (of 5s) so as not to bother running into an error anyway.' id '85d852c0-b357-42ca-95da-0ebaec1c78ad' date '03/28/2011' time '16:24:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.135' message 'added preProcessHook & newConnectionHook to ZnFixedClient' id '3bc47cd7-fae8-4e62-a80d-5d991de3c137' date '03/28/2011' time '14:24:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.134' message 'some Socket[Stream] options/parameters tweaking: - server socket listen backlog increased from 10 to 32 - socket buffer size decreased from 8192 to 4096 (these were refused anyway) - client socket streams now get the same treatment (#setSocketStreamParameters:) as accepted server socket streams (i.e. setting timeout to 10s and buffersize) ' id 'ee477f07-3703-4504-b62a-9e9905aec294' date '03/24/2011' time '11:01:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.133' message 'bugfix: it turns out that String>>#base64Encoded introduces newlines which we definitively do not want when doing Basic HTTP Encoding for example; introduced ZnUtils class>>#encodeBase64: to do the right thing and invoke Base64MimeConvertor with the #mimeEncode: multiLine: false; replaced all usages (added a #decodeBase64: for orthogonality); added a unit test to catch this ' id '8c6bc0e9-09b3-4b38-84dc-90b76ad30c94' date '03/21/2011' time '20:49:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.132' message 'added ZnResponse>>#isNotModified' id '9d915967-5593-4909-ad83-8ba8577f6cd7' date '03/21/2011' time '10:46:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.131' message 'introduced ZnUnknownScheme exception' id 'd4ee20cf-2166-4a40-98ee-3f89c21e4d2e' date '03/18/2011' time '13:31:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.130' message 'new categories: Zinc-HTTP-Exceptions and Zinc-HTTP-Streaming; added ZnParseError hiearchy to better handle illegal input; fixed a bug in dealing with percent encoding in ZnUrl paths; ZnMultiThreadedServer>>readRequestSafely: now closes on ZnParseErrors in the input' id 'ec9629aa-9c2a-45d2-aa2c-4988ab48b239' date '02/28/2011' time '15:59:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.129' message 'added ZnMultiPartFormDataEntity>>#partsDo:' id '5e8a1d68-ab52-4b98-80f5-4a75aa724b4f' date '02/27/2011' time '20:27:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.128' message 'added some extra allowed HTTP methods' id '5df00c70-8ce3-45a2-8991-770dcb04c480' date '02/24/2011' time '09:12:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.127' message 'implemented ZnLimitedReadStream>>#next:into:' id 'b99b13a8-0959-4e1e-a501-cf9ed2334d70' date '02/21/2011' time '23:32:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.126' message 'implemented ZnHTTPSocketFacade class>>#httpPostMultipart:args:accept:request: added ZnHTTPSocketFacade class>>#constructMultiPartFormDataEntity:' id 'fbc9bd8a-55fc-4bef-99b4-cd54bd89b0cf' date '02/07/2011' time '09:37:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.125' message 'added ZnResponse>>#serverError:' id 'f17a0fb7-5e9a-4188-885c-553e3a372d25' date '02/04/2011' time '23:03:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.124' message 'fixed a typo in the ZnMimePart instance creation methods (formdata should be form-data) (thx Cédrick Béler)' id 'af6dbddc-b5d8-482a-b2ef-4071fcbba787' date '01/31/2011' time '20:16:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.123' message 'added ZnUrl>>#queryDo: ZnApplicationForUrlEncodedEntity>>#fieldsDo: added ZnMessage>>#resetEntity: to allow overwriting content type and length when these are already set' id 'dffdb499-d272-4fca-9991-ad5c3ebdaad9' date '01/31/2011' time '13:58:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.122' message 'added proper content length computation to ZnMultiPartFormDataEntity (bugfix); some code cleanup to ZnEntity content length computation' id 'faea419a-c94d-4f44-b0ae-067b635f1c4e' date '01/27/2011' time '17:17:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.121' message 'added #textJavascript as a constant to ZnMimeType; added ZnByteEncoder to handle single byte encodings that do not map directly to the lower Unicode section (for example Latin2, ISO-8859-2) by reusing the mapping tables from ByteTextConverter; added #handlesEncoding: and #newForEncoding: protocol to class side of ZnCharacterEncoding hierarchy' id 'c040db5f-1548-45bb-9f9d-757b78a67d70' date '01/25/2011' time '13:48:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.120' message 'fixed ZnUserAgent>>#redirectUrl so that relative redirect urls are made absolute in reference to the (previous) request''s url instead of self url; changed ZnHttpClient>>#get and #head not to reference url as an inst var' id '4bf543a0-c919-4508-8703-d0a272e32691' date '01/20/2011' time '21:20:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.119' message 'fix ZnUserAgent>>#openConnection to honor its ZnUserAgentSettings>>#timeout' id '69b705b0-6b68-46f9-8ed0-ba43fe195768' date '01/20/2011' time '19:40:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.118' message 'Updated class comments' id 'acea0a40-8a21-4257-8191-72f399e4a2a4' date '01/18/2011' time '11:05:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.117' message 'more fixes to ZnUserAgent redirect following behavior: rewrote logic' id '39d2e9eb-9bdb-4ee4-8ca8-68c812abb3b7' date '01/14/2011' time '22:03:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.116' message 'changed the redirect behavior for POST/PUT requests: the common practice is to turn these into GET request, see ZnUserAgent>>#method:for:headers:data:imit: and ZnUserAgent>>#prepareRedirect:' id 'a102bbdc-8185-41b0-afa2-4d0af8f2557a' date '01/13/2011' time '13:39:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.115' message 'added an extra guard to ZnFixedClient>>#fixedUrl: when host is nil (thx, Cédrick Béler)' id 'ac2bcf63-4c24-4c6a-b696-2b8dff2eae4b' date '01/12/2011' time '16:15:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.114' message 'ZnUserAgent (and ZnClient) now can follow relative redirect locations; introduced ZnMultiValueDictionary to allow multiple values to be stored under one key as an array; using ZnMultiValueDictionary for queries and headers; ZnUrl now uses ZnUtils>>parseQueryFrom: again; various simplifications and cleanups which might help when reading the code in ZnUserAgent (and ZnClient); ZnUserAgent (and ZnClient) now handle parameter encoding differently ' id 'e1a49d00-d9f0-4800-8cd7-cb354e86d671' date '01/12/2011' time '14:03:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.113' message 'promoted ZnFixedClient>>#fixedUrl: and ZnClient>>#executeRequest: to public status (and added comments); changed ZnFixedClient>>#fixedUrl: to accept ZnUrl objects as well for more flexibility (allowing users to add query/fragment URL elements in addition to the path) ' id 'c3b62aa9-da90-4478-9ab3-ba2670411cb3' date '01/08/2011' time '20:36:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.112' message 'split of ZnNetworkingUtils from ZnUtils to separate related functionality (Thx S.Ducasses)' id '845f67f8-df1c-40cf-a644-4699f50bc3bb' date '01/07/2011' time '19:52:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.111' message 'fixed ZnClient class>>#getImageOfType:usingParser:fromUrl: to correctly report responses with unexpected mime types (Thx S.Ducasses) ' id 'd633bf09-4617-4e34-b6c7-0260dc759817' date '01/07/2011' time '19:35:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.110' message 'added ZnUrl>>#queryAddAll:' id 'ae2dbf13-b27d-4e45-ae66-24ee8687bb3a' date '01/05/2011' time '21:07:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.109' message 'added application/xml as a predefined constant to ZnMimeType' id 'eb18136d-284f-4501-81e3-8c18a0b0e503' date '01/05/2011' time '13:53:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.108' message 'various changes to reduce the (Lint) warning count' id 'e455691d-fadb-4303-a83f-680be600e875' date '01/04/2011' time '21:15:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.107' message 'introduced #asZnMimeType on ZnMimeType, MIMEType & String to replace ZnUtils class>>#asMimeType: which was removed' id '6008c428-e4d3-4767-9622-879979d4a9f9' date '01/04/2011' time '20:04:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.106' message 'more cleanup added ZnBivalentWriteStream>>next:putAll:startingAt: fixed ZnStaticFileServerDelegate example' id '2e02dc65-d058-4d72-94ff-309d005a7c16' date '01/04/2011' time '16:30:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.105' message 'removing unused extension methods' id '93d4f4d1-39de-40ca-9e38-6a8741df39c4' date '01/04/2011' time '16:11:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.104' message 'massive migration from builtin Url to ZnUrl; added asZnUrl to String and Url ' id '73cb3a10-8b68-4f91-96a4-80a4f8603695' date '01/04/2011' time '15:34:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.103' message 'first version of ZnUrl class' id '8e7d4ba7-f5d9-41e7-a489-e7bfa2804c8e' date '01/04/2011' time '12:22:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.102' message 'added an extra guard to ZnSingleThreadedServer>>#releaseServerSocket' id '8f40387c-7d98-4816-ad2b-35665b66b14b' date '12/19/2010' time '14:53:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.101' message 'added caching to ZnDefaultDelegate>>#bytes: to improve benchmarking performance: this make a huge difference (thx, Philippe Marschall); refactored ZnMultiThreadedServer>>#readRequestSafely: to use #, to concatenate exceptions into an exception set (how elegant) ' id 'ab05d220-caa7-4f39-9276-e71491ca9b78' date '12/19/2010' time '14:43:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.100' message 'added /bytes to ZnDefaultServerDelegate to measure the huge speed difference between binary and UTF-8 encoded data; added ZnServer>>#isListening' id '4c960061-613e-443b-82d6-268c144d5d52' date '12/15/2010' time '21:42:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.99' message 'refactored ZnServer hierarchy: - renamed old ZnServer to ZnSingleThreadedServer - renamed old ZnExperimentalServer to ZnMultiThreadedServer - added ZnServer as superclass and facade ZnServer class>>#defaultServerClass is now ZnMultiThreadedServer! ' id 'f1366cea-f241-4260-bd60-23b6747b537b' date '12/15/2010' time '15:56:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.98' message 'finally ''solved'' the ab (apachebench) concurrent load problem (ab -k does HTTP/1.0 with Connection:keep-alive and expects Connection:keep-alive back); added #isHttp10 and #isHttp11 to ZnRequest and ZnRequestLine; rewrote ZnMessage>>#isConnectionClose and #isConnectionKeepAlive; added ZnMessage>>#setConnectionKeepAlive; added ZnRequest>>#wantConnectionClose; added ZnResponse>>#setKeepAliveFor:; improved ZnServer logging with proper header (including PID); Zn[Experimental]Server>>#readRequest and #writeResponse:on: now do logging themselves #logRequest and logResponse now set lastRequest and lastResponse debugging instance variables ' id 'a463c5c8-a719-4d6e-b916-2b17116a8df0' date '12/14/2010' time '15:01:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.97' message 'revised #printOn: and helper methods of ZnMessage and ZnEntity hierarchy to support ZnServer>>#logRequest and #logResponse; fixed a bug in ZnStringEntity encoder initialization; extended ZnServer>>#acceptWaitTimeout to 60s; ' id 'f6ba0f3f-5b5a-4eb4-a54e-2c6c316ae95d' date '12/14/2010' time '12:23:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.96' message 'added #favicon: and #random: handlers to ZnDefaultServerDelegate' id '28d9458b-51e9-45e7-8ecf-3611b5039d2c' date '12/14/2010' time '10:54:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.95' message 'added #logger and #log: to Zn[Experimental]Server for extensive tracing' id '9a30d6f8-cd49-4ef4-8723-88d73ec297fe' date '12/14/2010' time '09:26:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.94' message 'made a number of socket related constants explicit in ZnUtils and ZnServer; ZnUtils class>>#socketStreamOn: now sets more options explicitely; improved process name in Zn[Experimental]Server; ZnDefaultServerDelegate>>#welcome: now replaces CR with LF in ZnConstants class>>#welcomePageHtml ' id 'b6740682-52d3-4cc6-af7a-8ce6f5a2dbfc' date '12/13/2010' time '17:02:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.93' message 'refactored ZnServer''s and ZnExperimentalServer''s #listenLoop and #serveConnection[s]On: with the introduction of #initializeServerSocket, #releaseServerSocket, #executeOneRequestResponseOn: and #executeRequestResponseLoopOn:' id '7308c60d-4aa0-4653-89eb-78c703dd047f' date '12/10/2010' time '16:17:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.92' message 'Simplified ZnServer by moving functionality to ZnDefaultServerDelegate, a new class handling echo, dw-bench, unicode and / welcome' id '3f058ee0-89a2-4999-bd25-f02bf68cf0ff' date '12/10/2010' time '15:54:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.91' message 'added ad improved ZnServer method comments' id '0a8191cc-e438-4345-bc9b-e42a11ef367e' date '12/10/2010' time '15:05:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.90' message 'added ZnBufferedWriteStream class>>#on:do: modeled after #fileNamed:do: a convenience method that makes sure #flush is a called' id 'b8d896bf-6688-41e0-8ca5-267326b29c2a' date '12/09/2010' time '18:26:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.89' message 'added ZnUtils>>#socketStreamToHostNamed:port: followed by some simplification and refactoring' id 'a00bab52-f57d-4d34-bc86-be0a4b2be3cc' date '12/08/2010' time '11:19:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.88' message 'added experimental ZnBufferWriteStream' id 'fd2dd63e-035b-4c72-a4d4-58933b890e13' date '12/08/2010' time '10:21:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.87' message 'added ZnValueDelegate that converts #handleRequest: to #value: on a wrapped object' id '34a705ac-c414-441f-a606-443e50f91449' date '12/07/2010' time '16:20:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.86' message 'some more comment improvements' id '6e89b08f-198b-4ccd-b334-801598105a9e' date '12/07/2010' time '15:23:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.85' message 'renamed ZnMagicCookie[Jar] to ZnCookie[Jar]' id '1885b80b-6dfc-4366-8f69-ba459de201ea' date '12/07/2010' time '00:02:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.84' message 'moved all classes from category ''Zinc-HTTP-New-*'' to ''Zinc-HTTP-*''' id 'fb5273fe-7cd7-4bf0-b4e4-a366bf735e65' date '12/06/2010' time '21:41:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.83' message 'removed all Zinc-HTTP-Old-* categorized classes from the Zinc-HTTP package (these will be moved to a new MC package called ''Zinc-Old'')' id '4123ffde-b6f7-4233-b9c8-ddfdac314c1f' date '12/06/2010' time '17:26:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.82' message 'removed #isBinary from ZnEntity (and subclasses) ''testing'' protocol' id '3b12b147-c0bb-447b-bac2-53d899b54703' date '12/06/2010' time '16:05:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.81' message 'ZnStringEntity>>#printContentsOn: now relies on #nextPutAll: instead of #print: to avoid quoting by String>>#storeOn:' id '83409534-1da5-4991-a7ba-eeed6de8b6c9' date '12/06/2010' time '15:16:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.80' message 'renamed class ZnNewStringEntity to ZnStringEntity' id 'ef1213ed-3501-4a47-b346-424edb8828c3' date '12/06/2010' time '13:50:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.79' message 'removed class ZnStringEntity' id '305134b7-e6f5-4930-b3ed-70ee5213bf01' date '12/06/2010' time '13:47:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.78' message 'ZnMessage>>#hasHeaders was wrong; ZnBivalentWriteStream class>>#on: will no longer instanciate a new wrapper if the wrapped stream is of its own type; went over all class comments and updated lots of them ' id '0ac22c19-d755-4abf-8271-701953203148' date '12/06/2010' time '13:12:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.77' message 'fixed ZnHTTPSocketFacade>>#httpPut:to:user:passwd: (apparently MC passed in a byte array instead of a string, luckily ZnEntity>>#with: can deal with this)' id '58c44c1f-02ea-40e3-a5bd-e54fcd38ffd3' date '12/04/2010' time '14:26:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.76' message 'large changeset: switch from ZnStringEntity to ZnNewStringEntity, now using binary socket streams on server, all with the goal of proper UTF-8 support; - ZnEntity and subclasses not do proper #printOn: using #printContentsOn: (this is used in ZnServer''s echo handler); - added ZnBivalentWriteStream>>#isBinary which caches the #isBinary property of the stream it wraps (added fallback when DNU #isBinary); - added ZnUtils>>#socketStreamOn: which is used by ZnServer>>#serveConnectionOn: to force a binary stream; - fixed ZnMessage>>#hasHeaders and ZnMimePart>>#hasHeaders; - debugged ZnNewStringEntity - in order to support both binary and character streams, ZnMessage, ZnStatusLine, ZnRequestLine and ZnHeaders now use a ZnBivalentWriteStream in their #writeOn: implementations; - fixed ZnUserAgent>>#processResponse: to only read headers and no entity when doing a HEAD request ' id 'c7354231-e350-4fa6-aee7-b3d7e68eae66' date '12/04/2010' time '14:11:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.75' message 'added instance creation and preferred subclass accessing protocol to ZnEntity to make it a facade; replace all direct references to ZnStringEntity and ZnByteArrayEntity with ZnEntity facade invocations ' id '38988dd8-c300-47cb-8aca-bf620c808fc3' date '12/03/2010' time '14:08:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.74' message 'added #isCharSetUTF8 and #setCharSetUTF8 to ZnMimeType; changed the defaults/constants #textPlain and #textHtml of ZnMimeType to use UTF-8 as charset; created new class ZnNewStringEntity that uses an encoder to write/read strings to/from a binary stream ' id 'b5a8d802-77ff-4880-9e20-3af6d16d14c4' date '12/02/2010' time '13:50:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.73' message 'ZnUTF8Encoder: introduced next block in #nextPut:toStream: to reduce code duplication; made #nextFrom: more compact' id 'b0852d58-48b1-48d8-8172-d54525449ef6' date '11/30/2010' time '13:49:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.72' message 'introduction of ZnCharacterEncoder, ZnNullEncoder and ZnUTF8Encoder' id '7cdd0747-637c-44a9-a835-8b055e0353b9' date '11/30/2010' time '12:28:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-pmm.71' message '- fix unit tests - see http://hudson.lukas-renggli.ch/job/Zinc/' id '3554a779-86fe-4c2b-a826-900044edbb67' date '10/25/2010' time '07:10:47' author 'pmm' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.70' message 'added ZnBufferedEntity (part 1 of a refactoring of entities)' id 'b703ca9b-f970-416a-bb28-c08a0246d585' date '10/20/2010' time '10:40:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.69' message 'ZnUtils>>socketStreamToUrl: meant to put the stream in binary mode but was using isBinary, fixed' id 'e85c3518-20bc-407b-9522-4cca9e0ce34d' date '10/14/2010' time '14:35:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MattKennedy.68' message 'Added isComplete testing message to the ZnCredential classes to answer true if all required fields are set. Updated ZnUserAgent>>prepareCredentials:for:method to use ZnCredential>>isComplete test. Updated ZnUserAgent>>defaultErrorHandler to raise exceptions again.' id '25b31f4c-23b2-458e-939d-557bce7e1e71' date '10/06/2010' time '17:24:46' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.67' message 'removed another String>>#trimBoth usage from ZnMimePart>>#contentDispositionValues; reimplemented ZnUserAgentSettings class>>#platform more elegantly ' id '72a2d1b8-f68a-4c85-84c6-e7f515f1879b' date '10/06/2010' time '09:34:33' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MattKennedy.66' message 'Reverted ZnUserAgent>>defaultErrorHandler change. Wasn''t passing all tests correctly.' id '6a148c14-5451-4ca5-8180-767e1c376f08' date '10/05/2010' time '17:39:08' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.65' message 'ZnUserAgent default error handler raises exceptions to the debugger again. Added ZnHttpClient>>parameterAt:add:' id '433b8d17-912b-46dd-9a52-3888f753fdc4' date '10/05/2010' time '17:33:49' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.64' message 'added ZnUtils class>>#trimString: until String>>#trimBoth is available everywhere; fixed usage in ZnMimeType>>#contentDispositionValues ' id 'd25e7ffe-691e-43c1-9607-842b9225d5a8' date '10/05/2010' time '21:26:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.63' message 'first complete/working version of ZnMultiPartFormDataEntity and ZnMimePart (reading/writing/instance creation/accessing); added ZnMimeType>>#parameterAt:[ifAbsent:] ' id '5c9658b2-329f-4197-b9a5-d25751435191' date '10/05/2010' time '20:33:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.62' message 'first rough and unfinished implementation of ZnMultiPartFormDataEntity; started extending ZnMimePart to allow field handling; introduced ZnBivalentWriteStream ' id '19b39ff5-631f-4e08-bda2-370466c52bae' date '10/04/2010' time '21:24:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MattKennedy.61' message 'Added ZnHttpClient which subclasses ZnUserAgent to implement a high level API. Updated ZnUserAgent>>prepareCredentials:for:method: to handle credentials stored on the session before the client receives a 401 from the server. ' id '70e0bcdb-0b42-4f13-9c9b-c7d1b8a01815' date '10/01/2010' time '22:31:54' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.60' message 'Expanded options for MD5 hash mechanisms in ZnDigestAuthenticator. Added test method to ZnDigestAuthenticator to answer if MD5 support is available.' id '7b1d4f73-febb-4e32-86ca-8af7b3e610e5' date '10/01/2010' time '05:44:52' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-svc.59' message 'OK, even more fixes after testing in Squeak 4.1 (MD5 is still missing though)' id '44a8cccf-1470-4fa8-9e15-344cba9e6411' date '10/01/2010' time '09:56:22' author 'svc' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.58' message 'OK, some more fixes after testing in Pharo 1.2' id '93d5f2cc-330a-4931-8163-599c21f80253' date '10/01/2010' time '21:44:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.57' message 'reimplemented ZnUserAgentSettings class>>#platform to deal with Pharo 1.1/1.2 portability issues (introduction of OSPlatform class); modified ZnUserAgent>>#prepareHeaders:for: to use ZnHeaders>>#addAll: ' id 'bf8f9509-4a6c-4fed-9575-3202a9627d2e' date '10/01/2010' time '21:37:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MattKennedy.56' message 'Added .errorHandler to ZnUserAgent' id 'ae9aa81f-770d-40cc-859d-d1316d3a12cd' date '10/01/2010' time '14:44:47' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.55' message 'merging' id '3cae8f4c-33ca-44ab-85e9-c7e5e8f6a84d' date '10/01/2010' time '09:43:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.54' message 'introducing ZnMimePart (has maybe to much implementation in common with ZnMessage, but in use they are less similar) ' id '8888796c-9303-408d-b6c0-30310fee5ab6' date '10/01/2010' time '09:41:57' author 'SvenVanCaekenberghe' ancestors () stepChildren ())(name 'Zinc-HTTP-MattKennedy.54' message 'Modifed ZnResponse so that the WWW-Authenticate response is no longer hard coded. ZnBasicAuthenticator supports optional custom realm settings. Added ZnDigestAuthenticator.' id '88223dbc-9831-4746-a680-f2eff6720e76' date '09/30/2010' time '17:36:25' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.53' message 'Removed trimBoth: sender from ZnDigestCredential>>parseAuthRequest:' id '5d0dfdae-b927-4634-a4a9-272e3d78aeb0' date '09/30/2010' time '12:28:40' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.52' message 'changed the required protocol for a ZnServer delegate from #value: to #handleRequest: ' id '6f652f18-f202-4ce8-b139-a47c687d36f1' date '09/30/2010' time '18:15:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.51' message 'changed ZnServer authenticator protocol from #value:value to #authenticateRequest:do: introduction of ZnBasicAuthenticator class as a first plugin ' id '49469b61-5c90-45cb-8253-5483f43f79e1' date '09/30/2010' time '16:35:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-LukasRenggli.50' message '- removed the sender of #trimBoth: that removes $" before and after the basic-autentication string, as #trimBoth: is not part of PharoCore - this fixes 2 breaking tests, but maybe introduces a regression on certain we browsers?' id 'a991e99b-b085-4cf0-ae5a-1d9addb5d83a' date '09/30/2010' time '08:33:20' author 'lr' ancestors ((name 'Zinc-HTTP-MattKennedy.49' message 'ZnDigestCredential now implements working Digest authentication support for client requests in ZnUserAgent.' id '4fb9842a-9138-4567-b15a-0136611d6ce8' date '09/29/2010' time '17:18:28' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.48' message 'Handling authentication credentials for ZnUserAgent with ZnCredentials and ZnUserAgentSession implemented, currently with support only for Basic authentication.' id '40c5bd87-c830-4b93-97d7-4f6b4a52b0de' date '09/29/2010' time '00:57:02' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.47' message 'Added ZnCredential and subclasses for Basic and Digest auth. Only stubs right now, next step to flesh out with test cases. Updated ZnUserAgentSession for storing credential objects. Added ZnMagicCookieJar>>cookieAt:forUrl: and ZnUserAgent>>cookieAt:' id '45c35930-c60a-48b8-b2b5-68a29e905ca4' date '09/28/2010' time '16:38:54' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-MattKennedy.46' message 'Added ZnMagicCookie, ZnMagicCookieJar, ZnUserAgentSession. ZnUserAgent now accepts and sends cookies. Modified ZnHeaders>>readOneHeaderFrom: to add items with ZnHeaders>>at:add: instead of ZnHeaders>>at:put: to handle requests and responses with multiple Set-Cookie or Cookie headers.' id 'baf796cb-154c-454c-9ebd-c4f2d412a64c' date '09/28/2010' time '13:56:36' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.45' message 'added ZnMessage>>#contents and ZnResponse>>#isSuccess; added ZnStreamingEntity>>#contents (non-repeatable); extended ZnFixedClient (added #isConnected and reimplemented #executeRequest error handling logic)' id '3831115e-48cf-466f-81e0-752247f6aefc' date '09/28/2010' time '14:17:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.44' message 'Merging Matt Kenedy''s code: Added ZnUserAgent and ZnUserAgentSettings' id '527f4690-0c3e-4e62-8482-de4bb3f76b0b' date '09/27/2010' time '23:36:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.43' message 'introduced ZnExperimentalServer to test server side connection keepalive/reuse; added ZnMessage>>#isConnectionClose; refactored ZnFixedClient with #preProcessRequest and #postProcessResponse (which handles server side connection close now) ' id 'bc799fbc-48ab-45c3-8cde-38fd1dd418bb' date '09/27/2010' time '23:25:06' author 'SvenVanCaekenberghe' ancestors () stepChildren ())(name 'Zinc-HTTP-MattKennedy.43' message 'Added ZnUserAgent and ZnUserAgentSettings.' id '217daf1b-07d3-4c49-bdf1-7b00262c5f70' date '09/27/2010' time '15:10:26' author 'MattKennedy' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.42' message 'extended ZnEntityReader with the ability to read Gzip content encoded entities; added ZnRequest>>#setAcceptEncodingGzip; we now use socket streams in binary mode by default (see ZnUtils>>#socketStreamToUrl:); we''re now using ZnLineReader to read CRLF delimited lines (handles bivalent access); ZnEntities set content length in #readFrom: when reading upToEnd; refactored ZnLimitedReadStream to track position explicitely (added #position); added #position to ZnChunkedReadStream; fixed ZnMessage>>#readStreamingFrom: ' id 'c60def04-29e9-4bb0-95d2-dad31539c4cc' date '09/27/2010' time '19:55:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.41' message 'extended ZnEntityReader with ability to read chunked transfer encoded content (see #readEntity); created helper class ZnChunkedReadStream wrapping a chunked transfer encoded stream, hiding the encoding from clients; all ZnEntities'' #readFrom: methods now work either with defined #contentLength (as before) or with undetermined #contentLength (doing #upToEnd); added ZnHeaders>>#keysAndValuesDo: ' id '3a023d61-98e4-4eaa-9c60-e7826ce05fbf' date '09/26/2010' time '20:10:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.40' message 'introduction of ZnEntityReader helper object; added some more operations to ZnFixedClient; some API cleanup' id 'c076371b-1e6b-48ad-ad3e-78a678785484' date '09/25/2010' time '23:16:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.39' message 'first version of ZnFixedClient for talking to one host:port combination and trying for connection reuse; added ZnMimeType>>#applicationJson (as non-binary!) ' id '784a8e5d-f9ef-4b96-838c-86d330aeec7b' date '09/25/2010' time '21:14:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.38' message 'replace #crlf with nextPutAll: String crlf to improve stream compatibility; added #url accessor to ZnRequest (alias to #uri)' id '12cb56a0-a124-4e23-bded-52ad0bbecf87' date '09/21/2010' time '22:06:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.37' message 'try to use MIMEDocument without referencing MIMEType' id '5b008ad4-0e12-4218-995a-635d765fa653' date '09/21/2010' time '16:15:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.36' message 'introduced ZnUtils>>#ipAddressToString:' id '6f149459-e4bf-4eca-a3c6-a20ede32ac0a' date '09/21/2010' time '16:01:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.35' message 'implemented a complete set of ZnClient methods (GET,PUT,POST,DELETE,HEAD) with basic authentication variants; introduced ZnClient>>#executeOneShot:on:; refactored ZnMessage and subclasses reading (#readFrom: #readStreamingFrom: #readHeaderFrom:) to support asymmetric head requests and remove code duplication; cleaned up ZnMessage and ZnHeaders #contentType and #contentLength access improved some ZnHeaders methods to better deal with missing headers dictionary (lazy initialization); added ZnServer>>#printOn:; renamed some older classes' id '71e40771-0e1a-477c-b999-94ac5537668c' date '09/21/2010' time '12:59:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.34' message 'added #printOn: to ZnStatusLine, ZnRequestLine, ZnHeaders and ZnEntity; some bug fixes and added robustness' id '58cafaad-d422-458a-9f26-57b801613e83' date '09/20/2010' time '19:40:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.33' message 'Renamed all categories with old code to Zinc-HTTP-Old-*' id '56666b16-26a2-4785-a7b0-69934e9f5a1b' date '09/19/2010' time '18:44:52' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.32' message 'various changes suggested by Code critics' id 'b9a81c31-f509-4443-b5ab-5d0980ba1f1b' date '09/17/2010' time '20:54:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.31' message 'first working implementation of ZnMonticelloServerDelegate; added ZnResponse #setLocation and #setWWWAuthenticate; added ZnResponse convencience instance creation methods #created: and #badRequest:; ZnResponse convencience instance creation methods now pass their uri through ZnUtils>>#urlPathQueryFragmentOf:; ZnUtils>>#httpDate: now does an #asUTC conversion; added ZnUtils>>#streamFrom:to:size: fast stream copier; added ZnUtils>>isSlash:' id 'e3e6a58f-52f3-4474-b700-132198106c9d' date '09/17/2010' time '15:45:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.30' message '1st working version of ZnStaticFileServerDelegate (on 1 directory with 1 prefix); extended ZnResponse with #notFound: and #redirect instance creation methods; added ZnUtils>>#httpDate: (and implemented #httpDate using it); extended ZnMimeType with MimeTypes and ExtensionsMap class variables for faster constant access and file extension to mime type mapping; ZnStreamingEntity>>#writeOn: now closes its stream after using it ' id '6074fdf3-5027-46f8-9e5b-9629d0ef5074' date '09/16/2010' time '20:50:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.29' message 'ZnStatusLine and ZnRequestLine now handle their own crlf line ending (see #readFrom: and #writeTo:); Experimental introduction of ZnStreamingEntity (see #readStreamingFrom:) ZnLimitedReadStream is now used in ZnApplicationFormUrlEncodedEntity>>#readFrom: ' id '4fae956f-e1d3-4307-90d0-eae856459f18' date '09/15/2010' time '20:24:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.28' message 'fixed ZnMimeType parser dependency on Grease #trimBoth; added serverSocket as inst var to ZnServer' id 'd09f0956-371c-442a-aeab-0eed4d433a3e' date '09/15/2010' time '09:59:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.27' message 'fixing ZnHTTPSocketFacade>>#httpPut:to:user:passwd: semantics; added ZnMessage #head: #post and #put; added ZnHeaders>>#removeKey:[ifAbsent:] ; allowed for missing content-type when reading entities; enforcing content-length header to be string in #acceptEntityDescription: ' id 'cb4bffd1-218f-4103-8679-b81e5e51dc7a' date '09/14/2010' time '15:15:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.26' message 'ZnHTTPSocketFacade: adjusting semantics; implemented some missing methods; some refactoring (#execute:on) ' id '541ca458-55fa-404a-a317-9a5801a6322b' date '09/14/2010' time '13:27:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.25' message 'some code reformatting in ZnHTTPSocketFacade; added more strings to ZnConstants; ZnServer now returns a nice default welcome page (the echo handler now only runs when the path starts with ''echo'')' id '7c2531d4-acde-449a-8c98-ed0d3affe342' date '09/14/2010' time '11:07:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.24' message 'first complete implementation of (new) ZnHTTPSocketFacade (incomplete tests); added #contents to ZnEntity; added #addAll: and #withAll to ZnHeaders and ZnApplicationFormUrlEncodedEntity; store remoteAddress as dotted IP string instead of printed byte array' id 'd30509ad-79a7-4410-9507-0a34a6639fc2' date '09/13/2010' time '22:31:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.23' message 'reorganized categories (Zinc-HTTP-New-Core, Zinc-HTTP-New-Client-Server, Zinc-HTTP-New-Support); started new implementation of ZnHTTPSocketFacade (renamed old one to ZnOldHTTPSocketFacade) with image access methods; refactored image access methods in ZnClient (introduced ZnClient>>#getImageOfType:usingParser:fromUrl:); changed ZnEntity>>#contentType: to only allow assigning mime types compatible with an entity''s designated mime type (if any) ' id 'eb6683ed-f103-46af-aa28-4d1c0d6689f3' date '09/13/2010' time '16:17:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.22' message 'added support for server side basic authentication' id '55c0e0fa-9e16-428f-800a-0ed87537fb45' date '09/13/2010' time '13:54:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.21' message 'added support for client side basic authentication' id 'f61af145-d04a-4c18-b8a9-4dc9c904c636' date '09/12/2010' time '20:34:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.20' message 'added simple http client proxy support using the system settings (untested though) ' id 'bae5ca73-9f54-4b2b-bfa2-3eb66228c7e1' date '09/12/2010' time '11:55:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.19' message 'refactored ZnEntity hierarchy with new instance creation framework; implementation of ZnApplicationFormUrlEncodedEntity; created mock ZnMultiPartFormDataEntity; added ZnUtils>>#parseQueryFrom: ZnMimeType>>#printOn: now simply prints the RFC string ' id '10746c52-3fcb-4b36-895f-a5fc34b8dd04' date '09/12/2010' time '11:28:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.18' message 'added header name normalization; added optional multi-valued header values; added optional header value merging' id '1e65b930-7310-4677-b5cf-b779a38bf759' date '09/10/2010' time '21:06:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-pmm.17' message 'use aStream print: anObject instead of aStream nextPutAll: anObject printString' id '4b6b2702-4ec3-4314-b712-ccc1d9da802c' date '09/10/2010' time '12:40:03' author 'pmm' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.16' message 'replaced usage of #displayString with #printString; renamed ZnMimeType>>#greaseString to #asRFCString' id '10c584eb-c842-4aa1-8ac7-60d2ca426265' date '09/10/2010' time '12:22:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.15' message 'added #at:ifAbsent: to ZnHeaders; added #headersDo: to ZnMessage; added #isRunning to ZnServer; ZnServer now sets a (ZnConstants remoteAddressHeader) header with the client''s remote IP address; extended ZnServer with a general purpose delegate mechanism ' id 'b3fa69a2-3f1a-4ea5-94db-47447fcab5a6' date '09/09/2010' time '20:53:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.14' message '1st primitive but working ZnServer' id '996b6601-b412-48ae-a64c-7dc78dac058d' date '09/08/2010' time '11:06:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.13' message 'ZnClient #get: and #getJpeg: now work for normal situations' id 'cbbe9f1e-39a9-4b3a-a6f1-e08e11c4c5cf' date '09/07/2010' time '20:04:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.12' message 'Started the Zinc-HTTP-New implementation; not much to see yet' id 'de2cead7-a4dd-4a3c-ac68-69e4cef2964d' date '09/06/2010' time '23:05:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.11' message 'some more recategorizations' id '7b109f45-7460-4edc-9983-3a201efa0815' date '09/05/2010' time '11:10:46' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.10' message 'refactoring for a cleaner #executeMethod: introducing #allHeadersFor:on: #generateRequestOn: #sendContentTo: removed #noContentLength: renamed #MIMEDocument to #getResponseAsMIMEDocument ; renamed some post method classes' id '0e5bf523-5aa9-40f3-be02-17abc7a18d6b' date '09/03/2010' time '23:29:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.9' message 'forgot one usage of #page' id 'd56be428-7eed-4712-ab04-2094e3808c3a' date '09/02/2010' time '20:16:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.8' message 'fixed wrong header case in #mimeTypeHeaderOn: ; refactored the extension protocol on HierarchicalUrl using new method names (using the concept of path directory and adding the String suffix for conversion methods)' id '28ab58db-ba2b-4db5-a473-2cd613cca92b' date '09/02/2010' time '20:10:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.7' message 'using code critics to remove some dead code and obvious problems (but may issues are left open); more method categorizations' id '1c64f23b-0156-41d4-bc9b-72d9c52d0227' date '09/02/2010' time '16:36:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.6' message 'did an initial method categorization in the core classes ZnHTTPClient and ZnHTTMethod (and its subclasses); removed one no-op #initialize' id '45e8c7be-7a6e-4aa3-8c8d-6f30c0e26bf5' date '09/02/2010' time '12:41:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.5' message 'introduced ZnConnectNew, a plugin replacement for ZnConnection.The old code was using its own SocketStream, now we''re using the system supplied SocketStream. Some backwards compatibility protocol was added, could be cleaned up later. It is probably also possible to use SocketStream directly; added ZnHTTPClientFacade with 2 get methods' id '2d453fab-9a2f-4743-8ce5-d7879bbc14a1' date '09/02/2010' time '11:47:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.4' message 'reduced some dependencies on extensions' id 'e3317890-f543-461c-a2de-d32ba48b2af0' date '09/01/2010' time '21:02:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.3' message 'Some cleanup of ZnHTTPSocketFacade''s class methods' id '58105dc7-a59a-4e9b-add7-1ae71a212e3c' date '09/01/2010' time '19:59:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.2' message 'Renamed HC HTTP Client to Zinc HTTP Components; Renamed all classes to use Zn namespace prefix; Renamed all extension protocols to *zinc-http; Renamed Facade to HTTPSocketFacade' id '42475f7f-909f-4292-90d2-78b2fe48c9a2' date '09/01/2010' time '19:13:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.1' message 'Renamed HC HTTP Client to Zinc HTTP Components; Renamed all classes to use Zn namespace prefix; Renamed all extension protocols to *zinc-http; Renamed Facade to HTTPSocketFacade' id '4b0032ae-27eb-462c-b0db-29800c2cc647' date '09/01/2010' time '17:29:24' author 'SvenVanCaekenberghe' 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 ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Zinc-HTTP-SvenVanCaekenberghe.242' message 'added ZnEntityTooLarge to the exceptions silently catched by ZnMultiThreadedServer>>#readRequestSafely:' id '8c18da8d-4ec0-40a7-92ea-01e7c09b9929' date '02/01/2012' time '11:26:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.241' message 'simplified and optimized implementation of ZnChunkedReadStream' id '36d5243f-deb3-4689-9315-d3d4c5393da7' date '01/31/2012' time '21:21:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.240' message 'added some speed improvements to the implementation of ZnLimitedReadStream' id '24874b38-2c00-4d0c-b3b3-cec7c4f91d71' date '01/31/2012' time '21:08:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.239' message 'fixed the implementation of ZnLimitedReadStream to honor EOF on the underlying stream' id '16a06aa4-34ec-4c81-87ca-701823088ac2' date '01/31/2012' time '20:55:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.238' message 'introduction of a resource limit to the size of entities read from a stream; added ZnConstants class>>#maximumEntitySize[:] added ZnEntityTooLarge resumable exception added ZnUtils class>>#readUpToEnd:limit: #readFrom: logic of Zn[String|ByteArray|MultiPartFormData]Entity now take the limit into account extended ZnChunkedReadStream and ZnLimitedReadStream with #readInto:startingAt:count: as a first step to improve their performance' id '4af222aa-e05c-458b-a1ce-2d62b2d23d2d' date '01/31/2012' time '14:02:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.237' message 'changed ZnMimePart class>>#fieldName:value: to use ZnEntity>>#with: on the value so that Strings become ZnStringEntities and others become ZnByteArrayEntities; changed ZnUrl>>#queryAt: to signal a KeyNotFound error when there is no query' id '37e466f7-592f-4f15-a016-f2689b56f3fb' date '01/29/2012' time '19:43:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.236' message 'added ZnUrl>>#retrieveContents convenience method' id 'b5d081c0-6b4f-40a2-8e4c-5b58c4a02de5' date '01/24/2012' time '11:59:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.235' message 'now using #trimBoth instead of #withBlanksTrimmed' id 'bc327259-a3d3-4829-a24a-504b08ab8cbf' date '01/08/2012' time '14:20:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.234' message 'changed the implementation of ZnHeaders to use ZnMultiValueDictionary; ZnLineReader now uses ZnConstants class>>#maximumLineLength (4096) as default for signaling a ZnLineTooLong exception; added a limit option to ZnMultiValueDictionary that defaults to ZnConstants class>>#maximumNumberOfDictionaryEntries (256) for signaling a ZnTooManyDictionaryEntries exception; added new ZnTooManyDictionaryEntries error; changed parent of ZnTooManyRedirects from Exception to Error and added a #isResumable true method; extended ZnMultiThreadedServer>>#readRequestSafely: to also catch ZnTooManyDictionaryEntries' id 'add34728-015e-46b6-9aeb-eda8f63e1f03' date '01/03/2012' time '15:42:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.233' message 'Rewrote ZnServer and subclasses''s class methods #startDefaultOn: and #defaultOn: to treat the default instance like a singleton by reusing/restarting/reconfiguring existing instances; expanded comments; Changed the implementation of ZnServer>>#start to automagically register the default instance; Changed the implementation of ZnServer>>#stop to always unregister; added ZnServer>>#stop: with an option to control the unregistering so that it does not happen when shutting down the image ' id '8dd541c9-2890-4a8f-b5cb-d6ac2e9341af' date '12/22/2011' time '12:54:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.232' message 'changed ZnClient>>#executeWithTimeout to use an explicit and selective #exceptionSetForIfFail so that only network, http parsing, http unsuccessful and unexpected content type exceptions trigger the #ifFailBlock; this fixes the problem where HTTPProgress exceptions triggered the ifFail block; thx Camillo Bruni ' id '3ca78fe3-4355-46ee-9ba3-5e0f540b9ec0' date '12/20/2011' time '14:24:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.231' message 'Extended the ZnHttpUnsuccessful and ZnUnexpectedContentType exceptions to contain the repsonse respectively the two content types so as to produce better error messages (thx Camillo Bruni for suggesting this)' id 'c94e86a8-3b1a-4c26-bae5-3aebc90764b2' date '12/20/2011' time '13:26:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.230' message 'Changed ZnClient>>#timeout to use the global ZnNetworkingUtils defaultSocketStreamTimeout as default' id 'fb0c7c07-a6dd-4105-bdd4-a65860b4b452' date '12/14/2011' time '14:07:42' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.229' message 'expanded the ZnUrl class comment' id 'b239edd4-c432-4139-a71a-d27618beef91' date '12/14/2011' time '13:45:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.228' message 'added ZnUrl>>#queryKeys' id 'f979e877-6dfa-4167-b159-ec322a629c98' date '12/13/2011' time '14:21:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.227' message 'added the WebDAV methods to ZnConstants class>>#knownHTTPMethods; added convenience constructor #xml: to ZnStringEntity and ZnEntity' id 'd8262a06-7f5b-4a88-9fdb-cc4bb05ed422' date '12/11/2011' time '19:47:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.226' message 'changed ZnMimeType such that the ''constants'' returned by the methods in the class side convenience protocol can now be freely modified by returning a copy; implemented ZnMimeType>>#postCopy; ZnMimeType>>#parameters will now lazy initialize to a SmallDictionary instead of a regular Dictionary' id '52cc1692-4d4f-4c43-813c-21b61e386eaf' date '12/06/2011' time '20:56:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-NorbertHartl.225' message 'changed ZnApplicationFormUrlEncodedEntity to check encoding of contentType. If an encoding is present to presentation is written using the specified encoding' id '18a28639-5e95-4594-937c-268df69987ec' date '12/06/2011' time '18:30:33' author 'NorbertHartl' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.224' message 'added ZnLimitedReadStream>>#peek' id '4f9dffc5-3af2-4adc-a0c9-0bc22d1de76e' date '12/04/2011' time '20:10:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.223' message 'added missing ZnChunkedReadStream>>#next:into: that was used by ZnEntityReader when reading a ZnByteArrayEntity fix to Pharo issue 5053 (http://code.google.com/p/pharo/issues/detail?id=5053) thanks Laurent Laffont for reporting' id '19ce4497-786a-46a7-bd6c-55fa682dba56' date '12/03/2011' time '17:51:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.222' message 'small fix to ZnEntityReader>>#readEntityFromStream added an extra guard copying extraHeaders from a chunked stream since these are missing when reading a streaming entity' id 'a1b1d190-4690-4cc0-b9b5-eab77cc5153b' date '12/01/2011' time '10:40:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.221' message 'added new #followsRedirects boolean option to ZnClient because setting #maxNumberOfRedirects to 0 did not work well for an example see the ZnClientTests>>#testRedirectDontFollow Thx Jan van de Sandt for reporting this' id '4df9982e-63e1-49ea-bfb0-2f9cb43f6f0b' date '11/23/2011' time '17:30:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.220' message 'added auto initialization of ZnNetworkingUtils>>#secureSocketStreamClass' id '147d6c42-b509-40e4-abb0-7c804d5df01d' date '11/13/2011' time '21:46:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.219' message 'reworked ZnNetworkingUtils to take over most if not all functionality of ZnZodiacNetworkingUtils so that HTTPS should work out of the box when Zodiac is loaded; small refactoring to ZnServer hierarchy: use #socketStreamOn: consistently' id 'f0eb7dbf-ae05-4daa-87da-84feb09ba23a' date '11/10/2011' time '14:09:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.218' message 'renamed ZnNeoClient -> ZnClient; added a better class comment' id '8c789ded-a882-4491-bdf9-e9ad45af69f2' date '11/08/2011' time '22:33:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.217' message 'renamed ZnClient -> ZnClientOld' id 'df12536b-7fa7-4e00-84eb-6de051894eb6' date '11/08/2011' time '22:14:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-SvenVanCaekenberghe.216' message 'documented all public methods of ZnNeoClient; minor fixes: - #close sets state to nil - #contents return the stream when streaming - #headerAddAll: and #headerAt:add: now do a #resetRequestIfNeeded' id 'bfb5ff74-76f9-4689-a976-95ef34260531' date '11/08/2011' time '21:10:32' author 'SvenVanCaekenberghe' 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 ())(name 'Zinc-HTTP-SvenVanCaekenberghe.283' message 'added an efficiency improvement to ZnMultiPartFormDataEntity>>#parse:boundary: added convenience protocol to ZnUrl: - #withPathSegment[s]: #/ - #withQuery: #? #&' id '51351ae8-99a9-44cc-856a-976fcd55e2cf' date '07/09/2012' time '04:38:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-HTTP-MarcusDenker.282' message 'Issue 6259: DataStream is still there http://code.google.com/p/pharo/issues/detail?id=6259 Issue 6255: Zinc Pharo Conference update with FileSystem support http://code.google.com/p/pharo/issues/detail?id=6255 Issue 6223: FileLocator and FileRerernce have extension from File Package http://code.google.com/p/pharo/issues/detail?id=6223' id '03911f2b-c422-4142-bedf-617d90674243' date '07/04/2012' time '04:16:25' author 'MarcusDenker' 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 ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) 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/Zinc-Tests.package/ZnGsServerTests.class/class/shouldInheritSelectors.st b/repository/Zinc-Tests.package/ZnGsServerTests.class/class/shouldInheritSelectors.st new file mode 100644 index 00000000..7d2bcff4 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/class/shouldInheritSelectors.st @@ -0,0 +1,5 @@ +Testing +shouldInheritSelectors + "I should inherit from an Abstract superclass but not from a concrete one by default, unless I have no testSelectors in which case I must be expecting to inherit them from my superclass. If a test case with selectors wants to inherit selectors from a concrete superclass, override this to true in that subclass." + + ^ true \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/testDefault.st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/testDefault.st new file mode 100644 index 00000000..9bbd40e2 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/testDefault.st @@ -0,0 +1,5 @@ +testing +testDefault + " this test does not apply to gemServer" + + ^ self \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/testSessionExpired.st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/testSessionExpired.st new file mode 100644 index 00000000..865897f6 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/testSessionExpired.st @@ -0,0 +1,5 @@ +testing +testSessionExpired + " this test presents problems accessing the remote sessionManger ... not something required for proper operation of remote server, since the test is trying to simulate session expiration" + + ^ self \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/testUrl.st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/testUrl.st new file mode 100644 index 00000000..5c0fc37d --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/testUrl.st @@ -0,0 +1,5 @@ +testing +testUrl + " this test does not apply to gemServer" + + ^ self \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServer.do..st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServer.do..st deleted file mode 100644 index 9f724ed4..00000000 --- a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServer.do..st +++ /dev/null @@ -1,3 +0,0 @@ -private -withServer: authenticator do: block - self withGemServer: authenticator do: block \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerAuthenticator.do..st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerAuthenticator.do..st new file mode 100644 index 00000000..6b0a16c4 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerAuthenticator.do..st @@ -0,0 +1,3 @@ +private +withServerAuthenticator: authenticator do: block + self withGemServerAuthenticator: authenticator do: block \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerBindingAddress.do..st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerBindingAddress.do..st new file mode 100644 index 00000000..a77a60b0 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerBindingAddress.do..st @@ -0,0 +1,3 @@ +private +withServerBindingAddress: bindingAddress do: block + self withGemServerBindingAddress: bindingAddress do: block \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerDelegate.do..st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerDelegate.do..st new file mode 100644 index 00000000..07dd3a20 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerDelegate.do..st @@ -0,0 +1,3 @@ +private +withServerDelegate: delegate do: block + self withGemServerDelegate: delegate do: block \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerMaximumEntitySize.do..st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerMaximumEntitySize.do..st new file mode 100644 index 00000000..07388998 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerMaximumEntitySize.do..st @@ -0,0 +1,3 @@ +private +withServerMaximumEntitySize: maximumEntitySize do: block + self withGemServerMaximumEntitySize: maximumEntitySize do: block \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerReader.do..st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerReader.do..st new file mode 100644 index 00000000..9c2d9a03 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerReader.do..st @@ -0,0 +1,3 @@ +private +withServerReader: reader do: block + self withGemServerReader: reader do: block \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerRoute.do..st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerRoute.do..st new file mode 100644 index 00000000..b8afc9f1 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerRoute.do..st @@ -0,0 +1,3 @@ +private +withServerRoute: route do: block + self withGemServerRoute: route do: block \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerUseGzipCompressionAndChunking.do..st b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerUseGzipCompressionAndChunking.do..st new file mode 100644 index 00000000..11e03bdd --- /dev/null +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/instance/withServerUseGzipCompressionAndChunking.do..st @@ -0,0 +1,5 @@ +private +withServerUseGzipCompressionAndChunking: useGzipCompressionAndChunking do: block + self + withGemServerUseGzipCompressionAndChunking: useGzipCompressionAndChunking + do: block \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnGsServerTests.class/methodProperties.json b/repository/Zinc-Tests.package/ZnGsServerTests.class/methodProperties.json index 6229769d..ca6d9e9d 100644 --- a/repository/Zinc-Tests.package/ZnGsServerTests.class/methodProperties.json +++ b/repository/Zinc-Tests.package/ZnGsServerTests.class/methodProperties.json @@ -1,6 +1,15 @@ { "class" : { - }, + "shouldInheritSelectors" : "dkh 12/14/2014 07:21" }, "instance" : { - "withServer:do:" : "dkh 12/13/2014 19:36", - "withServerDo:" : "dkh 12/13/2014 19:29" } } + "testDefault" : "dkh 12/14/2014 07:11", + "testSessionExpired" : "dkh 12/14/2014 08:03", + "testUrl" : "dkh 12/14/2014 08:10", + "withServerAuthenticator:do:" : "dkh 12/14/2014 07:41", + "withServerBindingAddress:do:" : "dkh 12/14/2014 07:50", + "withServerDelegate:do:" : "dkh 12/14/2014 07:58", + "withServerDo:" : "dkh 12/13/2014 19:29", + "withServerMaximumEntitySize:do:" : "dkh 12/14/2014 07:53", + "withServerReader:do:" : "dkh 12/14/2014 07:46", + "withServerRoute:do:" : "dkh 12/14/2014 08:04", + "withServerUseGzipCompressionAndChunking:do:" : "dkh 12/14/2014 07:56" } } diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testAuthorizationFailed.st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testAuthorizationFailed.st index 4d28bf80..18efe8f8 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testAuthorizationFailed.st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testAuthorizationFailed.st @@ -1,7 +1,8 @@ testing testAuthorizationFailed self - withServer: (ZnBasicAuthenticator username: 'foo' password: 'secret') + withServerAuthenticator: + (ZnBasicAuthenticator username: 'foo' password: 'secret') do: [ :server | | response | response := ZnEasy diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testAuthorizationSuccessful.st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testAuthorizationSuccessful.st index f4936588..a1f78655 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testAuthorizationSuccessful.st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testAuthorizationSuccessful.st @@ -1,9 +1,18 @@ testing testAuthorizationSuccessful - self withServerDo: [ :server | | response | - server authenticator: (ZnBasicAuthenticator username: 'foo' password: 'secret'). - response := ZnEasy get: (server localUrl addPathSegments: #('echo' 'foo'); yourself) username: 'foo' password: 'secret'. - self assert: (response headers contentType = ZnMimeType textPlain). - self assert: (response statusLine code = 200). - self assert: (response entity string includesSubstring: 'Zinc'). - self assert: (response entity string includesSubstring: 'foo') ] \ No newline at end of file + self + withServerAuthenticator: + (ZnBasicAuthenticator username: 'foo' password: 'secret') + do: [ :server | + | response | + response := ZnEasy + get: + (server localUrl + addPathSegments: #('echo' 'foo'); + yourself) + username: 'foo' + password: 'secret'. + self assert: response headers contentType = ZnMimeType textPlain. + self assert: response statusLine code = 200. + self assert: (response entity string includesSubstring: 'Zinc'). + self assert: (response entity string includesSubstring: 'foo') ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEcho.st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEcho.st index 36829c5b..1792a8b1 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEcho.st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEcho.st @@ -1,9 +1,23 @@ testing testEcho - self withServerDo: [ :server | | response | - response := ZnEasy get: (server localUrl addPathSegments: #('echo' 'foo'); yourself). - self assert: (response contentType = ZnMimeType textPlain). - self assert: (response statusLine code = 200). - self assert: (response entity contents includesSubstring: 'Zinc'). - self assert: (response entity contents includesSubstring: 'foo'). - self assert: (response entity contents includesSubstring: server printString) ] \ No newline at end of file + self + withServerDo: [ :server | + | response | + response := ZnEasy + get: + (server localUrl + addPathSegments: #('echo' 'foo'); + yourself). + self assert: response contentType = ZnMimeType textPlain. + self assert: response statusLine code = 200. + self assert: (response entity contents includesSubstring: 'Zinc'). + self assert: (response entity contents includesSubstring: 'foo'). + (server isKindOf: ZnServer) + ifTrue: [ self assert: (response entity contents includesSubstring: server printString) ] + ifFalse: [ + "a little more difficult to get server printString for a GemServer" + self + assert: + (response entity contents + includesSubstring: + server serverClass defaultServerClass name asString) ] ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEchoBinary.st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEchoBinary.st index 30efeef5..fcc18493 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEchoBinary.st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEchoBinary.st @@ -1,10 +1,21 @@ testing testEchoBinary - self withServerDo: [ :server | | response entityIn entityOut | - server reader: [ :stream | ZnRequest readBinaryFrom: stream ]. - entityIn := ZnEntity with: 'ABC' type: 'text/plain'. - response := ZnEasy put: (server localUrl addPathSegment: 'echo'; yourself) data: entityIn. - self assert: (response contentType = ZnMimeType textPlain). - self assert: (response statusLine code = 200). - entityOut := ZnEntity with: entityIn string asByteArray type: entityIn contentType. - self assert: (response entity contents includesSubstring: entityOut printString) ] \ No newline at end of file + self + withServerReader: [ :stream | ZnRequest readBinaryFrom: stream ] + do: [ :server | + | response entityIn entityOut | + entityIn := ZnEntity with: 'ABC' type: 'text/plain'. + response := ZnEasy + put: + (server localUrl + addPathSegment: 'echo'; + yourself) + data: entityIn. + self assert: response contentType = ZnMimeType textPlain. + self assert: response statusLine code = 200. + entityOut := ZnEntity + with: entityIn string asByteArray + type: entityIn contentType. + self + assert: + (response entity contents includesSubstring: entityOut printString) ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEchoLocalInterface.st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEchoLocalInterface.st index 4ea860bc..db7df54b 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEchoLocalInterface.st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEchoLocalInterface.st @@ -1,15 +1,15 @@ testing testEchoLocalInterface - | server response | - (server := ZnServer on: self port) - bindingAddress: (GsSocket getHostAddressByName: 'localhost'). - [ - server start. - self assert: server isRunning & server isListening. - response := ZnEasy get: (server localUrl addPathSegments: #('echo' 'foo'); yourself). - self assert: (response contentType = ZnMimeType textPlain). - self assert: (response statusLine code = 200). - self assert: (response entity contents includesSubstring: 'Zinc'). - self assert: (response entity contents includesSubstring: 'foo') - ] - ensure: [ server stop ] \ No newline at end of file + self + withServerBindingAddress: (GsSocket getHostAddressByName: 'localhost') + do: [ :server | + | response | + response := ZnEasy + get: + (server localUrl + addPathSegments: #('echo' 'foo'); + yourself). + self assert: response contentType = ZnMimeType textPlain. + self assert: response statusLine code = 200. + self assert: (response entity contents includesSubstring: 'Zinc'). + self assert: (response entity contents includesSubstring: 'foo') ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEntityTooLarge.st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEntityTooLarge.st index 98391a95..85f1a4e5 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEntityTooLarge.st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testEntityTooLarge.st @@ -1,18 +1,21 @@ testing testEntityTooLarge - self withServerDo: [ :server | | response client | - server maximumEntitySize: 1024. - self deny: server debugMode. - client := ZnClient new - url: server localUrl; - addPathSegment: #echo; - entity: (ZnEntity with: (ByteArray new: 1024 + 1)); - yourself. - response := client - post; - response. - client close. - self deny: response isSuccess. - self assert: response code equals: 400. - self assert: response contentType equals: ZnMimeType textPlain. - self assert: (response entity contents includesSubstring: 'ZnEntityTooLarge') ] \ No newline at end of file + self + withServerMaximumEntitySize: 1024 + do: [ :server | + | response client | + self deny: server debugMode. + client := ZnClient new + url: server localUrl; + addPathSegment: #'echo'; + entity: (ZnEntity with: (ByteArray new: 1024 + 1)); + yourself. + response := client + post; + response. + client close. + self deny: response isSuccess. + self assert: response code equals: 400. + self assert: response contentType equals: ZnMimeType textPlain. + self + assert: (response entity contents includesSubstring: 'ZnEntityTooLarge') ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testGzipCompressionAndChunking.st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testGzipCompressionAndChunking.st index 99be52c4..86a42465 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testGzipCompressionAndChunking.st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testGzipCompressionAndChunking.st @@ -1,14 +1,20 @@ testing testGzipCompressionAndChunking - self withServerDo: [ :server | | client | - server useGzipCompressionAndChunking: true. - (client := ZnClient new) - url: server localUrl; - addPathSegment: 'dw-bench'; - setAcceptEncodingGzip; - get. - self assert: client isSuccess. - self assert: client response hasContentEncoding. - self assert: (client response headers at: 'Content-Encoding') equals: 'gzip'. - self assert: client response hasTransferEncoding. - self assert: (client response headers at: 'Transfer-Encoding') equals: 'chunked' ] \ No newline at end of file + self + withServerUseGzipCompressionAndChunking: true + do: [ :server | + | client | + (client := ZnClient new) + url: server localUrl; + addPathSegment: 'dw-bench'; + setAcceptEncodingGzip; + get. + self assert: client isSuccess. + self assert: client response hasContentEncoding. + self + assert: (client response headers at: 'Content-Encoding') + equals: 'gzip'. + self assert: client response hasTransferEncoding. + self + assert: (client response headers at: 'Transfer-Encoding') + equals: 'chunked' ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testReadEvalPrint.st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testReadEvalPrint.st index bed7fca3..5e02147d 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testReadEvalPrint.st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testReadEvalPrint.st @@ -1,9 +1,9 @@ testing testReadEvalPrint self - withServerDo: [ :server | + withServerDelegate: ZnReadEvalPrintDelegate new + do: [ :server | | x y result | - server delegate: ZnReadEvalPrintDelegate new. x := 100 atRandom. y := 100 atRandom. result := ZnClient new diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testSessionRoute.st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testSessionRoute.st index c9081b90..7a6dcc65 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/testSessionRoute.st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/testSessionRoute.st @@ -1,18 +1,24 @@ testing testSessionRoute - self withServerDo: [ :server | | client sessionId | - server route: 'r1'. - self assert: server route equals: 'r1'. - client := ZnClient new url: (server localUrl addPathSegment: #session); yourself. - self assert: client session cookieJar cookies isEmpty. - client get. - self assert: client isSuccess. - self assert: client session cookieJar cookies size = 1. - sessionId := client session cookieJar cookies anyOne value. - self assert: (client contents includesSubstring: sessionId). - self assert: (sessionId endsWith: '.r1'). - client get. - self assert: client isSuccess. - self assert: client session cookieJar cookies size = 1. - self assert: client session cookieJar cookies anyOne value equals: sessionId. - self assert: (client contents includesSubstring: sessionId) ] + self + withServerRoute: 'r1' + do: [ :server | + | client sessionId | + self assert: server route equals: 'r1'. + client := ZnClient new + url: (server localUrl addPathSegment: #'session'); + yourself. + self assert: client session cookieJar cookies isEmpty. + client get. + self assert: client isSuccess. + self assert: client session cookieJar cookies size = 1. + sessionId := client session cookieJar cookies anyOne value. + self assert: (client contents includesSubstring: sessionId). + self assert: (sessionId endsWith: '.r1'). + client get. + self assert: client isSuccess. + self assert: client session cookieJar cookies size = 1. + self + assert: client session cookieJar cookies anyOne value + equals: sessionId. + self assert: (client contents includesSubstring: sessionId) ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServer.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerAuthenticator.do..st similarity index 56% rename from repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServer.do..st rename to repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerAuthenticator.do..st index 5377eb31..6c90e2e5 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServer.do..st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerAuthenticator.do..st @@ -1,5 +1,5 @@ private -withGemServer: authenticator do: block +withGemServerAuthenticator: authenticator do: block | gemServer | gemServer := super withGemServerDo: block. gemServer authenticator: authenticator. @@ -7,4 +7,7 @@ withGemServer: authenticator do: block gemServer restartGems. (Delay forSeconds: 3) wait. block cull: gemServer ] - ensure: [ gemServer stop ] \ No newline at end of file + ensure: [ + gemServer stop. + (Delay forSeconds: 3) wait. + gemServer unregister ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerBindingAddress.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerBindingAddress.do..st new file mode 100644 index 00000000..d7beb32c --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerBindingAddress.do..st @@ -0,0 +1,13 @@ +private +withGemServerBindingAddress: bindingAddress do: block + | gemServer | + gemServer := super withGemServerDo: block. + gemServer bindingAddress: bindingAddress. + [ + gemServer restartGems. + (Delay forSeconds: 3) wait. + block cull: gemServer ] + ensure: [ + gemServer stop. + (Delay forSeconds: 3) wait. + gemServer unregister ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerDelegate.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerDelegate.do..st new file mode 100644 index 00000000..8a21b44f --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerDelegate.do..st @@ -0,0 +1,13 @@ +private +withGemServerDelegate: delegate do: block + | gemServer | + gemServer := super withGemServerDo: block. + gemServer delegate: delegate. + [ + gemServer restartGems. + (Delay forSeconds: 3) wait. + block cull: gemServer ] + ensure: [ + gemServer stop. + (Delay forSeconds: 3) wait. + gemServer unregister ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerDo..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerDo..st index c32fb02d..ac19b13e 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerDo..st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerDo..st @@ -6,4 +6,7 @@ withGemServerDo: block gemServer restartGems. (Delay forSeconds: 3) wait. block cull: gemServer ] - ensure: [ gemServer stop ] \ No newline at end of file + ensure: [ + gemServer stop. + (Delay forSeconds: 3) wait. + gemServer unregister ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerMaximumEntitySize.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerMaximumEntitySize.do..st new file mode 100644 index 00000000..9f779e0c --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerMaximumEntitySize.do..st @@ -0,0 +1,13 @@ +private +withGemServerMaximumEntitySize: maximumEntitySize do: block + | gemServer | + gemServer := super withGemServerDo: block. + gemServer maximumEntitySize: maximumEntitySize. + [ + gemServer restartGems. + (Delay forSeconds: 3) wait. + block cull: gemServer ] + ensure: [ + gemServer stop. + (Delay forSeconds: 3) wait. + gemServer unregister ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerReader.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerReader.do..st new file mode 100644 index 00000000..063c0aa5 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerReader.do..st @@ -0,0 +1,13 @@ +private +withGemServerReader: reader do: block + | gemServer | + gemServer := super withGemServerDo: block. + gemServer reader: reader. + [ + gemServer restartGems. + (Delay forSeconds: 3) wait. + block cull: gemServer ] + ensure: [ + gemServer stop. + (Delay forSeconds: 3) wait. + gemServer unregister ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerRoute.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerRoute.do..st new file mode 100644 index 00000000..3ca686ee --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerRoute.do..st @@ -0,0 +1,13 @@ +private +withGemServerRoute: route do: block + | gemServer | + gemServer := super withGemServerDo: block. + gemServer route: route. + [ + gemServer restartGems. + (Delay forSeconds: 3) wait. + block cull: gemServer ] + ensure: [ + gemServer stop. + (Delay forSeconds: 3) wait. + gemServer unregister ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerUseGzipCompressionAndChunking.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerUseGzipCompressionAndChunking.do..st new file mode 100644 index 00000000..0cedd2e2 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withGemServerUseGzipCompressionAndChunking.do..st @@ -0,0 +1,13 @@ +private +withGemServerUseGzipCompressionAndChunking: useGzipCompressionAndChunking do: block + | gemServer | + gemServer := super withGemServerDo: block. + gemServer useGzipCompressionAndChunking: useGzipCompressionAndChunking. + [ + gemServer restartGems. + (Delay forSeconds: 3) wait. + block cull: gemServer ] + ensure: [ + gemServer stop. + (Delay forSeconds: 3) wait. + gemServer unregister ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServer.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerAuthenticator.do..st similarity index 82% rename from repository/Zinc-Tests.package/ZnServerTests.class/instance/withServer.do..st rename to repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerAuthenticator.do..st index 955c3674..d1b6d4c8 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServer.do..st +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerAuthenticator.do..st @@ -1,5 +1,5 @@ private -withServer: authenticator do: block +withServerAuthenticator: authenticator do: block | server | server := super withServerDo: block. server authenticator: authenticator. diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerBindingAddress.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerBindingAddress.do..st new file mode 100644 index 00000000..2d1e95e7 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerBindingAddress.do..st @@ -0,0 +1,10 @@ +private +withServerBindingAddress: bindingAddress do: block + | server | + server := super withServerDo: block. + server bindingAddress: bindingAddress. + [ + server start. + self assert: server isRunning & server isListening. + block cull: server ] + ensure: [ server stop ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerDelegate.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerDelegate.do..st new file mode 100644 index 00000000..22eadcb2 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerDelegate.do..st @@ -0,0 +1,10 @@ +private +withServerDelegate: delegate do: block + | server | + server := super withServerDo: block. + server delegate: delegate. + [ + server start. + self assert: server isRunning & server isListening. + block cull: server ] + ensure: [ server stop ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerMaximumEntitySize.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerMaximumEntitySize.do..st new file mode 100644 index 00000000..048a8528 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerMaximumEntitySize.do..st @@ -0,0 +1,10 @@ +private +withServerMaximumEntitySize: maximumEntitySize do: block + | server | + server := super withServerDo: block. + server maximumEntitySize: maximumEntitySize. + [ + server start. + self assert: server isRunning & server isListening. + block cull: server ] + ensure: [ server stop ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerReader.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerReader.do..st new file mode 100644 index 00000000..20eba0c3 --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerReader.do..st @@ -0,0 +1,10 @@ +private +withServerReader: reader do: block + | server | + server := super withServerDo: block. + server reader: reader. + [ + server start. + self assert: server isRunning & server isListening. + block cull: server ] + ensure: [ server stop ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerRoute.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerRoute.do..st new file mode 100644 index 00000000..fbd4115e --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerRoute.do..st @@ -0,0 +1,10 @@ +private +withServerRoute: route do: block + | server | + server := super withServerDo: block. + server route: route. + [ + server start. + self assert: server isRunning & server isListening. + block cull: server ] + ensure: [ server stop ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerUseGzipCompressionAndChunking.do..st b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerUseGzipCompressionAndChunking.do..st new file mode 100644 index 00000000..03c5b02a --- /dev/null +++ b/repository/Zinc-Tests.package/ZnServerTests.class/instance/withServerUseGzipCompressionAndChunking.do..st @@ -0,0 +1,10 @@ +private +withServerUseGzipCompressionAndChunking: useGzipCompressionAndChunking do: block + | server | + server := super withServerDo: block. + server useGzipCompressionAndChunking: useGzipCompressionAndChunking. + [ + server start. + self assert: server isRunning & server isListening. + block cull: server ] + ensure: [ server stop ] \ No newline at end of file diff --git a/repository/Zinc-Tests.package/ZnServerTests.class/methodProperties.json b/repository/Zinc-Tests.package/ZnServerTests.class/methodProperties.json index 0f7564ec..b02153b2 100644 --- a/repository/Zinc-Tests.package/ZnServerTests.class/methodProperties.json +++ b/repository/Zinc-Tests.package/ZnServerTests.class/methodProperties.json @@ -2,26 +2,38 @@ "class" : { }, "instance" : { - "testAuthorizationFailed" : "dkh 12/13/2014 19:37", - "testAuthorizationSuccessful" : "SvenVanCaekenberghe 8/23/2012 14:34", + "testAuthorizationFailed" : "dkh 12/14/2014 07:42", + "testAuthorizationSuccessful" : "dkh 12/14/2014 07:42", "testDefault" : "SvenVanCaekenberghe 3/12/2012 22:06", - "testEcho" : "SvenVanCaekenberghe 11/10/2012 17:42", - "testEchoBinary" : "SvenVanCaekenberghe 8/23/2012 14:34", - "testEchoLocalInterface" : "SvenVanCaekenberghe 8/23/2012 14:34", - "testEntityTooLarge" : "SvenVanCaekenberghe 5/14/2013 12:59", + "testEcho" : "dkh 12/14/2014 07:28", + "testEchoBinary" : "dkh 12/14/2014 07:47", + "testEchoLocalInterface" : "dkh 12/14/2014 07:51", + "testEntityTooLarge" : "dkh 12/14/2014 07:54", "testError" : "SvenVanCaekenberghe 5/14/2013 09:27", "testGetUnicodeUtf8" : "SvenVanCaekenberghe 8/23/2012 14:34", - "testGzipCompressionAndChunking" : "SvenVanCaekenberghe 5/19/2013 21:21", + "testGzipCompressionAndChunking" : "dkh 12/14/2014 07:56", "testHeaderLineTooLong" : "SvenVanCaekenberghe 5/14/2013 12:54", "testLocalUrl" : "JohanBrichau 06/16/2013 15:43", - "testReadEvalPrint" : "dkh 06/29/2014 15:45", + "testReadEvalPrint" : "dkh 12/14/2014 07:59", "testRequestLineTooLong" : "SvenVanCaekenberghe 5/14/2013 12:53", "testSession" : "SvenVanCaekenberghe 11/10/2012 23:47", "testSessionExpired" : "SvenVanCaekenberghe 12/31/2012 16:44", - "testSessionRoute" : "SvenVanCaekenberghe 12/31/2012 16:58", + "testSessionRoute" : "dkh 12/14/2014 08:05", "testTooManyHeaders" : "SvenVanCaekenberghe 5/14/2013 12:53", "testUrl" : "SvenVanCaekenberghe 5/14/2013 09:26", - "withGemServer:do:" : "dkh 12/13/2014 19:44", - "withGemServerDo:" : "dkh 12/13/2014 19:44", - "withServer:do:" : "dkh 12/13/2014 19:42", - "withServerDo:" : "dkh 06/29/2014 11:02" } } + "withGemServerAuthenticator:do:" : "dkh 12/14/2014 07:41", + "withGemServerBindingAddress:do:" : "dkh 12/14/2014 07:50", + "withGemServerDelegate:do:" : "dkh 12/14/2014 07:58", + "withGemServerDo:" : "dkh 12/14/2014 07:08", + "withGemServerMaximumEntitySize:do:" : "dkh 12/14/2014 07:53", + "withGemServerReader:do:" : "dkh 12/14/2014 07:46", + "withGemServerRoute:do:" : "dkh 12/14/2014 08:04", + "withGemServerUseGzipCompressionAndChunking:do:" : "dkh 12/14/2014 07:56", + "withServerAuthenticator:do:" : "dkh 12/14/2014 07:44", + "withServerBindingAddress:do:" : "dkh 12/14/2014 07:49", + "withServerDelegate:do:" : "dkh 12/14/2014 07:58", + "withServerDo:" : "dkh 06/29/2014 11:02", + "withServerMaximumEntitySize:do:" : "dkh 12/14/2014 07:53", + "withServerReader:do:" : "dkh 12/14/2014 07:45", + "withServerRoute:do:" : "dkh 12/14/2014 08:04", + "withServerUseGzipCompressionAndChunking:do:" : "dkh 12/14/2014 07:55" } } diff --git a/repository/Zinc-Tests.package/monticello.meta/version b/repository/Zinc-Tests.package/monticello.meta/version index 68170cd4..0cbe84a7 100644 --- a/repository/Zinc-Tests.package/monticello.meta/version +++ b/repository/Zinc-Tests.package/monticello.meta/version @@ -1 +1 @@ -(name 'Zinc-Tests-dkh.208' message 'Issue #58: checkpoint (tests failing) expand use of GemServer to cover ZnServerTests with class ZNGsServerTests' id '967d3907-220f-400a-a789-8296f6cab690' date '12/13/2014' time '19:46:43' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.207' message 'Issue #53: barring any new sent but not implmented messages, this bug should be fixed .... of course Issue #61 and Issue #62 were opened to implement the missing behavior' id '62536bb2-3e29-4256-a0a8-d2f45d7463a7' date '11/17/2014' time '16:17:45' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.206' message 'checkpoint 2.4.5.2: 282 run, 269 passes, 2 expected defects, 0 failures, 11 errors, 0 unexpected passes' id '7c49b756-966a-4b3b-b5f3-88b8b2ed5ab1' date '06/29/2014' time '23:54:01' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.205' message 'tracing for 2.4 test failures' id 'f1d34817-a5c8-4d20-a747-b39bd980958c' date '06/29/2014' time '23:25:21' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.204' message 'client forwarder safe tests for interactive session' id '56e14dff-04bc-4f63-9290-809fc3288e64' date '06/29/2014' time '23:15:42' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.203' message 'let''s call ZnEntityWriterTests>>testGzippedAndChunked an expected failure... - doesn''t fail in 3.2, but it is a different data set - test does not exist in future versions of Zinc - small data sets for this test faile consistently ' id '8b1bc2b2-b8cd-4051-89ef-5e36bddcb973' date '06/29/2014' time '22:50:58' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.202' message 'Gzip implementation is not stable ... clearly not enough tests in base' id '5aec5408-0687-4cf7-b7ea-1d2b2ebfffe5' date '06/29/2014' time '21:40:58' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.201' message 'remove extra tracing code ... tests greeen for GemStone 3.2' id 'bfd93295-f82d-495b-b676-6fdd47d12eac' date '06/29/2014' time '15:48:17' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.200' message 'logging for travix ZnServerTests>>testReadEvalPrint failures ' id '6c1e99dd-56df-4aef-9264-fd56c876b39b' date '06/29/2014' time '15:17:56' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.199' message 'improve error reporting for ZnUnknownHttpMethod (tracking an error during tests) ... fix test case logging for non-interactive tests' id '0f134a2d-6313-493b-8deb-1c226b49d575' date '06/29/2014' time '12:09:46' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.198' message 'significant work on Zinc logging... - add ZnObjectLogLogger to record ZnLogEvents in Object log - add ability to log errors for additional filter granularity in log. - install error event in the several(!) in Zinc client/server code where exceptions are silently ignored - exceptions logged as debug event along with hundreds of other non-exception based events) - use error event in ZnSingleThreadedServer>>logServerError: which also swallows errors ... returns an error response - Zinc tests refactored to: 1. turn on logging Transscript or ObjectLog depending upon whether tests are being run interactively or not 2. trace test running in object log to make it possible to correlate client/server log errors with the test being run.' id '8ac43d47-4a99-4b6e-b1b0-93920a37a2e1' date '06/29/2014' time '11:52:51' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.197' message '282 run, 281 passes, 0 expected defects, 1 failures, 0 errors, 0 unexpected passes' id '65c157ac-2eb1-48aa-b4be-bd6341c08bf6' date '06/28/2014' time '09:33:22' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.196' message 'checkpoint: 282 run, 280 passes, 0 expected defects, 1 failures, 1 errors, 0 unexpected passes' id 'e4364b0b-3b99-42ba-a31a-3152d0fa49c2' date '06/27/2014' time '22:25:36' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.195' message 'checkpoint: 282 run, 273 passes, 0 expected defects, 7 failures, 2 errors, 0 unexpected passes - down to mainly chunked stream and gzip failures' id '39c45e82-527b-4864-98bf-e4037d603fdf' date '06/27/2014' time '18:12:39' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.194' message '282 run, 269 passes, 0 expected defects, 11 failures, 2 errors, 0 unexpected passes - beef up server error handling - logic to bring up debugger when running interactively (clientForwarder defined for Transcript) - object log dumps ... no transactions at this point' id '1de648d8-a969-48c5-9fb4-b65138685b1a' date '06/27/2014' time '15:15:13' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.193' message 'Checkpoint: 282 run, 258 passes, 0 expected defects, 10 failures, 14 errors, 0 unexpected passes ' id '8929b685-0c23-4cfa-ac18-735f559d4dc4' date '06/25/2014' time '21:52:57' author 'dkh' ancestors ((name 'Zinc-Tests-JohanBrichau.192' message 'fix test (symbols vs strings)' id 'b093759e-ef69-403c-aa55-2ee742381e32' date '05/03/2014' time '00:09:40' author 'JohanBrichau' ancestors ((name 'Zinc-Tests-JohanBrichau.191' message 'porting code' id 'c6d6ecb4-b96e-47a9-adc2-851388598607' date '01/05/2014' time '15:28:09' author 'JohanBrichau' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.190' message 'Added WideString versions of text to ZnMessageBenchmark' id 'c1e4502b-794a-46a7-a3b6-94100f9e1a7e' date '06/11/2013' time '02:09:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.189' message 'Bugfix to ZnHeaders>>#extendHeaderAt:from: to deal with multiple multiline values; Bugfixes to ZnMultiPartFormDataEntity (content type should be wildcard matched against multipart/* and #parse:boundary: should deal with whitespace at the start) Added ZnMimePart>>#printOn: ' id '4e77f26e-68c0-4d82-8f90-d089aef98e48' date '06/11/2013' time '11:40:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.188' message 'Make ZnClientTests>>#testGetGeoIP depend on NeoJSONReader when present' id '56d8b509-07d9-4c7b-9d1e-d6fbe6c08ad8' date '06/07/2013' time '11:57:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.187' message 'Performance enhancement in ZnMessage/ZnEntity writing (more intelligent buffering, more intelligent encoding) Implemented #= and #hash for all Zn Core objects Tracking ZnMimeType>>#= and #match: changes Added new tests and benchmarks ' id '377c40a0-9cbd-4433-997d-93cdeb437d16' date '05/22/2013' time '04:34:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.186' message 'Added first version of ZnMessageBenchmark[Tests]' id '5861c260-ebf9-42f4-9e0f-acaf5395e5b8' date '05/21/2013' time '04:35:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.185' message 'Added ZnServerTests>>#testGzipCompressionAndChunking' id 'e97c4c57-c546-45d6-876c-adfca92afaa6' date '05/19/2013' time '09:26:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.184' message 'Added ZnEntityWriterTests>>#testChunkedOnly' id '1c2e3990-5089-4e0b-9a85-d544592facff' date '05/19/2013' time '11:50:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.183' message 'Introduction of ZnEntityWriter with support for gzip/chunked encoding' id 'b3707d53-800b-456c-8a5e-b139024561a1' date '05/18/2013' time '02:07:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.182' message 'Optimized ZnChunkedReadStream>>#upToEnd Added #testGzipWriteRead' id 'b1eda2c1-f2b4-4e53-8545-afb741dd9fd5' date '05/18/2013' time '12:43:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.181' message 'Added ZnChunkedWriteStream Reorganized ZnChunkedStreamTests' id '818a6bf4-04b0-457a-9c34-4281c2080fd3' date '05/17/2013' time '05:07:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.180' message 'Added ZnReadEvalPrintDelegate, a REPL Web Service.' id 'ff07fa3a-9047-4029-a12d-54d075cf1bf0' date '05/15/2013' time '10:47:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.179' message 'Added new ZnServerTests for exception handling in ZnMultiThreadedServer: parse errors while reading an incoming request should now result in a bad request response ' id 'ee8a4e7b-a063-408a-b0c8-7555b57df637' date '05/14/2013' time '01:43:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.178' message 'change ZnClientTests>>#testRedirect[DontFollow] target URL from http://www.pharo-project.org to http://zn.stfx.eu (pharo issue 10559) because CMSBox is blocking us.' id '6751bca5-b9b7-4cf5-b806-6e825ed69ea2' date '05/10/2013' time '11:57:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.177' message 'Added ZnClientTests>>#testPrepareRequest; Added ZnEntityTests>>#testApplicationUrlEncodingAddAll - Thanks Paul DeBruicker' id '0f8f6ee4-465c-47e5-8522-052c02719dfa' date '02/24/2013' time '11:11:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.176' message 'Extended ZnClient>>#url: to accept the new user info (username and password) component of ZnUrl when present; ZnRequestLine>>#uri: now explicitely calls #enforceKnownScheme' id '7f40708a-33c1-4cb3-8957-db6b23816cca' date '01/30/2013' time '07:45:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.175' message 'Bugfix to ZnApplicationFormUrlEncodedEntity>>#readFrom: which failed when content-length was not specified (Thx Jan van de Sandt); new ZnEntityTests for reading ZnApplicationFormUrlEncodedEntities' id '56565a63-15b0-4062-82d5-725800c11e85' date '01/25/2013' time '02:47:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.174' message 'added various tests for new API' id '92273dff-bb51-4b91-a526-0c5f39f9e4eb' date '01/07/2013' time '12:38:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.173' message 'added ZnServer #url related tests' id '2fe714c5-3735-4840-a6bb-7b109ccd1719' date '01/04/2013' time '02:25:42' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.172' message 'added ZnServerTests>>testSessionRoute' id '8d883407-840d-4a32-8221-e93758c504c4' date '12/31/2012' time '05:06:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.171' message 'added ZnServerTests>>#testSessionExpired' id '0cd35ccf-f6aa-4a57-a86d-ad4621d720ca' date '12/30/2012' time '02:30:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.170' message 'added ZnSingleThreadedServer>>#handleRequestProtected: with a general and global error handler that normally returns an HTTP server error unless the server is in #debugMode' id '8b0821ef-543e-474c-95ca-5d0b3ad0e996' date '12/23/2012' time '06:28:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.169' message 'creation of Zinc-Character-Encoding-[Core|Tests] by moving various classes out of Zinc-HTTP' id '9f5b3683-d8f5-4b90-8579-64122e43c77e' date '12/16/2012' time '05:03:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.168' message 'introduction and usage of ZnCharacterEncodingError exception; rewrote ZnBufferedReadStream>>#upToEnd and ZnCharacterReadStream>>#upToEnd' id '6abe4a1e-6817-496f-8d12-25d3cc45b6b3' date '12/16/2012' time '04:36:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.167' message 'modified ZnByteEncoder to use its own byte to Unicode mapping tables; this includes the change that latin1 is no longer mapped to a null encoder' id '0eb9296d-eab5-44d0-b056-9d50e41cadbc' date '12/15/2012' time '08:09:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.166' message 'finished the implementation of ZnBase64Encoder' id 'e7069358-51b5-41f6-97ad-bebec08081fd' date '12/15/2012' time '02:11:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.165' message 'fixed a typo' id 'c60a5352-b989-40eb-83fc-7f8ceb3fb886' date '12/13/2012' time '12:00:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.164' message 'added ZnPercentEncoderTests' id '8fdfc39b-196f-4615-982c-5f975b491b32' date '12/13/2012' time '11:32:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.163' message 'reworked/simplified some ZnClient internals - removed the state concept and instance variable - removed the #resetRequestIfNeeded concept and method; added ZnClient>>#resetEntity; added ZnClient>>#isCreated and #isNotFound note: this might make some semantic differences for people heavily reusing ZnClient instances added 4 new ZnClient unit tests related to cover these reuse semantics; changed #getAfterPost to use #resetEntity' id '8c8fd681-8f99-4e41-80e9-8789835051c1' date '12/12/2012' time '10:43:20' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.162' message 'moved HierarchicalUrl>>#asZnUrl from Zinc-Resource-Meta-Core back to Zinc-HTTP' id '56f3e92b-ba18-4caf-a0aa-46ea7c99de47' date '12/11/2012' time '10:24:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.161' message 'moving ZnUrl, ZnMimeType and related support classes to a new, independent package Zinc-Resource-Meta-Core (and unit tests to Zinc-Resource-Meta-Tests); extended ZnUrl to allow for some simple file:// URLs' id 'bfc5fbbc-c275-42b7-a0d6-6015dd8fdb07' date '12/08/2012' time '09:16:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.160' message 'added ZnBufferedReadStream (from STON); extended ZnBufferedWriteStream (with #next:putAll:startingAt: logic); added tests for these' id 'ef953fdd-26e4-4288-8f5f-8a539c1a418e' date '11/30/2012' time '11:00:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.159' message 'extended ZnServerTests>>#testEcho; added ZnServerTests>>#testSession' id '797384ef-7668-4ff3-99d5-f23b8a8a3ed3' date '11/11/2012' time '08:15:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MarcusDenker.158' message 'Issue 6745: Failing tests related to Zinc http://code.google.com/p/pharo/issues/detail?id=6745 Issue 6052: would be good that TestAsserter uses TAssertable http://code.google.com/p/pharo/issues/detail?id=6052' id '9db8a49d-105e-4382-a2f8-8a3e8704aba0' date '09/28/2012' time '01:34:59' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.157' message 'fix bogus String constants in ZnMagicCookie[Jar]Tests that held a now expired date by making the date dynamic ' id 'd7c893db-7635-4982-94c2-302e1651a99f' date '09/28/2012' time '12:48:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MarcusDenker.156' message 'Issue 6697: Zn+Zdc Update 2012-09-19 http://code.google.com/p/pharo/issues/detail?id=6697 Issue 6699: Share binding of metaclass methods http://code.google.com/p/pharo/issues/detail?id=6699 ' id 'a779cd3e-0816-4207-988b-31ddb71b2521' date '09/21/2012' time '01:50:14' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.155' message 'removal of all classes in Zinc-HTTP-Deprecated - ZnClientOld - ZnFixedClient - ZnExtendedFixedClient - ZnUserAgent - ZnHttpClient - ZnUserAgentSettings as well as all their unit test classes' id 'c712aa03-035b-4ffd-86db-3eb0dae65eb1' date '09/05/2012' time '01:59:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.154' message 'changed maximumEntitySize concept from a normal class variable on ZnConstants to a dynamic/process-specific variable ZnMaximumEntitySize; added the option #maximumEntitySize to ZnServer' id '679b7cbd-8de2-4fc9-b7a9-76df542e5315' date '09/05/2012' time '01:22:20' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.153' message '#includesSubString: becomes #includesSubstring:' id '7b911610-eec7-422d-a994-4f089c5f1f09' date '08/27/2012' time '09:44:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.152' message 'fixed an offset bug in ZnUtils>>#streamFrom:to: (thx again, Chris Bailey) added ZnUtilsTests>>#testStreaming[Non]BinaryWithoutSize' id 'cadd39cb-ff17-4405-a56e-718a6d5e7c24' date '08/03/2012' time '10:51:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.151' message 'added new ZnChunkedReadStreamTests>>#testReadingBuffered to validate various fixes to ZnChunkedReadStream>>#readInto:startingAt:count: (thx Chris Bailey for reporting the problem)' id '3da15e83-c0ca-4066-a496-71d91393db01' date '08/02/2012' time '11:27:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.150' message 'Changed ZnStreamingEntity>>#readFrom: to no longer switch to non-binary - this was wrong anyway since no encoding was used' id 'f2e201da-d33e-4f34-b000-ebc8a5f705b0' date '07/13/2012' time '08:31:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.149' message 'added tests for convenience protocol to ZnUrl: - #withPathSegment[s]: #/ - #withQuery: #? #&' id '073d89ad-3cc3-40b1-92a3-fbb045bba864' date '07/09/2012' time '04:39:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MarcusDenker.148' message 'Issue 6269: Zinc Kill last usages of mac.com domain http://code.google.com/p/pharo/issues/detail?id=6269 Issue 6267: Spec-Widget new version http://code.google.com/p/pharo/issues/detail?id=6267 Issue 6266: Adding a missing method on TextInputField http://code.google.com/p/pharo/issues/detail?id=6266 Issue 6263: Spec-Layout new version http://code.google.com/p/pharo/issues/detail?id=6263 Issue 6273: Fixing monticello mocks http://code.google.com/p/pharo/issues/detail?id=6273' id 'e5d9431a-de69-46da-92b7-0507bcaae82d' date '07/04/2012' time '11:01:31' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-MarcusDenker.147' message 'Issue 6259: DataStream is still there http://code.google.com/p/pharo/issues/detail?id=6259 Issue 6255: Zinc Pharo Conference update with FileSystem support http://code.google.com/p/pharo/issues/detail?id=6255 Issue 6223: FileLocator and FileRerernce have extension from File Package http://code.google.com/p/pharo/issues/detail?id=6223' id 'e8f91da3-98a4-4e7e-8468-b9e1ab8349d1' date '07/04/2012' time '04:16:31' author 'MarcusDenker' ancestors () stepChildren ())(name 'Zinc-Tests-SvenVanCaekenberghe.147' message 'kill the last usages of mac.com URLs' id '42774037-07c9-4c2d-b11a-00e957f286ba' date '07/04/2012' time '05:38:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.146' message 'introduction of the Zinc-FileSystem-Legacy package (including the new ZnFileSystemUtils class) to deal with pre/post FIleSystem introduction in Pharo 2.0 - this is the old code' id '2c2b99bc-5d6d-4aea-a49a-8c797685a71f' date '07/03/2012' time '01:49:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.145' message 'Replace now defunct references to http://homepage.mac.com/svc/Zinc-HTTP-Components/small.html with http://zn.stfx.eu/zn/small.html' id '6d633387-5bcc-422d-980c-b2e92f6bc08a' date '07/02/2012' time '03:33:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.144' message 'added tests for multiline/continuation header line parsing to ZnHeadersTests; added some ZnDigestAuthenticatorTests' id '5fd44833-78c7-4a88-9c52-d0f4b0737f76' date '05/22/2012' time '10:50:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.143' message 'replaced direct usage of ZnValueDelegate with indirect usage through the #onRequestRespond: method' id '9972b054-538c-4edc-9203-b0c82d0ef62b' date '05/14/2012' time '17:21:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.142' message 'added ZnStaticFileServerDelegateTests for - expiration - cache-control - if-modified-since, not-modified' id '9f8498a3-c576-4844-a0f5-bafc5c5cbeca' date '05/14/2012' time '11:11:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.141' message 'merged ZnUtils class>>#parseHttpDate: improvements by Sean DeNigris' id '13c0a808-d2be-4e91-a5ed-b7aea00412c1' date '05/10/2012' time '20:31:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SeanDeNigris.140' message 'Fix the HTTP date parsing to comply with the HTTP/1.1 standard. See discussion at http://forum.world.st/Parsing-HTTP-dates-td4623688.html' id 'ea4710db-8f89-4b77-bc48-c268f42d6961' date '05/10/2012' time '12:22:56' author 'SeanDeNigris' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.139' message 'added ZnClientTests>>#testUploadSmallDocument' id 'f3dd9dc9-b488-4211-8b1d-c61620c1cfb0' date '05/09/2012' time '09:58:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.138' message 'added ZnCharacterStreamTests' id '08fa8343-de91-467d-8fab-35b090b4443d' date '05/03/2012' time '22:16:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.137' message 'added #match: and #contents to ZnChunkedReadStream and ZnLimitedReadStream; added some convenience methods to ZnCharacterEncoder: #encodeString: #decodeBytes: and #encodedByteCountForString:' id '61f9a691-603d-4aee-892c-4fe74f0a7ee2' date '05/02/2012' time '16:44:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.136' message 'ZnClientTests>>#testDownloadSmallHTML follow switch from ZnClient>>#downloadToFileNamed: to ZnClient>>#downloadTo:' id 'b1c212b4-6b1c-45b1-88d1-5410f135de5e' date '04/26/2012' time '16:49:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.135' message 'added test for ZnClient>>#downloadToFileNamed: ' id '364763a4-b7d7-4d0e-b66b-7e117e9194f3' date '04/25/2012' time '21:21:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.134' message 'timezone offsets should be Durations' id '26cfd348-8c5f-49ef-879b-45eeb8b41a23' date '04/23/2012' time '15:42:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-PaulDeBruicker.133' message 'Added tests for the ZnResponse>>#isError method I added to Zn' id '237a106b-ccbd-4183-8aaf-27439ebd5c98' date '04/19/2012' time '05:03:29' author 'PaulDeBruicker' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.132' message 'renamed ZnServer>>#interface[:] to ZnServer>>#bindingAddress[:] following a suggestion by Norbert Hartl, Thx!' id 'a8ccf290-5116-475d-88c7-eb635daf6fe4' date '04/13/2012' time '13:21:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.131' message 'added technology to allow entities to be read binary even when they are textual, thus disabling Zn''s normal decoding behavior; this is what Seaside expects (as Seaside does its own conversions); added ZnEntityReader>>#[is]Binary; added ZnMessage[class]>>#readBinaryFrom: added ZnEntity class>>#readBinaryFrom:usingType:andLength: added ZnSingleThreadedServer>>#reader[:] to allow customizing entity reading' id '80c5b50f-d5d8-455e-9b21-c581f6ca84b7' date '04/07/2012' time '18:30:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.130' message 'rewrote all tests that use ZnServer to use #withServerDo: and/or a randomized port (between 1701 and 1710) to mitigate problems when running 2 Zn test suits concurrently on the same machine' id '7ba47490-c194-44a8-9252-f5a99246cd54' date '03/12/2012' time '22:26:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.129' message 'added the option to restrict ZnServers to only listen on a specific interface; added Zn[SingleThreaded]Server>>interface[:]; added ZnNetworkingUtils [class]>>#serverSocketOn:interface added ZnServerTests>>#testEchoLocalInterface' id '7d187299-518a-4f64-b855-d602b48fcc02' date '03/12/2012' time '19:52:33' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.128' message 'added some extra API to ZnMimeType to manipulate parameters and charSets' id '89affdf2-4eb5-4f15-8ff3-7b994c4e91b9' date '03/06/2012' time '11:11:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.127' message 'added 2 cookie related tests' id '3fdb3447-f066-4fa1-b5bd-58abcff73cfa' date '03/04/2012' time '23:21:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MarcusDenker.126' message 'Issue 5299: Yet another Zn update http://code.google.com/p/pharo/issues/detail?id=5299' id '1f3a4aa8-996f-4162-b79a-0ff3fab1918f' date '02/17/2012' time '15:13:18' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-StephaneDucasse.123' message '- Issue 5157: Finder > Class > right-click > Hierarchy opens not on Class but on FinderClassNode. Tx Benjamin van Ryseghem. http://code.google.com/p/pharo/issues/detail?id=5157 - Issue 5151: Recategorization of PanelMorph. Thanks Benjamin van Ryseghem. There is no useless cleans. Even small steps are cool and important. http://code.google.com/p/pharo/issues/detail?id=5151 - Issue 5154: It would be great to have a setting to allow the Debugger to open centered and be 3/4 of screen. Thanks Alain Plantec. http://code.google.com/p/pharo/issues/detail?id=5154 - Issue 5148: LimitNumberOfEntriesInZnMultiValueDictionary. Thanks Sven van Caekenberghe. http://code.google.com/p/pharo/issues/detail?id=5148 ' id 'a7f69ceb-4c9b-40c3-abe1-5cc680f4886b' date '01/07/2012' time '19:13:43' author 'StephaneDucasse' ancestors ((name 'Zinc-Tests-ZincUpdate.122' message '- Issue 5127: Zinc update http://code.google.com/p/pharo/issues/detail?id=5127 - last bit of Issue 4688: progress bar disappears on image save http://code.google.com/p/pharo/issues/detail?id=4688' id '54546963-f9f6-42ab-a1d8-3d4fb9f878d9' date '12/25/2011' time '23:02:04' author 'ZincUpdate' ancestors ((name 'Zinc-Tests-StephaneDucasse.121' message '- Issue 5117: MNU: Transcripter class>>open. Thanks vpnbecmann. http://code.google.com/p/pharo/issues/detail?id=5117 - Issue 5122: ZnUpdate-Dec-20. Thanks sven van caekenberghe. http://code.google.com/p/pharo/issues/detail?id=5120' id '3cf2343f-1556-4ae0-ae03-26f2afc23899' date '12/25/2011' time '11:47:57' author 'StephaneDucasse' ancestors ((name 'Zinc-Tests-MarcusDenker.119' message 'Issue 5063: Zinc uses default encoding of utf-8 when encoding url safe encoded strings http://code.google.com/p/pharo/issues/detail?id=5063' id '7827ec5e-187b-4488-8d60-dba014f52080' date '12/09/2011' time '13:18:03' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-MarcusDenker.116' message 'Issue 4998: ContextPart>>#runUntilErrorOrReturnFrom: (for testing) http://code.google.com/p/pharo/issues/detail?id=4998 Issue 4994: Two failing test in ProcessTest http://code.google.com/p/pharo/issues/detail?id=4994 Issue 5014: zn updates http://code.google.com/p/pharo/issues/detail?id=5014' id '20189c38-b14d-4878-a8a3-3c104ad67b78' date '11/25/2011' time '16:03:30' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-StephaneDucasse.115' message 'ZnTests now :)' id '71d09a5d-c10e-412e-b9e2-2db68cbc2ac5' date '11/19/2011' time '10:18:54' author 'StephaneDucasse' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Zinc-Tests-SvenVanCaekenberghe.125' message 'fixed the implementation of ZnLimitedReadStream to honor EOF on the underlying stream' id 'd40a9a35-5bd7-446d-b3e5-f707426a281b' date '01/31/2012' time '20:58:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.124' message 'introduction of a resource limit to the size of entities read from a stream; added ZnConstants class>>#maximumEntitySize[:] added ZnEntityTooLarge resumable exception ' id '2277a62b-e817-4f08-822d-f1e6846921a7' date '01/31/2012' time '14:04:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.123' message 'added ZnUrl>>#retrieveContents convenience method tests' id 'd6917a3f-397c-4c35-8f24-52222a7a047d' date '01/24/2012' time '12:01:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.122' message 'added ZnLineReaderTests>>#testLineTooLongDefault and ZnMultiValueDictionary>>#testTooManyEntries' id '41edccdf-4322-41c3-b06c-2b8dca3d9ce3' date '01/03/2012' time '15:44:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.121' message 'added ZnServerTests>>#testDefault to test the new semantics of ZnServer class>>#startDefaultOn:' id 'c1396284-0787-4c42-bedd-fb6ae918c68d' date '12/22/2011' time '12:56:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.120' message 'added ZnClientTests>>#testProgressNoIfFail' id 'b438f907-dd03-4735-b093-620cfb10f738' date '12/20/2011' time '14:27:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.119' message 'added some ZnUrl tests' id 'a3dd71d9-325a-4470-a454-31db977215e9' date '12/13/2011' time '14:20:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.118' message 'added ZnMimeTypeTests>>testCopying to test whether the ''constants'' returned by the class side convenience methods of ZnMimeType can be freely modified; modified ZnMimeType>>#testDefault and #testIdentity to not longer assume the ''constants'' returned by the class side convenience methods of ZnMimeType are #==' id 'ce3f20f9-22d1-4b52-afe0-9c3a04813224' date '12/06/2011' time '20:58:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-NorbertHartl.117' message 'second commit. Last time I added the test to an old version. Redid for newest version: added two tests to check encoding handling of ZnApplicationFormUrlEncodedEntity when writing representation' id '4971e3f3-ba21-46ab-8674-560d00dfe751' date '12/06/2011' time '18:35:28' author 'NorbertHartl' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.116' message 'added tests for ZnChunkedReadStream>>#next: and the new ZnChunkedReadStream>>#next:into: ' id '53fe3bee-246a-4668-b88d-7ad66a840d80' date '12/03/2011' time '17:52:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.115' message 'added ZnClientTests>>#testRedirectDontFollow to test the new #followsRedirects boolean option to ZnClient, including under the case of #enforceHttpSuccess: true' id 'eb8c67e4-bdf2-4741-b149-78bdaf5d4970' date '11/23/2011' time '17:31:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.114' message 'renamed ZnNeoClientTests -> ZnClientTests' id '709cd18e-4550-4b4f-ac0f-755c9d923271' date '11/08/2011' time '22:34:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.113' message 'renamed ZnClientTests -> ZnClientOldTests' id '61688dd0-20a0-4ac5-9ea9-27262f3ea53d' date '11/08/2011' time '22:15:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.112' message 'added ZnNeoClientTests>>#testGetSmallHTMLStreaming' id 'a097c21c-05df-480d-8afe-e8f5fee222a2' date '11/08/2011' time '21:07:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.109' message 'Following deprecation of instance creation (#new) of ZnFixedClient (and ZnExtendedFixedClient) and ZnUserAgent (and ZnHttpClient): kept all tests in ZnFixedClientTests, ZnUserAgentTests, ZnHttpClientTests and ZnCredentialsTests, but running under #ignoringDeprecation: ZnDispatcherTests now using ZnNeoClient directly' id '1da42667-075d-41cb-bbb0-94acd4038cb2' date '10/04/2011' time '14:25:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.108' message 'added basic ZnNeoClient>>#signalProgress support' id '37f5e20a-957a-40db-892a-722cd21ee1a5' date '10/04/2011' time '13:48:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.107' message 'made ZnClient deprecations proceedable and added a test for this behavior' id '016ea4f4-0161-4086-9422-8619a4ef0750' date '10/03/2011' time '14:44:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.106' message 'added ZnNeoClientTests>>#testGetAfterPost to test ZnNeoClient>>#resetRequestIfNeeded logic' id 'e7748414-dfa0-4ab8-8291-13e347971e78' date '09/23/2011' time '14:59:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.105' message 'extended ZnNeoClientTests>>#testRedirect with a resume of ZnTooManyRedirects' id 'f62dea54-3bc1-4b52-b1a2-3cbf8764afa3' date '09/19/2011' time '13:31:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.104' message 'added ZnNeoClient redirect tests' id 'c324d699-9454-4c3a-acd9-4d851de45ea9' date '09/19/2011' time '11:10:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.103' message 'added ZnNeoClient>>#setIfModifiedSince: and test' id '9d840776-d54a-46cb-9d7a-2223c92b5559' date '09/17/2011' time '20:43:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.102' message 'introducing ZnEasy to take over the class side functionality of ZnClient; ZnClient class side protocol being deprecated; renamed ZnClientTests to ZnEasyTests' id '65352f99-bcf8-45de-942b-d39f82882e34' date '09/15/2011' time '20:44:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.101' message 'patch the crippled ZnResponseTests>>#testSlashdotGzipChunked test even further; note: this really has to be rewritten altogether' id 'd7fedf37-3513-4106-b9d3-23e4c9e8e3bf' date '09/13/2011' time '22:20:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.100' message 'added tests for ZnUtils class>>#parseHttpDate: ' id '27156429-e7ca-4b20-b91d-479133d69751' date '09/13/2011' time '11:51:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.99' message 'added ZnNeoClientTests>>#testQueryGoogle' id '151e6ec9-94ac-45a8-b244-f4fc2731abc2' date '09/04/2011' time '19:59:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.98' message 'improved ZnNeoClientTests code a bit' id 'eaa2045b-0c32-4b32-882e-ab9051c0243b' date '08/31/2011' time '22:07:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.97' message 'added ZnNeoClientTests>>#testCookies; follow API changes related to cookies' id '946371f2-1bc4-40fa-b484-545baf59bcd6' date '08/30/2011' time '22:54:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.96' message 'now using the #contentReader option in ZnNeoClient>>#testGetGeoIP' id '6ead5c52-6b4d-4e30-9cc0-dddbc313a396' date '08/19/2011' time '17:29:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.95' message 'implemented ZnNeoClient>>#head ' id 'b3e73bcf-0d37-4e73-81d3-5c96251a8b63' date '08/18/2011' time '13:57:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.94' message 'extended ZnNeoClient with #ifFail:, #enforceHttpSuccess, #enforceAcceptContentType and retry behavior' id '9620aef4-bb7b-4f62-9e83-36c0fab74756' date '08/17/2011' time '21:43:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.93' message 'added ZnMimePart class>>#fieldName:entity: and #fieldName:fileNamed: added ZnNeoClient timeout option, more url building api, support for applicationFormUrlEncoded and multiPartFormData encoded entities for post/put' id 'ad46ba6d-e503-4ca7-a440-5328e3cc1bc3' date '08/17/2011' time '14:25:20' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.92' message 'added ZnNeoClient>>#testGetGeoIP' id '9d9c4ca4-4520-42d2-891f-bbd5ecbfc0a8' date '08/12/2011' time '14:10:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.91' message 'added ZnNeoClientTests' id 'ae555b6a-c685-4316-adb5-a74bf82d1428' date '08/12/2011' time '13:52:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.90' message 'added various tests to ZnUrlTests related to default scheme/port issues' id '21395d2e-5782-496e-a4e9-8296befc55c5' date '08/11/2011' time '15:30:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-DamienPollet.89' message 'Fix typo in exception names.' id 'bb1698f3-5db3-4191-b078-50d52d3ab887' date '08/04/2011' time '14:22:33' author 'DamienPollet' ancestors ((name 'Zinc-Tests-StephaneDucasse.88' message '- Issue 4520: Zinc update http://code.google.com/p/pharo/issues/detail?id=4520 ZnDefaultServerDelegate>>#echoRequest: added option to delay the response to /echo with a specified number of seconds, as in echo?delay=60 added ZnSingleThreadedServer>>#onRequestRespond: convenience method implemented client side support for If-Modified-Since and Not Modified: - added ZnRequest>>#setIfModifiedSince: - refactored ZnMessage>>#readFrom to call #readEntityFrom: - overwritten ZnResponse>>#readEntityFrom: to take special no content response into account - extended ZnUtils class>>#httpDate: to accept any argument that understands #asTimeStamp ' id 'bb7a5fd9-7179-4fd1-b667-bcca7461b347' date '07/14/2011' time '12:20:38' author 'StephaneDucasse' ancestors ((name 'Zinc-Tests-StephaneDucasse.85' message '- Update Zinc fixing support for HTTP proxies (thanks Alexandre Bergel for reporting this) requests to localhost are excluding from being proxied - ZnRequestLine>>#writeOn: now outputs absolute URLs when proxying - added ZnNetWorkingUtils class #isProxySet #shouldProxyUrl: and #httpProxy - added ZnUrl>>#isLocalHost - changed ZnUrl>>#host: to lowerCase its argument. - Fix methodClass - Issue 4237: Few fix for Settings. Thanks Benjamin van Ryseghem. - Issue 4235: Selection update. Thanks Benjamin van Ryseghem.' id '84becf3d-e476-48be-902e-90e2c51805b4' date '05/16/2011' time '19:05:29' author 'StephaneDucasse' ancestors ((name 'Zinc-Tests-StephaneDucasse.78' message '- Issue 4130: Zinc should be added to core. Thanks sven van caekenberghe.' id '230e4d43-b504-43f5-a2d3-461e6c28ac02' date '05/12/2011' time '18:52:00' author 'StephaneDucasse' ancestors () stepChildren ())) stepChildren ())(name 'Zinc-Tests-SvenVanCaekenberghe.87' message 'added ZnClientTests>>#testTimeout to test the correct working of ZnConnectionTimeout' id 'd1f2d440-8420-4b11-84ec-d79bdc48e16b' date '07/14/2011' time '09:55:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.86' message 'improved some test code' id '29572b64-6b2e-4dbc-b62f-a1f77f2a8748' date '06/28/2011' time '11:23:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.85' message 'added ZnFixedClientTests>>#testIfModifiedSinceNotModified' id '07998dae-f824-4bd3-a9a6-06f0dcf5a305' date '06/28/2011' time '11:05:52' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.84' message 'added ZnUrlTests>>#testLocalHost' id '7cf44874-99c6-43b8-949e-74ae2d94d2b2' date '05/13/2011' time '14:14:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-NickAger.83' message 'tests updated to reflect cookie refactoring in Zinc-HTTP-NickAger.158' id '3e8391dd-bdbe-4fbe-8e08-98fe89387c59' date '05/10/2011' time '11:40:10' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.82' message 'refactored ZnResponse tests to use new ZnStatusLine creation constants' id '164025a5-c6c8-4e89-be63-963fdc41b226' date '05/10/2011' time '09:14:28' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.81' message 'added ZnResponseTests>>#testCookie' id 'a8baa8f0-6812-4091-a6d2-fc5e29e503a8' date '05/10/2011' time '08:38:35' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.80' message 'added tests for: Request cookie accessor Response cookie setter' id 'ce58e3e6-2e8c-4864-a7bd-ad60199fb2ba' date '05/10/2011' time '02:53:56' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.79' message 'renamed the test method in ZnDispatcherDelegateTest' id '64636642-57e3-4468-8f86-806f5fe5e9ea' date '05/09/2011' time '21:50:01' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.78' message 'added test for ZnDispatcherDelegate' id '7d72bd6f-a8fe-47a2-b5c2-784f196a6806' date '05/09/2011' time '21:46:13' author 'NickAger' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.77' message 'rewrote ZnHTTPSocketFacade class>>#entendURL:withArguments: to be compatible with HTTPSocket class>>#argString: (Thanks Esteban Lorenzano); added ZnSocketFacadeTests>>#testExtendUrlWithArgs' id '367e5a56-7e1a-4387-a3af-298cd651e876' date '04/30/2011' time '20:56:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.76' message 'small fix to ZnUrl>>#printPathOn: to deal with cases where forward slashes are encoded in URLs (Thanks, Jan van de Sandt for pointing this out); added ZnUrlTests>>#testEncodedSlash to cover these cases' id '0013f47d-6076-4d1d-a64e-0f29049dd527' date '04/17/2011' time '10:33:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.75' message 'attempt to make ZnLogSupportTests>>#testLogEvent a bit less silly (take higher resolution clocks into account)' id '54c6a29b-3155-46f9-a6ac-495af44a98f8' date '04/13/2011' time '00:24:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-PaulDeBruicker.74' message 'For portability to Gemstone I changed the declaration of ByteArrays from x:=#[98 99]. to x:=#(98 99) asByteArray and Unicode characters from x:=Unicode value: 16r00A2. to x:= 16r00A2 asCharacter. Now the same set of tests load and run safely in Gemstone and Pharo' id '2fc28b34-8196-4cdb-8aac-7029109b4e6f' date '04/10/2011' time '11:15:09' author 'PaulDeBruicker' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.73' message 'added ZnLogSupportTests for minimal testing of the new logging framework' id 'a2b7de93-f7ac-437e-bd43-ea9b32528adb' date '03/29/2011' time '16:50:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.72' message 'bugfix: it turns out that String>>#base64Encoded introduces newlines which we definitively do not want when doing Basic HTTP Encoding for example; introduced ZnUtils class>>#encodeBase64: to do the right thing and invoke Base64MimeConvertor with the #mimeEncode: multiLine: false; replaced all usages (added a #decodeBase64: for orthogonality); added a unit test to catch this ' id 'd922fbf4-127c-44c5-ac37-64e0e6397487' date '03/21/2011' time '20:50:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.71' message 'introduced ZnUnknownScheme exception' id '466c6bd3-e4b7-4cac-acc3-873cd1abd256' date '03/18/2011' time '13:32:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.70' message 'added multiple tests for ZnParseError hiearchy ' id 'd27b7580-5689-4262-9992-415b57e4e3c6' date '02/28/2011' time '16:00:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.69' message 'added to ZnLimitedReadStreamTests and ZnEntityReaderTests so that implemented ZnLimitedReadStream>>#next:into: has coverage' id '7d38a658-e074-43a9-9041-16050de2decc' date '02/21/2011' time '23:33:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.68' message 'changed the Pharo URL to http://www.pharo-project.org' id '66a414d0-c398-489f-b43a-0e8a4cc7374c' date '01/31/2011' time '13:59:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.67' message 'modified ZnEntityTests>>#testMultiPartFormDataWriteRead to test for proper content length behavior' id '18c512c0-687e-419f-9d59-7f08b9c22031' date '01/27/2011' time '17:18:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.66' message 'added ZnCharacterEncoderTests>>#testLatin2Encoder' id 'd2818b21-daca-4ebc-a624-2dbe1fc325dd' date '01/25/2011' time '13:49:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.65' message 'added ZnUserAgent & ZnHttpClient #testRelativeRedirect tests' id '137f30b0-2c23-4613-ac81-07be5650356c' date '01/14/2011' time '22:04:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.64' message 'tracking API changes; added ZnMultiValueDictionaryTests' id '822ad9e0-fdca-4c5c-8508-336ce44da1ea' date '01/12/2011' time '14:04:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.63' message 'split of ZnNetworkingUtils from ZnUtils to separate related functionality (Thx S.Ducasses)' id '64f22bc9-32f7-4cb4-8e38-ba7ff4013c12' date '01/07/2011' time '19:53:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.62' message 'introduced #asZnMimeType on ZnMimeType, MIMEType & String to replace ZnUtils class>>#asMimeType: which was removed' id '1ef05e59-9f86-41b2-ab10-9a8787168d3b' date '01/04/2011' time '20:04:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.61' message 'massive migration from builtin Url to ZnUrl; added asZnUrl to String and Url ' id 'c469756f-c232-4f60-8720-75ec3ea4db3f' date '01/04/2011' time '15:34:33' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.60' message 'first version of ZnUrlTests class' id 'f8383a39-97fb-4d91-ab22-7c4294f177b4' date '01/04/2011' time '12:23:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.59' message 'switched to the idiom "self assert: server isRunning & server isListening" to test for a running / responsive server in unit tests' id '8f6cb988-82fb-40a6-8d25-48f1908eba95' date '12/15/2010' time '21:45:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.58' message 'fixed a bug in ZnStringEntity encoder initialization; removed Transcript printing from ZnCredentialTests and ZnUserAgentTests' id '236c9006-952a-48f9-b69a-f02512688d59' date '12/14/2010' time '12:24:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.57' message 'ZnDefaultServerDelegate now generates the Unicode test page so we can delete ZnUnicodeTestServerDelegate' id 'fd1141a1-2056-48e5-81a6-e84f2f254d4e' date '12/10/2010' time '15:55:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.56' message 'added experimental ZnBufferWriteStreamTests' id '42334358-1af8-4f29-a658-4afdc51f2b09' date '12/08/2010' time '10:22:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.55' message 'some more comment improvements' id 'be04ece0-6dfd-427a-bf2b-2af8b4424e43' date '12/07/2010' time '15:23:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.54' message 'renamed ZnMagicCookie[Jar] to ZnCookie[Jar]' id '4894f9a3-97fc-4860-8894-7c1d0cb5e2cc' date '12/07/2010' time '00:02:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.53' message 'renamed category of all tests from ''Zinc-Tests-New'' to ''Zinc-Tests''' id 'cb19cbc7-b0c1-464a-ae28-d18aa227edf6' date '12/06/2010' time '21:38:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.52' message 'removed all Zinc-Tests-Old categorized classes from the Zinc-Test package (these will be moved to a new MC package called ''Zinc-Old'')' id '4b6e5436-8c56-4a42-8601-357e7a6639d1' date '12/06/2010' time '17:28:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.51' message 'added ZnClientTests>>#testPostUnicodeUtf8' id '55aaa0b5-e2a5-43e1-bd5a-5d7aaa0d394f' date '12/06/2010' time '15:17:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.50' message 'renamed class ZnNewStringEntity to ZnStringEntity' id '08896c90-59c8-42e6-b5d4-56f1fd290b21' date '12/06/2010' time '13:50:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.49' message 'added ZnServerTests>>testGetUnicodeUtf8' id 'f1246875-dadc-4c73-af8a-1cd42e266504' date '12/06/2010' time '13:13:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.48' message 'large changeset: switch from ZnStringEntity to ZnNewStringEntity, now using binary socket streams on server, all with the goal of proper UTF-8 support; added various tests for binary reading/writing and for tracking protocol/api changes ' id '40094644-090b-4431-ac51-6deaca8fe30c' date '12/04/2010' time '14:17:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.47' message 'replace all direct references to ZnStringEntity and ZnByteArrayEntity with ZnEntity facade invocations ' id '58f7acc6-2ab5-40c7-b5fc-c09497f9434e' date '12/03/2010' time '14:08:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.46' message 'added some tests to ZnMimeTypeTests and ZnEntityTests for UTF-8 encoding' id '40b0fe72-bb8e-4346-ab92-c65c3dda2ca2' date '12/02/2010' time '13:51:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.45' message 'added ZnCharacterEncodingTests>>#testUTF8EncoderAuto' id 'b018cb8e-29f5-4aa0-8aec-17b26b968377' date '11/30/2010' time '13:50:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.44' message 'introduction of ZnCharacterEncoderTests' id 'bd6db570-c0cd-444a-8a51-9534201d3185' date '11/30/2010' time '12:28:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.43' message 'added ZnUnicodeTestServerDelegate (not yet in units tests)' id '8e9b6cef-d243-43c3-9ea5-517b54c1089a' date '10/20/2010' time '10:41:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MattKennedy.42' message 'Added ZnHttpClientTests>>testGetMultParam for coverage of ZnHttpClient>>parameterAt:add:' id 'a4c74476-3361-422a-8425-37464bf5b8e5' date '10/05/2010' time '17:40:11' author 'MattKennedy' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.41' message 'added elementary test for ZnMultiPartFormDataEntity and ZnMimePart' id 'c829d4b3-3ff7-46e0-9787-94460133ef95' date '10/05/2010' time '20:34:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MattKennedy.40' message 'Added ZnHttpClientTests' id 'af1a7ffc-c4a7-4c84-979a-0563cc60833a' date '10/01/2010' time '22:32:21' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.39' message 'Modified ZnCredentialTests Digest authentication tests to answer clearly if MD5 support is absent. Squeak 4.1 default image is missing the methods HTTPSocket uses for MD5, so not sure if it''s there out of the box.' id '3ad9ef4f-3551-4fa8-adad-ee219534c69b' date '10/01/2010' time '05:47:36' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.38' message 'Added test cases for ZnCredentialTests for erroneous credentials. Test case in ZnUserAgent for error handler.' id '8285ba9e-2eaf-4eaa-85c5-f40376db3644' date '10/01/2010' time '14:45:51' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.37' message 'Added ZnCredentialTests>>testZnServerBasicAuthRealm to test custom realm names in server authenticator. Modified ZnCredentialTests>>testDigestAuthorization to use ZnServer now with ZnDigestAuthenticator.' id 'eeff8920-9775-47e2-95ac-fac88443cdd4' date '09/30/2010' time '17:38:01' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.36' message 'Removed stray inspect sender from ZnCredentialTests>>testDigestAuthorization' id '48fdd73c-85be-476d-a74d-4548ccd40890' date '09/30/2010' time '12:29:53' author 'MattKennedy' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.35' message 'tracking API changes for basic authentication' id 'bcb08816-6c72-45b1-84f8-4c893556fdc5' date '09/30/2010' time '16:35:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MattKennedy.34' message 'Added ZnCredentialTests>>testDigestAuthorization. Requires an external web server URL to call to in order to work at present.' id 'ea944c4a-b1b5-45a4-995f-04c70d58b5b8' date '09/29/2010' time '17:19:35' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.33' message 'Added ZnCredentialsTests.' id '929d376a-4fb4-4c24-88fa-bc6272eeb0bf' date '09/29/2010' time '00:57:38' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.32' message 'Added ZnMagicCookieTests, ZnMagicCookieJarTests, ZnUserAgentSessionTests, and ZnUserAgentSettingsTest Added ZnUserAgentTests>>testCookieAt.' id '16f451aa-8b83-47d1-9db4-6887b5aa3aba' date '09/28/2010' time '16:40:15' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.31' message 'Added ZnUserAgentTests>>testFollowRedirect' id '561fdc97-0599-4a00-871d-46522f3e7253' date '09/28/2010' time '13:57:41' author 'MattKennedy' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.30' message 'apparently Slashdot.org is not always chunked/gzip encoded, too bad' id 'dd8e5fe4-059a-4f8e-815b-1c3111c9215b' date '09/28/2010' time '16:01:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.29' message 'added a simple test for ZnFixedClient' id '371b1c05-bea0-40ec-bd07-c2e4da5100a8' date '09/28/2010' time '14:24:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.28' message 'Merging Matt Kenedy''s code: Added ZnUserAgentTests' id 'a50cc91b-c235-4762-b0bb-2560f604e36f' date '09/27/2010' time '23:37:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MattKennedy.27' message 'Added ZnUserAgentTests' id '09d2df49-71c2-48e0-a56a-fa0e6f74bd4b' date '09/27/2010' time '15:11:11' author 'MattKennedy' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.26' message 'added tests for ZnLimitedReadStream, ZnChunkedReadStream and ZnLineReader; added functional test ZnResponseTests>>#testSlashdotGzipChunked ' id '72a36bfb-859a-4b5d-b0fb-7728800f168e' date '09/27/2010' time '19:57:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.25' message 'added ZnEntityReader tests #testChunked and #testChunkedWithExtraHeaders' id '7250940a-d71a-4783-b55d-b4f2a57f11c5' date '09/26/2010' time '20:11:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.24' message 'introduction of ZnEntityReader helper object; added some more operations to ZnFixedClient; some API cleanup' id 'a6469ddc-386c-4e3b-9c18-fd55df11db9c' date '09/25/2010' time '23:15:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.23' message 'added some elementary ZnRequest reading tests' id 'd16e9c4f-5628-490a-b692-616f907d312f' date '09/25/2010' time '23:14:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.22' message 'added basic ZnClient PUT, POST & HEAD methods' id 'da53c39e-2566-4bd1-9f44-4e232d54b48e' date '09/21/2010' time '13:00:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.21' message 'Renamed category with old code to Zinc-Test-Old' id '7048013c-a76b-475b-ad43-349299dddb50' date '09/19/2010' time '18:45:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.20' message 'following some Lint advice' id '57d98003-f5c0-4a16-b385-2484086dbe67' date '09/17/2010' time '16:15:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.19' message 'improved test coverage: added tests to ZnUtilsTests, ZnResponseTests and ZnMimeTypeTests; renamed ZnHTTPMethodTests to ZnOldHTTPMethodTests ' id 'e2349506-4ce2-46fb-9969-9148325d6d65' date '09/17/2010' time '15:47:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.18' message 'fixing the test (thx http://hudson.lukas-renggli.ch/job/Zinc/ for catching this, it worked in my image)' id '65d1cb02-1463-4ed8-9f38-cfe92e124cef' date '09/16/2010' time '23:50:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.17' message 'added some asserts to ZnServerTests to catch the situation where the server port is not available.' id '29841272-e167-4858-973a-3d4bf4a3f266' date '09/16/2010' time '11:39:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.16' message 'ZnStatusLine and ZnRequestLine now handle their own crlf line ending (see #readFrom: and #writeTo:)' id '700d65a9-563e-43b2-b67b-dafc062ce473' date '09/15/2010' time '20:24:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.15' message 'fixed ZnMimeType parser dependency on Grease #trimBoth' id 'c6c44454-82e2-4e4a-92b2-af8a446611c4' date '09/15/2010' time '09:59:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.14' message 'fixing ZnHTTPSocketFacade>>#httpPut:to:user:passwd: semantics; added ZnMessage #head: #post and #put; added ZnHeaders>>#removeKey:[ifAbsent:] ; allowed for missing content-type when reading entities; enforcing content-length header to be string in #acceptEntityDescription: ' id 'b8cc69ee-4ee8-4669-b1c9-0ecc06974d8b' date '09/14/2010' time '15:12:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.13' message 'added ZnHTTPSocketFacade>>#testPut' id 'f60e0f04-bb28-4e28-9081-30d1488a510d' date '09/14/2010' time '15:08:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.12' message 'ZnHTTPSocketFacade: adjusting semantics ' id 'aad4ed72-9c44-4f33-b11f-85ab3c74fe74' date '09/14/2010' time '13:28:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.11' message 'first complete implementation of (new) ZnHTTPSocketFacade (incomplete tests)' id '0e442350-2cef-483d-93ed-77f7e3c85f53' date '09/13/2010' time '22:31:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.10' message 'added support for server side basic authentication' id '3483f716-801a-4c1d-acae-dd2a02bd2940' date '09/13/2010' time '13:55:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.9' message 'added support for client side basic authentication' id '0181a1a0-a07e-42dd-8d81-dbf6c5fc89e2' date '09/12/2010' time '20:35:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.8' message 'added some tests related to entities and query parsing' id '4b2806bd-c3cf-41a0-b14e-35acb7467533' date '09/12/2010' time '11:29:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.7' message 'added header name normalization; added optional multi-valued header values; added optional header value merging' id '753b4898-f9c4-4b17-928d-cd33702a92de' date '09/10/2010' time '21:06:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.6' message '1st primitive but working ZnServer' id 'b1a9a8ed-1955-4370-a88a-8e4eacaea787' date '09/08/2010' time '11:06:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.5' message 'ZnClient #get: and #getJpeg: now work for normal situations' id '6a7d2dc3-b759-4b91-8581-7d03a7d32012' date '09/07/2010' time '20:04:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.4' message 'Started the Zinc-Tests-New category; not much to see yet' id 'd51b0a36-ae16-4b95-bcf2-50dbc0855a01' date '09/06/2010' time '23:06:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.3' message 'removed old bogus test; added 1st functional test' id '52a21560-c504-4466-aa7d-0264cd8a4265' date '09/01/2010' time '19:52:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.2' message 'Renamed HC HTTP Client to Zinc HTTP Components; Renamed all classes to use Zn namespace prefix' id '83eb4cfc-4a78-4e11-b8d5-29bccf1dd8ba' date '09/01/2010' time '19:14:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.1' message 'Renamed HC HTTP Client to Zinc HTTP Components; Renamed all classes to use Zn namespace prefix' id 'da047f84-cace-4fa8-971b-366c26046539' date '09/01/2010' time '17:29:46' author 'SvenVanCaekenberghe' 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 ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) 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 'Zinc-Tests-dkh.209' message 'Issue #58: conversion of ZnServerTests to support ZnGsServerTests ... support full range of ZnServer options in ZnGemServer' id '8ad85bc2-aab8-4b60-bdfb-678468e896ca' date '12/14/2014' time '08:13:36' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.208' message 'Issue #58: checkpoint (tests failing) expand use of GemServer to cover ZnServerTests with class ZNGsServerTests' id '967d3907-220f-400a-a789-8296f6cab690' date '12/13/2014' time '19:46:43' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.207' message 'Issue #53: barring any new sent but not implmented messages, this bug should be fixed .... of course Issue #61 and Issue #62 were opened to implement the missing behavior' id '62536bb2-3e29-4256-a0a8-d2f45d7463a7' date '11/17/2014' time '16:17:45' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.206' message 'checkpoint 2.4.5.2: 282 run, 269 passes, 2 expected defects, 0 failures, 11 errors, 0 unexpected passes' id '7c49b756-966a-4b3b-b5f3-88b8b2ed5ab1' date '06/29/2014' time '23:54:01' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.205' message 'tracing for 2.4 test failures' id 'f1d34817-a5c8-4d20-a747-b39bd980958c' date '06/29/2014' time '23:25:21' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.204' message 'client forwarder safe tests for interactive session' id '56e14dff-04bc-4f63-9290-809fc3288e64' date '06/29/2014' time '23:15:42' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.203' message 'let''s call ZnEntityWriterTests>>testGzippedAndChunked an expected failure... - doesn''t fail in 3.2, but it is a different data set - test does not exist in future versions of Zinc - small data sets for this test faile consistently ' id '8b1bc2b2-b8cd-4051-89ef-5e36bddcb973' date '06/29/2014' time '22:50:58' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.202' message 'Gzip implementation is not stable ... clearly not enough tests in base' id '5aec5408-0687-4cf7-b7ea-1d2b2ebfffe5' date '06/29/2014' time '21:40:58' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.201' message 'remove extra tracing code ... tests greeen for GemStone 3.2' id 'bfd93295-f82d-495b-b676-6fdd47d12eac' date '06/29/2014' time '15:48:17' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.200' message 'logging for travix ZnServerTests>>testReadEvalPrint failures ' id '6c1e99dd-56df-4aef-9264-fd56c876b39b' date '06/29/2014' time '15:17:56' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.199' message 'improve error reporting for ZnUnknownHttpMethod (tracking an error during tests) ... fix test case logging for non-interactive tests' id '0f134a2d-6313-493b-8deb-1c226b49d575' date '06/29/2014' time '12:09:46' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.198' message 'significant work on Zinc logging... - add ZnObjectLogLogger to record ZnLogEvents in Object log - add ability to log errors for additional filter granularity in log. - install error event in the several(!) in Zinc client/server code where exceptions are silently ignored - exceptions logged as debug event along with hundreds of other non-exception based events) - use error event in ZnSingleThreadedServer>>logServerError: which also swallows errors ... returns an error response - Zinc tests refactored to: 1. turn on logging Transscript or ObjectLog depending upon whether tests are being run interactively or not 2. trace test running in object log to make it possible to correlate client/server log errors with the test being run.' id '8ac43d47-4a99-4b6e-b1b0-93920a37a2e1' date '06/29/2014' time '11:52:51' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.197' message '282 run, 281 passes, 0 expected defects, 1 failures, 0 errors, 0 unexpected passes' id '65c157ac-2eb1-48aa-b4be-bd6341c08bf6' date '06/28/2014' time '09:33:22' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.196' message 'checkpoint: 282 run, 280 passes, 0 expected defects, 1 failures, 1 errors, 0 unexpected passes' id 'e4364b0b-3b99-42ba-a31a-3152d0fa49c2' date '06/27/2014' time '22:25:36' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.195' message 'checkpoint: 282 run, 273 passes, 0 expected defects, 7 failures, 2 errors, 0 unexpected passes - down to mainly chunked stream and gzip failures' id '39c45e82-527b-4864-98bf-e4037d603fdf' date '06/27/2014' time '18:12:39' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.194' message '282 run, 269 passes, 0 expected defects, 11 failures, 2 errors, 0 unexpected passes - beef up server error handling - logic to bring up debugger when running interactively (clientForwarder defined for Transcript) - object log dumps ... no transactions at this point' id '1de648d8-a969-48c5-9fb4-b65138685b1a' date '06/27/2014' time '15:15:13' author 'dkh' ancestors ((name 'Zinc-Tests-dkh.193' message 'Checkpoint: 282 run, 258 passes, 0 expected defects, 10 failures, 14 errors, 0 unexpected passes ' id '8929b685-0c23-4cfa-ac18-735f559d4dc4' date '06/25/2014' time '21:52:57' author 'dkh' ancestors ((name 'Zinc-Tests-JohanBrichau.192' message 'fix test (symbols vs strings)' id 'b093759e-ef69-403c-aa55-2ee742381e32' date '05/03/2014' time '00:09:40' author 'JohanBrichau' ancestors ((name 'Zinc-Tests-JohanBrichau.191' message 'porting code' id 'c6d6ecb4-b96e-47a9-adc2-851388598607' date '01/05/2014' time '15:28:09' author 'JohanBrichau' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.190' message 'Added WideString versions of text to ZnMessageBenchmark' id 'c1e4502b-794a-46a7-a3b6-94100f9e1a7e' date '06/11/2013' time '02:09:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.189' message 'Bugfix to ZnHeaders>>#extendHeaderAt:from: to deal with multiple multiline values; Bugfixes to ZnMultiPartFormDataEntity (content type should be wildcard matched against multipart/* and #parse:boundary: should deal with whitespace at the start) Added ZnMimePart>>#printOn: ' id '4e77f26e-68c0-4d82-8f90-d089aef98e48' date '06/11/2013' time '11:40:34' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.188' message 'Make ZnClientTests>>#testGetGeoIP depend on NeoJSONReader when present' id '56d8b509-07d9-4c7b-9d1e-d6fbe6c08ad8' date '06/07/2013' time '11:57:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.187' message 'Performance enhancement in ZnMessage/ZnEntity writing (more intelligent buffering, more intelligent encoding) Implemented #= and #hash for all Zn Core objects Tracking ZnMimeType>>#= and #match: changes Added new tests and benchmarks ' id '377c40a0-9cbd-4433-997d-93cdeb437d16' date '05/22/2013' time '04:34:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.186' message 'Added first version of ZnMessageBenchmark[Tests]' id '5861c260-ebf9-42f4-9e0f-acaf5395e5b8' date '05/21/2013' time '04:35:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.185' message 'Added ZnServerTests>>#testGzipCompressionAndChunking' id 'e97c4c57-c546-45d6-876c-adfca92afaa6' date '05/19/2013' time '09:26:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.184' message 'Added ZnEntityWriterTests>>#testChunkedOnly' id '1c2e3990-5089-4e0b-9a85-d544592facff' date '05/19/2013' time '11:50:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.183' message 'Introduction of ZnEntityWriter with support for gzip/chunked encoding' id 'b3707d53-800b-456c-8a5e-b139024561a1' date '05/18/2013' time '02:07:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.182' message 'Optimized ZnChunkedReadStream>>#upToEnd Added #testGzipWriteRead' id 'b1eda2c1-f2b4-4e53-8545-afb741dd9fd5' date '05/18/2013' time '12:43:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.181' message 'Added ZnChunkedWriteStream Reorganized ZnChunkedStreamTests' id '818a6bf4-04b0-457a-9c34-4281c2080fd3' date '05/17/2013' time '05:07:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.180' message 'Added ZnReadEvalPrintDelegate, a REPL Web Service.' id 'ff07fa3a-9047-4029-a12d-54d075cf1bf0' date '05/15/2013' time '10:47:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.179' message 'Added new ZnServerTests for exception handling in ZnMultiThreadedServer: parse errors while reading an incoming request should now result in a bad request response ' id 'ee8a4e7b-a063-408a-b0c8-7555b57df637' date '05/14/2013' time '01:43:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.178' message 'change ZnClientTests>>#testRedirect[DontFollow] target URL from http://www.pharo-project.org to http://zn.stfx.eu (pharo issue 10559) because CMSBox is blocking us.' id '6751bca5-b9b7-4cf5-b806-6e825ed69ea2' date '05/10/2013' time '11:57:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.177' message 'Added ZnClientTests>>#testPrepareRequest; Added ZnEntityTests>>#testApplicationUrlEncodingAddAll - Thanks Paul DeBruicker' id '0f8f6ee4-465c-47e5-8522-052c02719dfa' date '02/24/2013' time '11:11:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.176' message 'Extended ZnClient>>#url: to accept the new user info (username and password) component of ZnUrl when present; ZnRequestLine>>#uri: now explicitely calls #enforceKnownScheme' id '7f40708a-33c1-4cb3-8957-db6b23816cca' date '01/30/2013' time '07:45:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.175' message 'Bugfix to ZnApplicationFormUrlEncodedEntity>>#readFrom: which failed when content-length was not specified (Thx Jan van de Sandt); new ZnEntityTests for reading ZnApplicationFormUrlEncodedEntities' id '56565a63-15b0-4062-82d5-725800c11e85' date '01/25/2013' time '02:47:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.174' message 'added various tests for new API' id '92273dff-bb51-4b91-a526-0c5f39f9e4eb' date '01/07/2013' time '12:38:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.173' message 'added ZnServer #url related tests' id '2fe714c5-3735-4840-a6bb-7b109ccd1719' date '01/04/2013' time '02:25:42' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.172' message 'added ZnServerTests>>testSessionRoute' id '8d883407-840d-4a32-8221-e93758c504c4' date '12/31/2012' time '05:06:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.171' message 'added ZnServerTests>>#testSessionExpired' id '0cd35ccf-f6aa-4a57-a86d-ad4621d720ca' date '12/30/2012' time '02:30:04' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.170' message 'added ZnSingleThreadedServer>>#handleRequestProtected: with a general and global error handler that normally returns an HTTP server error unless the server is in #debugMode' id '8b0821ef-543e-474c-95ca-5d0b3ad0e996' date '12/23/2012' time '06:28:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.169' message 'creation of Zinc-Character-Encoding-[Core|Tests] by moving various classes out of Zinc-HTTP' id '9f5b3683-d8f5-4b90-8579-64122e43c77e' date '12/16/2012' time '05:03:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.168' message 'introduction and usage of ZnCharacterEncodingError exception; rewrote ZnBufferedReadStream>>#upToEnd and ZnCharacterReadStream>>#upToEnd' id '6abe4a1e-6817-496f-8d12-25d3cc45b6b3' date '12/16/2012' time '04:36:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.167' message 'modified ZnByteEncoder to use its own byte to Unicode mapping tables; this includes the change that latin1 is no longer mapped to a null encoder' id '0eb9296d-eab5-44d0-b056-9d50e41cadbc' date '12/15/2012' time '08:09:56' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.166' message 'finished the implementation of ZnBase64Encoder' id 'e7069358-51b5-41f6-97ad-bebec08081fd' date '12/15/2012' time '02:11:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.165' message 'fixed a typo' id 'c60a5352-b989-40eb-83fc-7f8ceb3fb886' date '12/13/2012' time '12:00:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.164' message 'added ZnPercentEncoderTests' id '8fdfc39b-196f-4615-982c-5f975b491b32' date '12/13/2012' time '11:32:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.163' message 'reworked/simplified some ZnClient internals - removed the state concept and instance variable - removed the #resetRequestIfNeeded concept and method; added ZnClient>>#resetEntity; added ZnClient>>#isCreated and #isNotFound note: this might make some semantic differences for people heavily reusing ZnClient instances added 4 new ZnClient unit tests related to cover these reuse semantics; changed #getAfterPost to use #resetEntity' id '8c8fd681-8f99-4e41-80e9-8789835051c1' date '12/12/2012' time '10:43:20' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.162' message 'moved HierarchicalUrl>>#asZnUrl from Zinc-Resource-Meta-Core back to Zinc-HTTP' id '56f3e92b-ba18-4caf-a0aa-46ea7c99de47' date '12/11/2012' time '10:24:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.161' message 'moving ZnUrl, ZnMimeType and related support classes to a new, independent package Zinc-Resource-Meta-Core (and unit tests to Zinc-Resource-Meta-Tests); extended ZnUrl to allow for some simple file:// URLs' id 'bfc5fbbc-c275-42b7-a0d6-6015dd8fdb07' date '12/08/2012' time '09:16:06' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.160' message 'added ZnBufferedReadStream (from STON); extended ZnBufferedWriteStream (with #next:putAll:startingAt: logic); added tests for these' id 'ef953fdd-26e4-4288-8f5f-8a539c1a418e' date '11/30/2012' time '11:00:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.159' message 'extended ZnServerTests>>#testEcho; added ZnServerTests>>#testSession' id '797384ef-7668-4ff3-99d5-f23b8a8a3ed3' date '11/11/2012' time '08:15:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MarcusDenker.158' message 'Issue 6745: Failing tests related to Zinc http://code.google.com/p/pharo/issues/detail?id=6745 Issue 6052: would be good that TestAsserter uses TAssertable http://code.google.com/p/pharo/issues/detail?id=6052' id '9db8a49d-105e-4382-a2f8-8a3e8704aba0' date '09/28/2012' time '01:34:59' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.157' message 'fix bogus String constants in ZnMagicCookie[Jar]Tests that held a now expired date by making the date dynamic ' id 'd7c893db-7635-4982-94c2-302e1651a99f' date '09/28/2012' time '12:48:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MarcusDenker.156' message 'Issue 6697: Zn+Zdc Update 2012-09-19 http://code.google.com/p/pharo/issues/detail?id=6697 Issue 6699: Share binding of metaclass methods http://code.google.com/p/pharo/issues/detail?id=6699 ' id 'a779cd3e-0816-4207-988b-31ddb71b2521' date '09/21/2012' time '01:50:14' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.155' message 'removal of all classes in Zinc-HTTP-Deprecated - ZnClientOld - ZnFixedClient - ZnExtendedFixedClient - ZnUserAgent - ZnHttpClient - ZnUserAgentSettings as well as all their unit test classes' id 'c712aa03-035b-4ffd-86db-3eb0dae65eb1' date '09/05/2012' time '01:59:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.154' message 'changed maximumEntitySize concept from a normal class variable on ZnConstants to a dynamic/process-specific variable ZnMaximumEntitySize; added the option #maximumEntitySize to ZnServer' id '679b7cbd-8de2-4fc9-b7a9-76df542e5315' date '09/05/2012' time '01:22:20' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.153' message '#includesSubString: becomes #includesSubstring:' id '7b911610-eec7-422d-a994-4f089c5f1f09' date '08/27/2012' time '09:44:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.152' message 'fixed an offset bug in ZnUtils>>#streamFrom:to: (thx again, Chris Bailey) added ZnUtilsTests>>#testStreaming[Non]BinaryWithoutSize' id 'cadd39cb-ff17-4405-a56e-718a6d5e7c24' date '08/03/2012' time '10:51:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.151' message 'added new ZnChunkedReadStreamTests>>#testReadingBuffered to validate various fixes to ZnChunkedReadStream>>#readInto:startingAt:count: (thx Chris Bailey for reporting the problem)' id '3da15e83-c0ca-4066-a496-71d91393db01' date '08/02/2012' time '11:27:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.150' message 'Changed ZnStreamingEntity>>#readFrom: to no longer switch to non-binary - this was wrong anyway since no encoding was used' id 'f2e201da-d33e-4f34-b000-ebc8a5f705b0' date '07/13/2012' time '08:31:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.149' message 'added tests for convenience protocol to ZnUrl: - #withPathSegment[s]: #/ - #withQuery: #? #&' id '073d89ad-3cc3-40b1-92a3-fbb045bba864' date '07/09/2012' time '04:39:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MarcusDenker.148' message 'Issue 6269: Zinc Kill last usages of mac.com domain http://code.google.com/p/pharo/issues/detail?id=6269 Issue 6267: Spec-Widget new version http://code.google.com/p/pharo/issues/detail?id=6267 Issue 6266: Adding a missing method on TextInputField http://code.google.com/p/pharo/issues/detail?id=6266 Issue 6263: Spec-Layout new version http://code.google.com/p/pharo/issues/detail?id=6263 Issue 6273: Fixing monticello mocks http://code.google.com/p/pharo/issues/detail?id=6273' id 'e5d9431a-de69-46da-92b7-0507bcaae82d' date '07/04/2012' time '11:01:31' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-MarcusDenker.147' message 'Issue 6259: DataStream is still there http://code.google.com/p/pharo/issues/detail?id=6259 Issue 6255: Zinc Pharo Conference update with FileSystem support http://code.google.com/p/pharo/issues/detail?id=6255 Issue 6223: FileLocator and FileRerernce have extension from File Package http://code.google.com/p/pharo/issues/detail?id=6223' id 'e8f91da3-98a4-4e7e-8468-b9e1ab8349d1' date '07/04/2012' time '04:16:31' author 'MarcusDenker' ancestors () stepChildren ())(name 'Zinc-Tests-SvenVanCaekenberghe.147' message 'kill the last usages of mac.com URLs' id '42774037-07c9-4c2d-b11a-00e957f286ba' date '07/04/2012' time '05:38:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.146' message 'introduction of the Zinc-FileSystem-Legacy package (including the new ZnFileSystemUtils class) to deal with pre/post FIleSystem introduction in Pharo 2.0 - this is the old code' id '2c2b99bc-5d6d-4aea-a49a-8c797685a71f' date '07/03/2012' time '01:49:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.145' message 'Replace now defunct references to http://homepage.mac.com/svc/Zinc-HTTP-Components/small.html with http://zn.stfx.eu/zn/small.html' id '6d633387-5bcc-422d-980c-b2e92f6bc08a' date '07/02/2012' time '03:33:36' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.144' message 'added tests for multiline/continuation header line parsing to ZnHeadersTests; added some ZnDigestAuthenticatorTests' id '5fd44833-78c7-4a88-9c52-d0f4b0737f76' date '05/22/2012' time '10:50:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.143' message 'replaced direct usage of ZnValueDelegate with indirect usage through the #onRequestRespond: method' id '9972b054-538c-4edc-9203-b0c82d0ef62b' date '05/14/2012' time '17:21:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.142' message 'added ZnStaticFileServerDelegateTests for - expiration - cache-control - if-modified-since, not-modified' id '9f8498a3-c576-4844-a0f5-bafc5c5cbeca' date '05/14/2012' time '11:11:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.141' message 'merged ZnUtils class>>#parseHttpDate: improvements by Sean DeNigris' id '13c0a808-d2be-4e91-a5ed-b7aea00412c1' date '05/10/2012' time '20:31:37' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SeanDeNigris.140' message 'Fix the HTTP date parsing to comply with the HTTP/1.1 standard. See discussion at http://forum.world.st/Parsing-HTTP-dates-td4623688.html' id 'ea4710db-8f89-4b77-bc48-c268f42d6961' date '05/10/2012' time '12:22:56' author 'SeanDeNigris' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.139' message 'added ZnClientTests>>#testUploadSmallDocument' id 'f3dd9dc9-b488-4211-8b1d-c61620c1cfb0' date '05/09/2012' time '09:58:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.138' message 'added ZnCharacterStreamTests' id '08fa8343-de91-467d-8fab-35b090b4443d' date '05/03/2012' time '22:16:27' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.137' message 'added #match: and #contents to ZnChunkedReadStream and ZnLimitedReadStream; added some convenience methods to ZnCharacterEncoder: #encodeString: #decodeBytes: and #encodedByteCountForString:' id '61f9a691-603d-4aee-892c-4fe74f0a7ee2' date '05/02/2012' time '16:44:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.136' message 'ZnClientTests>>#testDownloadSmallHTML follow switch from ZnClient>>#downloadToFileNamed: to ZnClient>>#downloadTo:' id 'b1c212b4-6b1c-45b1-88d1-5410f135de5e' date '04/26/2012' time '16:49:07' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.135' message 'added test for ZnClient>>#downloadToFileNamed: ' id '364763a4-b7d7-4d0e-b66b-7e117e9194f3' date '04/25/2012' time '21:21:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.134' message 'timezone offsets should be Durations' id '26cfd348-8c5f-49ef-879b-45eeb8b41a23' date '04/23/2012' time '15:42:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-PaulDeBruicker.133' message 'Added tests for the ZnResponse>>#isError method I added to Zn' id '237a106b-ccbd-4183-8aaf-27439ebd5c98' date '04/19/2012' time '05:03:29' author 'PaulDeBruicker' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.132' message 'renamed ZnServer>>#interface[:] to ZnServer>>#bindingAddress[:] following a suggestion by Norbert Hartl, Thx!' id 'a8ccf290-5116-475d-88c7-eb635daf6fe4' date '04/13/2012' time '13:21:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.131' message 'added technology to allow entities to be read binary even when they are textual, thus disabling Zn''s normal decoding behavior; this is what Seaside expects (as Seaside does its own conversions); added ZnEntityReader>>#[is]Binary; added ZnMessage[class]>>#readBinaryFrom: added ZnEntity class>>#readBinaryFrom:usingType:andLength: added ZnSingleThreadedServer>>#reader[:] to allow customizing entity reading' id '80c5b50f-d5d8-455e-9b21-c581f6ca84b7' date '04/07/2012' time '18:30:35' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.130' message 'rewrote all tests that use ZnServer to use #withServerDo: and/or a randomized port (between 1701 and 1710) to mitigate problems when running 2 Zn test suits concurrently on the same machine' id '7ba47490-c194-44a8-9252-f5a99246cd54' date '03/12/2012' time '22:26:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.129' message 'added the option to restrict ZnServers to only listen on a specific interface; added Zn[SingleThreaded]Server>>interface[:]; added ZnNetworkingUtils [class]>>#serverSocketOn:interface added ZnServerTests>>#testEchoLocalInterface' id '7d187299-518a-4f64-b855-d602b48fcc02' date '03/12/2012' time '19:52:33' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.128' message 'added some extra API to ZnMimeType to manipulate parameters and charSets' id '89affdf2-4eb5-4f15-8ff3-7b994c4e91b9' date '03/06/2012' time '11:11:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.127' message 'added 2 cookie related tests' id '3fdb3447-f066-4fa1-b5bd-58abcff73cfa' date '03/04/2012' time '23:21:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MarcusDenker.126' message 'Issue 5299: Yet another Zn update http://code.google.com/p/pharo/issues/detail?id=5299' id '1f3a4aa8-996f-4162-b79a-0ff3fab1918f' date '02/17/2012' time '15:13:18' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-StephaneDucasse.123' message '- Issue 5157: Finder > Class > right-click > Hierarchy opens not on Class but on FinderClassNode. Tx Benjamin van Ryseghem. http://code.google.com/p/pharo/issues/detail?id=5157 - Issue 5151: Recategorization of PanelMorph. Thanks Benjamin van Ryseghem. There is no useless cleans. Even small steps are cool and important. http://code.google.com/p/pharo/issues/detail?id=5151 - Issue 5154: It would be great to have a setting to allow the Debugger to open centered and be 3/4 of screen. Thanks Alain Plantec. http://code.google.com/p/pharo/issues/detail?id=5154 - Issue 5148: LimitNumberOfEntriesInZnMultiValueDictionary. Thanks Sven van Caekenberghe. http://code.google.com/p/pharo/issues/detail?id=5148 ' id 'a7f69ceb-4c9b-40c3-abe1-5cc680f4886b' date '01/07/2012' time '19:13:43' author 'StephaneDucasse' ancestors ((name 'Zinc-Tests-ZincUpdate.122' message '- Issue 5127: Zinc update http://code.google.com/p/pharo/issues/detail?id=5127 - last bit of Issue 4688: progress bar disappears on image save http://code.google.com/p/pharo/issues/detail?id=4688' id '54546963-f9f6-42ab-a1d8-3d4fb9f878d9' date '12/25/2011' time '23:02:04' author 'ZincUpdate' ancestors ((name 'Zinc-Tests-StephaneDucasse.121' message '- Issue 5117: MNU: Transcripter class>>open. Thanks vpnbecmann. http://code.google.com/p/pharo/issues/detail?id=5117 - Issue 5122: ZnUpdate-Dec-20. Thanks sven van caekenberghe. http://code.google.com/p/pharo/issues/detail?id=5120' id '3cf2343f-1556-4ae0-ae03-26f2afc23899' date '12/25/2011' time '11:47:57' author 'StephaneDucasse' ancestors ((name 'Zinc-Tests-MarcusDenker.119' message 'Issue 5063: Zinc uses default encoding of utf-8 when encoding url safe encoded strings http://code.google.com/p/pharo/issues/detail?id=5063' id '7827ec5e-187b-4488-8d60-dba014f52080' date '12/09/2011' time '13:18:03' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-MarcusDenker.116' message 'Issue 4998: ContextPart>>#runUntilErrorOrReturnFrom: (for testing) http://code.google.com/p/pharo/issues/detail?id=4998 Issue 4994: Two failing test in ProcessTest http://code.google.com/p/pharo/issues/detail?id=4994 Issue 5014: zn updates http://code.google.com/p/pharo/issues/detail?id=5014' id '20189c38-b14d-4878-a8a3-3c104ad67b78' date '11/25/2011' time '16:03:30' author 'MarcusDenker' ancestors ((name 'Zinc-Tests-StephaneDucasse.115' message 'ZnTests now :)' id '71d09a5d-c10e-412e-b9e2-2db68cbc2ac5' date '11/19/2011' time '10:18:54' author 'StephaneDucasse' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Zinc-Tests-SvenVanCaekenberghe.125' message 'fixed the implementation of ZnLimitedReadStream to honor EOF on the underlying stream' id 'd40a9a35-5bd7-446d-b3e5-f707426a281b' date '01/31/2012' time '20:58:00' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.124' message 'introduction of a resource limit to the size of entities read from a stream; added ZnConstants class>>#maximumEntitySize[:] added ZnEntityTooLarge resumable exception ' id '2277a62b-e817-4f08-822d-f1e6846921a7' date '01/31/2012' time '14:04:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.123' message 'added ZnUrl>>#retrieveContents convenience method tests' id 'd6917a3f-397c-4c35-8f24-52222a7a047d' date '01/24/2012' time '12:01:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.122' message 'added ZnLineReaderTests>>#testLineTooLongDefault and ZnMultiValueDictionary>>#testTooManyEntries' id '41edccdf-4322-41c3-b06c-2b8dca3d9ce3' date '01/03/2012' time '15:44:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.121' message 'added ZnServerTests>>#testDefault to test the new semantics of ZnServer class>>#startDefaultOn:' id 'c1396284-0787-4c42-bedd-fb6ae918c68d' date '12/22/2011' time '12:56:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.120' message 'added ZnClientTests>>#testProgressNoIfFail' id 'b438f907-dd03-4735-b093-620cfb10f738' date '12/20/2011' time '14:27:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.119' message 'added some ZnUrl tests' id 'a3dd71d9-325a-4470-a454-31db977215e9' date '12/13/2011' time '14:20:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.118' message 'added ZnMimeTypeTests>>testCopying to test whether the ''constants'' returned by the class side convenience methods of ZnMimeType can be freely modified; modified ZnMimeType>>#testDefault and #testIdentity to not longer assume the ''constants'' returned by the class side convenience methods of ZnMimeType are #==' id 'ce3f20f9-22d1-4b52-afe0-9c3a04813224' date '12/06/2011' time '20:58:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-NorbertHartl.117' message 'second commit. Last time I added the test to an old version. Redid for newest version: added two tests to check encoding handling of ZnApplicationFormUrlEncodedEntity when writing representation' id '4971e3f3-ba21-46ab-8674-560d00dfe751' date '12/06/2011' time '18:35:28' author 'NorbertHartl' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.116' message 'added tests for ZnChunkedReadStream>>#next: and the new ZnChunkedReadStream>>#next:into: ' id '53fe3bee-246a-4668-b88d-7ad66a840d80' date '12/03/2011' time '17:52:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.115' message 'added ZnClientTests>>#testRedirectDontFollow to test the new #followsRedirects boolean option to ZnClient, including under the case of #enforceHttpSuccess: true' id 'eb8c67e4-bdf2-4741-b149-78bdaf5d4970' date '11/23/2011' time '17:31:22' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.114' message 'renamed ZnNeoClientTests -> ZnClientTests' id '709cd18e-4550-4b4f-ac0f-755c9d923271' date '11/08/2011' time '22:34:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.113' message 'renamed ZnClientTests -> ZnClientOldTests' id '61688dd0-20a0-4ac5-9ea9-27262f3ea53d' date '11/08/2011' time '22:15:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.112' message 'added ZnNeoClientTests>>#testGetSmallHTMLStreaming' id 'a097c21c-05df-480d-8afe-e8f5fee222a2' date '11/08/2011' time '21:07:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.109' message 'Following deprecation of instance creation (#new) of ZnFixedClient (and ZnExtendedFixedClient) and ZnUserAgent (and ZnHttpClient): kept all tests in ZnFixedClientTests, ZnUserAgentTests, ZnHttpClientTests and ZnCredentialsTests, but running under #ignoringDeprecation: ZnDispatcherTests now using ZnNeoClient directly' id '1da42667-075d-41cb-bbb0-94acd4038cb2' date '10/04/2011' time '14:25:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.108' message 'added basic ZnNeoClient>>#signalProgress support' id '37f5e20a-957a-40db-892a-722cd21ee1a5' date '10/04/2011' time '13:48:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.107' message 'made ZnClient deprecations proceedable and added a test for this behavior' id '016ea4f4-0161-4086-9422-8619a4ef0750' date '10/03/2011' time '14:44:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.106' message 'added ZnNeoClientTests>>#testGetAfterPost to test ZnNeoClient>>#resetRequestIfNeeded logic' id 'e7748414-dfa0-4ab8-8291-13e347971e78' date '09/23/2011' time '14:59:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.105' message 'extended ZnNeoClientTests>>#testRedirect with a resume of ZnTooManyRedirects' id 'f62dea54-3bc1-4b52-b1a2-3cbf8764afa3' date '09/19/2011' time '13:31:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.104' message 'added ZnNeoClient redirect tests' id 'c324d699-9454-4c3a-acd9-4d851de45ea9' date '09/19/2011' time '11:10:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.103' message 'added ZnNeoClient>>#setIfModifiedSince: and test' id '9d840776-d54a-46cb-9d7a-2223c92b5559' date '09/17/2011' time '20:43:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.102' message 'introducing ZnEasy to take over the class side functionality of ZnClient; ZnClient class side protocol being deprecated; renamed ZnClientTests to ZnEasyTests' id '65352f99-bcf8-45de-942b-d39f82882e34' date '09/15/2011' time '20:44:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.101' message 'patch the crippled ZnResponseTests>>#testSlashdotGzipChunked test even further; note: this really has to be rewritten altogether' id 'd7fedf37-3513-4106-b9d3-23e4c9e8e3bf' date '09/13/2011' time '22:20:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.100' message 'added tests for ZnUtils class>>#parseHttpDate: ' id '27156429-e7ca-4b20-b91d-479133d69751' date '09/13/2011' time '11:51:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.99' message 'added ZnNeoClientTests>>#testQueryGoogle' id '151e6ec9-94ac-45a8-b244-f4fc2731abc2' date '09/04/2011' time '19:59:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.98' message 'improved ZnNeoClientTests code a bit' id 'eaa2045b-0c32-4b32-882e-ab9051c0243b' date '08/31/2011' time '22:07:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.97' message 'added ZnNeoClientTests>>#testCookies; follow API changes related to cookies' id '946371f2-1bc4-40fa-b484-545baf59bcd6' date '08/30/2011' time '22:54:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.96' message 'now using the #contentReader option in ZnNeoClient>>#testGetGeoIP' id '6ead5c52-6b4d-4e30-9cc0-dddbc313a396' date '08/19/2011' time '17:29:21' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.95' message 'implemented ZnNeoClient>>#head ' id 'b3e73bcf-0d37-4e73-81d3-5c96251a8b63' date '08/18/2011' time '13:57:45' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.94' message 'extended ZnNeoClient with #ifFail:, #enforceHttpSuccess, #enforceAcceptContentType and retry behavior' id '9620aef4-bb7b-4f62-9e83-36c0fab74756' date '08/17/2011' time '21:43:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.93' message 'added ZnMimePart class>>#fieldName:entity: and #fieldName:fileNamed: added ZnNeoClient timeout option, more url building api, support for applicationFormUrlEncoded and multiPartFormData encoded entities for post/put' id 'ad46ba6d-e503-4ca7-a440-5328e3cc1bc3' date '08/17/2011' time '14:25:20' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.92' message 'added ZnNeoClient>>#testGetGeoIP' id '9d9c4ca4-4520-42d2-891f-bbd5ecbfc0a8' date '08/12/2011' time '14:10:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.91' message 'added ZnNeoClientTests' id 'ae555b6a-c685-4316-adb5-a74bf82d1428' date '08/12/2011' time '13:52:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.90' message 'added various tests to ZnUrlTests related to default scheme/port issues' id '21395d2e-5782-496e-a4e9-8296befc55c5' date '08/11/2011' time '15:30:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-DamienPollet.89' message 'Fix typo in exception names.' id 'bb1698f3-5db3-4191-b078-50d52d3ab887' date '08/04/2011' time '14:22:33' author 'DamienPollet' ancestors ((name 'Zinc-Tests-StephaneDucasse.88' message '- Issue 4520: Zinc update http://code.google.com/p/pharo/issues/detail?id=4520 ZnDefaultServerDelegate>>#echoRequest: added option to delay the response to /echo with a specified number of seconds, as in echo?delay=60 added ZnSingleThreadedServer>>#onRequestRespond: convenience method implemented client side support for If-Modified-Since and Not Modified: - added ZnRequest>>#setIfModifiedSince: - refactored ZnMessage>>#readFrom to call #readEntityFrom: - overwritten ZnResponse>>#readEntityFrom: to take special no content response into account - extended ZnUtils class>>#httpDate: to accept any argument that understands #asTimeStamp ' id 'bb7a5fd9-7179-4fd1-b667-bcca7461b347' date '07/14/2011' time '12:20:38' author 'StephaneDucasse' ancestors ((name 'Zinc-Tests-StephaneDucasse.85' message '- Update Zinc fixing support for HTTP proxies (thanks Alexandre Bergel for reporting this) requests to localhost are excluding from being proxied - ZnRequestLine>>#writeOn: now outputs absolute URLs when proxying - added ZnNetWorkingUtils class #isProxySet #shouldProxyUrl: and #httpProxy - added ZnUrl>>#isLocalHost - changed ZnUrl>>#host: to lowerCase its argument. - Fix methodClass - Issue 4237: Few fix for Settings. Thanks Benjamin van Ryseghem. - Issue 4235: Selection update. Thanks Benjamin van Ryseghem.' id '84becf3d-e476-48be-902e-90e2c51805b4' date '05/16/2011' time '19:05:29' author 'StephaneDucasse' ancestors ((name 'Zinc-Tests-StephaneDucasse.78' message '- Issue 4130: Zinc should be added to core. Thanks sven van caekenberghe.' id '230e4d43-b504-43f5-a2d3-461e6c28ac02' date '05/12/2011' time '18:52:00' author 'StephaneDucasse' ancestors () stepChildren ())) stepChildren ())(name 'Zinc-Tests-SvenVanCaekenberghe.87' message 'added ZnClientTests>>#testTimeout to test the correct working of ZnConnectionTimeout' id 'd1f2d440-8420-4b11-84ec-d79bdc48e16b' date '07/14/2011' time '09:55:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.86' message 'improved some test code' id '29572b64-6b2e-4dbc-b62f-a1f77f2a8748' date '06/28/2011' time '11:23:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.85' message 'added ZnFixedClientTests>>#testIfModifiedSinceNotModified' id '07998dae-f824-4bd3-a9a6-06f0dcf5a305' date '06/28/2011' time '11:05:52' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.84' message 'added ZnUrlTests>>#testLocalHost' id '7cf44874-99c6-43b8-949e-74ae2d94d2b2' date '05/13/2011' time '14:14:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-NickAger.83' message 'tests updated to reflect cookie refactoring in Zinc-HTTP-NickAger.158' id '3e8391dd-bdbe-4fbe-8e08-98fe89387c59' date '05/10/2011' time '11:40:10' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.82' message 'refactored ZnResponse tests to use new ZnStatusLine creation constants' id '164025a5-c6c8-4e89-be63-963fdc41b226' date '05/10/2011' time '09:14:28' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.81' message 'added ZnResponseTests>>#testCookie' id 'a8baa8f0-6812-4091-a6d2-fc5e29e503a8' date '05/10/2011' time '08:38:35' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.80' message 'added tests for: Request cookie accessor Response cookie setter' id 'ce58e3e6-2e8c-4864-a7bd-ad60199fb2ba' date '05/10/2011' time '02:53:56' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.79' message 'renamed the test method in ZnDispatcherDelegateTest' id '64636642-57e3-4468-8f86-806f5fe5e9ea' date '05/09/2011' time '21:50:01' author 'NickAger' ancestors ((name 'Zinc-Tests-NickAger.78' message 'added test for ZnDispatcherDelegate' id '7d72bd6f-a8fe-47a2-b5c2-784f196a6806' date '05/09/2011' time '21:46:13' author 'NickAger' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.77' message 'rewrote ZnHTTPSocketFacade class>>#entendURL:withArguments: to be compatible with HTTPSocket class>>#argString: (Thanks Esteban Lorenzano); added ZnSocketFacadeTests>>#testExtendUrlWithArgs' id '367e5a56-7e1a-4387-a3af-298cd651e876' date '04/30/2011' time '20:56:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.76' message 'small fix to ZnUrl>>#printPathOn: to deal with cases where forward slashes are encoded in URLs (Thanks, Jan van de Sandt for pointing this out); added ZnUrlTests>>#testEncodedSlash to cover these cases' id '0013f47d-6076-4d1d-a64e-0f29049dd527' date '04/17/2011' time '10:33:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.75' message 'attempt to make ZnLogSupportTests>>#testLogEvent a bit less silly (take higher resolution clocks into account)' id '54c6a29b-3155-46f9-a6ac-495af44a98f8' date '04/13/2011' time '00:24:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-PaulDeBruicker.74' message 'For portability to Gemstone I changed the declaration of ByteArrays from x:=#[98 99]. to x:=#(98 99) asByteArray and Unicode characters from x:=Unicode value: 16r00A2. to x:= 16r00A2 asCharacter. Now the same set of tests load and run safely in Gemstone and Pharo' id '2fc28b34-8196-4cdb-8aac-7029109b4e6f' date '04/10/2011' time '11:15:09' author 'PaulDeBruicker' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.73' message 'added ZnLogSupportTests for minimal testing of the new logging framework' id 'a2b7de93-f7ac-437e-bd43-ea9b32528adb' date '03/29/2011' time '16:50:53' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.72' message 'bugfix: it turns out that String>>#base64Encoded introduces newlines which we definitively do not want when doing Basic HTTP Encoding for example; introduced ZnUtils class>>#encodeBase64: to do the right thing and invoke Base64MimeConvertor with the #mimeEncode: multiLine: false; replaced all usages (added a #decodeBase64: for orthogonality); added a unit test to catch this ' id 'd922fbf4-127c-44c5-ac37-64e0e6397487' date '03/21/2011' time '20:50:58' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.71' message 'introduced ZnUnknownScheme exception' id '466c6bd3-e4b7-4cac-acc3-873cd1abd256' date '03/18/2011' time '13:32:01' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.70' message 'added multiple tests for ZnParseError hiearchy ' id 'd27b7580-5689-4262-9992-415b57e4e3c6' date '02/28/2011' time '16:00:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.69' message 'added to ZnLimitedReadStreamTests and ZnEntityReaderTests so that implemented ZnLimitedReadStream>>#next:into: has coverage' id '7d38a658-e074-43a9-9041-16050de2decc' date '02/21/2011' time '23:33:19' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.68' message 'changed the Pharo URL to http://www.pharo-project.org' id '66a414d0-c398-489f-b43a-0e8a4cc7374c' date '01/31/2011' time '13:59:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.67' message 'modified ZnEntityTests>>#testMultiPartFormDataWriteRead to test for proper content length behavior' id '18c512c0-687e-419f-9d59-7f08b9c22031' date '01/27/2011' time '17:18:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.66' message 'added ZnCharacterEncoderTests>>#testLatin2Encoder' id 'd2818b21-daca-4ebc-a624-2dbe1fc325dd' date '01/25/2011' time '13:49:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.65' message 'added ZnUserAgent & ZnHttpClient #testRelativeRedirect tests' id '137f30b0-2c23-4613-ac81-07be5650356c' date '01/14/2011' time '22:04:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.64' message 'tracking API changes; added ZnMultiValueDictionaryTests' id '822ad9e0-fdca-4c5c-8508-336ce44da1ea' date '01/12/2011' time '14:04:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.63' message 'split of ZnNetworkingUtils from ZnUtils to separate related functionality (Thx S.Ducasses)' id '64f22bc9-32f7-4cb4-8e38-ba7ff4013c12' date '01/07/2011' time '19:53:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.62' message 'introduced #asZnMimeType on ZnMimeType, MIMEType & String to replace ZnUtils class>>#asMimeType: which was removed' id '1ef05e59-9f86-41b2-ab10-9a8787168d3b' date '01/04/2011' time '20:04:59' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.61' message 'massive migration from builtin Url to ZnUrl; added asZnUrl to String and Url ' id 'c469756f-c232-4f60-8720-75ec3ea4db3f' date '01/04/2011' time '15:34:33' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.60' message 'first version of ZnUrlTests class' id 'f8383a39-97fb-4d91-ab22-7c4294f177b4' date '01/04/2011' time '12:23:12' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.59' message 'switched to the idiom "self assert: server isRunning & server isListening" to test for a running / responsive server in unit tests' id '8f6cb988-82fb-40a6-8d25-48f1908eba95' date '12/15/2010' time '21:45:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.58' message 'fixed a bug in ZnStringEntity encoder initialization; removed Transcript printing from ZnCredentialTests and ZnUserAgentTests' id '236c9006-952a-48f9-b69a-f02512688d59' date '12/14/2010' time '12:24:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.57' message 'ZnDefaultServerDelegate now generates the Unicode test page so we can delete ZnUnicodeTestServerDelegate' id 'fd1141a1-2056-48e5-81a6-e84f2f254d4e' date '12/10/2010' time '15:55:15' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.56' message 'added experimental ZnBufferWriteStreamTests' id '42334358-1af8-4f29-a658-4afdc51f2b09' date '12/08/2010' time '10:22:11' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.55' message 'some more comment improvements' id 'be04ece0-6dfd-427a-bf2b-2af8b4424e43' date '12/07/2010' time '15:23:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.54' message 'renamed ZnMagicCookie[Jar] to ZnCookie[Jar]' id '4894f9a3-97fc-4860-8894-7c1d0cb5e2cc' date '12/07/2010' time '00:02:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.53' message 'renamed category of all tests from ''Zinc-Tests-New'' to ''Zinc-Tests''' id 'cb19cbc7-b0c1-464a-ae28-d18aa227edf6' date '12/06/2010' time '21:38:17' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.52' message 'removed all Zinc-Tests-Old categorized classes from the Zinc-Test package (these will be moved to a new MC package called ''Zinc-Old'')' id '4b6e5436-8c56-4a42-8601-357e7a6639d1' date '12/06/2010' time '17:28:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.51' message 'added ZnClientTests>>#testPostUnicodeUtf8' id '55aaa0b5-e2a5-43e1-bd5a-5d7aaa0d394f' date '12/06/2010' time '15:17:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.50' message 'renamed class ZnNewStringEntity to ZnStringEntity' id '08896c90-59c8-42e6-b5d4-56f1fd290b21' date '12/06/2010' time '13:50:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.49' message 'added ZnServerTests>>testGetUnicodeUtf8' id 'f1246875-dadc-4c73-af8a-1cd42e266504' date '12/06/2010' time '13:13:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.48' message 'large changeset: switch from ZnStringEntity to ZnNewStringEntity, now using binary socket streams on server, all with the goal of proper UTF-8 support; added various tests for binary reading/writing and for tracking protocol/api changes ' id '40094644-090b-4431-ac51-6deaca8fe30c' date '12/04/2010' time '14:17:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.47' message 'replace all direct references to ZnStringEntity and ZnByteArrayEntity with ZnEntity facade invocations ' id '58f7acc6-2ab5-40c7-b5fc-c09497f9434e' date '12/03/2010' time '14:08:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.46' message 'added some tests to ZnMimeTypeTests and ZnEntityTests for UTF-8 encoding' id '40b0fe72-bb8e-4346-ab92-c65c3dda2ca2' date '12/02/2010' time '13:51:41' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.45' message 'added ZnCharacterEncodingTests>>#testUTF8EncoderAuto' id 'b018cb8e-29f5-4aa0-8aec-17b26b968377' date '11/30/2010' time '13:50:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.44' message 'introduction of ZnCharacterEncoderTests' id 'bd6db570-c0cd-444a-8a51-9534201d3185' date '11/30/2010' time '12:28:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.43' message 'added ZnUnicodeTestServerDelegate (not yet in units tests)' id '8e9b6cef-d243-43c3-9ea5-517b54c1089a' date '10/20/2010' time '10:41:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MattKennedy.42' message 'Added ZnHttpClientTests>>testGetMultParam for coverage of ZnHttpClient>>parameterAt:add:' id 'a4c74476-3361-422a-8425-37464bf5b8e5' date '10/05/2010' time '17:40:11' author 'MattKennedy' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.41' message 'added elementary test for ZnMultiPartFormDataEntity and ZnMimePart' id 'c829d4b3-3ff7-46e0-9787-94460133ef95' date '10/05/2010' time '20:34:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MattKennedy.40' message 'Added ZnHttpClientTests' id 'af1a7ffc-c4a7-4c84-979a-0563cc60833a' date '10/01/2010' time '22:32:21' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.39' message 'Modified ZnCredentialTests Digest authentication tests to answer clearly if MD5 support is absent. Squeak 4.1 default image is missing the methods HTTPSocket uses for MD5, so not sure if it''s there out of the box.' id '3ad9ef4f-3551-4fa8-adad-ee219534c69b' date '10/01/2010' time '05:47:36' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.38' message 'Added test cases for ZnCredentialTests for erroneous credentials. Test case in ZnUserAgent for error handler.' id '8285ba9e-2eaf-4eaa-85c5-f40376db3644' date '10/01/2010' time '14:45:51' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.37' message 'Added ZnCredentialTests>>testZnServerBasicAuthRealm to test custom realm names in server authenticator. Modified ZnCredentialTests>>testDigestAuthorization to use ZnServer now with ZnDigestAuthenticator.' id 'eeff8920-9775-47e2-95ac-fac88443cdd4' date '09/30/2010' time '17:38:01' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.36' message 'Removed stray inspect sender from ZnCredentialTests>>testDigestAuthorization' id '48fdd73c-85be-476d-a74d-4548ccd40890' date '09/30/2010' time '12:29:53' author 'MattKennedy' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.35' message 'tracking API changes for basic authentication' id 'bcb08816-6c72-45b1-84f8-4c893556fdc5' date '09/30/2010' time '16:35:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MattKennedy.34' message 'Added ZnCredentialTests>>testDigestAuthorization. Requires an external web server URL to call to in order to work at present.' id 'ea944c4a-b1b5-45a4-995f-04c70d58b5b8' date '09/29/2010' time '17:19:35' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.33' message 'Added ZnCredentialsTests.' id '929d376a-4fb4-4c24-88fa-bc6272eeb0bf' date '09/29/2010' time '00:57:38' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.32' message 'Added ZnMagicCookieTests, ZnMagicCookieJarTests, ZnUserAgentSessionTests, and ZnUserAgentSettingsTest Added ZnUserAgentTests>>testCookieAt.' id '16f451aa-8b83-47d1-9db4-6887b5aa3aba' date '09/28/2010' time '16:40:15' author 'MattKennedy' ancestors ((name 'Zinc-Tests-MattKennedy.31' message 'Added ZnUserAgentTests>>testFollowRedirect' id '561fdc97-0599-4a00-871d-46522f3e7253' date '09/28/2010' time '13:57:41' author 'MattKennedy' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.30' message 'apparently Slashdot.org is not always chunked/gzip encoded, too bad' id 'dd8e5fe4-059a-4f8e-815b-1c3111c9215b' date '09/28/2010' time '16:01:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.29' message 'added a simple test for ZnFixedClient' id '371b1c05-bea0-40ec-bd07-c2e4da5100a8' date '09/28/2010' time '14:24:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.28' message 'Merging Matt Kenedy''s code: Added ZnUserAgentTests' id 'a50cc91b-c235-4762-b0bb-2560f604e36f' date '09/27/2010' time '23:37:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-MattKennedy.27' message 'Added ZnUserAgentTests' id '09d2df49-71c2-48e0-a56a-fa0e6f74bd4b' date '09/27/2010' time '15:11:11' author 'MattKennedy' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.26' message 'added tests for ZnLimitedReadStream, ZnChunkedReadStream and ZnLineReader; added functional test ZnResponseTests>>#testSlashdotGzipChunked ' id '72a36bfb-859a-4b5d-b0fb-7728800f168e' date '09/27/2010' time '19:57:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.25' message 'added ZnEntityReader tests #testChunked and #testChunkedWithExtraHeaders' id '7250940a-d71a-4783-b55d-b4f2a57f11c5' date '09/26/2010' time '20:11:26' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.24' message 'introduction of ZnEntityReader helper object; added some more operations to ZnFixedClient; some API cleanup' id 'a6469ddc-386c-4e3b-9c18-fd55df11db9c' date '09/25/2010' time '23:15:49' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.23' message 'added some elementary ZnRequest reading tests' id 'd16e9c4f-5628-490a-b692-616f907d312f' date '09/25/2010' time '23:14:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.22' message 'added basic ZnClient PUT, POST & HEAD methods' id 'da53c39e-2566-4bd1-9f44-4e232d54b48e' date '09/21/2010' time '13:00:24' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.21' message 'Renamed category with old code to Zinc-Test-Old' id '7048013c-a76b-475b-ad43-349299dddb50' date '09/19/2010' time '18:45:29' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.20' message 'following some Lint advice' id '57d98003-f5c0-4a16-b385-2484086dbe67' date '09/17/2010' time '16:15:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.19' message 'improved test coverage: added tests to ZnUtilsTests, ZnResponseTests and ZnMimeTypeTests; renamed ZnHTTPMethodTests to ZnOldHTTPMethodTests ' id 'e2349506-4ce2-46fb-9969-9148325d6d65' date '09/17/2010' time '15:47:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.18' message 'fixing the test (thx http://hudson.lukas-renggli.ch/job/Zinc/ for catching this, it worked in my image)' id '65d1cb02-1463-4ed8-9f38-cfe92e124cef' date '09/16/2010' time '23:50:54' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.17' message 'added some asserts to ZnServerTests to catch the situation where the server port is not available.' id '29841272-e167-4858-973a-3d4bf4a3f266' date '09/16/2010' time '11:39:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.16' message 'ZnStatusLine and ZnRequestLine now handle their own crlf line ending (see #readFrom: and #writeTo:)' id '700d65a9-563e-43b2-b67b-dafc062ce473' date '09/15/2010' time '20:24:48' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.15' message 'fixed ZnMimeType parser dependency on Grease #trimBoth' id 'c6c44454-82e2-4e4a-92b2-af8a446611c4' date '09/15/2010' time '09:59:55' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.14' message 'fixing ZnHTTPSocketFacade>>#httpPut:to:user:passwd: semantics; added ZnMessage #head: #post and #put; added ZnHeaders>>#removeKey:[ifAbsent:] ; allowed for missing content-type when reading entities; enforcing content-length header to be string in #acceptEntityDescription: ' id 'b8cc69ee-4ee8-4669-b1c9-0ecc06974d8b' date '09/14/2010' time '15:12:30' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.13' message 'added ZnHTTPSocketFacade>>#testPut' id 'f60e0f04-bb28-4e28-9081-30d1488a510d' date '09/14/2010' time '15:08:25' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.12' message 'ZnHTTPSocketFacade: adjusting semantics ' id 'aad4ed72-9c44-4f33-b11f-85ab3c74fe74' date '09/14/2010' time '13:28:08' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.11' message 'first complete implementation of (new) ZnHTTPSocketFacade (incomplete tests)' id '0e442350-2cef-483d-93ed-77f7e3c85f53' date '09/13/2010' time '22:31:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.10' message 'added support for server side basic authentication' id '3483f716-801a-4c1d-acae-dd2a02bd2940' date '09/13/2010' time '13:55:03' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.9' message 'added support for client side basic authentication' id '0181a1a0-a07e-42dd-8d81-dbf6c5fc89e2' date '09/12/2010' time '20:35:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.8' message 'added some tests related to entities and query parsing' id '4b2806bd-c3cf-41a0-b14e-35acb7467533' date '09/12/2010' time '11:29:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.7' message 'added header name normalization; added optional multi-valued header values; added optional header value merging' id '753b4898-f9c4-4b17-928d-cd33702a92de' date '09/10/2010' time '21:06:43' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.6' message '1st primitive but working ZnServer' id 'b1a9a8ed-1955-4370-a88a-8e4eacaea787' date '09/08/2010' time '11:06:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.5' message 'ZnClient #get: and #getJpeg: now work for normal situations' id '6a7d2dc3-b759-4b91-8581-7d03a7d32012' date '09/07/2010' time '20:04:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.4' message 'Started the Zinc-Tests-New category; not much to see yet' id 'd51b0a36-ae16-4b95-bcf2-50dbc0855a01' date '09/06/2010' time '23:06:51' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.3' message 'removed old bogus test; added 1st functional test' id '52a21560-c504-4466-aa7d-0264cd8a4265' date '09/01/2010' time '19:52:23' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.2' message 'Renamed HC HTTP Client to Zinc HTTP Components; Renamed all classes to use Zn namespace prefix' id '83eb4cfc-4a78-4e11-b8d5-29bccf1dd8ba' date '09/01/2010' time '19:14:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-Tests-SvenVanCaekenberghe.1' message 'Renamed HC HTTP Client to Zinc HTTP Components; Renamed all classes to use Zn namespace prefix' id 'da047f84-cace-4fa8-971b-366c26046539' date '09/01/2010' time '17:29:46' author 'SvenVanCaekenberghe' 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 ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) 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