THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Wiki Markup |
---|
{html}
<style type="text/css">
#twtr-widget-1 .twtr-doc, #twtr-widget-1 .twtr-hd a, #twtr-widget-1 h3, #twtr-widget-1 h4, #twtr-widget-1 .twtr-popular {
background-color: #7dbc32 !important;
color: #FFFFFF !important;
}
#twtr-widget-1 .twtr-tweet a {
color: #539126 !important;
}
.big-col {
margin-right: 310px !important;
}
#col {
width : 250px;
}
.features{
overflow : auto;
}
DIV.left-column {
float: left;
width: 49%;
}
DIV.right-column {
float: right;
width: 49%;
}
.blogSurtitle {
background: none repeat scroll 0 0 #7DBC32;
border: 2px solid #DDDDDD;
color: #FFFFFF;
margin: 1px 1px 10px;
padding: 3px;
}
a.blogDate {
color: #FFFFFF;
}
a.blogHeading {
color: #539126;
font-size: 14px;
}
.image-wrap{
}
</style>
{html}
{div:id=col}
{blog-posts:max=3|sort=creation|reverse=true|content=excerpts}
{widget:url=http://search.twitter.com/search?q=tapestry5}
[Subscribe] [!Feed-icon.gif!|https://cwiki.apache.org/confluence/createrssfeed.action?types=blogpost&spaces=TAPESTRY&title=Apache+Tapestry+News+RSS+Feed&labelString%3D&sort=created&maxResults=10&timeSpan=12&confirm=Create&showContent=true&showDiff=false]
{div}
{div:id=content|class=big-col}
{div2}
{div3:class=features}
{div4:class=left-column}
!Chat.png! h3. Pure Java and Polyglot
Written in pure Java: code your pages and components in Java, Groovy or Scala.
{div4}
{div4:class=right-column}
h3. !injection.png! Convention over configuration
Say goodbye to endless XML configuration files: dependency injection and meta-programming through annotations.
{div4}
{div3}
{div3:class=features}
{div4:class=left-column}
h3. !Refresh.png! Highly productive
Live class reloading means that the time between seeing an error and providing the fix is seconds, not minutes.
{div4}
{div4:class=right-column}
h3. !accepted.png! Testable
Committed to testability thoughout design; built-in utilities to enhance TDD. [See Tapestry's code coverage report|http://tapestry.apache.org/current/tapestry-core/cobertura/index.html]
{div4}
{div3}
{div3:class=features}
{div4:class=left-column}
h3. !fast.png! Fast
Pure Java; no reflection, not even for property expressions. Built to cleanly support large numbers of concurrent threads without contention. Automatic GZip content compression, JavaScript aggregation, and client-side caching.
{div4}
{div4:class=right-column}
h3. !bug.png! Advanced Exception Reporting
Gives you all the tools you need to fix your problem: not just a stack trace, but every bit of information you need to know about what Tapestry was doing, why it was doing it, what went wrong, and how to fix it.
{div4}
{div3}
{div3:class=features}
{div4:class=left-column}
h3. !Web.png! Scalable
Scales up big on a single server, and offers great options in a cluster. Ready for REST, suitable for the most stateless or stateful applications.
{div4}
{div4:class=right-column}
h3. !plugin.png! Adaptable and modular
Architecture is open and extensible. There's a clean way to add your own extensions, or override built-in logic. Provides integration with [Hibernate|http://hibernate.org/] and [Spring|http://www.springsource.org/]. Third-party integrations with other tools, such as [Quartz|http://www.quartz-scheduler.org/].
{div4}
{div3}
More on [Tapestry philosophy|TAPESTRY:Principles]
{div2}
{div} |