Tapestry relies heavily on Java annotations rather than XML files for almost all of its configuration. (In addition, Tapestry's method naming conventions mean you don't have to use annotations in many cases.)
Tapestry annotations are grouped into several distinct modules according to their purpose.
The majority of Tapestry annotations (those defined in the tapestry-core and tapestry-ioc modules) are very specific to Tapestry components or Tapestry IoC services:
|Tapestry Component Annotations||intended for use in page/component/mixin classes|
|Tapestry IoC Annotations||for use by IoC services|
In addition to the core and IoC annotations, there are a few annotations intended for data holding classes that are not Tapestry components; these annotations allow high-level components such as Grid and BeanEditForm to create powerful user interfaces with out any additional coding. Because these annotations are separated from the rest of Tapestry, they can be used inside your data tier classes without having to bring all of Tapestry into your classpath. This is very useful in multi-tier applications where data objects may originate in an application tier (such as a JEE application server) and travel to the presentation tier (a Tapestry application).
|BeanEditForm Annotations||for users of the BeanEditForm and Grid components|
|Hibernate Annotations||for users of the Tapestry-Hibernate library|
The artifact id for the annotations module has changed from tapestry-annotations to tapestry5-annotations. This is necessary to support Tapestry 4 and Tapestry 5 applications co-existing within a single WAR.