View Definition
The following describes the syntax of the View Definition File (view.xml
) as part of the View Package.
An XML Schema Definition is available here.
<view>
The <view>
element is the enclosing element in the Definition File. The following table describes the elements you can include in the <view>
element:
Element | Requred | Description |
---|---|---|
name | Yes | The unique name of the view. See <name> for more information. |
label | Yes | The display label of the view. See <label> for more information. |
version | Yes | The version of the view. See <version> for more information. |
min-ambari-version max-ambari-version | No | The minimum and maximum Ambari version this view can be deployed with. See <min-ambari-version> for more information. |
description | No | The description of the view. See <description> for more information. |
icon | No | The 32x32 icon to display for this view. Suggested size is 32x32 and will be displayed as 8x8 and 16x16 as necessary. If this property is not set, a default view framework icon is used. |
icon64 | No | The 64x64 icon to display for this view. If this property is not set, the 32x32 sized icon will be used. |
permission | No | Defines a custom permission for this view. See <permission> for more information. |
parameter | No | Defines a configuration parameter that is used to when creating a view instance. See <parameter> for more information. |
resource | No | Defines a resource that is exposed by the view. See <resource> for more information. |
instance | No | Defines a static instance of the view. See <instance> for more information. |
view-class | No | Registers a view class to receive framework events. See <view-class> for more information. |
validator-class | No | Registers a validator class to receive framework events. See <validator-class> for more information. |
<name>
The unique name of the view. Example:
<name>MY_COOL_VIEW</name>
<label>
The label of the view. Example:
<label>My Cool View</label>
<version>
The version of the view. Example:
<version>0.1.0</version>
<min-ambari-version> <max-ambari-version>
The minimum and maximum version of Ambari server that can run this view. Example:
<min-ambari-version>1.7.0</min-ambari-version>
<min-ambari-version>1.7.*</min-ambari-version>
<max-ambari-version>2.0</max-ambari-version>
<description>
The description of the view. Example:
<description>This view is used to display information.</description>
<parameter>
Element | Requred | Description |
---|---|---|
name | Yes | The name of the configuration parameter. |
description | Yes | The description of the configuration parameter. |
label | No | The user friendly name of the configuration parameter (used in the Ambari Administration Interface UI). |
placeholder | No | The placeholder value for the configuration parameter (used in the Ambari Administration Interface UI). |
default-value | No | The default value for the configuration parameter (used in the Ambari Administration Interface UI). |
required | Yes | If true, the configuration parameter is required in order to create a view instance. |
masked | No | Indicated this parameter value is to be "masked" in the Ambari Web UI (i.e. not shown in the clear). Omitting this element default to not-masked. Otherwise, if true, the parameter value will be "masked" in the Web UI. |
<parameter>
<name>someParameter</name>
<description>Some parameter this is used to configure an instance of this view</description>
<required>false</required>
</parameter>
<parameter>
<name>name.label.descr.default.place</name>
<description>Name, label, description, default and placeholder</description>
<label>NameLabelDescDefaultPlace</label>
<placeholder>this is placeholder text but you should see default</placeholder>
<default-value>youshouldseethisdefault</default-value>
<required>true</required>
</parameter>
See the Property View Example to see the different parameter options in use.
<permission>
Element | Requred | Description |
---|---|---|
name | Yes | The unique name of the permission. |
description | Yes | The description of the permission. |
<permission>
<name>SOME_CUSTOM_PERM</name>
<description>A custom permission for this view</description>
</permission>
<permission>
<name>SOME_OTHER_PERM</name>
<description>Another custom permission for this view</description>
</permission>
<resource>
Element | Requred | Description |
---|---|---|
name | Yes | The name of the resource. This will be the resource endpoint name of the view instance. |
plural-name | No | The plural name of the resource. |
service-class | No | The JAX-RS annotated resource service class. |
id-property | No | The resource identifier. |
provider-class | No | The Ambari ResourceProvider resource class. |
resource-class | No | The JavaBean resource class. |
<resource>
<name>calculator</name>
<service-class>org.apache.ambari.view.proxy.CalculatorResource</service-class>
</resource>
See the Calculator View Example to see a REST service endpoint view implementation.
<resource>
<name>city</name>
<plural-name>cities</plural-name>
<id-property>id</id-property>
<resource-class>org.apache.ambari.view.weather.CityResource</resource-class>
<provider-class>org.apache.ambari.view.weather.CityResourceProvider</provider-class>
<service-class>org.apache.ambari.view.weather.CityService</service-class>
</resource>
See the Weather View Example to see an Ambari ResourceProvider view implementation..
<instance>
Element | Requred | Description |
---|---|---|
name | Yes | The unique name of the view instance. |
label | No | The display label of the view instance. If not set, the view definition <label> is used. |
description | No | The description of the view instance. If not set, the view definition <description> is used. |
visible | No | If true, for the view instance to show up in the users view instance list. |
icon | No | Overrides the view icon for this specific view instance. |
icon64 | No | Overrides the view icon64 for this specific view instance. |
property | No | Specifies any necessary configuration parameters for the view instance. See <property> for more information. |
<instance>
<name>US_WEST</name>
<property>
<key>cities</key>
<value>Palo Alto, US;Los Angeles, US;Portland, US;Seattle, US</value>
</property>
<property>
<key>units</key>
<value>imperial</value>
</property>
</instance>
<property>
Element | Requred | Description |
---|---|---|
key | Yes | The property key (for the configuration parameter to set). |
value | Yes | The property value (for the configuration parameter to set). |
<property>
<key>units</key>
<value>imperial</value>
</property>
<view-class>
Registers a view class to receive framework events. The view class must implement the View interface.
<view-class>this.is.my.viewclazz</view-class>
<validator-class>
Registers a validator class to receive property and instance validation requests. The validator class must implement the Validator interface.
<validator-class>org.apache.ambari.view.property.MyValidator</validator-class>
See Property Validator View Example to see view property and instance validation in use.