跳到主要内容
版本:3.0.0

View 定义

以下介绍 View Package 中 View Definition File(view.xml)的语法。

XML Schema Definition 可在此处获取。

<view>​

<view> 元素是 Definition File 中的封装元素。下表介绍可以包含在 <view> 元素中的元素:

元素必需描述
name是View 的唯一名称。有关更多信息,请参阅 <name>。
label是View 的显示标签。有关更多信息,请参阅 <label>。
version是View 的版本。有关更多信息,请参阅 <version>。
min-ambari-version
max-ambari-version
否此 View 可部署的 Ambari 最低和最高版本。有关更多信息,请参阅 <min-ambari-version>。
description否View 的描述。有关更多信息,请参阅 <description>。
icon否此 View 要显示的 32x32 图标。建议大小为 32x32,必要时将显示为 8x8 和 16x16。如果未设置此属性,则使用默认的 View framework 图标。
icon64否此 View 要显示的 64x64 图标。如果未设置此属性,则使用 32x32 大小的图标。
permission否为此 View 定义自定义权限。有关更多信息,请参阅 <permission>。
parameter否定义创建 View 实例时使用的配置参数。有关更多信息,请参阅 <parameter>。
resource否定义 View 暴露的资源。有关更多信息,请参阅 <resource>。
instance否定义 View 的静态实例。有关更多信息,请参阅 <instance>。
view-class否注册一个接收 framework 事件的 View class。有关更多信息,请参阅 <view-class>。
validator-class否注册一个接收 framework 事件的 validator class。有关更多信息,请参阅 <validator-class>。

<name>​

View 的唯一名称。例如:

<name>MY_COOL_VIEW</name>

<label>​

View 的标签。例如:

<label>My Cool View</label>

<version>​

View 的版本。例如:

<version>0.1.0</version>

<min-ambari-version> <max-ambari-version>​

可以运行此 View 的 Ambari server 最低和最高版本。例如:

<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>​

View 的描述。例如:

<description>This view is used to display information.</description>

<parameter>​

元素必需描述
name是配置参数的名称。
description是配置参数的描述。
label否配置参数的用户友好名称(在 Ambari Administration Interface UI 中使用)。
placeholder否配置参数的占位符值(在 Ambari Administration Interface UI 中使用)。
default-value否配置参数的默认值(在 Ambari Administration Interface UI 中使用)。
required是如果为 true,则创建 View 实例时必须提供配置参数。
masked否指示是否在 Ambari Web UI 中对该参数值进行“掩码”处理(即不以明文显示)。省略此元素时默认为不掩码;否则,如果为 true,则在 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>

请参阅 Property View Example,了解不同参数选项的使用方式。

<permission>​

元素必需描述
name是权限的唯一名称。
description是权限的描述。
<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>​

元素必需描述
name是资源的名称。这将成为 View 实例的资源端点名称。
plural-name否资源的复数名称。
service-class否使用 JAX-RS 注解的资源服务 class。
id-property否资源标识符。
provider-class否Ambari ResourceProvider 资源 class。
resource-class否JavaBean 资源 class。
<resource>
<name>calculator</name>
<service-class>org.apache.ambari.view.proxy.CalculatorResource</service-class>
</resource>

请参阅 Calculator View Example,了解 REST service endpoint View 的实现。

<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>

请参阅 Weather View Example,了解 Ambari ResourceProvider View 的实现。

<instance>​

元素必需描述
name是View 实例的唯一名称。
label否View 实例的显示标签。如果未设置,则使用 View 定义中的 <label>。
description否View 实例的描述。如果未设置,则使用 View 定义中的 <description>。
visible否如果为 true,则在用户的 View 实例列表中显示该 View 实例。
icon否覆盖此特定 View 实例的 View 图标。
icon64否覆盖此特定 View 实例的 View icon64。
property否指定 View 实例所需的配置参数。有关更多信息,请参阅 <property>。
<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>​

元素必需描述
key是要设置的配置参数的属性键。
value是要设置的配置参数的属性值。
<property>
<key>units</key>
<value>imperial</value>
</property>

<view-class>​

注册一个接收 framework 事件的 View class。View class 必须实现 View 接口。

<view-class>this.is.my.viewclazz</view-class>

<validator-class>​

注册一个接收属性和实例验证请求的 validator class。validator class 必须实现 Validator 接口。

<validator-class>org.apache.ambari.view.property.MyValidator</validator-class>

请参阅 Property Validator View Example,了解 View 属性和实例验证的使用方式。