Abstract
We want to move a lot of responsibility that is currently in WASession
and not global to the session (request, response, loadScripts, etc) to
a newly created WAContext object.
Problem
If we have a look of at WASession there is a lot of functionality that
does not belong there. #returnResponse: and #currentRequest are just a
few examples. Additionally we have quite a few bugs [1] [2] [3] [4]
[5] [6] that are hard to fix because we are hitting architecture
limits of Seaside. The most common symptom is that we don't have
information about things like request handlers where we need it.
WAContext Solution
The result of our todays experiments can be found in
Seaside-Core-lr.110. A WAContext object that provides us with all the
contextual information that we need:
- the server, this is important for encoding especially it would allow
us to do URL encoding for non-ASCII characters in a way that works
independently of encoding settings
- the current request
- the current response, for stacking up cookies for example
- a collection of request handlers, important for URL parsing
- subscribers, for events like returning a response or rendering a component
- properties for additional values like load scripts or the anchor name
While delegating the processing requests request handlers would
incrementally add themselves to the collection of request handlers. If
the example of /seaside/tests/alltests two dispatchers, an application
and a session.
Problem with the Solution
Currently used a dynamic variable to store the current context. That
works fine as long as no continuations are involved. Actually the
WAContext is unique to every request and should not be restored when a
continuation is resumed. For a short moment we considered
thread-locals but they again wouldn't work either because
WAProcessMointor creates a new process. The next idea was to use
partial continuations with a boundary that is below the dynamic
variable that points to the current context.
Consequences
- we would lose the terminate functionality
- ports would have to provide partial continuations, this might be a
problem for some platforms whose continuation implementation differs
substantially from Squeak
Does anybody see problems with providing partial continuations on his
platform? Does anybody see a better solution?
[1] http://code.google.com/p/seaside/issues/detail?id=13
[2] http://code.google.com/p/seaside/issues/detail?id=14
[3] http://code.google.com/p/seaside/issues/detail?id=16
[4] http://code.google.com/p/seaside/issues/detail?id=19
[5] http://code.google.com/p/seaside/issues/detail?id=21
[6] http://code.google.com/p/seaside/issues/detail?id=28
Cheers,
Philippe and Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
Hi
There is a bug reported about link prefetching:
http://code.google.com/p/seaside/issues/detail?id=12
Currently Seaside rejects prefetching requests.
For more information about link prefetching
http://developer.mozilla.org/en/docs/Link_prefetching_FAQ
As a summary Mozilla prefetches only <link rel="prefetch" .../> and
<link rel="next" .../> if _no_ query paramter is present. These two
facts make it safe for Seaside IMHO. As soon as you have a
continuation key Mozilla will not prefetch it. On the other hand if
you have "REST-ful urls" without continuation keys Mozilla will be
able to prefetch them with IMHO is a "good thing" (tm).
Cheers
Philippe
Issue 43: Typo in RRRssRoot>>writePreamleOn:
http://code.google.com/p/seaside/issues/detail?id=43
New issue report by Torsten....(a)astares.de:
Should be writePreambleOn:
Issue attributes:
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
Issue 42: The Big Cleanup (tm)
http://code.google.com/p/seaside/issues/detail?id=42
New issue report by philippe.marschall:
The recent URL and context enhancements made a lot of cleanup possible:
- url hackery of WAApplication >> #sessionCookieFor: should be moved to WAUrl
- methods #actionUrlForKey: #newSessionUrl and #responseForRequest: should
be moved to WAContext
- WAFileLibrary should rely on WAContext for url generation
- lots of #handleRequest: methods are broken, they don't push themselves on
the context
- most references to WACurrentSession are bugous and should be changed to
use WAContext
- charset and content type should be moved from session to application
- WAMain and WARegistry are as well good candidates for cleanup
- WAResponse >> #initialize should not access the session as well
Issue attributes:
Status: Accepted
Owner: philippe.marschall
Labels: Type-Defect Priority-Medium Version-Seaside2.9
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
Issue 26: MimeDocument should be part of Seaside
http://code.google.com/p/seaside/issues/detail?id=26
Comment #3 by luisa.lualdi:
The code is the minimum necessary to work well with current Seaside.
Any refactoring
IMO should be done separately from adding this class, because you will
have to make
sure the other platforms still work.
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
Issue 26: MimeDocument should be part of Seaside
http://code.google.com/p/seaside/issues/detail?id=26
Comment #2 by philippe.marschall:
Set version to 2.9
Issue attribute updates:
Labels: Version-Seaside2.9
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
Issue 41: Provide simple email abstraction
http://code.google.com/p/seaside/issues/detail?id=41
New issue report by philippe.marschall:
Currently we have SeasidePlatformSupport >> #deliverMailFrom:to:text: which
is quite cumbersome to use, you have to concatenate the whole mail message
together PHP-style.
We should have a minimal abstraction of an email message.
Issue attributes:
Status: Accepted
Owner: philippe.marschall
Labels: Type-Feature Priority-Medium Version-Seaside2.9
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
Issue 26: MimeDocument should be part of Seaside
http://code.google.com/p/seaside/issues/detail?id=26
Comment #1 by philippe.marschall:
Changed type to Feature instead of Defect.
What is the reasoning behind the #content and #contentStream duality?
Couldn't we
just settle for one or even better, have one class for stream based and
the other for
collection based documents?
What is the reason for string conversion before mime type comparison?
Issue attribute updates:
Labels: -Type-Defect Type-Feature
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
Issue 40: fix load scripts in callback phase
http://code.google.com/p/seaside/issues/detail?id=40
New issue report by philippe.marschall:
Since the J2EE refactoring load scripts added to the context during the
callback phase are forgotten.
Issue attributes:
Status: Accepted
Owner: philippe.marschall
Labels: Type-Defect Priority-Medium Version-Seaside2.9
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
Issue 8: NULL characters in testUtf16
http://code.google.com/p/seaside/issues/detail?id=8
Comment #3 by philippe.marschall:
Name: Seaside-Adapters-Tests-pmm.3
Author: pmm
Time: 26 March 2008, 9:24:58 pm
UUID: a543c11d-768e-4957-937b-091eded4c3cd
Ancestors: Seaside-Adapters-Tests-pmm.2
- fix http://code.google.com/p/seaside/issues/detail?id=8
- got rid of string literals with NULL characters
Issue attribute updates:
Status: Fixed
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings