forked from bfritz/wfaler.github.com
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path04announcement.html
More file actions
103 lines (78 loc) · 4.12 KB
/
04announcement.html
File metadata and controls
103 lines (78 loc) · 4.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Bowler - The Bowler Scala Web Framework v0.4 Released!</title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>
<body>
<div id="container">
<span ><!-- header panel here --></span>
<div id="header">
<h1 >Bowler</h1>
<p >RESTful Scala Web Framework</p>
</div>
<div>
<ul class="tabs-nav">
<li ><a href="/"><span>Home</span></a></li><li ><a href="/manual.html"><span>Manual</span></a></li>
</ul>
</div>
<div class="tabs-container">
<div id="body">
<h2>Bowler Scala Web Framework version 0.4 Released!</h2>
<i>May 23rd 2011</i><br/>
Version 0.4 of Bowler, a RESTful, multi-channel ready web framework in Scala has been released. For details on how to get the code, get started etc, please check the <a href="/">homepage</a> or <a href="/manual.html">the manual</a>.<br/><br/>
This is the fourth release and has focused on Scala 2.9 compatibility, more uniform API's around Scuery & Scalate templating, an entirely re-vamped and simplified Layout API, more concise route-definitions and making parts of the API more idiomatic in terms of Scala.<br/>
The <a href="https://github.com/bowler-framework/Bowler/tree/master/examples">Bowler Example application</a> in our GitHub repository showcases a lot of the new features.<br/>
A list of changes and new features below:
<h3>Change highlights for version 0.4</h3>
Perhaps the most notable change for 0.4 is that we now allow route-definition by function-name-convention:
<script src="https://gist.github.com/950432.js?file=POSORouting.scala"></script>
..the old Scalatra-inherited route-definition will still remain, and the above example actually builds on top of it, but the function-name-convention style may be appropriate for Bowler users who are prepared to trade some type-safety for increased conciseness of their code.
<h4>Feature Highlights</h4>
<ul>
<li>Cross-built against both Scala 2.8.1 AND Scala 2.9.0 (Scala 2.9 build relies on some SNAPSHOT builds of other projects, which should be mentioned)</li>
<li>"Function name convention based routing" available, setting HTTP routes by function name, like: <i>def "`GET /myresource/:id`(widget: Widget)"</i> (see example above)</li>
<li>Layouts <a href="/manual.html#layouts">entirely revamped</a> and now <a href="/manual.html#scopedlayouts">scoped</a> (set globally, controller level, route level or view level)</li>
<li>Scuery now a <a href="/manual.html#components">first class citizen seamlessly integrated into the API</a>:
<ul>
<li>Usable as view</li>
<li>Usable as layout</li>
</ul>
</li>
<li>Better support for Option at top-level of hierarchy for JSON output</li>
<li>Support for BigDecimal in JSON output by default</li>
<li>Better support for user-defined Serializer for JSON input/output</li>
<li>New optional <a href="/api/index.html#org.bowlerframework.view.StrictRenderStrategy">StrictRenderStrategy</a> which follows HTTP more strictly (no workarounds for IE and Chrome browsers)</li>
</ul>
<h4>API changes</h4>
<ul>
<li>Changed Request interface to use Option where nulls could previously be returned</li>
<li>Layouts API entirely changed</li>
<li>Layout- and Suffix selectors removed, generalised Scala extractors package added</li>
<li>Re-packaged org.bowlerframework.view.squery to org.bowlerframework.view.scuery</li>
</ul>
<h4>Bugs fixed</h4>
<ul>
<li>fixed content-type emitted for application/json to be correct</li>
</ul>
</div>
</div>
<div id="footer">
<p>
<span >Copyright © Recursivity limited, 2010-
</p>
</div>
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-1376753-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>