跳到主要内容
版本:3.0.0

View 定义

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

XML Schema Definition 可在此处获取。

<view>

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

元素必需描述
nameView 的唯一名称。有关更多信息,请参阅 <name>
labelView 的显示标签。有关更多信息,请参阅 <label>
versionView 的版本。有关更多信息,请参阅 <version>
min-ambari-version
max-ambari-version
此 View 可部署的 Ambari 最低和最高版本。有关更多信息,请参阅 <min-ambari-version>
descriptionView 的描述。有关更多信息,请参阅 <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-classAmbari ResourceProvider 资源 class。
resource-classJavaBean 资源 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>

元素必需描述
nameView 实例的唯一名称。
labelView 实例的显示标签。如果未设置,则使用 View 定义中的 <label>
descriptionView 实例的描述。如果未设置,则使用 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 属性和实例验证的使用方式。