# Uses of Annotation Type
org.apache.tapestry5.ioc.annotations.UseWith

Packages that use UseWith
Package
Description
org.apache.tapestry5.annotations
Contains annotations, primarily those used inside component classes as well as a few specific to the tapestry-core services layer.
org.apache.tapestry5.beaneditor
org.apache.tapestry5.clojure
Allows Clojure functions to be injected into Tapestry services and components
org.apache.tapestry5.hibernate.annotations
Annotations for using Hibernate within Tapestry components or services
org.apache.tapestry5.http.annotations
org.apache.tapestry5.ioc.annotations
Annotations for Tapestry IOC services
org.apache.tapestry5.jpa.annotations
JPA annotations
org.apache.tapestry5.kaptcha.annotations
Kaptcha annotations
org.apache.tapestry5.services
Core services

- ## Uses of UseWith in org.apache.tapestry5.annotations

  Classes in org.apache.tapestry5.annotations with annotations of type UseWith
  Modifier and Type
  Class
  Description
  `@interface`
  `ActivationContextParameter`
  Annotation that may be placed on parameters of event handler methods to define their names in OpenAPI description.
  `@interface`
  `ActivationRequestParameter`
  Marks a field of a page (not a component) as persistent within the URL, as with a page activation context.
  `@interface`
  `AfterRender`
  Marker annotation for methods associated with the AfterRender phase.
  `@interface`
  `AfterRenderBody`
  Corresponds to `BeforeRenderBody`, allowing additional markup after rendering the body of a component, but before rendering the rest of the component's template.
  `@interface`
  `AfterRenderTemplate`
  Corresponds to `BeforeRenderTemplate`, allowing additional markup after rendering the component's template.
  `@interface`
  `BeforeRenderBody`
  Marks methods to be invoked when the component rendering state machine hits the point in the component's template where the body element occurs.
  `@interface`
  `BeforeRenderTemplate`
  Associated with components that have a template, this phase is invoked to allow the component to decorate its template with additional markup.
  `@interface`
  `BeginRender`
  Marker annotation for methods that should be executed at the start of rendering the component.
  `@interface`
  `BindParameter`
  Designates a field in a mixin which is bound to the parameter of the containing component corresponding to the value of the annotation.
  `@interface`
  `Cached`
  Indicates that a method should only be evaluated once per request and the result cached.
  `@interface`
  `CleanupRender`
  Marker annotation for component methods associated with the terminal phase for the component rendering state machine.
  `@interface`
  `Component`
  Used to define an embedded component within another component.
  `@interface`
  `ContentType`
  An annotation on a page component used to identify the content type the page returns.
  `@interface`
  `DiscardAfter`
  Marks a method of a page or a component to discard all persistent field changes.
  `@interface`
  `Environmental`
  Defines a field of a component class that is replaced at runtime with a read-only value obtained from the `Environment` service.
  `@interface`
  `Events`
  Annotation applied to components to document what events a component may trigger.
  `@interface`
  `HeartbeatDeferred`
  Marks a component method as deferred until the end of the `Heartbeat`.
  `@interface`
  `Id`
  Optional annotation, used with `Inject`, which exists to provide the id of an object when it can not be determined by other means (such as from the field name).
  `@interface`
  `Import`
  Annotations to control the importing of JavaScript stacks and libraries as well as stylesheets.
  `@interface`
  `InjectComponent`
  Allows components defined in the template to be injected as read-only properties.
  `@interface`
  `InjectContainer`
  Used to inject the component which contains this component.
  `@interface`
  `InjectPage`
  Allows a a page (really, the root component of the page) to be injected into another component as a read-only field.
  `@interface`
  `Log`
  Marker annotation for component methods to enable debug-level logging.
  `@interface`
  `Meta`
  Allows for the specification of per-component meta-data.
  `@interface`
  `Mixin`
  Defines an implementation mixin for a component.
  `@interface`
  `MixinAfter`
  A marker annotation applied to a mixin to indicate that the mixin's render state behavior is deferred until after the the behavior of the component to which the mixin is attached.
  `@interface`
  `MixinClasses`
  Used to attach one or more instance mixins to an embedded component.
  `@interface`
  `Mixins`
  Used to attach one ore more instance mixin to an embedded component.
  `@interface`
  `OnEvent`
  Marks a method as a handler for a client side event.
  `@interface`
  `PageActivationContext`
  Annotation for a field for which the page activation context handlers (onActivate and onPassivate) should be created.
  `@interface`
  `PageAttached`
  Method annotation used for methods that should be invoked when the page is first attached to a request.
  `@interface`
  `PageDetached`
  Method annotation used for methods that should be invoked when the page is detached at the end of a request, before it is returned to the page pool for later reuse.
  `@interface`
  `PageLoaded`
  Method annotation used for methods that should be invoked once the page is fully loaded.
  `@interface`
  `PageReset`
  Marker annotation for a method that should be invoked when a page is reset.
  `@interface`
  `Parameter`
  Annotation placed on a field to indicate that it is, in fact, a component parameter.
  `@interface`
  `Path`
  Used in conjunction with the `Inject` annotation to inject an `Asset` based on a path.
  `@interface`
  `Persist`
  Identifies a field as persistent, meaning its value persists from one request to the next.
  `@interface`
  `Property`
  Annotation for fields for which accessor methods (getters and setters) should be created.
  `@interface`
  `PublishEvent`
  Marks an event handler method to be published as an event to be called in JavaScript through the `t5/core/ajax` function when the `options` parameter has an `element` attribute.
  `@interface`
  `RequestBody`
  Annotation that may be placed on parameters of event handler methods, usually in page classes.
  `@interface`
  `RequestParameter`
  Annotation that may be placed on parameters of event handler methods.
  `@interface`
  `RestInfo`
  Annotation that provides some information about REST event handler methods for OpenAPI description generation.
  `@interface`
  `Retain`
  Deprecated.
  This rarely used annotation is likely to cause threading issues starting in Tapestry 5.2 (which no longer pools pages but uses shared instances with externalized mutable state)
  `@interface`
  `Secure`
  A marker annotation that indicates that the page in question may only be accessed via HTTPS.
  `@interface`
  `Service`
  Used in conjunction with the `Inject` annotation to identify a service by name and not by type.
  `@interface`
  `SessionAttribute`
  Used to map a property of a page or component to value stored in session.
  `@interface`
  `SessionState`
  Marker annotation for a property that is a session state object (SSO) as controlled by the `ApplicationStateManager`.
  `@interface`
  `SetupRender`
  Marker annotation for methods that should be executed during the SetupRender phase.
  `@interface`
  `StaticActivationContextValue`
  Annotation that may be placed on parameters of event handler methods to define them as having a static value.
  `@interface`
  `SupportsInformalParameters`
  Used to identify a component that can support informal parameters.
  `@interface`
  `UnknownActivationContextCheck`
  A marker annotation that indicates that the page in question may only be accessed with a exact activation context.
  `@interface`
  `WhitelistAccessOnly`
  Identifies a page that should only be accessed from clients on the whitelist.

- ## Uses of UseWith in org.apache.tapestry5.beaneditor

  Classes in org.apache.tapestry5.beaneditor with annotations of type UseWith
  Modifier and Type
  Class
  Description
  `@interface`
  `DataType`
  Used to explicitly set the data type used to select an editor (or display) block.
  `@interface`
  `NonVisual`
  Marker annotation for properties which are non-visual, and so should not appear (by default) inside a BeanModel.
  `@interface`
  `ReorderProperties`
  An annotation that may be placed on a JavaBean to re-order the properties.
  `@interface`
  `Sortable`
  Used to explicitly define whether a property should be considerable sortable or not.
  `@interface`
  `Translate`
  Used to attach the name of a Translator used to convert the associated property between server-side and client-side representations.
  `@interface`
  `Validate`
  Used to attach validation constraints directly to a property (either the getter or the setter method).
  `@interface`
  `Width`
  Defines the desired width of the field used to edit the property.

- ## Uses of UseWith in org.apache.tapestry5.clojure

  Classes in org.apache.tapestry5.clojure with annotations of type UseWith
  Modifier and Type
  Class
  Description
  `@interface`
  `FunctionName`
  Overrides the default mapping from method name to Clojure function name.
  `@interface`
  `Namespace`
  Maps a service interface to a Clojure namespace.

- ## Uses of UseWith in org.apache.tapestry5.hibernate.annotations

  Classes in org.apache.tapestry5.hibernate.annotations with annotations of type UseWith
  Modifier and Type
  Class
  Description
  `@interface`
  `CommitAfter`
  Marks a method of a service (or a component method) as transactional: the active transaction should commit after invoking the method.

- ## Uses of UseWith in org.apache.tapestry5.http.annotations

  Classes in org.apache.tapestry5.http.annotations with annotations of type UseWith
  Modifier and Type
  Class
  Description
  `@interface`
  `ImmutableSessionPersistedObject`
  Marker annotation that can be placed on a session-persisted object to indicate that the object is immutable, and therefore does not require end-of-request restoring into the session.

- ## Uses of UseWith in org.apache.tapestry5.ioc.annotations

  Classes in org.apache.tapestry5.ioc.annotations with annotations of type UseWith
  Modifier and Type
  Class
  Description
  `@interface`
  `Autobuild`
  Directs that the value to be built should be an autobuild instance of the type with injections performed, via ObjectLocator.html#autobuild(Class).
  `@interface`
  `Description`
  Annotation used by Tapestry to describe the annotated class or package in runtime, specially in the T5Dashboard page.
  `@interface`
  `EagerLoad`
  Marker annotation placed on a service builder method to indicate that the service should be eagerly loaded: realized as if a service method had been invoked.
  `@interface`
  `ImportModule`
  Attached to a module class, this annotation identifies other module classes that should also be added to the Registry.
  `@interface`
  `Inject`
  This annotation serves is something of the Swiss Army knife for operations related to injection of dependencies into an arbitrary method of Java Bean.
  `@interface`
  `InjectResource`
  Deprecated.
  Deprecated in Tapestry 5.3, to be removed in a later release.
  `@interface`
  `InjectService`
  Annotation used with parameters of service builder methods to identify the service to be injected into the service builder method via the parameter.
  `@interface`
  `IntermediateType`
  Used to guide Tapestry when coercing from a raw type to a field or parameter type, by forcing Tapestry to coerce to the intermediate type.
  `@interface`
  `Local`
  A special marker annotation which limits the search for possible services to just the same module containing the service being injected.
  `@interface`
  `Marker`
  Used to define one or more ServiceDef#getMarkers() marker annotations for a service implementation.
  `@interface`
  `Match`
  Optional, but typically used, annotation for service decorator methods, used to define which services the decorator applies to.
  `@interface`
  `NotLazy`
  Marks a method as specifically not-lazy, even if other methods in the same interface are being advised as lazy.
  `@interface`
  `Operation`
  Describes a method as one that should be operation tracked.
  `@interface`
  `Optional`
  Marks a service contribution method within a module as being optional: it is not an error if the contribution does not match against an actual service.
  `@interface`
  `Order`
  Used with a service decorator method to control the order in which decorations occur.
  `@interface`
  `PostInjection`
  Annotation for methods that should be invoked after injection.
  `@interface`
  `PreventServiceDecoration`
  Marks a service as not eligible for decoration.
  `@interface`
  `Primary`
  Marker annotation used to denote a service that is the primary instance of some common interface.
  `@interface`
  `Scope`
  An optional annotation that may be placed on a service building method of a module, or on the implementation class (when using service binding).
  `@interface`
  `ServiceId`
  An optional annotation that may be placed on a service building method of a module, or on the implementation class (when using service binding via the `ServiceBinder`).
  `@interface`
  `SubModule`
  Deprecated.
  Deprecated in 5.4, use `ImportModule` instead.
  `@interface`
  `Symbol`
  Used to inject a symbol value, via a symbol name.
  `@interface`
  `UsesConfiguration`
  A documentation-only interface placed on service interfaces for services which have an unordered configuration, to identify the type of contribution.
  `@interface`
  `UsesMappedConfiguration`
  A documentation-only interface placed on service interfaces for services which have a mapped configuration, to identify the type of key (often, a String), and type of contribution.
  `@interface`
  `UsesOrderedConfiguration`
  A documentation-only interface placed on service interfaces for services which have an ordered configuration, to identify the type of contribution.
  `@interface`
  `Value`
  Used in conjunction with `Inject` to inject a literal value, rather than a service.

- ## Uses of UseWith in org.apache.tapestry5.jpa.annotations

  Classes in org.apache.tapestry5.jpa.annotations with annotations of type UseWith
  Modifier and Type
  Class
  Description
  `@interface`
  `CommitAfter`

- ## Uses of UseWith in org.apache.tapestry5.kaptcha.annotations

  Classes in org.apache.tapestry5.kaptcha.annotations with annotations of type UseWith
  Modifier and Type
  Class
  Description
  `@interface`
  `Kaptcha`
  Used to explicitly select the kaptcha editor block for a property.

- ## Uses of UseWith in org.apache.tapestry5.services

  Classes in org.apache.tapestry5.services with annotations of type UseWith
  Modifier and Type
  Class
  Description
  `@interface`
  `AssetRequestDispatcher`
  Marker annotation used to specifically identify the `Dispatcher` used to dispatch asset requests (so that `AssetRequestHandler`s can be contributed).