@Retention(value=RUNTIME) @Target(value=TYPE) @Inherited @Repeatable(value=ResourceDependencies.class) public @interface ResourceDependency
 Instances of UIComponent or Renderer
 that have this annotation (or ResourceDependencies attached at the class level will
 automatically have a resource dependency added so that the named resource will be present in user
 agent's view of the UIViewRoot in which this component or renderer is used.
 
 The default implementation must support attaching this annotation to
 UIComponent or Renderer classes. In both
 cases, the event that precipitates the processing of this annotation is the insertion of a
 UIComponent instance into the view hierarchy on an initial request for a view. When
 that event happens, the following action must be taken.
 
If this annotation is not present on the class in question, no action must be taken.
 Create a UIOutput instance by passing
 javax.faces.Output. to Application.createComponent(java.lang.String).
 
Get the annotation instance from the class and obtain the values of the name, library, and target attributes.
 If library is the empty string, let library be null.
 
 If target is the empty string, let target be null.
 
 Obtain the renderer-type for the resource name by passing name to
 ResourceHandler.getRendererTypeForResourceName(java.lang.String).
 
 Call setRendererType on the UIOutput instance, passing the
 renderer-type.
 
 Obtain the Map of attributes from the UIOutput component by calling
 UIComponent.getAttributes().
 
 Store the name into the attributes Map under the key "name".
 
 If library is non-null, store it under the key "library".
 
 If target is non-null, store it under the key "target".
 
 Otherwise, if target is null, call
 UIViewRoot.addComponentResource(javax.faces.context.FacesContext, javax.faces.component.UIComponent),
 passing the UIOutput instance as the second argument.
 
Example:
 
  @ResourceDependency(library="corporate", name="colorAndMedia.css"),
 
 
 
 | Modifier and Type | Required Element and Description | 
|---|---|
java.lang.String | 
name
 The resourceName of the resource pointed to by this   | 
| Modifier and Type | Optional Element and Description | 
|---|---|
java.lang.String | 
library
 The libraryName in which the resource pointed to by this
   | 
java.lang.String | 
target
 The value given for this attribute will be passed as the "target" argument to
   | 
public abstract java.lang.String name
 The resourceName of the resource pointed to by this ResourceDependency.
 It is valid to have Jakarta Expression Language Expressions in the value of this attribute, as long as the expression
 resolves to an instance of the expected type.
 
public abstract java.lang.String library
 The libraryName in which the resource pointed to by this
 ResourceDependency resides. If not specified, defaults to the empty string. It
 is valid to have Jakarta Expression Language Expressions in the value of this attribute, as long as the expression
 resolves to an instance of the expected type.
 
public abstract java.lang.String target
 The value given for this attribute will be passed as the "target" argument to
 UIViewRoot.addComponentResource(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String).
 If this attribute is specified,
 UIViewRoot.addComponentResource(javax.faces.context.FacesContext,javax.faces.component.UIComponent)
 must be called instead, as described above. It is valid to have Jakarta Expression Language Expressions in the value
 of this attribute, as long as the expression resolves to an instance of the expected type.