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:

ElementRequiredDescription
nameYesThe unique name of the view. See <name> for more information.
labelYesThe display label of the view. See <label> for more information.
versionYesThe version of the view. See <version> for more information.

min-ambari-version

max-ambari-version

NoThe minimum and maximum Ambari version this view can be deployed with. See <min-ambari-version> for more information.
descriptionNoThe description of the view. See <description> for more information.
iconNoThe 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.
icon64NoThe 64x64 icon to display for this view. If this property is not set, the 32x32 sized icon will be used.
permissionNoDefines a custom permission for this view. See <permission> for more information.
parameterNoDefines a configuration parameter that is used to when creating a view instance. See <parameter> for more information.
resourceNoDefines a resource that is exposed by the view. See <resource> for more information.
instanceNoDefines a static instance of the view. See <instance> for more information.
view-classNoRegisters a view class to receive framework events. See <view-class> for more information.
validator-classNoRegisters 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>

ElementRequiredDescription
nameYesThe name of the configuration parameter.
descriptionYesThe description of the configuration parameter.
labelNoThe user friendly name of the configuration parameter (used in the Ambari Administration Interface UI).
placeholderNoThe placeholder value for the configuration parameter (used in the Ambari Administration Interface UI).
default-valueNoThe default value for the configuration parameter (used in the Ambari Administration Interface UI).
requiredYesIf true, the configuration parameter is required in order to create a view instance.
maskedNoIndicated 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>

ElementRequiredDescription
nameYesThe unique name of the permission.
descriptionYesThe 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>

ElementRequiredDescription
nameYesThe name of the resource. This will be the resource endpoint name of the view instance.
plural-nameNoThe plural name of the resource.
service-classNoThe JAX-RS annotated resource service class.
id-propertyNoThe resource identifier.
provider-classNoThe Ambari ResourceProvider resource class.
resource-classNoThe 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>

ElementRequiredDescription
nameYesThe unique name of the view instance.
labelNoThe display label of the view instance. If not set, the view definition <label> is used.
descriptionNoThe description of the view instance. If not set, the view definition <description> is used.
visibleNoIf true, for the view instance to show up in the users view instance list.
iconNoOverrides the view icon for this specific view instance.
icon64NoOverrides the view icon64 for this specific view instance.
propertyNoSpecifies 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>

ElementRequiredDescription
keyYesThe property key (for the configuration parameter to set).
valueYesThe 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.

  • No labels