- Pods
- Pillow 1.2.2
- Release Notes
![](data:image/png;base64,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)
PillowRelease Notes
v1.2
v1.2.2
- New: Rewrote regex route globs for new BedSheet wildcard URLs.
- New: Limited (NoDoc) support for
EventMeta
. - Chg: Updated to BedSheet 1.5.16 (Breaking change.)
- Chg: Welcome Pages no-longer end with a directory slash as per the new BedSheet standard.
- Chg: Page and Event context args may no longer be
null
(it's complicated and under-used), use a default / optional argument instead. - Chg:
WelcomePageStrategy
redirects downgraded to a 307 Temporary Redirect
. - Chg: Deleted internal
ThreadStack
pattern and replaced it with a nested parent obj. - Bug: Pages and Events with routes disabled were printed as valid routes on startup.
v1.2.0
- New: Added
redirect
methods to PageMeta
. - Chg: Updated to efan v2.0.
v1.1
v1.1.6
- New: Pillow pages now respond to
HEAD
requests. - Chg: Page event methods may be overridden by subclasses.
- Chg: Removed hardcoding for
xhtml
MIME type - see here.
v1.1.4
- New: Pages may define
*
placeholders in the URL for page ctx params. - New: Added
PageMeta.pageUrlAbs()
method. - Chg: Event methods may be overridden.
- Chg: Code now uses the
facet()
method after an F4 upgrade. - Chg: Changed the default MimeType from
text/plain
to text/html
.
v1.1.2
- Chg: Page meta no longer escapes the
@
char, to be more consistent with Fantom's Uri
class.
v1.1.0
- Chg: Updated to work with IoC 3.0 and BedSheet 1.5. (Breaking change.)
- Chg:
@InitRender
may now return any BedSheet Response object for further processing. - Chg: Deprecated
Page.disableRoutes
in favour of Page.disableRouting
- Chg: Added default template directories.
- Bug: Events were not logged correctly on the BedSheet Err pages if they had the same name.
v1.0
v1.0.22
- New:
@InitRender
method parameters with default values become optional URL parameters. - New:
@PageContext
fields may also be optional. - New:
@PageEvent
methods may also have optional and nullable URL parameters. - New: Added
@Page.disableRoutes
so individual pages can be omitted from Route generation. - Chg:
PageMeta.eventUrl(...)
may now take a Method or a Str as the event argument. - Chg: Made
Pages.renderXXXX()
methods public. - Chg: Caching HTTP headers are only set in prod mode.
- Bug: Page context parameters are now correctly URL encoded and decoded - see URI Encoding / Decoding.
v1.0.20
- Chg: Updated to IoC 2.0.0.
- Chg: Converted
PageMeta
to a mixin
. - Chg: Pillow BedSheet Routes are contributed via a single
afPillow.pageRoutes
contribution, and not placeholders.
v1.0.18
v1.0.16
v1.0.14
- New: Added
@PageEvent.name
which overrides the default method name. - New: Added
PageMeta.eventMethods()
. - Chg: Updated to IoC 1.7.2 and BedSheet 1.3.12.
- Chg: Renamed
PageMeta.eventUri
-> PageMeta.eventUrl
.
v1.0.12
- New: Added a default
cache-control
HTTP header as a config value. - Chg: Renamed
PageMeta.pageUri
-> PageMeta.pageUrl
.
v1.0.10
- New: Stack frames from
Pillow
, efanXtra
and efan
are marked as boring on BedSheet's Err500 page. - Chg: Updated to IoC 1.6.4.
v1.0.8
- New: Using Bean Utils 0.0.2
- New: Page state from events are saved and restored should the page be rendered as part of the same request.
- Chg: Page events render the containing page by default.
- Chg: Renamed
@Page.uri
-> @Page.url
v1.0.6
- Chg: Updated to use efanXtra 1.1.0.
- Chg:
Pages.pageMeta()
and Pages.get()
now throw a NotFoundErr
if the given page type could not be found.
v1.0.4
- Chg: Page context may be nullable on
Pages.pageMeta()
. - Chg: Added
Pages.get()
operator for easy PageMeta
access. - Chg: Contributed
Pillow Pages
section to BedSheet's Err and Not Found pages.
v1.0.2
- Chg: Page context values may now be mutable / non-const objects.
v1.0.0
- New: Implemented
WelcomePageStrategy
. - New: Added helpful http response headers for testing.
- Chg:
PageUriResolver
and ContentTypeResolver
are now configurable. - Chg: Renamed ConfigId
welcomePage
-> welcomePageName
. - Bug: Page URIs with no page context could be a directory URI.
v0.0
v0.0.10
- New: Added
@PageEvent
methods allowing URIs to be mapped to page methods. - New: Added
@PageContext
fields that can replace @InitRender
methods. - New: Added the
PageMeta
class to wrap up, um, page meta data! Oh, and attached an instance to the rendering pages. (Deleted RenderPageMeta
.) - New: Added
PageMetaResponseProcessor
that renders Pillow pages when PageMeta
instances are returned as BedSheet response objects. - New: Added
httpMethod
field to @Page
and @PageEvent
- New: Added
template
uri to @Page
- Chg:
Page
is now a facet, incorporating fields from @PageUri
and @PageContentType
(which have now been deleted).
v0.0.8
- New: Use the
@PageContentType
facet to explicitly define the content type for your page. - New: Use a double extension (e.g.
indexPage.xhtml.slim
) to set the content type for the page. - Bug:
@InitRender
params could incorrectly match for directory index pages.
v0.0.6
- New: Page uris and BedSheet routes are generated from the
@InitRender
method signature. - New: Directory uris may now serve welcome pages.
- Chg: Updated to use
BedSheet 1.2
. - Chg: Renamed project to
afPillow
(from afBedSheetEfanExtra
). - Chg: Reanmed
EfanPageMeta
to RenderPageMeta
. - Chg: Renamed
PageRoute
to PageUri
.
v0.0.4
- New: Added
@PageRoute
facet that lets you specify a bespoke uri - New: Added
EfanPageMeta
which returns the active rendering page.
v0.0.2