Seaside 2.8 to 3.0

Must

  • Seaside 2.7 to 2.8
  • WARequest >> #url now returns a WAUrl object representing the complete GET path (with arguments) instead of a string representing the path of the request URL. You can update your code to be aRequest url pathString if you want the old behaviour.
  • WARequest >> #accept #acceptCharset #acceptEncoding #acceptLangauge return parsed objects
  • WARequest >> #cookies is a Collection of instances of WARequestCookie instead of a Dictionary.
  • WAApplication >> #libraries is now an Array and not an OrderedCollection, replace all senders of libraries add: aLibrary with addLibrary: aLibrary
  • WAStandardScripts and WAStandardStyles were removed and replaced by WAFileLibrary
  • removed WAModelProxy
  • the following deperacted methods were removed
    • WASession>>#registerObjectForBacktracking:
    • WAPresenter>>#registerForBacktracking
    • WASelectTag>>#beSingle
    • WASelectTag>>#beMultiple
    • WAPopuAnchorTag>>#beDependent
    • WAPopuAnchorTag>>#beResizable
    • WAPopuAnchorTag>>#showScrollbars
    • WAPopuAnchorTag>>#showToolbar
    • WAStateHolder
    • WATalbeTag>>#layout
    • WAIframeTag>>#src:
    • WAAnchorTag>>#rel:
  • RREmailAddress became WAEmailAddress
  • check all senders of #addLoadScript: and make sure none is in the callback phase
  • change to the new configuration system
  • WARequestContext related changes
  • change #handleRequest: to #responseForRequest: in WARequestHandler
  • Change senders of WASession>>newSessionUrl to WAApplication>>baseUrl
  • Change senders of WASession>>returnReponse: to WARequestContext>>respond:
  • WASession>>closePopupAndContinue was removed. If you use it, we’d like to know about it.
  • If you have subclasses of WAMain, WASession, or WASessionContinuation the following methods have all been replaced with versions that do not take an argument: #start:, #unknownRequest:, #handleRequest:, #value:. The new parameterless methods (without the colon) can access the request via self requestContext request if needed.
  • WASession>>performRequest: has been removed. If you have your own session subclasses and were overriding this method, you will need to look at overriding #responseForContext: instead.
  • registration methods on WARegistry/WAApplication have been renamed. If you have your own subclasses or deal manually with registering or unregistering handlers in a registry, check the deprecated category for more details.
  • The session cache on WAApplication has been made pluggable so expiry behaviour is no longer contained within WASession itself. Methods like #lastAccess, #secondsSinceLastAccess, #timeoutSeconds, #timeoutSeconds:, and #isActive currently do not exist. We are thinking about how best to provide this functionality in later alpha releases but in the meantime you will have to do without them. Sessions will also now receive #unregistered rather than #expired when they are removed from the cache.
  • WAExternalID has been replaced by WAKeyGenerator. It just generates Strings instead of objects.
  • #raiseSignal and #raiseSignal: are no longer supported on Squeak.
  • #numArgs, #evaluateWithArguments: and #valueWithPossibleArgument: have been removed from MessageSend. Check the new valuable protocol.
  • #evaluateWithArguments: and #valueWithPossibleArgument: have been removed from BlockContest. Check the new valuable protocol.
  • #printStringAsCents is gone
  • #refreshAfter:location:message: takes a Duration instead a number of seconds
  • Send #migrateToSeaside29 to all your WAFileLibrary subclasses that have binary content

Should

  • #keyboardInput: and #keyboardInput were renamed to #keyboard: and #keyboard
  • #sampleOutput: and #sampleOutput were renamed to #sample: and #sample
  • #application and #session will raise a WARequestContextNotFound error if no current request context is found. This should only happen outside of the scope of a Seaside request. If your objects are using these methods as part of their display string (they probably shouldn’t) you will want to catch the error to avoid problems when opening an Inspector on your object.
  • Replace MessageSend with WADelayedSend.