-
Notifications
You must be signed in to change notification settings - Fork 71
Seaside310Changelog
Johan Brichau edited this page Mar 31, 2016
·
6 revisions
Seaside 3.1 contains the following changes.
- The way session are tracked has been made customizable. The following strategies are supported out of the box:
- query fields
- cookies of the browser supports it, query fields otherwise
- new: cookies only
- new: cookies for browsers and IPs for web crawlers, inspired by Crawler Session Manager Valve for Tomcat
- new: ssl session id, needs special server support, right now only works with AJP
- All the deprecated methods and classes have been removed.
- Session continuations have been made subclasses of WARequestHandler. Those who have created their own continuation subclasses may need to make adjustments to their classes.
- New WAPluggableActionContinuation introduced (see #680) for details). Those subclassing WAActionPhaseContinuation probably want to be subclasses WACallbackProcessingActionContinuation now instead.
- Removed WAMain and its subclasses. Applications now specify an initial continuation instead. Those subclassing WAMain should consider implementing a subclass of WASessionContinuation instead.
-
WAPopupAnchorTag>>#name:
has been replaced byWAPopupAnchorTag>>#windowTitle:
- JSON support is now in Seaside-JSON-Core, #jsonOn: methods get a JSON canvas instead of a stream as an argument
- Support for the HTML 5 "multiple" attribute has been added. Text input and file upload tags now understand the
#multipleValuesCallback:
message. The value passed to the callback will be a sequenceable collection. - Document handlers (created by one of the
#document:
methods) are now stored in their respective session instead as a session in the application. This means that the number of "sessions" used when using document handlers goes down and there's less pressure on the session cache. Also the document handlers now time out when their session times out. However the size of the individual session now goes up when using document handlers. The document handlers of a session can no longer be accessed concurrently because they are behind the session lock. In addition it makes the code inWAApplication
simpler because it only cares about sessions. - The
#resetIfPossible
method has been added toWAResponse
. It clears a partially rendered response if that's possible (not streaming server is used). - The optional
#flush
method has been added toWAResponse
. This allows programmatic flushing of a partially rendered response. Out of the box this is used by comet and a new render phase continuation that flushes once the HTML header has been rendered. Currently only the Comanche adaptor supports this. -
WARestfulComponentFilter
allows applications to easily switch from session-less parts to session-based parts. - add
#dontDestroy
toWARequestContext
to prevent object destruction during debugging
- #111: jumpTo instance variable on WASession
- #244: WABatchedList>>hasMultiplePages
- #325: Force the use of cookies
- #364: add always redirect option to WARegistry
- #453: document path consumer
- #500: WADebugErrorHandler>>unableToResumeResponse provides invalid instructions
- #591: WAComboResponse - a combined buffered / streaming response
- #592: investigate tracking sessions by SSL session id
- #626: Allow platforms to implement custom encoders for speed
- #636: expected exception behavior WAWalkbackErrorHandler not portable (and not ANSI compliant)
- #645: WAPopupAnchorTag overrides #name: of WAAnchorTag with different semantics
- #663: Remove default nil option from WAListAttribute
- #676: response generators have to reset the response before generating a new one
- #679: Make SessionContinuations into subclasses of RequestHandler
- #680: Add a pluggable action phase continuation
- #681: Get rid of WAMain and subclasses
- #697: Within a WAComponent I've repeated implemented #children to return a collection that contains a reference to self. Causing infinite recursion
- #699: GRPharoPlatform>>#write:toFile:inFolder: uses CrLfFileStream in seaside 3.0.6.3
- #707: don't use #document:mimeType: when mime type is nil
- #708: JQDialog>>#buttons:
- #709: move document handlers to session
- #712: Pretty printing is broken for JavaScript expressions
- #716: WARequestHandler>>#preferenceAt: has no corresponding WARequestHandler>>#preferenceAt: ifAbsent:
- #717: WAMemoryItem>>sizeOfObject
- #718: Make profile tree more useful
- #722: add support for the "multiple" attribute
- #724: add .pushState to ajaxifier
- #726: Rework JSON and JavaScript escaping
- #727: walkback only works for exceptions in callback phase
- #728: add support for new HTTP status codes
- #730: Float infinity and nan don't produce correct JSON representations
- #731: utf-16 broken
- #732: Add flushing render phase continuation
- #733: multibyte characters broken when flushing a WAComboResponse
- #735: Problem with WAFileMetadataLibrary>>#deployFiles
- #736: implement #basicNextPutAll: on pseudo streams
- #737: Update WAScreenshot to work with Pharo 2.0
- #738: Set encoding for Seaside-REST responses
- #740: Improper use of #replaceAll:with: (@ WAFileMetadataLibrary)
- #741: #includesSubString: deprecated in Pharo 2.0
- #742: Generated javascripts are not directly serialized on the canvas stream (leading to slow performance?)
- #743: WAVNCController still uses Project which is gone from Pharo-1.4
- #747: Fix HTML 5 support
- #749: Wrong handling of urls encoded in UTF8
- #751: WAAccept>>fromString: assumes the only parameter to a media-range is 'q'
- #754: #asJson produces strings with non-valid escape sequences "\0", "\a" and "\x.."
- #755: JSJsonParser removes whitespace at the start of string literals
- #756: WACanvasBrushTest>>testCanvasWithLineBreaksGemStoneIssue289 uses non-portable selectors
- #759: application/json recognized as a binary mime type
- #760: addAllFilesIn: is broken in Pharo 20
- #762: WAUrl decodePercent: 'abc%' fails
- #769: more Slime rule for collections
- #770: ScaledDecimal rendering support
- #772: WAResponse >>#doNotCache doesn't send full Cache-Control header
- replaced
WARenderCanvas
withWAHtmlCanvas
(already available in 3.0) -
WASelectionDateTable
no longer adds border -
WASelectionDateTable
no longer adds CSS style -
#jsonOn:
now has a JsonCanvas as an argument -
#jsonOn:
is in Seaside-JSON-Core -
JSJsonParser
was renamed toWAJsonParser
-
WACookie >> #oldNetscapeStringWithoutKey
is now in Seaside-Adaptors-Comanche -
WAUrl
>> #pathString is deprecated, use either#pathStringUnencoded
or#pathStringEncodedWith:
- The default doctype is now html5
- Argument of
addLoadScript:
,addLoadScriptFirst:
should always be aJSObject
(sub)instance. Previously, strings were accepted as Js scripts.
- if your server supports access to the SSL session id implement
#sslSessionIdFor:
- optionally you can implement
#resetIfPossible
and#flush
- instead of using
WARequestCookie class >> #fromString:
you should useWARequestCookie class >> #fromString:codec:
, this has also been added to the latest versions of Seaside 3.0
-
GRPlatform >> #includesUnsafeUrlCharacter:
and#includesUnsafeXmlCharacter:
are no longer used. They are replaced byGRPlatform >> #xmlEncoderOn:
,#urlEncoderOn:
,#urlEncoderOn:codec:
, and#jsonEncoderOn:
which allow you to answer custom implementations. You don't have to do this, the old implementations are provided as default implementations. - There is a new
#sourceFileEncoding
method onGRPlatform
that is used by the file library to save the conent of uploaded files into methods. It defaults to ISO-8859-1 which is what was hard coded in Seaside 3.0.
-
Seaside-JSON-Core
alongSeaside-Pharo-JSON-Core
is now in the Seaside 3.1 repository -
#callback:json:
was moved fromJQuery-Core
toJQuery-JSON
which depends onSeaside-JSON-Core
-
Seaside-HTML5
has been merged intoSeaside-Canvas
andSeaside-Core
Changelogs
- (newer changelogs, see https://github.com/SeasideSt/Seaside/releases)
- 3.4.0
- 3.3.0
- 3.2.4
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.11
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 2.8
- 2.7
- Past Releases
Development
Documentation
- Configuration and Preferences
- Embedding Subcomponents
- Maintaining State
- Generating HTML
- CSS and Javascript
- Debugging Seaside Applications
- Links, Forms and Callbacks
- Development Tools
- Call and Answer
- Naming URLs
- Security Features
- Securing Seaside Applications
- Seaside-REST
- Add-On Libraries
- Persistence
- Gettext
- FileLibrary
- The Render Tree
- PDF Generation
- Long-Term Issues
- Ajaxification
- Web Components
- Big Issues
Sprints